javassist
public class ClassMap extends HashMap
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.
See Also: get replaceClassName copy
| Constructor Summary | |
|---|---|
| ClassMap()
Constructs a hash table. | |
| Method Summary | |
|---|---|
| void | fix(CtClass clazz)
Prevents a mapping from the specified class name to another name. |
| void | fix(String name)
Prevents a mapping from the specified class name to another name. |
| Object | get(Object jvmClassName)
Returns the class name to wihch the given jvmClassName
is mapped. |
| void | put(CtClass oldname, CtClass newname)
Maps a class name to another name in this hashtable.
|
| void | put(String oldname, String newname)
Maps a class name to another name in this hashtable.
|
| static String | toJavaName(String classname)
Converts a class name from the internal representation used in
the JVM to the normal one used in Java. |
| static String | toJvmName(String classname)
Converts a class name into the internal representation used in
the JVM. |
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.
See Also: toJvmName toJavaName
Class.getName().
This method translates the given class names into the
internal form used in the JVM before putting it in
the hashtable.
Parameters: oldname the original class name newname the substituted class name.
If oldname is equivalent to
newname, then this method does not
perform anything; it does not record the mapping from
oldname to newname. See
fix method.
Parameters: oldname the original class name newname the substituted class name.
See Also: fix