Package org.objectweb.asm.commons
Class ClassRemapper
- java.lang.Object
-
- org.objectweb.asm.ClassVisitor
-
- org.objectweb.asm.commons.ClassRemapper
-
public class ClassRemapper extends ClassVisitor
AClassVisitorthat remaps types with aRemapper.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.
- Author:
- Eugene Kuleshov
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedClassRemapper(int api, ClassVisitor classVisitor, Remapper remapper)Constructs a newClassRemapper.ClassRemapper(ClassVisitor classVisitor, Remapper remapper)Constructs a newClassRemapper.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected AnnotationVisitorcreateAnnotationRemapper(String descriptor, AnnotationVisitor annotationVisitor)Constructs a new remapper for annotations.protected AnnotationVisitorcreateAnnotationRemapper(AnnotationVisitor annotationVisitor)Deprecated.usecreateAnnotationRemapper(String, AnnotationVisitor)instead.protected FieldVisitorcreateFieldRemapper(FieldVisitor fieldVisitor)Constructs a new remapper for fields.protected MethodVisitorcreateMethodRemapper(MethodVisitor methodVisitor)Constructs a new remapper for methods.protected ModuleVisitorcreateModuleRemapper(ModuleVisitor moduleVisitor)Constructs a new remapper for modules.protected RecordComponentVisitorcreateRecordComponentRemapper(RecordComponentVisitor recordComponentVisitor)Constructs a new remapper for record components.voidvisit(int version, int access, String name, String signature, String superName, String[] interfaces)AnnotationVisitorvisitAnnotation(String descriptor, boolean visible)voidvisitAttribute(Attribute attribute)FieldVisitorvisitField(int access, String name, String descriptor, String signature, Object value)voidvisitInnerClass(String name, String outerName, String innerName, int access)MethodVisitorvisitMethod(int access, String name, String descriptor, String signature, String[] exceptions)ModuleVisitorvisitModule(String name, int flags, String version)voidvisitNestHost(String nestHost)voidvisitNestMember(String nestMember)voidvisitOuterClass(String owner, String name, String descriptor)voidvisitPermittedSubclass(String permittedSubclass)RecordComponentVisitorvisitRecordComponent(String name, String descriptor, String signature)AnnotationVisitorvisitTypeAnnotation(int typeRef, TypePath typePath, String descriptor, boolean visible)-
Methods inherited from class org.objectweb.asm.ClassVisitor
visitEnd, visitSource
-
-
-
-
Constructor Detail
-
ClassRemapper
public ClassRemapper(ClassVisitor classVisitor, Remapper remapper)
Constructs a newClassRemapper. Subclasses must not use this constructor. Instead, they must use theClassRemapper(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, ClassVisitor classVisitor, Remapper remapper)Constructs a newClassRemapper.- Parameters:
api- the ASM API version supported by this remapper. Must be one of theASMx values inOpcodes.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, String name, String signature, String superName, String[] interfaces)- Overrides:
visitin classClassVisitor
-
visitModule
public ModuleVisitor visitModule(String name, int flags, String version)
- Overrides:
visitModulein classClassVisitor
-
visitAnnotation
public AnnotationVisitor visitAnnotation(String descriptor, boolean visible)
- Overrides:
visitAnnotationin classClassVisitor
-
visitTypeAnnotation
public AnnotationVisitor visitTypeAnnotation(int typeRef, TypePath typePath, String descriptor, boolean visible)
- Overrides:
visitTypeAnnotationin classClassVisitor
-
visitAttribute
public void visitAttribute(Attribute attribute)
- Overrides:
visitAttributein classClassVisitor
-
visitRecordComponent
public RecordComponentVisitor visitRecordComponent(String name, String descriptor, String signature)
- Overrides:
visitRecordComponentin classClassVisitor
-
visitField
public FieldVisitor visitField(int access, String name, String descriptor, String signature, Object value)
- Overrides:
visitFieldin classClassVisitor
-
visitMethod
public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions)
- Overrides:
visitMethodin classClassVisitor
-
visitInnerClass
public void visitInnerClass(String name, String outerName, String innerName, int access)
- Overrides:
visitInnerClassin classClassVisitor
-
visitOuterClass
public void visitOuterClass(String owner, String name, String descriptor)
- Overrides:
visitOuterClassin classClassVisitor
-
visitNestHost
public void visitNestHost(String nestHost)
- Overrides:
visitNestHostin classClassVisitor
-
visitNestMember
public void visitNestMember(String nestMember)
- Overrides:
visitNestMemberin classClassVisitor
-
visitPermittedSubclass
public void visitPermittedSubclass(String permittedSubclass)
- Overrides:
visitPermittedSubclassin classClassVisitor
-
createFieldRemapper
protected FieldVisitor createFieldRemapper(FieldVisitor fieldVisitor)
Constructs a new remapper for fields. The default implementation of this method returns a newFieldRemapper.- Parameters:
fieldVisitor- the FieldVisitor the remapper must delegate to.- Returns:
- the newly created remapper.
-
createMethodRemapper
protected MethodVisitor createMethodRemapper(MethodVisitor methodVisitor)
Constructs a new remapper for methods. The default implementation of this method returns a newMethodRemapper.- Parameters:
methodVisitor- the MethodVisitor the remapper must delegate to.- Returns:
- the newly created remapper.
-
createAnnotationRemapper
@Deprecated protected AnnotationVisitor createAnnotationRemapper(AnnotationVisitor annotationVisitor)
Deprecated.usecreateAnnotationRemapper(String, AnnotationVisitor)instead.Constructs a new remapper for annotations. The default implementation of this method returns a newAnnotationRemapper.- Parameters:
annotationVisitor- the AnnotationVisitor the remapper must delegate to.- Returns:
- the newly created remapper.
-
createAnnotationRemapper
protected AnnotationVisitor createAnnotationRemapper(String descriptor, AnnotationVisitor annotationVisitor)
Constructs a new remapper for annotations. The default implementation of this method returns a newAnnotationRemapper.- Parameters:
descriptor- the descriptor of the visited annotation.annotationVisitor- the AnnotationVisitor the remapper must delegate to.- Returns:
- the newly created remapper.
-
createModuleRemapper
protected ModuleVisitor createModuleRemapper(ModuleVisitor moduleVisitor)
Constructs a new remapper for modules. The default implementation of this method returns a newModuleRemapper.- Parameters:
moduleVisitor- the ModuleVisitor the remapper must delegate to.- Returns:
- the newly created remapper.
-
createRecordComponentRemapper
protected RecordComponentVisitor createRecordComponentRemapper(RecordComponentVisitor recordComponentVisitor)
Constructs a new remapper for record components. The default implementation of this method returns a newRecordComponentRemapper.- Parameters:
recordComponentVisitor- the RecordComponentVisitor the remapper must delegate to.- Returns:
- the newly created remapper.
-
-