Package eu.bandm.tools.util2
Class AnnotationVisitor<D>
java.lang.Object
eu.bandm.tools.util2.ClassFileVisitor<D>
eu.bandm.tools.util2.AnnotationVisitor<D>
- All Implemented Interfaces:
Runnable
Visits the bytecode of a class and collects annotations.
Warning: not all aspects of annotations are implemented.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic class(package private) static @interfacestatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected AnnotationVisitor.Annotationprotected final List<AnnotationVisitor.Annotation>protected final Stack<Consumer<AnnotationVisitor.ElementValue>>protected booleanFields inherited from class eu.bandm.tools.util2.ClassFileVisitor
MAX_MAJOR, MAX_MINOR -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Pattern<AnnotationVisitor.Annotation>annotation(Pattern<String> name, Pattern<Map<String, AnnotationVisitor.ElementValue>> params) protected voidconstantClass(int index, int nameIndex) protected voidelementValueString(int valueIndex) protected voidprotected voidprotected voidprotected voidprotected StringgetClassName(int typeIndex) static voidparam(Pattern<String> name, Pattern<AnnotationVisitor.ElementValue> value) param(String name, Pattern<AnnotationVisitor.ElementValue> value) protected voidstartAnnotation(int typeIndex, int length) protected voidstartClass(int accessFlags, int thisClass, int superClass, int... interfaces) protected voidstartElementValueArray(int length) protected voidstartElementValuePair(int index, int nameIndex) protected StringunmangleClassName(String fieldDescriptor) Methods inherited from class eu.bandm.tools.util2.ClassFileVisitor
attribute, constantDouble, constantFieldref, constantFloat, constantInteger, constantInterfaceMethodref, constantInvokeDynamic, constantLong, constantMethodHandle, constantMethodref, constantMethodType, constantModule, constantNameAndType, constantPackage, constantString, constantUtf8, constantValue, elementValueBoolean, elementValueByte, elementValueChar, elementValueClass, elementValueDouble, elementValueEnum, elementValueFloat, elementValueInt, elementValueLong, elementValueShort, endAttributes, endClass, endClassFile, endCode, endConstantPool, endElementValueAnnotation, endExceptionHandlers, endField, endFields, endInnerClasses, endLineNumberTable, endMethod, endRuntimeInvisibleAnnotations, endRuntimeVisibleAnnotations, exceptionHandler, exceptions, getMessageReceiver, getUTF8, innerClass, lineNumber, run, setMessageReceiver, sourceFile, startAttributes, startClassFile, startCode, startConstantPool, startElementValueAnnotation, startExceptionHandlers, startField, startFields, startInnerClasses, startLineNumberTable, startMethod, startMethods, startRuntimeInvisibleAnnotations, startRuntimeVisibleAnnotations, visitAnnotation, visitAttribute, visitAttributes, visitClass, visitClassFile, visitCodeAttribute, visitConstantClass, visitConstantDouble, visitConstantFieldref, visitConstantFloat, visitConstantInteger, visitConstantInterfaceMethodref, visitConstantInvokeDynamic, visitConstantLong, visitConstantMethodHandle, visitConstantMethodref, visitConstantMethodType, visitConstantModule, visitConstantNameAndType, visitConstantPackage, visitConstantPool, visitConstantPoolEntry, visitConstantString, visitConstantUtf8, visitConstantValueAttribute, visitElementValue, visitElementValuePair, visitExceptionsAttribute, visitExceptionTable, visitField, visitFields, visitInnerClassesAttribute, visitInterfaces, visitLineNumberTableAttribute, visitMethod, visitMethods, visitRuntimeInvisibleAnnotationsAttribute, visitRuntimeVisibleAnnotationsAttribute, visitSourceFileAttribute
-
Field Details
-
classNames
-
forClass
protected boolean forClass -
annotation
-
elementValueConsumer
-
classAnnotations
-
-
Constructor Details
-
AnnotationVisitor
-
-
Method Details
-
getClassAnnotations
-
getClassName
-
unmangleClassName
-
constantClass
protected void constantClass(int index, int nameIndex) - Overrides:
constantClassin classClassFileVisitor<D>
-
startClass
protected void startClass(int accessFlags, int thisClass, int superClass, int... interfaces) - Overrides:
startClassin classClassFileVisitor<D>
-
endMethods
protected void endMethods()- Overrides:
endMethodsin classClassFileVisitor<D>
-
startAnnotation
protected void startAnnotation(int typeIndex, int length) - Overrides:
startAnnotationin classClassFileVisitor<D>
-
endAnnotation
protected void endAnnotation()- Overrides:
endAnnotationin classClassFileVisitor<D>
-
startElementValuePair
protected void startElementValuePair(int index, int nameIndex) - Overrides:
startElementValuePairin classClassFileVisitor<D>
-
endElementValuePair
protected void endElementValuePair()- Overrides:
endElementValuePairin classClassFileVisitor<D>
-
elementValueString
protected void elementValueString(int valueIndex) - Overrides:
elementValueStringin classClassFileVisitor<D>
-
startElementValueArray
protected void startElementValueArray(int length) - Overrides:
startElementValueArrayin classClassFileVisitor<D>
-
endElementValueArray
protected void endElementValueArray()- Overrides:
endElementValueArrayin classClassFileVisitor<D>
-
annotation
public static Pattern<AnnotationVisitor.Annotation> annotation(Pattern<String> name, Pattern<Map<String, AnnotationVisitor.ElementValue>> params) -
param
public static Pattern<Map.Entry<String,AnnotationVisitor.ElementValue>> param(Pattern<String> name, Pattern<AnnotationVisitor.ElementValue> value) -
param
public static Pattern<Map.Entry<String,AnnotationVisitor.ElementValue>> param(String name, Pattern<AnnotationVisitor.ElementValue> value) -
main
- Throws:
Exception
-