Class MetadataAwareClassVisitor

java.lang.Object
org.objectweb.asm.ClassVisitor
net.bytebuddy.utility.visitor.MetadataAwareClassVisitor
Direct Known Subclasses:
TypeWriter.Default.ForCreation.CreationClassVisitor, 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
    true if the attribute visitation is not yet completed.
    private boolean
    true if the nest host was not yet visited.
    private boolean
    true if the outer class was not yet visited.

    Fields inherited from class org.objectweb.asm.ClassVisitor

    api, cv
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    MetadataAwareClassVisitor(int api, org.objectweb.asm.ClassVisitor classVisitor)
    Creates a metadata aware class visitor.
  • Method Summary

    Modifier and Type
    Method
    Description
    private void
    Considers triggering the after attribute visitation.
    private void
    Considers triggering a nest host visitation.
    private void
    Considers triggering an outer class visitation.
    protected void
    Invoked if the attribute visitation is about to complete.
    protected void
    Invoked if the nest host was not visited.
    protected void
    Invoked if the outer class was not visited.
    protected org.objectweb.asm.AnnotationVisitor
    onVisitAnnotation(String descriptor, boolean visible)
    An order-sensitive invocation of ClassVisitor.visitAnnotation(String, boolean).
    protected void
    onVisitAttribute(org.objectweb.asm.Attribute attribute)
    An order-sensitive invocation of ClassVisitor.visitAttribute(Attribute).
    protected void
    An order-sensitive invocation of ClassVisitor.visitEnd().
    protected org.objectweb.asm.FieldVisitor
    onVisitField(int modifiers, String internalName, String descriptor, String signature, Object value)
    An order-sensitive invocation of ClassVisitor.visitField(int, String, String, String, Object).
    protected void
    onVisitInnerClass(String internalName, String outerName, String innerName, int modifiers)
    An order-sensitive invocation of ClassVisitor.visitInnerClass(String, String, String, int).
    protected org.objectweb.asm.MethodVisitor
    onVisitMethod(int modifiers, String internalName, String descriptor, String signature, String[] exception)
    An order-sensitive invocation of ClassVisitor.visitMethod(int, String, String, String, String[]).
    protected void
    An order-sensitive invocation of ClassVisitor.visitNestHost(String).
    protected void
    An order-sensitive invocation of ClassVisitor.visitNestMember(String).
    protected void
    onVisitOuterClass(String owner, String name, String descriptor)
    An order-sensitive invocation of ClassVisitor.visitOuterClass(String, String, String).
    protected void
    onVisitPermittedSubclass(String permittedSubclass)
    An order-sensitive invocation of ClassVisitor#visitPermittedSubclass.
    protected org.objectweb.asm.RecordComponentVisitor
    onVisitRecordComponent(String name, String descriptor, String signature)
    An order-sensitive invocation of ClassVisitor.visitRecordComponent(String, String, String).
    protected org.objectweb.asm.AnnotationVisitor
    onVisitTypeAnnotation(int typeReference, org.objectweb.asm.TypePath typePath, String descriptor, boolean visible)
    An order-sensitive invocation of ClassVisitor.visitTypeAnnotation(int, TypePath, String, boolean).
    final org.objectweb.asm.AnnotationVisitor
    visitAnnotation(String descriptor, boolean visible)
     
    final void
    visitAttribute(org.objectweb.asm.Attribute attribute)
     
    final void
     
    final org.objectweb.asm.FieldVisitor
    visitField(int modifiers, String internalName, String descriptor, String signature, Object value)
     
    final void
    visitInnerClass(String name, String outerName, String innerName, int modifiers)
     
    final org.objectweb.asm.MethodVisitor
    visitMethod(int modifiers, String internalName, String descriptor, String signature, String[] exception)
     
    final void
     
    final void
    visitNestMember(String nestMember)
     
    final void
    visitOuterClass(String owner, String name, String descriptor)
     
    final void
    visitPermittedSubclass(String permittedSubclass)
     
    org.objectweb.asm.RecordComponentVisitor
    visitRecordComponent(String name, String descriptor, String signature)
     
    final org.objectweb.asm.AnnotationVisitor
    visitTypeAnnotation(int typeReference, org.objectweb.asm.TypePath typePath, String descriptor, boolean visible)
     

    Methods inherited from class org.objectweb.asm.ClassVisitor

    getDelegate, visit, visitModule, visitSource

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • 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.
  • Constructor Details

    • MetadataAwareClassVisitor

      protected MetadataAwareClassVisitor(int api, org.objectweb.asm.ClassVisitor classVisitor)
      Creates a metadata aware class visitor.
      Parameters:
      api - The API version.
      classVisitor - The class visitor to delegate to.
  • Method Details

    • onNestHost

      protected void onNestHost()
      Invoked if the nest host was not visited.
    • onOuterType

      protected void onOuterType()
      Invoked if the outer class was not visited.
    • onAfterAttributes

      protected 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(String nestHost)
      Overrides:
      visitNestHost in class org.objectweb.asm.ClassVisitor
    • onVisitNestHost

      protected void onVisitNestHost(String nestHost)
      An order-sensitive invocation of ClassVisitor.visitNestHost(String).
      Parameters:
      nestHost - The internal name of the nest host.
    • visitOuterClass

      public final void visitOuterClass(String owner, @MaybeNull String name, @MaybeNull String descriptor)
      Overrides:
      visitOuterClass in class org.objectweb.asm.ClassVisitor
    • onVisitOuterClass

      protected void onVisitOuterClass(String owner, @MaybeNull String name, @MaybeNull String descriptor)
      An order-sensitive invocation of ClassVisitor.visitOuterClass(String, String, String).
      Parameters:
      owner - The outer class's internal name.
      name - The outer method's name or null if it does not exist.
      descriptor - The outer method's descriptor or null if it does not exist.
    • visitPermittedSubclass

      public final void visitPermittedSubclass(String permittedSubclass)
      Overrides:
      visitPermittedSubclass in class org.objectweb.asm.ClassVisitor
    • onVisitPermittedSubclass

      protected void onVisitPermittedSubclass(String permittedSubclass)
      An order-sensitive invocation of ClassVisitor#visitPermittedSubclass.
      Parameters:
      permittedSubclass - The internal name of the permitted subclass.
    • visitRecordComponent

      @MaybeNull public org.objectweb.asm.RecordComponentVisitor visitRecordComponent(String name, String descriptor, @MaybeNull String signature)
      Overrides:
      visitRecordComponent in class org.objectweb.asm.ClassVisitor
    • onVisitRecordComponent

      @MaybeNull protected org.objectweb.asm.RecordComponentVisitor onVisitRecordComponent(String name, String descriptor, @MaybeNull String signature)
      An order-sensitive invocation of ClassVisitor.visitRecordComponent(String, String, String).
      Parameters:
      name - The record component's name.
      descriptor - The record component's descriptor.
      signature - The record component's generic signature or null if the record component's type is non-generic.
      Returns:
      The record component visitor or null if the component should not be visited.
    • visitAnnotation

      @MaybeNull public final org.objectweb.asm.AnnotationVisitor visitAnnotation(String descriptor, boolean visible)
      Overrides:
      visitAnnotation in class org.objectweb.asm.ClassVisitor
    • onVisitAnnotation

      @MaybeNull protected org.objectweb.asm.AnnotationVisitor onVisitAnnotation(String descriptor, boolean visible)
      An order-sensitive invocation of ClassVisitor.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

      @MaybeNull public final org.objectweb.asm.AnnotationVisitor visitTypeAnnotation(int typeReference, org.objectweb.asm.TypePath typePath, String descriptor, boolean visible)
      Overrides:
      visitTypeAnnotation in class org.objectweb.asm.ClassVisitor
    • onVisitTypeAnnotation

      @MaybeNull protected org.objectweb.asm.AnnotationVisitor onVisitTypeAnnotation(int typeReference, org.objectweb.asm.TypePath typePath, String descriptor, boolean visible)
      An order-sensitive invocation of ClassVisitor.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 class org.objectweb.asm.ClassVisitor
    • onVisitAttribute

      protected void onVisitAttribute(org.objectweb.asm.Attribute attribute)
      An order-sensitive invocation of ClassVisitor.visitAttribute(Attribute).
      Parameters:
      attribute - The attribute to visit.
    • visitNestMember

      public final void visitNestMember(String nestMember)
      Overrides:
      visitNestMember in class org.objectweb.asm.ClassVisitor
    • onVisitNestMember

      protected void onVisitNestMember(String nestMember)
      An order-sensitive invocation of ClassVisitor.visitNestMember(String).
      Parameters:
      nestMember - The internal name of the nest member.
    • visitInnerClass

      public final void visitInnerClass(String name, @MaybeNull String outerName, @MaybeNull String innerName, int modifiers)
      Overrides:
      visitInnerClass in class org.objectweb.asm.ClassVisitor
    • onVisitInnerClass

      protected void onVisitInnerClass(String internalName, @MaybeNull String outerName, @MaybeNull String innerName, int modifiers)
      An order-sensitive invocation of ClassVisitor.visitInnerClass(String, String, String, int).
      Parameters:
      internalName - The internal name of the inner class.
      outerName - The internal name of the outer class or null for a member class.
      innerName - The inner class's simple name or null for an anonymous class.
      modifiers - The inner class's source code modifiers.
    • visitField

      @MaybeNull public final org.objectweb.asm.FieldVisitor visitField(int modifiers, String internalName, String descriptor, @MaybeNull String signature, @MaybeNull Object value)
      Overrides:
      visitField in class org.objectweb.asm.ClassVisitor
    • onVisitField

      @MaybeNull protected org.objectweb.asm.FieldVisitor onVisitField(int modifiers, String internalName, String descriptor, @MaybeNull String signature, @MaybeNull Object value)
      An order-sensitive invocation of ClassVisitor.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 or null if the field is not generic.
      value - The field's default value or null if no such value exists.
      Returns:
      A field visitor to visit the field or null to ignore it.
    • visitMethod

      @MaybeNull public final org.objectweb.asm.MethodVisitor visitMethod(int modifiers, String internalName, String descriptor, @MaybeNull String signature, @MaybeNull String[] exception)
      Overrides:
      visitMethod in class org.objectweb.asm.ClassVisitor
    • onVisitMethod

      @MaybeNull protected org.objectweb.asm.MethodVisitor onVisitMethod(int modifiers, String internalName, String descriptor, @MaybeNull String signature, @MaybeNull String[] exception)
      An order-sensitive invocation of ClassVisitor.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 or null if the method is not generic.
      exception - The method's declared exceptions or null 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 class org.objectweb.asm.ClassVisitor
    • onVisitEnd

      protected void onVisitEnd()
      An order-sensitive invocation of ClassVisitor.visitEnd().