Package net.bytebuddy.utility.visitor
Class MetadataAwareClassVisitor
- java.lang.Object
-
- org.objectweb.asm.ClassVisitor
-
- net.bytebuddy.utility.visitor.MetadataAwareClassVisitor
-
- Direct Known Subclasses:
TypeWriter.Default.ForInlining.WithDecorationOnly.DecorationClassVisitor
,TypeWriter.Default.ForInlining.WithFullProcessing.RedefinitionClassVisitor
public abstract class MetadataAwareClassVisitor extends org.objectweb.asm.ClassVisitor
A class visitor that traces invocations of visitation methods and notifies if a nest host or outer class was not visited.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
triggerAttributes
true
if the attribute visitation is not yet completed.private boolean
triggerNestHost
true
if the nest host was not yet visited.private boolean
triggerOuterClass
true
if the outer class was not yet visited.
-
Constructor Summary
Constructors Modifier Constructor Description protected
MetadataAwareClassVisitor(int api, org.objectweb.asm.ClassVisitor classVisitor)
Creates a metadata aware class visitor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private void
considerTriggerAfterAttributes()
Considers triggering the after attribute visitation.private void
considerTriggerNestHost()
Considers triggering a nest host visitation.private void
considerTriggerOuterClass()
Considers triggering an outer class visitation.protected abstract void
onAfterAttributes()
Invoked if the attribute visitation is about to complete.protected abstract void
onNestHost()
Invoked if the nest host was not visited.protected abstract void
onOuterType()
Invoked if the outer class was not visited.protected org.objectweb.asm.AnnotationVisitor
onVisitAnnotation(java.lang.String descriptor, boolean visible)
An order-sensitive invocation ofClassVisitor.visitAnnotation(String, boolean)
.protected void
onVisitAttribute(org.objectweb.asm.Attribute attribute)
An order-sensitive invocation ofClassVisitor.visitAttribute(Attribute)
.protected void
onVisitEnd()
An order-sensitive invocation ofClassVisitor.visitEnd()
.protected org.objectweb.asm.FieldVisitor
onVisitField(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String signature, java.lang.Object defaultValue)
An order-sensitive invocation ofClassVisitor.visitField(int, String, String, String, Object)
.protected void
onVisitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int modifiers)
An order-sensitive invocation ofClassVisitor.visitInnerClass(String, String, String, int)
.protected org.objectweb.asm.MethodVisitor
onVisitMethod(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exception)
An order-sensitive invocation ofClassVisitor.visitMethod(int, String, String, String, String[])
.protected void
onVisitNestHost(java.lang.String nestHost)
An order-sensitive invocation ofClassVisitor.visitNestHost(String)
.protected void
onVisitNestMember(java.lang.String nestMember)
An order-sensitive invocation ofClassVisitor.visitNestMember(String)
.protected void
onVisitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String descriptor)
An order-sensitive invocation ofClassVisitor.visitOuterClass(String, String, String)
.protected org.objectweb.asm.AnnotationVisitor
onVisitTypeAnnotation(int typeReference, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
An order-sensitive invocation ofClassVisitor.visitTypeAnnotation(int, TypePath, String, boolean)
.org.objectweb.asm.AnnotationVisitor
visitAnnotation(java.lang.String descriptor, boolean visible)
void
visitAttribute(org.objectweb.asm.Attribute attribute)
void
visitEnd()
org.objectweb.asm.FieldVisitor
visitField(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String signature, java.lang.Object defaultValue)
void
visitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int modifiers)
org.objectweb.asm.MethodVisitor
visitMethod(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exception)
void
visitNestHost(java.lang.String nestHost)
void
visitNestMember(java.lang.String nestMember)
void
visitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String descriptor)
org.objectweb.asm.AnnotationVisitor
visitTypeAnnotation(int typeReference, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
-
-
-
Field Detail
-
triggerNestHost
private boolean triggerNestHost
true
if the nest host was not yet visited.
-
triggerOuterClass
private boolean triggerOuterClass
true
if the outer class was not yet visited.
-
triggerAttributes
private boolean triggerAttributes
true
if the attribute visitation is not yet completed.
-
-
Method Detail
-
onNestHost
protected abstract void onNestHost()
Invoked if the nest host was not visited.
-
onOuterType
protected abstract void onOuterType()
Invoked if the outer class was not visited.
-
onAfterAttributes
protected abstract void onAfterAttributes()
Invoked if the attribute visitation is about to complete.
-
considerTriggerNestHost
private void considerTriggerNestHost()
Considers triggering a nest host visitation.
-
considerTriggerOuterClass
private void considerTriggerOuterClass()
Considers triggering an outer class visitation.
-
considerTriggerAfterAttributes
private void considerTriggerAfterAttributes()
Considers triggering the after attribute visitation.
-
visitNestHost
public final void visitNestHost(java.lang.String nestHost)
- Overrides:
visitNestHost
in classorg.objectweb.asm.ClassVisitor
-
onVisitNestHost
protected void onVisitNestHost(java.lang.String nestHost)
An order-sensitive invocation ofClassVisitor.visitNestHost(String)
.- Parameters:
nestHost
- The internal name of the nest host.
-
visitOuterClass
public final void visitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String descriptor)
- Overrides:
visitOuterClass
in classorg.objectweb.asm.ClassVisitor
-
onVisitOuterClass
protected void onVisitOuterClass(java.lang.String owner, java.lang.String name, java.lang.String descriptor)
An order-sensitive invocation ofClassVisitor.visitOuterClass(String, String, String)
.- Parameters:
owner
- The outer class's internal name.name
- The outer method's name ornull
if it does not exist.descriptor
- The outer method's descriptor ornull
if it does not exist.
-
visitAnnotation
public final org.objectweb.asm.AnnotationVisitor visitAnnotation(java.lang.String descriptor, boolean visible)
- Overrides:
visitAnnotation
in classorg.objectweb.asm.ClassVisitor
-
onVisitAnnotation
protected org.objectweb.asm.AnnotationVisitor onVisitAnnotation(java.lang.String descriptor, boolean visible)
An order-sensitive invocation ofClassVisitor.visitAnnotation(String, boolean)
.- Parameters:
descriptor
- The annotation type's descriptor.visible
-true
if the annotation is visible at runtime.- Returns:
- An annotation visitor or
null
if the annotation should be ignored.
-
visitTypeAnnotation
public final org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int typeReference, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
- Overrides:
visitTypeAnnotation
in classorg.objectweb.asm.ClassVisitor
-
onVisitTypeAnnotation
protected org.objectweb.asm.AnnotationVisitor onVisitTypeAnnotation(int typeReference, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)
An order-sensitive invocation ofClassVisitor.visitTypeAnnotation(int, TypePath, String, boolean)
.- Parameters:
typeReference
- The type reference of the type annotation.typePath
- The type path of the type annotation.descriptor
- The descriptor of the annotation type.visible
-true
if the annotation is visible at runtime.- Returns:
- An annotation visitor or
null
if the annotation should be ignored.
-
visitAttribute
public final void visitAttribute(org.objectweb.asm.Attribute attribute)
- Overrides:
visitAttribute
in classorg.objectweb.asm.ClassVisitor
-
onVisitAttribute
protected void onVisitAttribute(org.objectweb.asm.Attribute attribute)
An order-sensitive invocation ofClassVisitor.visitAttribute(Attribute)
.- Parameters:
attribute
- The attribute to visit.
-
visitNestMember
public final void visitNestMember(java.lang.String nestMember)
- Overrides:
visitNestMember
in classorg.objectweb.asm.ClassVisitor
-
onVisitNestMember
protected void onVisitNestMember(java.lang.String nestMember)
An order-sensitive invocation ofClassVisitor.visitNestMember(String)
.- Parameters:
nestMember
- The internal name of the nest member.
-
visitInnerClass
public final void visitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int modifiers)
- Overrides:
visitInnerClass
in classorg.objectweb.asm.ClassVisitor
-
onVisitInnerClass
protected void onVisitInnerClass(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int modifiers)
An order-sensitive invocation ofClassVisitor.visitInnerClass(String, String, String, int)
.- Parameters:
name
- The internal name of the inner class.outerName
- The internal name of the outer class.innerName
- The inner class's simple name ornull
for an anonymous class.modifiers
- The inner class's source code modifiers.
-
visitField
public final org.objectweb.asm.FieldVisitor visitField(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String signature, java.lang.Object defaultValue)
- Overrides:
visitField
in classorg.objectweb.asm.ClassVisitor
-
onVisitField
protected org.objectweb.asm.FieldVisitor onVisitField(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String signature, java.lang.Object defaultValue)
An order-sensitive invocation ofClassVisitor.visitField(int, String, String, String, Object)
.- Parameters:
modifiers
- The field's modifiers.internalName
- The field's internal name.descriptor
- The field type's descriptor.signature
- The field's generic signature ornull
if the field is not generic.defaultValue
- The field's default value ornull
if no such value exists.- Returns:
- A field visitor to visit the field or
null
to ignore it.
-
visitMethod
public final org.objectweb.asm.MethodVisitor visitMethod(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exception)
- Overrides:
visitMethod
in classorg.objectweb.asm.ClassVisitor
-
onVisitMethod
protected org.objectweb.asm.MethodVisitor onVisitMethod(int modifiers, java.lang.String internalName, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exception)
An order-sensitive invocation ofClassVisitor.visitMethod(int, String, String, String, String[])
.- Parameters:
modifiers
- The method's modifiers.internalName
- The method's internal name.descriptor
- The field type's descriptor.signature
- The method's generic signature ornull
if the method is not generic.exception
- The method's declared exceptions ornull
if no exceptions are declared.- Returns:
- A method visitor to visit the method or
null
to ignore it.
-
visitEnd
public final void visitEnd()
- Overrides:
visitEnd
in classorg.objectweb.asm.ClassVisitor
-
onVisitEnd
protected void onVisitEnd()
An order-sensitive invocation ofClassVisitor.visitEnd()
.
-
-