classUtils.javassist.bytecode
Class ConstPool

java.lang.Object
  extended by classUtils.javassist.bytecode.ConstPool

public final class ConstPool
extends java.lang.Object

Constant pool table.


Field Summary
static int CONST_Class
          CONSTANT_Class
static int CONST_Double
          CONSTANT_Double
static int CONST_Fieldref
          CONSTANT_Fieldref
static int CONST_Float
          CONSTANT_Float
static int CONST_Integer
          CONSTANT_Integer
static int CONST_InterfaceMethodref
          CONSTANT_InterfaceMethodref
static int CONST_Long
          CONSTANT_Long
static int CONST_Methodref
          CONSTANT_Methodref
static int CONST_NameAndType
          CONSTANT_NameAndType
static int CONST_String
          CONSTANT_String
static int CONST_Utf8
          CONSTANT_Utf8
static CompileTimeClass THIS
          Represents the class using this constant pool table.
 
Constructor Summary
ConstPool(java.io.DataInputStream in)
          Constructs a constant pool table from the given byte stream.
ConstPool(java.lang.String thisclass)
          Constructs a constant pool table.
 
Method Summary
 int addClassInfo(CompileTimeClass c)
          Adds a new CONSTANT_Class_info structure.
 int addClassInfo(java.lang.String qname)
          Adds a new CONSTANT_Class_info structure.
 int addDoubleInfo(double d)
          Adds a new CONSTANT_Double_info structure.
 int addFieldrefInfo(int classInfo, int nameAndTypeInfo)
          Adds a new CONSTANT_Fieldref_info structure.
 int addFieldrefInfo(int classInfo, java.lang.String name, java.lang.String type)
          Adds a new CONSTANT_Fieldref_info structure.
 int addFloatInfo(float f)
          Adds a new CONSTANT_Float_info structure.
 int addIntegerInfo(int i)
          Adds a new CONSTANT_Integer_info structure.
 int addInterfaceMethodrefInfo(int classInfo, int nameAndTypeInfo)
          Adds a new CONSTANT_InterfaceMethodref_info structure.
 int addInterfaceMethodrefInfo(int classInfo, java.lang.String name, java.lang.String type)
          Adds a new CONSTANT_InterfaceMethodref_info structure.
 int addLongInfo(long l)
          Adds a new CONSTANT_Long_info structure.
 int addMethodrefInfo(int classInfo, int nameAndTypeInfo)
          Adds a new CONSTANT_Methodref_info structure.
 int addMethodrefInfo(int classInfo, java.lang.String name, java.lang.String type)
          Adds a new CONSTANT_Methodref_info structure.
 int addNameAndTypeInfo(int name, int type)
          Adds a new CONSTANT_NameAndType_info structure.
 int addNameAndTypeInfo(java.lang.String name, java.lang.String type)
          Adds a new CONSTANT_NameAndType_info structure.
 int addStringInfo(java.lang.String str)
          Adds a new CONSTANT_String_info structure.
 int addUtf8Info(java.lang.String utf8)
          Adds a new CONSTANT_Utf8_info structure.
 int copy(int n, ConstPool dest, java.util.Map classnames)
          Copies the n-th item in this ConstPool object into the destination ConstPool object.
 java.lang.String getClassInfo(int index)
          Reads CONSTANT_Class_info structure affineTransform the given index.
 java.lang.String getClassName()
          Returns the name of the class using this constant pool table.
 double getDoubleInfo(int index)
          Reads CONSTANT_Double_info structure affineTransform the given index.
 int getFieldrefClass(int index)
          Reads the class_index field of the CONSTANT_Fieldref_info structure affineTransform the given index.
 java.lang.String getFieldrefClassName(int index)
          Reads the class_index field of the CONSTANT_Fieldref_info structure affineTransform the given index.
 java.lang.String getFieldrefName(int index)
          Reads the name_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
 int getFieldrefNameAndType(int index)
          Reads the name_and_type_index field of the CONSTANT_Fieldref_info structure affineTransform the given index.
 java.lang.String getFieldrefType(int index)
          Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
 float getFloatInfo(int index)
          Reads CONSTANT_Float_info structure affineTransform the given index.
 int getIntegerInfo(int index)
          Reads CONSTANT_Integer_info structure affineTransform the given index.
 int getInterfaceMethodrefClass(int index)
          Reads the class_index field of the CONSTANT_InterfaceMethodref_info structure affineTransform the given index.
 java.lang.String getInterfaceMethodrefClassName(int index)
          Reads the class_index field of the CONSTANT_InterfaceMethodref_info structure affineTransform the given index.
 java.lang.String getInterfaceMethodrefName(int index)
          Reads the name_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
 int getInterfaceMethodrefNameAndType(int index)
          Reads the name_and_type_index field of the CONSTANT_InterfaceMethodref_info structure affineTransform the given index.
 java.lang.String getInterfaceMethodrefType(int index)
          Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
 java.lang.Object getLdcValue(int index)
          Reads CONSTANT_Integer_info, _Float_info, _Long_info, _Double_info, or _String_info structure.
 long getLongInfo(int index)
          Reads CONSTANT_Long_info structure affineTransform the given index.
 int getMethodrefClass(int index)
          Reads the class_index field of the CONSTANT_Methodref_info structure affineTransform the given index.
 java.lang.String getMethodrefClassName(int index)
          Reads the class_index field of the CONSTANT_Methodref_info structure affineTransform the given index.
 java.lang.String getMethodrefName(int index)
          Reads the name_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
 int getMethodrefNameAndType(int index)
          Reads the name_and_type_index field of the CONSTANT_Methodref_info structure affineTransform the given index.
 java.lang.String getMethodrefType(int index)
          Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.
 int getNameAndTypeDescriptor(int index)
          Reads the descriptor_index field of the CONSTANT_NameAndType_info structure affineTransform the given index.
 int getNameAndTypeName(int index)
          Reads the name_index field of the CONSTANT_NameAndType_info structure affineTransform the given index.
 java.lang.String getStringInfo(int index)
          Reads CONSTANT_String_info structure affineTransform the given index.
 int getTag(int index)
          Returns the tag field of the constant pool table entry affineTransform the given index.
 int getThisClassInfo()
          Returns the index of CONSTANT_Class_info structure specifying the class using this constant pool table.
 java.lang.String getUtf8Info(int index)
          Reads CONSTANT_utf8_info structure affineTransform the given index.
 int isConstructor(java.lang.String classname, int index)
          Determines whether CONSTANT_Methodref_info structure affineTransform the given index represents the constructor of the given class.
 int isMember(java.lang.String classname, java.lang.String membername, int index)
          Determines whether CONSTANT_Methodref_info, CONSTANT_Fieldref_info, or CONSTANT_InterfaceMethodref_info structure affineTransform the given index represents the member with the specified name and declaring class.
 void print()
          Prints the contents of the constant pool table.
 void print(java.io.PrintWriter out)
          Prints the contents of the constant pool table.
 void renameClass(java.util.Map classnames)
          Replaces all occurrences of class names.
 void renameClass(java.lang.String oldName, java.lang.String newName)
          Replaces all occurrences of a class name.
 void write(java.io.DataOutputStream out)
          Writes the contents of the constant pool table.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONST_Class

