Class ExceptionTableSensitiveMethodVisitor

  • Direct Known Subclasses:
    Advice.AdviceVisitor, LineNumberPrependingMethodVisitor

    public abstract class ExceptionTableSensitiveMethodVisitor
    extends org.objectweb.asm.MethodVisitor
    A MethodVisitor that adds a callback after visiting the exception table of a method.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private boolean trigger
      true if the exception table callback was already triggered.
      • Fields inherited from class org.objectweb.asm.MethodVisitor

        api, mv
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected ExceptionTableSensitiveMethodVisitor​(int api, org.objectweb.asm.MethodVisitor methodVisitor)
      Creates an exception table sensitive method visitor.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      private void considerEndOfExceptionTable()
      Considers if the end of the exception table was reached.
      protected abstract void onAfterExceptionTable()
      Invoked after the exception table was visited.
      protected void onVisitFieldInsn​(int opcode, java.lang.String owner, java.lang.String name, java.lang.String descriptor)
      Visits a field instruction.
      protected void onVisitFrame​(int type, int localVariableLength, java.lang.Object[] localVariable, int stackSize, java.lang.Object[] stack)
      Visits a stack map frame.
      protected void onVisitIincInsn​(int offset, int increment)
      Visits an increment instruction.
      protected void onVisitInsn​(int opcode)
      Visits a simple instruction.
      protected void onVisitIntInsn​(int opcode, int operand)
      Visits an integer opcode.
      protected void onVisitInvokeDynamicInsn​(java.lang.String name, java.lang.String descriptor, org.objectweb.asm.Handle handle, java.lang.Object... argument)
      Visits an invoke dynamic instruction.
      protected void onVisitJumpInsn​(int opcode, org.objectweb.asm.Label label)
      Visits a jump instruction.
      protected void onVisitLabel​(org.objectweb.asm.Label label)
      Visits a label.
      protected void onVisitLdcInsn​(java.lang.Object constant)
      Visits a constant pool access instruction.
      protected void onVisitLookupSwitchInsn​(org.objectweb.asm.Label defaultTarget, int[] key, org.objectweb.asm.Label[] label)
      Visits a lookup switch instruction.
      protected void onVisitMethodInsn​(int opcode, java.lang.String owner, java.lang.String name, java.lang.String descriptor)
      protected void onVisitMethodInsn​(int opcode, java.lang.String owner, java.lang.String name, java.lang.String descriptor, boolean isInterface)
      Visits a method instruction.
      protected void onVisitMultiANewArrayInsn​(java.lang.String descriptor, int dimensions)
      Visits an instruction for creating a multidimensional array.
      protected void onVisitTableSwitchInsn​(int minimum, int maximum, org.objectweb.asm.Label defaultTarget, org.objectweb.asm.Label... label)
      Visits a table switch instruction.
      protected void onVisitTypeInsn​(int opcode, java.lang.String type)
      Visits a type instruction.
      protected void onVisitVarInsn​(int opcode, int offset)
      Visits an variable instruction.
      void visitFieldInsn​(int opcode, java.lang.String owner, java.lang.String name, java.lang.String descriptor)  
      void visitFrame​(int type, int localVariableLength, java.lang.Object[] localVariable, int stackSize, java.lang.Object[] stack)  
      void visitIincInsn​(int offset, int increment)  
      void visitInsn​(int opcode)  
      void visitIntInsn​(int opcode, int operand)  
      void visitInvokeDynamicInsn​(java.lang.String name, java.lang.String descriptor, org.objectweb.asm.Handle handle, java.lang.Object... argument)  
      void visitJumpInsn​(int opcode, org.objectweb.asm.Label label)  
      void visitLabel​(org.objectweb.asm.Label label)  
      void visitLdcInsn​(java.lang.Object constant)  
      void visitLookupSwitchInsn​(org.objectweb.asm.Label dflt, int[] key, org.objectweb.asm.Label[] label)  
      void visitMethodInsn​(int opcode, java.lang.String owner, java.lang.String name, java.lang.String descriptor)  
      void visitMethodInsn​(int opcode, java.lang.String owner, java.lang.String name, java.lang.String descriptor, boolean isInterface)  
      void visitMultiANewArrayInsn​(java.lang.String descriptor, int dimensions)  
      void visitTableSwitchInsn​(int minimum, int maximum, org.objectweb.asm.Label defaultTarget, org.objectweb.asm.Label... label)  
      void visitTypeInsn​(int opcode, java.lang.String type)  
      void visitVarInsn​(int opcode, int offset)  
      • Methods inherited from class org.objectweb.asm.MethodVisitor

        visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitInsnAnnotation, visitLineNumber, visitLocalVariable, visitLocalVariableAnnotation, visitMaxs, visitParameter, visitParameterAnnotation, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeAnnotation
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • trigger

        private boolean trigger
        true if the exception table callback was already triggered.
    • Constructor Detail

      • ExceptionTableSensitiveMethodVisitor

        protected ExceptionTableSensitiveMethodVisitor​(int api,
                                                       org.objectweb.asm.MethodVisitor methodVisitor)
        Creates an exception table sensitive method visitor.
        Parameters:
        api - The ASM API version.
        methodVisitor - The delegating method visitor.
    • Method Detail

      • considerEndOfExceptionTable

        private void considerEndOfExceptionTable()
        Considers if the end of the exception table was reached.
      • onAfterExceptionTable

        protected abstract void onAfterExceptionTable()
        Invoked after the exception table was visited. Typically, the exception table is visited by ASM at the beginning of a method. It is however possible that a user adds exception table entries at a later point. Normally, this is however not meaningful use of ASM.
      • visitFrame

        public final void visitFrame​(int type,
                                     int localVariableLength,
                                     java.lang.Object[] localVariable,
                                     int stackSize,
                                     java.lang.Object[] stack)
        Overrides:
        visitFrame in class org.objectweb.asm.MethodVisitor
      • onVisitFrame

        protected void onVisitFrame​(int type,
                                    int localVariableLength,
                                    java.lang.Object[] localVariable,
                                    int stackSize,
                                    java.lang.Object[] stack)
        Visits a stack map frame.
        Parameters:
        type - The type of stack map frame.
        localVariableLength - The length of the local variable array.
        localVariable - An array containing type symbols for all values in the local variable array.
        stackSize - The size of the operand stack.
        stack - An array containing type symbols for all values on the operand stack.
      • visitLabel

        public final void visitLabel​(org.objectweb.asm.Label label)
        Overrides:
        visitLabel in class org.objectweb.asm.MethodVisitor
      • onVisitLabel

        protected void onVisitLabel​(org.objectweb.asm.Label label)
        Visits a label.
        Parameters:
        label - The visited label.
        See Also:
        MethodVisitor.visitLabel(Label)
      • visitIntInsn

        public final void visitIntInsn​(int opcode,
                                       int operand)
        Overrides:
        visitIntInsn in class org.objectweb.asm.MethodVisitor
      • onVisitIntInsn

        protected void onVisitIntInsn​(int opcode,
                                      int operand)
        Visits an integer opcode.
        Parameters:
        opcode - The visited opcode.
        operand - The visited operand.
      • visitVarInsn

        public final void visitVarInsn​(int opcode,
                                       int offset)
        Overrides:
        visitVarInsn in class org.objectweb.asm.MethodVisitor
      • onVisitVarInsn

        protected void onVisitVarInsn​(int opcode,
                                      int offset)
        Visits an variable instruction.
        Parameters:
        opcode - The visited opcode.
        offset - The visited offset.
      • visitTypeInsn

        public final void visitTypeInsn​(int opcode,
                                        java.lang.String type)
        Overrides:
        visitTypeInsn in class org.objectweb.asm.MethodVisitor
      • onVisitTypeInsn

        protected void onVisitTypeInsn​(int opcode,
                                       java.lang.String type)
        Visits a type instruction.
        Parameters:
        opcode - The visited opcode.
        type - The type name.
      • visitFieldInsn

        public final void visitFieldInsn​(int opcode,
                                         java.lang.String owner,
                                         java.lang.String name,
                                         java.lang.String descriptor)
        Overrides:
        visitFieldInsn in class org.objectweb.asm.MethodVisitor
      • onVisitFieldInsn

        protected void onVisitFieldInsn​(int opcode,
                                        java.lang.String owner,
                                        java.lang.String name,
                                        java.lang.String descriptor)
        Visits a field instruction.
        Parameters:
        opcode - The visited opcode.
        owner - The field's owner.
        name - The field's name.
        descriptor - The field's descriptor.
      • visitMethodInsn

        public final void visitMethodInsn​(int opcode,
                                          java.lang.String owner,
                                          java.lang.String name,
                                          java.lang.String descriptor)
        Overrides:
        visitMethodInsn in class org.objectweb.asm.MethodVisitor
      • onVisitMethodInsn

        @Deprecated
        protected void onVisitMethodInsn​(int opcode,
                                         java.lang.String owner,
                                         java.lang.String name,
                                         java.lang.String descriptor)
        Visits a method instruction.
        Parameters:
        opcode - The visited opcode.
        owner - The method's owner.
        name - The method's internal name.
        descriptor - The method's descriptor.
      • visitMethodInsn

        public final void visitMethodInsn​(int opcode,
                                          java.lang.String owner,
                                          java.lang.String name,
                                          java.lang.String descriptor,
                                          boolean isInterface)
        Overrides:
        visitMethodInsn in class org.objectweb.asm.MethodVisitor
      • onVisitMethodInsn

        protected void onVisitMethodInsn​(int opcode,
                                         java.lang.String owner,
                                         java.lang.String name,
                                         java.lang.String descriptor,
                                         boolean isInterface)
        Visits a method instruction.
        Parameters:
        opcode - The visited opcode.
        owner - The method's owner.
        name - The method's internal name.
        descriptor - The method's descriptor.
        isInterface - true if the method belongs to an interface.
      • visitInvokeDynamicInsn

        public final void visitInvokeDynamicInsn​(java.lang.String name,
                                                 java.lang.String descriptor,
                                                 org.objectweb.asm.Handle handle,
                                                 java.lang.Object... argument)
        Overrides:
        visitInvokeDynamicInsn in class org.objectweb.asm.MethodVisitor
      • onVisitInvokeDynamicInsn

        protected void onVisitInvokeDynamicInsn​(java.lang.String name,
                                                java.lang.String descriptor,
                                                org.objectweb.asm.Handle handle,
                                                java.lang.Object... argument)
        Visits an invoke dynamic instruction.
        Parameters:
        name - The name of the method.
        descriptor - The descriptor of the method.
        handle - The bootstrap method handle.
        argument - The bootstrap method arguments.
      • visitJumpInsn

        public final void visitJumpInsn​(int opcode,
                                        org.objectweb.asm.Label label)
        Overrides:
        visitJumpInsn in class org.objectweb.asm.MethodVisitor
      • onVisitJumpInsn

        protected void onVisitJumpInsn​(int opcode,
                                       org.objectweb.asm.Label label)
        Visits a jump instruction.
        Parameters:
        opcode - The visited opcode.
        label - The visited label.
      • visitLdcInsn

        public final void visitLdcInsn​(java.lang.Object constant)
        Overrides:
        visitLdcInsn in class org.objectweb.asm.MethodVisitor
      • onVisitLdcInsn

        protected void onVisitLdcInsn​(java.lang.Object constant)
        Visits a constant pool access instruction.
        Parameters:
        constant - The constant pool value.
      • visitIincInsn

        public final void visitIincInsn​(int offset,
                                        int increment)
        Overrides:
        visitIincInsn in class org.objectweb.asm.MethodVisitor
      • onVisitIincInsn

        protected void onVisitIincInsn​(int offset,
                                       int increment)
        Visits an increment instruction.
        Parameters:
        offset - The offset of the accessed variable.
        increment - The value with which to increment.
      • visitTableSwitchInsn

        public final void visitTableSwitchInsn​(int minimum,
                                               int maximum,
                                               org.objectweb.asm.Label defaultTarget,
                                               org.objectweb.asm.Label... label)
        Overrides:
        visitTableSwitchInsn in class org.objectweb.asm.MethodVisitor
      • onVisitTableSwitchInsn

        protected void onVisitTableSwitchInsn​(int minimum,
                                              int maximum,
                                              org.objectweb.asm.Label defaultTarget,
                                              org.objectweb.asm.Label... label)
        Visits a table switch instruction.
        Parameters:
        minimum - The minimum index.
        maximum - The maximum index.
        defaultTarget - A label indicating the default value.
        label - Labels indicating the jump targets.
      • visitLookupSwitchInsn

        public final void visitLookupSwitchInsn​(org.objectweb.asm.Label dflt,
                                                int[] key,
                                                org.objectweb.asm.Label[] label)
        Overrides:
        visitLookupSwitchInsn in class org.objectweb.asm.MethodVisitor
      • onVisitLookupSwitchInsn

        protected void onVisitLookupSwitchInsn​(org.objectweb.asm.Label defaultTarget,
                                               int[] key,
                                               org.objectweb.asm.Label[] label)
        Visits a lookup switch instruction.
        Parameters:
        defaultTarget - The default option.
        key - The key values.
        label - The targets for each key.
      • visitMultiANewArrayInsn

        public final void visitMultiANewArrayInsn​(java.lang.String descriptor,
                                                  int dimensions)
        Overrides:
        visitMultiANewArrayInsn in class org.objectweb.asm.MethodVisitor
      • onVisitMultiANewArrayInsn

        protected void onVisitMultiANewArrayInsn​(java.lang.String descriptor,
                                                 int dimensions)
        Visits an instruction for creating a multidimensional array.
        Parameters:
        descriptor - The type descriptor of the array's component type.
        dimensions - The dimensions of the array.
      • visitInsn

        public final void visitInsn​(int opcode)
        Overrides:
        visitInsn in class org.objectweb.asm.MethodVisitor
      • onVisitInsn

        protected void onVisitInsn​(int opcode)
        Visits a simple instruction.
        Parameters:
        opcode - The opcode of the instruction.