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