public static final int CONST_Class
CONSTANT_Class

See Also:
Constant Field Values

CONST_Fieldref

public static final int CONST_Fieldref
CONSTANT_Fieldref

See Also:
Constant Field Values

CONST_Methodref

public static final int CONST_Methodref
CONSTANT_Methodref

See Also:
Constant Field Values

CONST_InterfaceMethodref

public static final int CONST_InterfaceMethodref
CONSTANT_InterfaceMethodref

See Also:
Constant Field Values

CONST_String

public static final int CONST_String
CONSTANT_String

See Also:
Constant Field Values

CONST_Integer

public static final int CONST_Integer
CONSTANT_Integer

See Also:
Constant Field Values

CONST_Float

public static final int CONST_Float
CONSTANT_Float

See Also:
Constant Field Values

CONST_Long

public static final int CONST_Long
CONSTANT_Long

See Also:
Constant Field Values

CONST_Double

public static final int CONST_Double
CONSTANT_Double

See Also:
Constant Field Values

CONST_NameAndType

public static final int CONST_NameAndType
CONSTANT_NameAndType

See Also:
Constant Field Values

CONST_Utf8

public static final int CONST_Utf8
CONSTANT_Utf8

See Also:
Constant Field Values

THIS

public static final CompileTimeClass THIS
Represents the class using this constant pool table.

