public interface MethodVisitor
| Modifier and Type | Method and Description |
|---|---|
AnnotationVisitor |
visitAnnotation(java.lang.String desc,
boolean visible)
Visits an annotation of this method.
|
AnnotationVisitor |
visitAnnotationDefault()
Visits the default value of this annotation interface method.
|
void |
visitAttribute(Attribute attr)
Visits a non standard attribute of this method.
|
void |
visitCode()
Starts the visit of the method's code, if any (i.e.
|
void |
visitEnd()
Visits the end of the method.
|
void |
visitFieldInsn(int opcode,
java.lang.String owner,
java.lang.String name,
java.lang.String desc)
Visits a field instruction.
|
void |
visitIincInsn(int var,
int increment)
Visits an IINC instruction.
|
void |
visitInsn(int opcode)
Visits a zero operand instruction.
|
void |
visitIntInsn(int opcode,
int operand)
Visits an instruction with a single int operand.
|
void |
visitJumpInsn(int opcode,
Label label)
Visits a jump instruction.
|
void |
visitLabel(Label label)
Visits a label.
|
void |
visitLdcInsn(java.lang.Object cst)
Visits a LDC instruction.
|
void |
visitLineNumber(int line,
Label start)
Visits a line number declaration.
|
void |
visitLocalVariable(java.lang.String name,
java.lang.String desc,
java.lang.String signature,
Label start,
Label end,
int index)
Visits a local variable declaration.
|
void |
visitLookupSwitchInsn(Label dflt,
int[] keys,
Label[] labels)
Visits a LOOKUPSWITCH instruction.
|
void |
visitMaxs(int maxStack,
int maxLocals)
Visits the maximum stack size and the maximum number of local variables of
the method.
|
void |
visitMethodInsn(int opcode,
java.lang.String owner,
java.lang.String name,
java.lang.String desc)
Visits a method instruction.
|
void |
visitMultiANewArrayInsn(java.lang.String desc,
int dims)
Visits a MULTIANEWARRAY instruction.
|
AnnotationVisitor |
visitParameterAnnotation(int parameter,
java.lang.String desc,
boolean visible)
Visits an annotation of a parameter this method.
|
void |
visitTableSwitchInsn(int min,
int max,
Label dflt,
Label[] labels)
Visits a TABLESWITCH instruction.
|
void |
visitTryCatchBlock(Label start,
Label end,
Label handler,
java.lang.String type)
Visits a try catch block.
|
void |
visitTypeInsn(int opcode,
java.lang.String desc)
Visits a type instruction.
|
void |
visitVarInsn(int opcode,
int var)
Visits a local variable instruction.
|
AnnotationVisitor visitAnnotationDefault()
AnnotationVisitor visitAnnotation(java.lang.String desc, boolean visible)
desc - the class descriptor of the annotation class.visible - true if the annotation is visible at runtime.AnnotationVisitor visitParameterAnnotation(int parameter, java.lang.String desc, boolean visible)
parameter - the parameter index.desc - the class descriptor of the annotation class.visible - true if the annotation is visible at runtime.void visitAttribute(Attribute attr)
attr - an attribute.void visitCode()
void visitInsn(int opcode)
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.void visitIntInsn(int opcode,
int operand)
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.void visitVarInsn(int opcode,
int var)
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.void visitTypeInsn(int opcode,
java.lang.String desc)
opcode - the opcode of the type instruction to be visited. This opcode
is either NEW, ANEWARRAY, CHECKCAST or INSTANCEOF.desc - the operand of the instruction to be visited. This operand is
must be a fully qualified class name in internal form, or the type
descriptor of an array type (see Type).void visitFieldInsn(int opcode,
java.lang.String owner,
java.lang.String name,
java.lang.String desc)
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).void visitMethodInsn(int opcode,
java.lang.String owner,
java.lang.String name,
java.lang.String desc)
opcode - the opcode of the type instruction to be visited. This opcode
is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or
INVOKEINTERFACE.owner - the internal name of the method's owner class (see getInternalName).name - the method's name.desc - the method's descriptor (see Type).void visitJumpInsn(int opcode,
Label label)
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.void visitLabel(Label label)
label - a Label object.void visitLdcInsn(java.lang.Object cst)
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).void visitIincInsn(int var,
int increment)
var - index of the local variable to be incremented.increment - amount to increment the local variable by.void visitTableSwitchInsn(int min,
int max,
Label dflt,
Label[] labels)
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.void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels)
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.void visitMultiANewArrayInsn(java.lang.String desc,
int dims)
desc - an array type descriptor (see Type).dims - number of dimensions of the array to allocate.void visitTryCatchBlock(Label start, Label end, Label handler, java.lang.String type)
start - beginning of the exception handler's scope (inclusive).end - end of the exception handler's scope (exclusive).handler - beginning of the exception handler's code.type - internal name of the type of exceptions handled by the handler,
or null to catch any exceptions (for "finally" blocks).java.lang.IllegalArgumentException - if one of the labels has not already been
visited by this visitor (by the visitLabel
method).void visitLocalVariable(java.lang.String name,
java.lang.String desc,
java.lang.String signature,
Label start,
Label end,
int index)
name - the name of a local variable.desc - the type descriptor of this local variable.signature - the type signature of this local variable. May be
null if the local variable type does not use generic types.start - the first instruction corresponding to the scope of this
local variable (inclusive).end - the last instruction corresponding to the scope of this
local variable (exclusive).index - the local variable's index.java.lang.IllegalArgumentException - if one of the labels has not already been
visited by this visitor (by the visitLabel
method).void visitLineNumber(int line,
Label start)
line - a line number. This number refers to the source file
from which the class was compiled.start - the first instruction corresponding to this line number.java.lang.IllegalArgumentException - if start has not already been
visited by this visitor (by the visitLabel
method).void visitMaxs(int maxStack,
int maxLocals)
maxStack - maximum stack size of the method.maxLocals - maximum number of local variables for the method.void visitEnd()