public class ClassMap
extends java.util.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
.
Constructor and Description |
---|
ClassMap()
Constructs a hash table.
|
Modifier and Type | Method and Description |
---|---|
void |
fix(CtClass clazz)
Prevents a mapping from the specified class name to another name.
|
void |
fix(java.lang.String name)
Prevents a mapping from the specified class name to another name.
|
java.lang.Object |
get(java.lang.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(java.lang.String oldname,
java.lang.String newname)
Maps a class name to another name in this hashtable.
|
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.
|
public 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 void put(java.lang.String oldname, java.lang.String newname)
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.
oldname
- the original class namenewname
- the substituted class name.fix(String)
public java.lang.Object 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 interface java.util.Map
get
in class java.util.HashMap
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-2006 Shigeru Chiba. All Rights Reserved.