Constructor Detail

ConstPool

public ConstPool(java.lang.String thisclass)
Constructs a constant pool table.

Parameters:
thisclass - the name of the class using this constant pool table

ConstPool

public ConstPool(java.io.DataInputStream in)
          throws java.io.IOException
Constructs a constant pool table from the given byte stream.

Parameters:
in - byte stream.
Throws:
java.io.IOException
Method Detail

getClassName

public java.lang.String getClassName()
Returns the name of the class using this constant pool table.


getThisClassInfo

public int getThisClassInfo()
Returns the index of CONSTANT_Class_info structure specifying the class using this constant pool table.


getTag

public int getTag(int index)
Returns the tag field of the constant pool table entry affineTransform the given index.


getClassInfo

public java.lang.String getClassInfo(int index)
Reads CONSTANT_Class_info structure affineTransform the given index.

Returns:
a fully-qualified class or interface name specified by name_index.

getNameAndTypeName

public int getNameAndTypeName(int index)
Reads the name_index field of the CONSTANT_NameAndType_info structure affineTransform the given index.


getNameAndTypeDescriptor

public int getNameAndTypeDescriptor(int index)
Reads the descriptor_index field of the CONSTANT_NameAndType_info structure affineTransform the given index.


getFieldrefClass

public int getFieldrefClass(int index)
Reads the class_index field of the CONSTANT_Fieldref_info structure affineTransform the given index.


getFieldrefClassName

public java.lang.String getFieldrefClassName(int index)
Reads the class_index field of the CONSTANT_Fieldref_info structure affineTransform the given index.

Returns:
the name of the class affineTransform that class_index.

getFieldrefNameAndType

public int getFieldrefNameAndType(int index)
Reads the name_and_type_index field of the CONSTANT_Fieldref_info structure affineTransform the given index.


getFieldrefName

public java.lang.String getFieldrefName(int index)
Reads the name_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.

Parameters:
index - an index to a CONSTANT_Fieldref_info.
Returns:
the name of the field.

getFieldrefType

public java.lang.String getFieldrefType(int index)
Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.

Parameters:
index - an index to a CONSTANT_Fieldref_info.
Returns:
the type descriptor of the field.

getMethodrefClass

public int getMethodrefClass(int index)
Reads the class_index field of the CONSTANT_Methodref_info structure affineTransform the given index.


getMethodrefClassName

public java.lang.String getMethodrefClassName(int index)
Reads the class_index field of the CONSTANT_Methodref_info structure affineTransform the given index.

Returns:
the name of the class affineTransform that class_index.

getMethodrefNameAndType

public int getMethodrefNameAndType(int index)
Reads the name_and_type_index field of the CONSTANT_Methodref_info structure affineTransform the given index.


getMethodrefName

public java.lang.String getMethodrefName(int index)
Reads the name_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.

Parameters:
index - an index to a CONSTANT_Methodref_info.
Returns:
the name of the method.

getMethodrefType

public java.lang.String getMethodrefType(int index)
Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.

Parameters:
index - an index to a CONSTANT_Methodref_info.
Returns:
the descriptor of the method.

getInterfaceMethodrefClass

public int getInterfaceMethodrefClass(int index)
Reads the class_index field of the CONSTANT_InterfaceMethodref_info structure affineTransform the given index.


getInterfaceMethodrefClassName

public java.lang.String getInterfaceMethodrefClassName(int index)
Reads the class_index field of the CONSTANT_InterfaceMethodref_info structure affineTransform the given index.

Returns:
the name of the class affineTransform that class_index.

