public class MethodConstantsCollector extends MethodVisitor
MethodVisitor that collects the Constants of the methods
it visits.api, mv| Constructor and Description |
|---|
MethodConstantsCollector(MethodVisitor mv,
ConstantPool cp) |
| Modifier and Type | Method and Description |
|---|---|
AnnotationVisitor |
visitAnnotation(String desc,
boolean visible)
Visits an annotation of this method.
|
AnnotationVisitor |
visitAnnotationDefault()
Visits the default value of this annotation interface method.
|
void |
visitFieldInsn(int opcode,
String owner,
String name,
String desc)
Visits a field instruction.
|
void |
visitInvokeDynamicInsn(String name,
String desc,
Handle bsm,
Object... bsmArgs)
Visits an invokedynamic instruction.
|
void |
visitLdcInsn(Object cst)
Visits a LDC instruction.
|
void |
visitLineNumber(int line,
Label start)
Visits a line number declaration.
|
void |
visitLocalVariable(String name,
String desc,
String signature,
Label start,
Label end,
int index)
Visits a local variable declaration.
|
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,
String owner,
String name,
String desc)
Visits a method instruction.
|
void |
visitMultiANewArrayInsn(String desc,
int dims)
Visits a MULTIANEWARRAY instruction.
|
AnnotationVisitor |
visitParameterAnnotation(int parameter,
String desc,
boolean visible)
Visits an annotation of a parameter this method.
|
void |
visitTryCatchBlock(Label start,
Label end,
Label handler,
String type)
Visits a try catch block.
|
void |
visitTypeInsn(int opcode,
String type)
Visits a type instruction.
|
visitAttribute, visitCode, visitEnd, visitFrame, visitIincInsn, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLookupSwitchInsn, visitTableSwitchInsn, visitVarInsnpublic MethodConstantsCollector(MethodVisitor mv, ConstantPool cp)
public AnnotationVisitor visitAnnotationDefault()
MethodVisitorvisitAnnotationDefault in class MethodVisitorpublic AnnotationVisitor visitAnnotation(String desc, boolean visible)
MethodVisitorvisitAnnotation in class MethodVisitordesc - the class descriptor of the annotation class.visible - true if the annotation is visible at runtime.public AnnotationVisitor visitParameterAnnotation(int parameter, String desc, boolean visible)
MethodVisitorvisitParameterAnnotation in class MethodVisitorparameter - the parameter index.desc - the class descriptor of the annotation class.visible - true if the annotation is visible at runtime.public void visitTypeInsn(int opcode,
String type)
MethodVisitorvisitTypeInsn in class MethodVisitoropcode - 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).public void visitFieldInsn(int opcode,
String owner,
String name,
String desc)
MethodVisitorvisitFieldInsn in class MethodVisitoropcode - 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).public void visitMethodInsn(int opcode,
String owner,
String name,
String desc)
MethodVisitorvisitMethodInsn in class MethodVisitoropcode - 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).public void visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs)
MethodVisitorvisitInvokeDynamicInsn in class MethodVisitorname - the method's name.desc - the method's descriptor (see Type).bsm - the bootstrap method.bsmArgs - the bootstrap method constant arguments. Each argument must be
an Integer, Float, Long,
Double, String, Type or Handle
value. This method is allowed to modify the content of the
array so a caller should expect that this array may change.public void visitLdcInsn(Object cst)
MethodVisitor
if (cst instanceof Integer) {
// ...
} else if (cst instanceof Float) {
// ...
} else if (cst instanceof Long) {
// ...
} else if (cst instanceof Double) {
// ...
} else if (cst instanceof String) {
// ...
} else if (cst instanceof Type) {
int sort = ((Type) cst).getSort();
if (sort == Type.OBJECT) {
// ...
} else if (sort == Type.ARRAY) {
// ...
} else if (sort == Type.METHOD) {
// ...
} else {
// throw an exception
}
} else if (cst instanceof Handle) {
// ...
} else {
// throw an exception
}
visitLdcInsn in class MethodVisitorcst - the constant to be loaded on the stack. This parameter must be
a non null Integer, a Float, a Long, a
Double, a String, a Type of OBJECT or
ARRAY sort for .class constants, for classes whose
version is 49.0, a Type of METHOD sort or a
Handle for MethodType and MethodHandle constants, for
classes whose version is 51.0.public void visitMultiANewArrayInsn(String desc, int dims)
MethodVisitorvisitMultiANewArrayInsn in class MethodVisitordesc - an array type descriptor (see Type).dims - number of dimensions of the array to allocate.public void visitTryCatchBlock(Label start, Label end, Label handler, String type)
MethodVisitorvisitTryCatchBlock in class MethodVisitorstart - 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).public void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index)
MethodVisitorvisitLocalVariable in class MethodVisitorname - 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.public void visitLineNumber(int line,
Label start)
MethodVisitorvisitLineNumber in class MethodVisitorline - 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.public void visitMaxs(int maxStack,
int maxLocals)
MethodVisitorvisitMaxs in class MethodVisitormaxStack - maximum stack size of the method.maxLocals - maximum number of local variables for the method.Copyright © 2014 Apache Software Foundation. All Rights Reserved.