Package org.objectweb.asm.commons
Class Remapper
- java.lang.Object
-
- org.objectweb.asm.commons.Remapper
-
- Direct Known Subclasses:
SimpleRemapper
public abstract class Remapper extends java.lang.ObjectA class responsible for remapping types and names.- Author:
- Eugene Kuleshov
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedRemapper()Deprecated.useRemapper(int)instead.protectedRemapper(int api)Creates a newRemapper.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected org.objectweb.asm.signature.SignatureVisitorcreateRemappingSignatureAdapter(org.objectweb.asm.signature.SignatureVisitor signatureVisitor)Deprecated.protected org.objectweb.asm.signature.SignatureVisitorcreateSignatureRemapper(org.objectweb.asm.signature.SignatureVisitor signatureVisitor)Constructs a new remapper for signatures.java.lang.Stringmap(java.lang.String internalName)Maps the internal name of a class to its new name.java.lang.StringmapAnnotationAttributeName(java.lang.String descriptor, java.lang.String name)Maps an annotation attribute name.java.lang.StringmapBasicInvokeDynamicMethodName(java.lang.String name, java.lang.String descriptor, org.objectweb.asm.Handle bootstrapMethodHandle, java.lang.Object... bootstrapMethodArguments)Maps an invokedynamic or a constant dynamic method name to its new name.java.lang.StringmapDesc(java.lang.String descriptor)Returns the given descriptor, remapped withmap(String).java.lang.StringmapFieldName(java.lang.String owner, java.lang.String name, java.lang.String descriptor)Maps a field name to its new name.java.lang.StringmapInnerClassName(java.lang.String name, java.lang.String ownerName, java.lang.String innerName)Maps an inner class name to its new name.java.lang.StringmapInvokeDynamicMethodName(java.lang.String name, java.lang.String descriptor)Deprecated.java.lang.StringmapInvokeDynamicMethodName(java.lang.String name, java.lang.String descriptor, org.objectweb.asm.Handle bootstrapMethodHandle, java.lang.Object... bootstrapMethodArguments)Maps an invokedynamic or a constant dynamic method name to its new name.java.lang.StringmapMethodDesc(java.lang.String methodDescriptor)Returns the given method descriptor, with its argument and return type descriptors remapped withmapDesc(String).java.lang.StringmapMethodName(java.lang.String owner, java.lang.String name, java.lang.String descriptor)Maps a method name to its new name.java.lang.StringmapModuleName(java.lang.String name)Maps a module name to its new name.java.lang.StringmapPackageName(java.lang.String name)Maps a package name to its new name.java.lang.StringmapRecordComponentName(java.lang.String owner, java.lang.String name, java.lang.String descriptor)Maps a record component name to its new name.java.lang.StringmapSignature(java.lang.String signature, boolean typeSignature)Returns the given signature, remapped with theSignatureVisitorreturned bycreateSignatureRemapper(SignatureVisitor).java.lang.StringmapType(java.lang.String internalName)Returns the given internal name, remapped withmap(String).java.lang.String[]mapTypes(java.lang.String[] internalNames)Returns the given internal names, remapped withmap(String).java.lang.ObjectmapValue(java.lang.Object value)Returns the given value, remapped with this remapper.java.lang.StringmapWellKnownInvokeDynamicMethodName(java.lang.String name, java.lang.String descriptor, org.objectweb.asm.Handle bootstrapMethodHandle, java.lang.Object... bootstrapMethodArguments)Maps well-known invokedynamic (e.g.
-
-
-
Constructor Detail
-
Remapper
@Deprecated(forRemoval=false) protected Remapper()
Deprecated.useRemapper(int)instead.Creates a newRemapper.
-
Remapper
protected Remapper(int api)
Creates a newRemapper.- Parameters:
api- the ASM API version supported by this remapper. Must be one of theASMx values inOpcodes.
-
-
Method Detail
-
mapDesc
public java.lang.String mapDesc(java.lang.String descriptor)
Returns the given descriptor, remapped withmap(String).- Parameters:
descriptor- a type descriptor.- Returns:
- the given descriptor, with its [array element type] internal name remapped with
map(String)(if the descriptor corresponds to an array or object type, otherwise the descriptor is returned as is). SeeType.getInternalName().
-
mapType
public java.lang.String mapType(java.lang.String internalName)
Returns the given internal name, remapped withmap(String).- Parameters:
internalName- the internal name (or array type descriptor) of some (array) class (seeType.getInternalName()).- Returns:
- the given internal name, remapped with
map(String)(seeType.getInternalName()).
-
mapTypes
public java.lang.String[] mapTypes(java.lang.String[] internalNames)
Returns the given internal names, remapped withmap(String).- Parameters:
internalNames- the internal names (or array type descriptors) of some (array) classes (seeType.getInternalName()).- Returns:
- the given internal name, remapped with
map(String)(seeType.getInternalName()).
-
mapMethodDesc
public java.lang.String mapMethodDesc(java.lang.String methodDescriptor)
Returns the given method descriptor, with its argument and return type descriptors remapped withmapDesc(String).- Parameters:
methodDescriptor- a method descriptor.- Returns:
- the given method descriptor, with its argument and return type descriptors remapped
with
mapDesc(String).
-
mapValue
public java.lang.Object mapValue(java.lang.Object value)
Returns the given value, remapped with this remapper. Possible values areBoolean,Byte,Short,Character,Integer,Long,Double,Float,String,Type,Handle,ConstantDynamicor arrays of primitive types .- Parameters:
value- an object. OnlyType,HandleandConstantDynamicvalues are remapped.- Returns:
- the given value, remapped with this remapper.
-
mapSignature
public java.lang.String mapSignature(java.lang.String signature, boolean typeSignature)Returns the given signature, remapped with theSignatureVisitorreturned bycreateSignatureRemapper(SignatureVisitor).- Parameters:
signature- a JavaTypeSignature, ClassSignature or MethodSignature.typeSignature- whether the given signature is a JavaTypeSignature.- Returns:
- signature the given signature, remapped with the
SignatureVisitorreturned bycreateSignatureRemapper(SignatureVisitor).
-
createRemappingSignatureAdapter
@Deprecated(forRemoval=false) protected org.objectweb.asm.signature.SignatureVisitor createRemappingSignatureAdapter(org.objectweb.asm.signature.SignatureVisitor signatureVisitor)
Deprecated.Constructs a new remapper for signatures. The default implementation of this method returns a newSignatureRemapper.- Parameters:
signatureVisitor- the SignatureVisitor the remapper must delegate to.- Returns:
- the newly created remapper.
-
createSignatureRemapper
protected org.objectweb.asm.signature.SignatureVisitor createSignatureRemapper(org.objectweb.asm.signature.SignatureVisitor signatureVisitor)
Constructs a new remapper for signatures. The default implementation of this method returns a newSignatureRemapper.- Parameters:
signatureVisitor- the SignatureVisitor the remapper must delegate to.- Returns:
- the newly created remapper.
-
mapAnnotationAttributeName
public java.lang.String mapAnnotationAttributeName(java.lang.String descriptor, java.lang.String name)Maps an annotation attribute name. The default implementation of this method returns the given name, unchanged. Subclasses can override.- Parameters:
descriptor- the descriptor of the annotation class.name- the name of the annotation attribute.- Returns:
- the new name of the annotation attribute.
-
mapInnerClassName
public java.lang.String mapInnerClassName(java.lang.String name, java.lang.String ownerName, java.lang.String innerName)Maps an inner class name to its new name. The default implementation of this method provides a strategy that will work for inner classes produced by Java, but not necessarily other languages. Subclasses can override.- Parameters:
name- the fully-qualified internal name of the inner class (seeType.getInternalName()).ownerName- the internal name of the owner class of the inner class (seeType.getInternalName()).innerName- the internal name of the inner class (seeType.getInternalName()).- Returns:
- the new inner name of the inner class.
-
mapMethodName
public java.lang.String mapMethodName(java.lang.String owner, java.lang.String name, java.lang.String descriptor)Maps a method name to its new name. The default implementation of this method returns the given name, unchanged. Subclasses can override.- Parameters:
owner- the internal name of the owner class of the method (seeType.getInternalName()).name- the name of the method.descriptor- the descriptor of the method.- Returns:
- the new name of the method.
-
mapInvokeDynamicMethodName
@Deprecated(forRemoval=false) public java.lang.String mapInvokeDynamicMethodName(java.lang.String name, java.lang.String descriptor)Deprecated.Maps an invokedynamic or a constant dynamic method name to its new name. The default implementation of this method returns the given name, unchanged. Subclasses can override.- Parameters:
name- the name of the method.descriptor- the descriptor of the method.- Returns:
- the new name of the method.
-
mapInvokeDynamicMethodName
public java.lang.String mapInvokeDynamicMethodName(java.lang.String name, java.lang.String descriptor, org.objectweb.asm.Handle bootstrapMethodHandle, java.lang.Object... bootstrapMethodArguments)Maps an invokedynamic or a constant dynamic method name to its new name. Subclasses can override.The default implementation of this method first performs well-known rule checks (calling
mapWellKnownInvokeDynamicMethodName(String, String, Handle, Object...)) and then performs basic remapping (callingmapBasicInvokeDynamicMethodName(String, String, Handle, Object...)).For most users, only
mapBasicInvokeDynamicMethodName(String, String, Handle, Object...)needs to be overridden.- Parameters:
name- the name of the method.descriptor- the descriptor of the method.bootstrapMethodHandle- the bootstrap method.bootstrapMethodArguments- the bootstrap method constant arguments. Each argument must be anInteger,Float,Long,Double,String,Type,HandleorConstantDynamicvalue. This method is allowed to modify the content of the array so a caller should expect that this array may change.- Returns:
- the new name of the method.
-
mapWellKnownInvokeDynamicMethodName
public java.lang.String mapWellKnownInvokeDynamicMethodName(java.lang.String name, java.lang.String descriptor, org.objectweb.asm.Handle bootstrapMethodHandle, java.lang.Object... bootstrapMethodArguments)Maps well-known invokedynamic (e.g. lambda creation) or const dynamic method names to their new names. This method detects specific invokedynamic method rules and remaps using the corresponding rules. When no rule is matched, returns null. When non-null is returned, it means that this invokedynamic method name matches a rule and has been remapped with the relevant rule. Subclasses can override.- Parameters:
name- the name of the method.descriptor- the descriptor of the method.bootstrapMethodHandle- the bootstrap method.bootstrapMethodArguments- the bootstrap method constant arguments. Each argument must be anInteger,Float,Long,Double,String,Type,HandleorConstantDynamicvalue. This method is allowed to modify the content of the array so a caller should expect that this array may change.- Returns:
- the new name of the method, or null if no special rule is matched.
-
mapBasicInvokeDynamicMethodName
public java.lang.String mapBasicInvokeDynamicMethodName(java.lang.String name, java.lang.String descriptor, org.objectweb.asm.Handle bootstrapMethodHandle, java.lang.Object... bootstrapMethodArguments)Maps an invokedynamic or a constant dynamic method name to its new name. The default implementation of this method returns the given name, unchanged. Subclasses can override.- Parameters:
name- the name of the method.descriptor- the descriptor of the method.bootstrapMethodHandle- the bootstrap method.bootstrapMethodArguments- the bootstrap method constant arguments. Each argument must be anInteger,Float,Long,Double,String,Type,HandleorConstantDynamicvalue. This method is allowed to modify the content of the array so a caller should expect that this array may change.- Returns:
- the new name of the method.
-
mapRecordComponentName
public java.lang.String mapRecordComponentName(java.lang.String owner, java.lang.String name, java.lang.String descriptor)Maps a record component name to its new name. The default implementation of this method returns the given name, unchanged. Subclasses can override.- Parameters:
owner- the internal name of the owner class of the field (seeType.getInternalName()).name- the name of the field.descriptor- the descriptor of the field.- Returns:
- the new name of the field.
-
mapFieldName
public java.lang.String mapFieldName(java.lang.String owner, java.lang.String name, java.lang.String descriptor)Maps a field name to its new name. The default implementation of this method returns the given name, unchanged. Subclasses can override.- Parameters:
owner- the internal name of the owner class of the field (seeType.getInternalName()).name- the name of the field.descriptor- the descriptor of the field.- Returns:
- the new name of the field.
-
mapPackageName
public java.lang.String mapPackageName(java.lang.String name)
Maps a package name to its new name. The default implementation of this method returns the given name, unchanged. Subclasses can override.- Parameters:
name- the fully qualified name of the package (using dots).- Returns:
- the new name of the package.
-
mapModuleName
public java.lang.String mapModuleName(java.lang.String name)
Maps a module name to its new name. The default implementation of this method returns the given name, unchanged. Subclasses can override.- Parameters:
name- the fully qualified name (using dots) of a module.- Returns:
- the new name of the module.
-
map
public java.lang.String map(java.lang.String internalName)
Maps the internal name of a class to its new name. The default implementation of this method returns the given name, unchanged. Subclasses can override.- Parameters:
internalName- the internal name of a class (seeType.getInternalName()).- Returns:
- the new internal name (see
Type.getInternalName()).
-
-