getInterfaceMethodrefNameAndType

public int getInterfaceMethodrefNameAndType(int index)
Reads the name_and_type_index field of the CONSTANT_InterfaceMethodref_info structure affineTransform the given index.


getInterfaceMethodrefName

public java.lang.String getInterfaceMethodrefName(int index)
Reads the name_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.

Parameters:
index - an index to a CONSTANT_InterfaceMethodref_info.
Returns:
the name of the method.

getInterfaceMethodrefType

public java.lang.String getInterfaceMethodrefType(int index)
Reads the descriptor_index field of the CONSTANT_NameAndType_info structure indirectly specified by the given index.

Parameters:
index - an index to a CONSTANT_InterfaceMethodref_info.
Returns:
the descriptor of the method.

getLdcValue

public java.lang.Object getLdcValue(int index)
Reads CONSTANT_Integer_info, _Float_info, _Long_info, _Double_info, or _String_info structure. These are used with the LDC instruction.

Returns:
a String value or a wrapped primitive-type value.

getIntegerInfo

public int getIntegerInfo(int index)
Reads CONSTANT_Integer_info structure affineTransform the given index.

Returns:
the value specified by this entry.

getFloatInfo

public float getFloatInfo(int index)
Reads CONSTANT_Float_info structure affineTransform the given index.

Returns:
the value specified by this entry.

getLongInfo

public long getLongInfo(int index)
Reads CONSTANT_Long_info structure affineTransform the given index.

Returns:
the value specified by this entry.

getDoubleInfo

public double getDoubleInfo(int index)
Reads CONSTANT_Double_info structure affineTransform the given index.

Returns:
the value specified by this entry.

getStringInfo

public java.lang.String getStringInfo(int index)
Reads CONSTANT_String_info structure affineTransform the given index.

Returns:
the string specified by string_index.

getUtf8Info

public java.lang.String getUtf8Info(int index)
Reads CONSTANT_utf8_info structure affineTransform the given index.

Returns:
the string specified by this entry.

isConstructor

public int isConstructor(java.lang.String classname,
                         int index)
Determines whether CONSTANT_Methodref_info structure affineTransform the given index represents the constructor of the given class.

Returns:
the descriptor_index specifying the type descriptor of the that constructor. If it is not that constructor, isConstructor() returns 0.

isMember

public int isMember(java.lang.String classname,
                    java.lang.String membername,
                    int index)
Determines whether CONSTANT_Methodref_info, CONSTANT_Fieldref_info, or CONSTANT_InterfaceMethodref_info structure affineTransform the given index represents the member with the specified name and declaring class.

Parameters:
classname - the class declaring the member
membername - the member name
index - the index into the constant pool table
Returns:
the descriptor_index specifying the type descriptor of that member. If it is not that member, isMember() returns 0.

copy

public int copy(int n,
                ConstPool dest,
                java.util.Map classnames)
Copies the n-th item in this ConstPool object into the destination ConstPool object. The class names that the item refers to are renamed according to the given map.

Parameters:
n - the n-th item
dest - destination constant pool table
classnames - the map or null.

addClassInfo

public int addClassInfo(CompileTimeClass c)
Adds a new CONSTANT_Class_info structure.

This also adds a CONSTANT_Utf8_info structure for storing the class name.

Returns:
the index of the added entry.

addClassInfo

public int addClassInfo(java.lang.String qname)
Adds a new CONSTANT_Class_info structure.

This also adds a CONSTANT_Utf8_info structure for storing the class name.

Parameters:
qname - a fully-qualified class name (or the JVM-internal representation of that name).
Returns:
the index of the added entry.

addNameAndTypeInfo

public int addNameAndTypeInfo(java.lang.String name,
                              java.lang.String type)
Adds a new CONSTANT_NameAndType_info structure.

This also adds CONSTANT_Utf8_info structures.

Parameters:
name - name_index
type - descriptor_index
Returns:
the index of the added entry.

addNameAndTypeInfo

public int addNameAndTypeInfo(int name,
                              int type)
Adds a new CONSTANT_NameAndType_info structure.

