Package net.bytebuddy.asm
Class TypeReferenceAdjustment.TypeReferenceClassVisitor
- java.lang.Object
-
- org.objectweb.asm.ClassVisitor
-
- net.bytebuddy.asm.TypeReferenceAdjustment.TypeReferenceClassVisitor
-
- Enclosing class:
- TypeReferenceAdjustment
protected static class TypeReferenceAdjustment.TypeReferenceClassVisitor extends org.objectweb.asm.ClassVisitorA class visitor that collects all type references and all inner class references.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classTypeReferenceAdjustment.TypeReferenceClassVisitor.TypeReferenceAnnotationVisitorAn annotation visitor that collects all type references.protected classTypeReferenceAdjustment.TypeReferenceClassVisitor.TypeReferenceFieldVisitorA field visitor that collects all type references.protected classTypeReferenceAdjustment.TypeReferenceClassVisitor.TypeReferenceMethodVisitorA method visitor that collects all type references.
-
Field Summary
Fields Modifier and Type Field Description private ElementMatcher<? super TypeDescription>filterA filter for excluding types from type reference analysis.private static org.objectweb.asm.AnnotationVisitorIGNORE_ANNOTATIONIndicates that an annotation is not of interest.private static org.objectweb.asm.FieldVisitorIGNORE_FIELDIndicates that a field is not of interest.private static org.objectweb.asm.MethodVisitorIGNORE_METHODIndicates that a method is not of interest.private java.util.Set<java.lang.String>observedTypesA set of inner class names that have been observed within the processed class file.private booleanstricttrueif the visitor should throw an exception if a type reference cannot be located.private TypePooltypePoolThe type pool to use for locating types.private java.util.Set<java.lang.String>visitedInnerTypesA set of inner class names that were added as inner class attribute values.
-
Constructor Summary
Constructors Modifier Constructor Description protectedTypeReferenceClassVisitor(org.objectweb.asm.ClassVisitor classVisitor, boolean strict, ElementMatcher<? super TypeDescription> filter, TypePool typePool)Creates a type reference class visitor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidobserveInternalName(java.lang.String internalName)Observes an internal name of an object type that might be an array type.protected voidresolve(java.lang.Object value)Resolves all type references that are referenced by any ASM constant value.protected voidresolve(org.objectweb.asm.ConstantDynamic constant)Resolves all type references that are referenced by aConstantDynamicvalue.protected voidresolve(org.objectweb.asm.Handle handle)Resolves all type references that are referenced by aHandlevalue.protected voidresolve(org.objectweb.asm.Type type)Resolves all type references that are referenced by aTypevalue.voidvisit(int version, int modifiers, java.lang.String internalName, java.lang.String genericSignature, java.lang.String superClassInternalName, java.lang.String[] interfaceInternalName)org.objectweb.asm.AnnotationVisitorvisitAnnotation(java.lang.String descriptor, boolean visible)voidvisitEnd()org.objectweb.asm.FieldVisitorvisitField(int modifiers, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.Object value)voidvisitInnerClass(java.lang.String internalName, java.lang.String outerName, java.lang.String innerName, int modifiers)org.objectweb.asm.MethodVisitorvisitMethod(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exceptionInternalName)voidvisitNestHost(java.lang.String nestHost)voidvisitNestMember(java.lang.String nestMember)voidvisitOuterClass(java.lang.String ownerTypeInternalName, java.lang.String methodName, java.lang.String methodDescriptor)org.objectweb.asm.RecordComponentVisitorvisitRecordComponent(java.lang.String name, java.lang.String descriptor, java.lang.String signature)org.objectweb.asm.AnnotationVisitorvisitTypeAnnotation(int typeReference, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
-
-
-
Field Detail
-
IGNORE_ANNOTATION
@AlwaysNull private static final org.objectweb.asm.AnnotationVisitor IGNORE_ANNOTATION
Indicates that an annotation is not of interest.
-
IGNORE_FIELD
@AlwaysNull private static final org.objectweb.asm.FieldVisitor IGNORE_FIELD
Indicates that a field is not of interest.
-
IGNORE_METHOD
@AlwaysNull private static final org.objectweb.asm.MethodVisitor IGNORE_METHOD
Indicates that a method is not of interest.
-
strict
private final boolean strict
trueif the visitor should throw an exception if a type reference cannot be located.
-
filter
private final ElementMatcher<? super TypeDescription> filter
A filter for excluding types from type reference analysis.
-
typePool
private final TypePool typePool
The type pool to use for locating types.
-
observedTypes
private final java.util.Set<java.lang.String> observedTypes
A set of inner class names that have been observed within the processed class file.
-
visitedInnerTypes
private final java.util.Set<java.lang.String> visitedInnerTypes
A set of inner class names that were added as inner class attribute values.
-
-
Constructor Detail
-
TypeReferenceClassVisitor
protected TypeReferenceClassVisitor(org.objectweb.asm.ClassVisitor classVisitor, boolean strict, ElementMatcher<? super TypeDescription> filter, TypePool typePool)Creates a type reference class visitor.- Parameters:
classVisitor-trueif the visitor should throw an exception if a type reference cannot be located.strict-trueif the visitor should throw an exception if a type reference cannot be located.filter- A filter for excluding types from type reference analysis.typePool- The type pool to use for locating types.
-
-
Method Detail
-
visit
public void visit(int version, int modifiers, java.lang.String internalName, @MaybeNull java.lang.String genericSignature, @MaybeNull java.lang.String superClassInternalName, @MaybeNull java.lang.String[] interfaceInternalName)- Overrides:
visitin classorg.objectweb.asm.ClassVisitor
-
visitNestHost
public void visitNestHost(java.lang.String nestHost)
- Overrides:
visitNestHostin classorg.objectweb.asm.ClassVisitor
-
visitOuterClass
public void visitOuterClass(java.lang.String ownerTypeInternalName, java.lang.String methodName, java.lang.String methodDescriptor)- Overrides:
visitOuterClassin classorg.objectweb.asm.ClassVisitor
-
visitNestMember
public void visitNestMember(java.lang.String nestMember)
- Overrides:
visitNestMemberin classorg.objectweb.asm.ClassVisitor
-
visitInnerClass
public void visitInnerClass(java.lang.String internalName, java.lang.String outerName, java.lang.String innerName, int modifiers)- Overrides:
visitInnerClassin classorg.objectweb.asm.ClassVisitor
-
visitRecordComponent
@MaybeNull public org.objectweb.asm.RecordComponentVisitor visitRecordComponent(java.lang.String name, java.lang.String descriptor, @MaybeNull java.lang.String signature)
- Overrides:
visitRecordComponentin classorg.objectweb.asm.ClassVisitor
-
visitAnnotation
@MaybeNull public org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String descriptor, boolean visible)
- Overrides:
visitAnnotationin classorg.objectweb.asm.ClassVisitor
-
visitTypeAnnotation
@MaybeNull public org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int typeReference, @MaybeNull org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
- Overrides:
visitTypeAnnotationin classorg.objectweb.asm.ClassVisitor
-
visitField
@MaybeNull public org.objectweb.asm.FieldVisitor visitField(int modifiers, java.lang.String name, java.lang.String descriptor, @MaybeNull java.lang.String signature, @MaybeNull java.lang.Object value)
- Overrides:
visitFieldin classorg.objectweb.asm.ClassVisitor
-
visitMethod
@MaybeNull public org.objectweb.asm.MethodVisitor visitMethod(int modifiers, java.lang.String internalName, java.lang.String descriptor, @MaybeNull java.lang.String signature, @MaybeNull java.lang.String[] exceptionInternalName)
- Overrides:
visitMethodin classorg.objectweb.asm.ClassVisitor
-
visitEnd
public void visitEnd()
- Overrides:
visitEndin classorg.objectweb.asm.ClassVisitor
-
resolve
protected void resolve(org.objectweb.asm.Type type)
Resolves all type references that are referenced by aTypevalue.- Parameters:
type- The type to resolve.
-
resolve
protected void resolve(org.objectweb.asm.Handle handle)
Resolves all type references that are referenced by aHandlevalue.- Parameters:
handle- The handle to resolve.
-
resolve
protected void resolve(org.objectweb.asm.ConstantDynamic constant)
Resolves all type references that are referenced by aConstantDynamicvalue.- Parameters:
constant- The dynamic constant to resolve.
-
observeInternalName
private void observeInternalName(java.lang.String internalName)
Observes an internal name of an object type that might be an array type.- Parameters:
internalName- The internal name to resolve.
-
resolve
protected void resolve(java.lang.Object value)
Resolves all type references that are referenced by any ASM constant value.- Parameters:
value- The unknown constant value to resolve.
-
-