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.
|
AnnotationVisitor |
visitInsnAnnotation(int typeRef,
TypePath typePath,
String desc,
boolean visible)
Visits an annotation on an 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.
|
AnnotationVisitor |
visitLocalVariableAnnotation(int typeRef,
TypePath typePath,
Label[] start,
Label[] end,
int[] index,
String desc,
boolean visible)
Visits an annotation on a local variable type.
|
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,
boolean itf)
Visits a method instruction.
|
void |
visitMultiANewArrayInsn(String desc,
int dims)
Visits a MULTIANEWARRAY instruction.
|
void |
visitParameter(String name,
int access)
Visits a parameter of this method.
|
AnnotationVisitor |
visitParameterAnnotation(int parameter,
String desc,
boolean visible)
Visits an annotation of a parameter this method.
|
AnnotationVisitor |
visitTryCatchAnnotation(int typeRef,
TypePath typePath,
String desc,
boolean visible)
Visits an annotation on an exception handler type.
|
void |
visitTryCatchBlock(Label start,
Label end,
Label handler,
String type)
Visits a try catch block.
|
AnnotationVisitor |
visitTypeAnnotation(int typeRef,
TypePath typePath,
String desc,
boolean visible)
Visits an annotation on a type in the method signature.
|
void |
visitTypeInsn(int opcode,
String type)
Visits a type instruction.
|
visitAttribute, visitCode, visitEnd, visitFrame, visitIincInsn, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLookupSwitchInsn, visitMethodInsn, visitTableSwitchInsn, visitVarInsnpublic MethodConstantsCollector(MethodVisitor mv, ConstantPool cp)
public void visitParameter(String name, int access)
MethodVisitorvisitParameter in class MethodVisitorname - parameter name or null if none is provided.access - the parameter's access flags, only ACC_FINAL,
ACC_SYNTHETIC or/and ACC_MANDATED are
allowed (see Opcodes).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 visitTypeAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
MethodVisitorvisitTypeAnnotation in class MethodVisitortypeRef - a reference to the annotated type. The sort of this type
reference must be METHOD_TYPE_PARAMETER,
METHOD_TYPE_PARAMETER_BOUND,
METHOD_RETURN,
METHOD_RECEIVER,
METHOD_FORMAL_PARAMETER or THROWS. See TypeReference.typePath - the path to the annotated type argument, wildcard bound, array
element type, or static inner type within 'typeRef'. May be
null if the annotation targets 'typeRef' as a whole.desc - 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,
boolean itf)
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).itf - if the method's owner class is an interface.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 AnnotationVisitor visitInsnAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
MethodVisitorvisitInsnAnnotation in class MethodVisitortypeRef - a reference to the annotated type. The sort of this type
reference must be INSTANCEOF,
NEW,
CONSTRUCTOR_REFERENCE, METHOD_REFERENCE, CAST,
CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT,
METHOD_INVOCATION_TYPE_ARGUMENT,
CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT, or
METHOD_REFERENCE_TYPE_ARGUMENT. See TypeReference.typePath - the path to the annotated type argument, wildcard bound, array
element type, or static inner type within 'typeRef'. May be
null if the annotation targets 'typeRef' as a whole.desc - the class descriptor of the annotation class.visible - true if the annotation is visible at runtime.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 AnnotationVisitor visitTryCatchAnnotation(int typeRef, TypePath typePath, String desc, boolean visible)
MethodVisitorMethodVisitor.visitTryCatchBlock(org.glassfish.hk2.external.org.objectweb.asm.Label, org.glassfish.hk2.external.org.objectweb.asm.Label, org.glassfish.hk2.external.org.objectweb.asm.Label, java.lang.String) for the annotated
exception handler. It can be called several times for the same exception
handler.visitTryCatchAnnotation in class MethodVisitortypeRef - a reference to the annotated type. The sort of this type
reference must be EXCEPTION_PARAMETER. See TypeReference.typePath - the path to the annotated type argument, wildcard bound, array
element type, or static inner type within 'typeRef'. May be
null if the annotation targets 'typeRef' as a whole.desc - the class descriptor of the annotation class.visible - true if the annotation is visible at runtime.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 AnnotationVisitor visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String desc, boolean visible)
MethodVisitorvisitLocalVariableAnnotation in class MethodVisitortypeRef - a reference to the annotated type. The sort of this type
reference must be LOCAL_VARIABLE or RESOURCE_VARIABLE. See TypeReference.typePath - the path to the annotated type argument, wildcard bound, array
element type, or static inner type within 'typeRef'. May be
null if the annotation targets 'typeRef' as a whole.start - the fist instructions corresponding to the continuous ranges
that make the scope of this local variable (inclusive).end - the last instructions corresponding to the continuous ranges
that make the scope of this local variable (exclusive). This
array must have the same size as the 'start' array.index - the local variable's index in each range. This array must have
the same size as the 'start' array.desc - the class descriptor of the annotation class.visible - true if the annotation is visible at runtime.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 © 2009-2014 Oracle Corporation. All Rights Reserved.