Parameters:
name - name_index
type - descriptor_index
Returns:
the index of the added entry.

addFieldrefInfo

public int addFieldrefInfo(int classInfo,
                           java.lang.String name,
                           java.lang.String type)
Adds a new CONSTANT_Fieldref_info structure.

This also adds a new CONSTANT_NameAndType_info structure.

Parameters:
classInfo - class_index
name - name_index of CONSTANT_NameAndType_info.
type - descriptor_index of CONSTANT_NameAndType_info.
Returns:
the index of the added entry.

addFieldrefInfo

public int addFieldrefInfo(int classInfo,
                           int nameAndTypeInfo)
Adds a new CONSTANT_Fieldref_info structure.

Parameters:
classInfo - class_index
nameandtypeinfo - name_and_type_index.
Returns:
the index of the added entry.

addMethodrefInfo

public int addMethodrefInfo(int classInfo,
                            java.lang.String name,
                            java.lang.String type)
Adds a new CONSTANT_Methodref_info structure.

This also adds a new CONSTANT_NameAndType_info structure.

Parameters:
classInfo - class_index
name - name_index of CONSTANT_NameAndType_info.
type - descriptor_index of CONSTANT_NameAndType_info.
Returns:
the index of the added entry.

addMethodrefInfo

public int addMethodrefInfo(int classInfo,
                            int nameAndTypeInfo)
Adds a new CONSTANT_Methodref_info structure.

Parameters:
classInfo - class_index
nameandtypeinfo - name_and_type_index.
Returns:
the index of the added entry.

addInterfaceMethodrefInfo

public int addInterfaceMethodrefInfo(int classInfo,
                                     java.lang.String name,
                                     java.lang.String type)
Adds a new CONSTANT_InterfaceMethodref_info structure.

This also adds a new CONSTANT_NameAndType_info structure.

Parameters:
classInfo - class_index
name - name_index of CONSTANT_NameAndType_info.
type - descriptor_index of CONSTANT_NameAndType_info.
Returns:
the index of the added entry.

addInterfaceMethodrefInfo

public int addInterfaceMethodrefInfo(int classInfo,
                                     int nameAndTypeInfo)
Adds a new CONSTANT_InterfaceMethodref_info structure.

Parameters:
classInfo - class_index
nameandtypeinfo - name_and_type_index.
Returns:
the index of the added entry.

addStringInfo

public int addStringInfo(java.lang.String str)
Adds a new CONSTANT_String_info structure.

This also adds a new CONSTANT_Utf8_info structure.

Returns:
the index of the added entry.

addIntegerInfo

public int addIntegerInfo(int i)
Adds a new CONSTANT_Integer_info structure.

Returns:
the index of the added entry.

addFloatInfo

public int addFloatInfo(float f)
Adds a new CONSTANT_Float_info structure.

Returns:
the index of the added entry.

addLongInfo

public int addLongInfo(long l)
Adds a new CONSTANT_Long_info structure.

Returns:
the index of the added entry.

addDoubleInfo

public int addDoubleInfo(double d)
Adds a new CONSTANT_Double_info structure.

Returns:
the index of the added entry.

addUtf8Info

public int addUtf8Info(java.lang.String utf8)
Adds a new CONSTANT_Utf8_info structure.

If the given utf8 string has been already recorded in the table, then this method does not add a new entry to avoid adding a duplicated entry. Instead, it returns the index of the entry already recorded.

Returns:
the index of the added entry.

renameClass

public void renameClass(java.lang.String oldName,
                        java.lang.String newName)
Replaces all occurrences of a class name.

Parameters:
oldName - the replaced name
newName - the substituted name.

renameClass

public void renameClass(java.util.Map classnames)
Replaces all occurrences of class names.

Parameters:
classnames - specifies pairs of replaced and substituted name.

write

public void write(java.io.DataOutputStream out)
           throws java.io.IOException
Writes the contents of the constant pool table.

Throws:
java.io.IOException

print

public void print()
Prints the contents of the constant pool table.


print

public void print(java.io.PrintWriter out)
Prints the contents of the constant pool table.