Class TypeWriter.Default.ForInlining.WithFullProcessing.RedefinitionClassVisitor

    • Constructor Detail

      • 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 Detail

      • visit

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

        protected void onVisitOuterClass​(String owner,
                                         String name,
                                         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.
      • onVisitTypeAnnotation

        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

        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

        protected org.objectweb.asm.RecordComponentVisitor onVisitRecordComponent​(String name,
                                                                                  String descriptor,
                                                                                  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

        protected org.objectweb.asm.RecordComponentVisitor redefine​(TypeWriter.RecordComponentPool.Record record,
                                                                    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

        protected org.objectweb.asm.FieldVisitor onVisitField​(int modifiers,
                                                              String internalName,
                                                              String descriptor,
                                                              String genericSignature,
                                                              Object defaultValue)
        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.
        defaultValue - 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

        protected org.objectweb.asm.FieldVisitor redefine​(TypeWriter.FieldPool.Record record,
                                                          Object defaultValue,
                                                          int modifiers,
                                                          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.
        defaultValue - 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

        protected org.objectweb.asm.MethodVisitor onVisitMethod​(int modifiers,
                                                                String internalName,
                                                                String descriptor,
                                                                String genericSignature,
                                                                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

        protected org.objectweb.asm.MethodVisitor redefine​(MethodDescription methodDescription,
                                                           boolean abstractOrigin,
                                                           int modifiers,
                                                           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,
                                         String outerName,
                                         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.
        innerName - The inner class's simple name or null for an anonymous class.
        modifiers - The inner class's source code modifiers.