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 | 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.Object |
get(java.lang.Object jvmClassName) |
Returns the class name to wihch the given
jvmClassName
is mapped. |
void |
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.
|
protected void |
put0(java.lang.Object oldname,
java.lang.Object newname) |
|
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, put, 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 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.protected final void put0(java.lang.Object oldname, java.lang.Object newname)
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 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)
Copyright © 2018 Shigeru Chiba, www.javassist.org. All Rights Reserved.