Class TypeWriter.Default.ForInlining.WithFullProcessing.RedefinitionClassVisitor

java.lang.Object
org.objectweb.asm.ClassVisitor
net.bytebuddy.utility.visitor.MetadataAwareClassVisitor
net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining.WithFullProcessing.RedefinitionClassVisitor
Enclosing class:
TypeWriter.Default.ForInlining.WithFullProcessing<V>

protected class TypeWriter.Default.ForInlining.WithFullProcessing.RedefinitionClassVisitor extends MetadataAwareClassVisitor
A class visitor which is capable of applying a redefinition of an existing class file.
  • Field Details

  • Constructor Details

    • RedefinitionClassVisitor

      protected RedefinitionClassVisitor(org.objectweb.asm.ClassVisitor classVisitor, TypeInitializer typeInitializer, TypeWriter.Default.ForInlining.ContextRegistry contextRegistry, int writerFlags, int readerFlags)
      Creates a class visitor which is capable of redefining an existent class on the fly.
      Parameters:
      classVisitor - The underlying class visitor to which writes are delegated.
      typeInitializer - The type initializer to apply.
      contextRegistry - A context registry to register the lazily created implementation context to.
      writerFlags - The writer flags being used.
      readerFlags - The reader flags being used.
  • Method Details

    • visit

      public void visit(int classFileVersionNumber, int modifiers, String internalName, String genericSignature, String superClassInternalName, String[] interfaceTypeInternalName)
      Overrides:
      visit in class org.objectweb.asm.ClassVisitor
    • onVisitNestHost

      protected void onVisitNestHost(String nestHost)
      Description copied from class: MetadataAwareClassVisitor
      An order-sensitive invocation of ClassVisitor.visitNestHost(String).
      Overrides:
      onVisitNestHost in class MetadataAwareClassVisitor
      Parameters:
      nestHost - The internal name of the nest host.
    • onNestHost

      protected void onNestHost()
      Description copied from class: MetadataAwareClassVisitor
      Invoked if the nest host was not visited.
      Overrides:
      onNestHost in class MetadataAwareClassVisitor
    • onVisitPermittedSubclass

      protected void onVisitPermittedSubclass(String permittedSubclass)
      Description copied from class: MetadataAwareClassVisitor
      An order-sensitive invocation of ClassVisitor#visitPermittedSubclass.
      Overrides:
      onVisitPermittedSubclass in class MetadataAwareClassVisitor
      Parameters:
      permittedSubclass - The internal name of the permitted subclass.
    • onVisitOuterClass

      protected void onVisitOuterClass(String owner, @MaybeNull String name, @MaybeNull String descriptor)
      Description copied from class: MetadataAwareClassVisitor
      An order-sensitive invocation of ClassVisitor.visitOuterClass(String, String, String).
      Overrides:
      onVisitOuterClass in class MetadataAwareClassVisitor
      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.
    • onOuterType

      protected void onOuterType()
      Description copied from class: MetadataAwareClassVisitor
      Invoked if the outer class was not visited.
      Overrides:
      onOuterType in class MetadataAwareClassVisitor
    • onAfterAttributes

      protected void onAfterAttributes()
      Description copied from class: MetadataAwareClassVisitor
      Invoked if the attribute visitation is about to complete.
      Overrides:
      onAfterAttributes in class MetadataAwareClassVisitor
    • onVisitTypeAnnotation

      @MaybeNull protected org.objectweb.asm.AnnotationVisitor onVisitTypeAnnotation(int typeReference, org.objectweb.asm.TypePath typePath, String descriptor, boolean visible)
      Description copied from class: MetadataAwareClassVisitor
      An order-sensitive invocation of ClassVisitor.visitTypeAnnotation(int, TypePath, String, boolean).
      Overrides:
      onVisitTypeAnnotation in class MetadataAwareClassVisitor
      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.
    • onVisitAnnotation

      @MaybeNull protected org.objectweb.asm.AnnotationVisitor onVisitAnnotation(String descriptor, boolean visible)
      Description copied from class: MetadataAwareClassVisitor
      An order-sensitive invocation of ClassVisitor.visitAnnotation(String, boolean).
      Overrides:
      onVisitAnnotation in class MetadataAwareClassVisitor
      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.
    • onVisitRecordComponent

      @MaybeNull protected org.objectweb.asm.RecordComponentVisitor onVisitRecordComponent(String name, String descriptor, @MaybeNull String genericSignature)
      Description copied from class: MetadataAwareClassVisitor
      An order-sensitive invocation of ClassVisitor.visitRecordComponent(String, String, String).
      Overrides:
      onVisitRecordComponent in class MetadataAwareClassVisitor
      Parameters:
      name - The record component's name.
      descriptor - The record component's descriptor.
      genericSignature - 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.
    • redefine

      @MaybeNull protected org.objectweb.asm.RecordComponentVisitor redefine(TypeWriter.RecordComponentPool.Record record, @MaybeNull String genericSignature)
      Redefines a record component using the given explicit record component pool record.
      Parameters:
      record - The record component pool record to apply during visitation of the existing record.
      genericSignature - The record component's original generic signature which can be null.
      Returns:
      A record component visitor for visiting the existing record component definition.
    • onVisitField

      @MaybeNull protected org.objectweb.asm.FieldVisitor onVisitField(int modifiers, String internalName, String descriptor, @MaybeNull String genericSignature, @MaybeNull Object value)
      Description copied from class: MetadataAwareClassVisitor
      An order-sensitive invocation of ClassVisitor.visitField(int, String, String, String, Object).
      Overrides:
      onVisitField in class MetadataAwareClassVisitor
      Parameters:
      modifiers - The field's modifiers.
      internalName - The field's internal name.
      descriptor - The field type's descriptor.
      genericSignature - 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.
    • redefine

      @MaybeNull protected org.objectweb.asm.FieldVisitor redefine(TypeWriter.FieldPool.Record record, @MaybeNull Object value, int modifiers, @MaybeNull String genericSignature)
      Redefines a field using the given explicit field pool record and default value.
      Parameters:
      record - The field pool value to apply during visitation of the existing field.
      value - The default value to write onto the field which might be null.
      modifiers - The original modifiers of the transformed field.
      genericSignature - The field's original generic signature which can be null.
      Returns:
      A field visitor for visiting the existing field definition.
    • onVisitMethod

      @MaybeNull protected org.objectweb.asm.MethodVisitor onVisitMethod(int modifiers, String internalName, String descriptor, @MaybeNull String genericSignature, @MaybeNull String[] exceptionName)
      Description copied from class: MetadataAwareClassVisitor
      An order-sensitive invocation of ClassVisitor.visitMethod(int, String, String, String, String[]).
      Overrides:
      onVisitMethod in class MetadataAwareClassVisitor
      Parameters:
      modifiers - The method's modifiers.
      internalName - The method's internal name.
      descriptor - The field type's descriptor.
      genericSignature - The method's generic signature or null if the method is not generic.
      exceptionName - 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.
    • redefine

      @MaybeNull protected org.objectweb.asm.MethodVisitor redefine(MethodDescription methodDescription, boolean abstractOrigin, int modifiers, @MaybeNull String genericSignature)
      Redefines a given method if this is required by looking up a potential implementation from the TypeWriter.MethodPool.
      Parameters:
      methodDescription - The method being considered for redefinition.
      abstractOrigin - true if the original method is abstract, i.e. there is no implementation to preserve.
      modifiers - The original modifiers of the transformed method.
      genericSignature - The method's original generic signature which can be null.
      Returns:
      A method visitor which is capable of consuming the original method.
    • onVisitInnerClass

      protected void onVisitInnerClass(String internalName, @MaybeNull String outerName, @MaybeNull String innerName, int modifiers)
      Description copied from class: MetadataAwareClassVisitor
      An order-sensitive invocation of ClassVisitor.visitInnerClass(String, String, String, int).
      Overrides:
      onVisitInnerClass in class MetadataAwareClassVisitor
      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.
    • onVisitNestMember

      protected void onVisitNestMember(String nestMember)
      Description copied from class: MetadataAwareClassVisitor
      An order-sensitive invocation of ClassVisitor.visitNestMember(String).
      Overrides:
      onVisitNestMember in class MetadataAwareClassVisitor
      Parameters:
      nestMember - The internal name of the nest member.
    • onVisitEnd

      protected void onVisitEnd()
      Description copied from class: MetadataAwareClassVisitor
      An order-sensitive invocation of ClassVisitor.visitEnd().
      Overrides:
      onVisitEnd in class MetadataAwareClassVisitor
    • resolveDeprecationModifiers

      private int resolveDeprecationModifiers(int modifiers)
      Returns Opcodes.ACC_DEPRECATED if the current class file version only represents deprecated methods using modifiers that are not exposed in the type description API what is true for class files before Java 5 and if the supplied modifiers indicate deprecation.
      Parameters:
      modifiers - The original modifiers.
      Returns:
      Opcodes.ACC_DEPRECATED if the supplied modifiers imply deprecation.