Class ClassRemapper

java.lang.Object
org.objectweb.asm.ClassVisitor
org.objectweb.asm.commons.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 Details

    • remapper

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

      protected String className
      The internal name of the visited class.
  • Constructor Details

    • 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 the ASMx values in Opcodes.
      classVisitor - the class visitor this remapper must delegate to.
      remapper - the remapper to use to remap the types in the visited class.
  • Method Details

    • visit

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

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

      public org.objectweb.asm.AnnotationVisitor visitAnnotation(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, 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(String name, String descriptor, String signature)
      Overrides:
      visitRecordComponent in class org.objectweb.asm.ClassVisitor
    • visitField

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

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

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

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

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

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

      public void visitPermittedSubclass(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(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.