public class ClassMap
extends java.util.HashMap<java.lang.String,java.lang.String>
This hashtable is used for replacing class names in a class definition or a method body. Define a subclass of this class if a more complex mapping algorithm is needed. For example,
class MyClassMap extends ClassMap {
public Object get(Object jvmClassName) {
String name = toJavaName((String)jvmClassName);
if (name.startsWith("java."))
return toJvmName("java2." + name.substring(5));
else
return super.get(jvmClassName);
}
}
This subclass maps java.lang.String to
java2.lang.String. Note that get()
receives and returns the internal representation of a class name.
For example, the internal representation of java.lang.String
is java/lang/String.
Note that this is a map from String to String.
| Constructor | Description |
|---|---|
ClassMap() |
Constructs a hash table.
|
| Modifier and Type | Method | Description |
|---|---|---|
void |
fix(java.lang.String name) |
Prevents a mapping from the specified class name to another name.
|
void |
fix(CtClass clazz) |
Prevents a mapping from the specified class name to another name.
|
java.lang.String |
get(java.lang.Object jvmClassName) |
Returns the class name to wihch the given
jvmClassName
is mapped. |
java.lang.String |
put(java.lang.String oldname,
java.lang.String newname) |
Maps a class name to another name in this hashtable.
|
void |
put(CtClass oldname,
CtClass newname) |
Maps a class name to another name in this hashtable.
|
void |
putIfNone(java.lang.String oldname,
java.lang.String newname) |
Is equivalent to
put() except that
the given mapping is not recorded into the hashtable
if another mapping from oldname is
already included. |
static java.lang.String |
toJavaName(java.lang.String classname) |
Converts a class name from the internal representation used in
the JVM to the normal one used in Java.
|
static java.lang.String |
toJvmName(java.lang.String classname) |
Converts a class name into the internal representation used in
the JVM.
|
clear, clone, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, getOrDefault, isEmpty, keySet, merge, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, valuespublic void put(CtClass oldname, CtClass newname)
Class.getName().
This method translates the given class names into the
internal form used in the JVM before putting it in
the hashtable.oldname - the original class namenewname - the substituted class name.public java.lang.String put(java.lang.String oldname,
java.lang.String newname)
If oldname is identical to
newname, then this method does not
perform anything; it does not record the mapping from
oldname to newname. See
fix method.
put in class java.util.HashMap<java.lang.String,java.lang.String>oldname - the original class name.newname - the substituted class name.fix(String)public void putIfNone(java.lang.String oldname,
java.lang.String newname)
put() except that
the given mapping is not recorded into the hashtable
if another mapping from oldname is
already included.oldname - the original class name.newname - the substituted class name.public java.lang.String get(java.lang.Object jvmClassName)
jvmClassName
is mapped. A subclass of this class should override this method.
This method receives and returns the internal representation of class name used in the JVM.
get in class java.util.HashMap<java.lang.String,java.lang.String>toJvmName(String),
toJavaName(String)public void fix(CtClass clazz)
public void fix(java.lang.String name)
public static java.lang.String toJvmName(java.lang.String classname)
public static java.lang.String toJavaName(java.lang.String classname)
Javassist, a Java-bytecode translator toolkit.
Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.