Class ClassRemapper


  • public class ClassRemapper
    extends org.objectweb.asm.ClassVisitor
    A ClassVisitor that remaps types with a Remapper.

    This visitor has several limitations. A non-exhaustive list is the following:

    • it cannot remap type names in dynamically computed strings (remapping of type names in static values is supported).
    • it cannot remap values derived from type names at compile time, such as
      • type name hashcodes used by some Java compilers to implement the string switch statement.
      • some compound strings used by some Java compilers to implement lambda deserialization.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.String className
      The internal name of the visited class.
      protected Remapper remapper
      The remapper used to remap the types in the visited class.
      • Fields inherited from class org.objectweb.asm.ClassVisitor

        api, cv
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      protected org.objectweb.asm.AnnotationVisitor createAnnotationRemapper​(java.lang.String descriptor, org.objectweb.asm.AnnotationVisitor annotationVisitor)
      Constructs a new remapper for annotations.
      protected org.objectweb.asm.AnnotationVisitor createAnnotationRemapper​(org.objectweb.asm.AnnotationVisitor annotationVisitor)
      protected org.objectweb.asm.FieldVisitor createFieldRemapper​(org.objectweb.asm.FieldVisitor fieldVisitor)
      Constructs a new remapper for fields.
      protected org.objectweb.asm.MethodVisitor createMethodRemapper​(org.objectweb.asm.MethodVisitor methodVisitor)
      Constructs a new remapper for methods.
      protected org.objectweb.asm.ModuleVisitor createModuleRemapper​(org.objectweb.asm.ModuleVisitor moduleVisitor)
      Constructs a new remapper for modules.
      protected org.objectweb.asm.RecordComponentVisitor createRecordComponentRemapper​(org.objectweb.asm.RecordComponentVisitor recordComponentVisitor)
      Constructs a new remapper for record components.
      void visit​(int version, int access, java.lang.String name, java.lang.String signature, java.lang.String superName, java.lang.String[] interfaces)  
      org.objectweb.asm.AnnotationVisitor visitAnnotation​(java.lang.String descriptor, boolean visible)  
      void visitAttribute​(org.objectweb.asm.Attribute attribute)  
      org.objectweb.asm.FieldVisitor visitField​(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.Object value)  
      void visitInnerClass​(java.lang.String name, java.lang.String outerName, java.lang.String innerName, int access)  
      org.objectweb.asm.MethodVisitor visitMethod​(int access, java.lang.String name, java.lang.String descriptor, java.lang.String signature, java.lang.String[] exceptions)  
      org.objectweb.asm.ModuleVisitor visitModule​(java.lang.String name, int flags, java.lang.String version)  
      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)  
      void visitPermittedSubclass​(java.lang.String permittedSubclass)  
      org.objectweb.asm.RecordComponentVisitor visitRecordComponent​(java.lang.String name, java.lang.String descriptor, java.lang.String signature)  
      org.objectweb.asm.AnnotationVisitor visitTypeAnnotation​(int typeRef, org.objectweb.asm.TypePath typePath, java.lang.String descriptor, boolean visible)  
      • Methods inherited from class org.objectweb.asm.ClassVisitor

        visitEnd, visitSource
      • Methods inherited from class java.lang.Object

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

      • remapper

        protected final Remapper remapper
        The remapper used to remap the types in the visited class.
      • className

        protected java.lang.String className
        The internal name of the visited class.
    • Constructor Detail

      • ClassRemapper

        public ClassRemapper​(org.objectweb.asm.ClassVisitor classVisitor,
                             Remapper remapper)
        Constructs a new ClassRemapper. Subclasses must not use this constructor. Instead, they must use the ClassRemapper(int,ClassVisitor,Remapper) version.
        Parameters:
        classVisitor - the class visitor this remapper must delegate to.
        remapper - the remapper to use to remap the types in the visited class.
      • ClassRemapper

        protected ClassRemapper​(int api,
                                org.objectweb.asm.ClassVisitor classVisitor,
                                Remapper remapper)
        Constructs a new ClassRemapper.
        Parameters:
        api - the ASM API version supported by this remapper. Must be one of Opcodes.ASM4, Opcodes.ASM5, Opcodes.ASM6, Opcodes.ASM7, Opcodes.ASM8 or Opcodes.ASM9.
        classVisitor - the class visitor this remapper must delegate to.
        remapper - the remapper to use to remap the types in the visited class.
    • Method Detail

      • visit

        public void visit​(int version,
                          int access,
                          java.lang.String name,
                          java.lang.String signature,
                          java.lang.String superName,
                          java.lang.String[] interfaces)
        Overrides:
        visit in class org.objectweb.asm.ClassVisitor
      • visitModule

        public org.objectweb.asm.ModuleVisitor visitModule​(java.lang.String name,
                                                           int flags,
                                                           java.lang.String version)
        Overrides:
        visitModule in class org.objectweb.asm.ClassVisitor
      • visitAnnotation

        public org.objectweb.asm.AnnotationVisitor visitAnnotation​(java.lang.String descriptor,
                                                                   boolean visible)
        Overrides:
        visitAnnotation in class org.objectweb.asm.ClassVisitor
      • visitTypeAnnotation

        public org.objectweb.asm.AnnotationVisitor visitTypeAnnotation​(int typeRef,
                                                                       org.objectweb.asm.TypePath typePath,
                                                                       java.lang.String descriptor,
                                                                       boolean visible)
        Overrides:
        visitTypeAnnotation in class org.objectweb.asm.ClassVisitor
      • visitAttribute

        public void visitAttribute​(org.objectweb.asm.Attribute attribute)
        Overrides:
        visitAttribute in class org.objectweb.asm.ClassVisitor
      • visitRecordComponent

        public org.objectweb.asm.RecordComponentVisitor visitRecordComponent​(java.lang.String name,
                                                                             java.lang.String descriptor,
                                                                             java.lang.String signature)
        Overrides:
        visitRecordComponent in class org.objectweb.asm.ClassVisitor
      • visitField

        public org.objectweb.asm.FieldVisitor visitField​(int access,
                                                         java.lang.String name,
                                                         java.lang.String descriptor,
                                                         java.lang.String signature,
                                                         java.lang.Object value)
        Overrides:
        visitField in class org.objectweb.asm.ClassVisitor
      • visitMethod

        public org.objectweb.asm.MethodVisitor visitMethod​(int access,
                                                           java.lang.String name,
                                                           java.lang.String descriptor,
                                                           java.lang.String signature,
                                                           java.lang.String[] exceptions)
        Overrides:
        visitMethod in class org.objectweb.asm.ClassVisitor
      • visitInnerClass

        public void visitInnerClass​(java.lang.String name,
                                    java.lang.String outerName,
                                    java.lang.String innerName,
                                    int access)
        Overrides:
        visitInnerClass in class org.objectweb.asm.ClassVisitor
      • visitOuterClass

        public void visitOuterClass​(java.lang.String owner,
                                    java.lang.String name,
                                    java.lang.String descriptor)
        Overrides:
        visitOuterClass in class org.objectweb.asm.ClassVisitor
      • visitNestHost

        public void visitNestHost​(java.lang.String nestHost)
        Overrides:
        visitNestHost in class org.objectweb.asm.ClassVisitor
      • visitNestMember

        public void visitNestMember​(java.lang.String nestMember)
        Overrides:
        visitNestMember in class org.objectweb.asm.ClassVisitor
      • visitPermittedSubclass

        public void visitPermittedSubclass​(java.lang.String permittedSubclass)
        Overrides:
        visitPermittedSubclass in class org.objectweb.asm.ClassVisitor
      • createFieldRemapper

        protected org.objectweb.asm.FieldVisitor createFieldRemapper​(org.objectweb.asm.FieldVisitor fieldVisitor)
        Constructs a new remapper for fields. The default implementation of this method returns a new FieldRemapper.
        Parameters:
        fieldVisitor - the FieldVisitor the remapper must delegate to.
        Returns:
        the newly created remapper.
      • createMethodRemapper

        protected org.objectweb.asm.MethodVisitor createMethodRemapper​(org.objectweb.asm.MethodVisitor methodVisitor)
        Constructs a new remapper for methods. The default implementation of this method returns a new MethodRemapper.
        Parameters:
        methodVisitor - the MethodVisitor the remapper must delegate to.
        Returns:
        the newly created remapper.
      • createAnnotationRemapper

        @Deprecated
        protected org.objectweb.asm.AnnotationVisitor createAnnotationRemapper​(org.objectweb.asm.AnnotationVisitor annotationVisitor)
        Constructs a new remapper for annotations. The default implementation of this method returns a new AnnotationRemapper.
        Parameters:
        annotationVisitor - the AnnotationVisitor the remapper must delegate to.
        Returns:
        the newly created remapper.
      • createAnnotationRemapper

        protected org.objectweb.asm.AnnotationVisitor createAnnotationRemapper​(java.lang.String descriptor,
                                                                               org.objectweb.asm.AnnotationVisitor annotationVisitor)
        Constructs a new remapper for annotations. The default implementation of this method returns a new AnnotationRemapper.
        Parameters:
        descriptor - the descriptor of the visited annotation.
        annotationVisitor - the AnnotationVisitor the remapper must delegate to.
        Returns:
        the newly created remapper.
      • createModuleRemapper

        protected org.objectweb.asm.ModuleVisitor createModuleRemapper​(org.objectweb.asm.ModuleVisitor moduleVisitor)
        Constructs a new remapper for modules. The default implementation of this method returns a new ModuleRemapper.
        Parameters:
        moduleVisitor - the ModuleVisitor the remapper must delegate to.
        Returns:
        the newly created remapper.
      • createRecordComponentRemapper

        protected org.objectweb.asm.RecordComponentVisitor createRecordComponentRemapper​(org.objectweb.asm.RecordComponentVisitor recordComponentVisitor)
        Constructs a new remapper for record components. The default implementation of this method returns a new RecordComponentRemapper.
        Parameters:
        recordComponentVisitor - the RecordComponentVisitor the remapper must delegate to.
        Returns:
        the newly created remapper.