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
.
Note that this is a map from String
to 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.
|
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.
|
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 identical 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 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.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- Shigeru Chiba. All Rights Reserved.