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, values
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 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.