Class InstructionAdapter

java.lang.Object
org.objectweb.asm.MethodAdapter
org.objectweb.asm.commons.InstructionAdapter
All Implemented Interfaces:
MethodVisitor

public class InstructionAdapter extends MethodAdapter
  • Field Details

    • OBJECT_TYPE

      public static final Type OBJECT_TYPE
  • Constructor Details

    • InstructionAdapter

      public InstructionAdapter(MethodVisitor mv)
  • Method Details

    • visitInsn

      public void visitInsn(int opcode)
      Description copied from interface: MethodVisitor
      Visits a zero operand instruction.
      Specified by:
      visitInsn in interface MethodVisitor
      Overrides:
      visitInsn in class MethodAdapter
      Parameters:
      opcode - the opcode of the instruction to be visited. This opcode is either NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1, FCONST_0, FCONST_1, FCONST_2, DCONST_0, DCONST_1, IALOAD, LALOAD, FALOAD, DALOAD, AALOAD, BALOAD, CALOAD, SALOAD, IASTORE, LASTORE, FASTORE, DASTORE, AASTORE, BASTORE, CASTORE, SASTORE, POP, POP2, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, SWAP, IADD, LADD, FADD, DADD, ISUB, LSUB, FSUB, DSUB, IMUL, LMUL, FMUL, DMUL, IDIV, LDIV, FDIV, DDIV, IREM, LREM, FREM, DREM, INEG, LNEG, FNEG, DNEG, ISHL, LSHL, ISHR, LSHR, IUSHR, LUSHR, IAND, LAND, IOR, LOR, IXOR, LXOR, I2L, I2F, I2D, L2I, L2F, L2D, F2I, F2L, F2D, D2I, D2L, D2F, I2B, I2C, I2S, LCMP, FCMPL, FCMPG, DCMPL, DCMPG, IRETURN, LRETURN, FRETURN, DRETURN, ARETURN, RETURN, ARRAYLENGTH, ATHROW, MONITORENTER, or MONITOREXIT.
    • visitIntInsn

      public void visitIntInsn(int opcode, int operand)
      Description copied from interface: MethodVisitor
      Visits an instruction with a single int operand.
      Specified by:
      visitIntInsn in interface MethodVisitor
      Overrides:
      visitIntInsn in class MethodAdapter
      Parameters:
      opcode - the opcode of the instruction to be visited. This opcode is either BIPUSH, SIPUSH or NEWARRAY.
      operand - the operand of the instruction to be visited.
      When opcode is BIPUSH, operand value should be between Byte.MIN_VALUE and Byte.MAX_VALUE.
      When opcode is SIPUSH, operand value should be between Short.MIN_VALUE and Short.MAX_VALUE.
      When opcode is NEWARRAY, operand value should be one of Opcodes.T_BOOLEAN, Opcodes.T_CHAR, Opcodes.T_FLOAT, Opcodes.T_DOUBLE, Opcodes.T_BYTE, Opcodes.T_SHORT, Opcodes.T_INT or Opcodes.T_LONG.
    • visitVarInsn

      public void visitVarInsn(int opcode, int var)
      Description copied from interface: MethodVisitor
      Visits a local variable instruction. A local variable instruction is an instruction that loads or stores the value of a local variable.
      Specified by:
      visitVarInsn in interface MethodVisitor
      Overrides:
      visitVarInsn in class MethodAdapter
      Parameters:
      opcode - the opcode of the local variable instruction to be visited. This opcode is either ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, ASTORE or RET.
      var - the operand of the instruction to be visited. This operand is the index of a local variable.
    • visitTypeInsn

      public void visitTypeInsn(int opcode, String type)
      Description copied from interface: MethodVisitor
      Visits a type instruction. A type instruction is an instruction that takes the internal name of a class as parameter.
      Specified by:
      visitTypeInsn in interface MethodVisitor
      Overrides:
      visitTypeInsn in class MethodAdapter
      Parameters:
      opcode - the opcode of the type instruction to be visited. This opcode is either NEW, ANEWARRAY, CHECKCAST or INSTANCEOF.
      type - the operand of the instruction to be visited. This operand must be the internal name of an object or array class (see getInternalName).
    • visitFieldInsn

      public void visitFieldInsn(int opcode, String owner, String name, String desc)
      Description copied from interface: MethodVisitor
      Visits a field instruction. A field instruction is an instruction that loads or stores the value of a field of an object.
      Specified by:
      visitFieldInsn in interface MethodVisitor
      Overrides:
      visitFieldInsn in class MethodAdapter
      Parameters:
      opcode - the opcode of the type instruction to be visited. This opcode is either GETSTATIC, PUTSTATIC, GETFIELD or PUTFIELD.
      owner - the internal name of the field's owner class (see getInternalName).
      name - the field's name.
      desc - the field's descriptor (see Type).
    • visitMethodInsn

      public void visitMethodInsn(int opcode, String owner, String name, String desc)
      Description copied from interface: MethodVisitor
      Visits a method instruction. A method instruction is an instruction that invokes a method.
      Specified by:
      visitMethodInsn in interface MethodVisitor
      Overrides:
      visitMethodInsn in class MethodAdapter
      Parameters:
      opcode - the opcode of the type instruction to be visited. This opcode is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC, INVOKEINTERFACE or INVOKEDYNAMIC.
      owner - the internal name of the method's owner class (see getInternalName) or Opcodes.INVOKEDYNAMIC_OWNER.
      name - the method's name.
      desc - the method's descriptor (see Type).
    • visitJumpInsn

      public void visitJumpInsn(int opcode, Label label)
      Description copied from interface: MethodVisitor
      Visits a jump instruction. A jump instruction is an instruction that may jump to another instruction.
      Specified by:
      visitJumpInsn in interface MethodVisitor
      Overrides:
      visitJumpInsn in class MethodAdapter
      Parameters:
      opcode - the opcode of the type instruction to be visited. This opcode is either IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ, IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ACMPEQ, IF_ACMPNE, GOTO, JSR, IFNULL or IFNONNULL.
      label - the operand of the instruction to be visited. This operand is a label that designates the instruction to which the jump instruction may jump.
    • visitLabel

      public void visitLabel(Label label)
      Description copied from interface: MethodVisitor
      Visits a label. A label designates the instruction that will be visited just after it.
      Specified by:
      visitLabel in interface MethodVisitor
      Overrides:
      visitLabel in class MethodAdapter
      Parameters:
      label - a Label object.
    • visitLdcInsn

      public void visitLdcInsn(Object cst)
      Description copied from interface: MethodVisitor
      Visits a LDC instruction.
      Specified by:
      visitLdcInsn in interface MethodVisitor
      Overrides:
      visitLdcInsn in class MethodAdapter
      Parameters:
      cst - the constant to be loaded on the stack. This parameter must be a non null Integer, a Float, a Long, a Double a String (or a Type for .class constants, for classes whose version is 49.0 or more).
    • visitIincInsn

      public void visitIincInsn(int var, int increment)
      Description copied from interface: MethodVisitor
      Visits an IINC instruction.
      Specified by:
      visitIincInsn in interface MethodVisitor
      Overrides:
      visitIincInsn in class MethodAdapter
      Parameters:
      var - index of the local variable to be incremented.
      increment - amount to increment the local variable by.
    • visitTableSwitchInsn

      public void visitTableSwitchInsn(int min, int max, Label dflt, Label[] labels)
      Description copied from interface: MethodVisitor
      Visits a TABLESWITCH instruction.
      Specified by:
      visitTableSwitchInsn in interface MethodVisitor
      Overrides:
      visitTableSwitchInsn in class MethodAdapter
      Parameters:
      min - the minimum key value.
      max - the maximum key value.
      dflt - beginning of the default handler block.
      labels - beginnings of the handler blocks. labels[i] is the beginning of the handler block for the min + i key.
    • visitLookupSwitchInsn

      public void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels)
      Description copied from interface: MethodVisitor
      Visits a LOOKUPSWITCH instruction.
      Specified by:
      visitLookupSwitchInsn in interface MethodVisitor
      Overrides:
      visitLookupSwitchInsn in class MethodAdapter
      Parameters:
      dflt - beginning of the default handler block.
      keys - the values of the keys.
      labels - beginnings of the handler blocks. labels[i] is the beginning of the handler block for the keys[i] key.
    • visitMultiANewArrayInsn

      public void visitMultiANewArrayInsn(String desc, int dims)
      Description copied from interface: MethodVisitor
      Visits a MULTIANEWARRAY instruction.
      Specified by:
      visitMultiANewArrayInsn in interface MethodVisitor
      Overrides:
      visitMultiANewArrayInsn in class MethodAdapter
      Parameters:
      desc - an array type descriptor (see Type).
      dims - number of dimensions of the array to allocate.
    • nop

      public void nop()
    • aconst

      public void aconst(Object cst)
    • iconst

      public void iconst(int cst)
    • lconst

      public void lconst(long cst)
    • fconst

      public void fconst(float cst)
    • dconst

      public void dconst(double cst)
    • tconst

      public void tconst(Type type)
    • load

      public void load(int var, Type type)
    • aload

      public void aload(Type type)
    • store

      public void store(int var, Type type)
    • astore

      public void astore(Type type)
    • pop

      public void pop()
    • pop2

      public void pop2()
    • dup

      public void dup()
    • dup2

      public void dup2()
    • dupX1

      public void dupX1()
    • dupX2

      public void dupX2()
    • dup2X1

      public void dup2X1()
    • dup2X2

      public void dup2X2()
    • swap

      public void swap()
    • add

      public void add(Type type)
    • sub

      public void sub(Type type)
    • mul

      public void mul(Type type)
    • div

      public void div(Type type)
    • rem

      public void rem(Type type)
    • neg

      public void neg(Type type)
    • shl

      public void shl(Type type)
    • shr

      public void shr(Type type)
    • ushr

      public void ushr(Type type)
    • and

      public void and(Type type)
    • or

      public void or(Type type)
    • xor

      public void xor(Type type)
    • iinc

      public void iinc(int var, int increment)
    • cast

      public void cast(Type from, Type to)
    • lcmp

      public void lcmp()
    • cmpl

      public void cmpl(Type type)
    • cmpg

      public void cmpg(Type type)
    • ifeq

      public void ifeq(Label label)
    • ifne

      public void ifne(Label label)
    • iflt

      public void iflt(Label label)
    • ifge

      public void ifge(Label label)
    • ifgt

      public void ifgt(Label label)
    • ifle

      public void ifle(Label label)
    • ificmpeq

      public void ificmpeq(Label label)
    • ificmpne

      public void ificmpne(Label label)
    • ificmplt

      public void ificmplt(Label label)
    • ificmpge

      public void ificmpge(Label label)
    • ificmpgt

      public void ificmpgt(Label label)
    • ificmple

      public void ificmple(Label label)
    • ifacmpeq

      public void ifacmpeq(Label label)
    • ifacmpne

      public void ifacmpne(Label label)
    • goTo

      public void goTo(Label label)
    • jsr

      public void jsr(Label label)
    • ret

      public void ret(int var)
    • tableswitch

      public void tableswitch(int min, int max, Label dflt, Label[] labels)
    • lookupswitch

      public void lookupswitch(Label dflt, int[] keys, Label[] labels)
    • areturn

      public void areturn(Type t)
    • getstatic

      public void getstatic(String owner, String name, String desc)
    • putstatic

      public void putstatic(String owner, String name, String desc)
    • getfield

      public void getfield(String owner, String name, String desc)
    • putfield

      public void putfield(String owner, String name, String desc)
    • invokevirtual

      public void invokevirtual(String owner, String name, String desc)
    • invokespecial

      public void invokespecial(String owner, String name, String desc)
    • invokestatic

      public void invokestatic(String owner, String name, String desc)
    • invokeinterface

      public void invokeinterface(String owner, String name, String desc)
    • anew

      public void anew(Type type)
    • newarray

      public void newarray(Type type)
    • arraylength

      public void arraylength()
    • athrow

      public void athrow()
    • checkcast

      public void checkcast(Type type)
    • instanceOf

      public void instanceOf(Type type)
    • monitorenter

      public void monitorenter()
    • monitorexit

      public void monitorexit()
    • multianewarray

      public void multianewarray(String desc, int dims)
    • ifnull

      public void ifnull(Label label)
    • ifnonnull

      public void ifnonnull(Label label)
    • mark

      public void mark(Label label)