public class ConstantPool extends Object
Constructor and Description |
---|
ConstantPool()
Initialise the constant pool.
|
Modifier and Type | Method and Description |
---|---|
int |
addEntry(ConstantPoolEntry entry)
Add an entry to the constant pool.
|
int |
getClassEntry(String className)
Get the index of a given CONSTANT_CLASS entry in the constant pool.
|
int |
getConstantEntry(Object constantValue)
Get the index of a given constant value entry in the constant pool.
|
ConstantPoolEntry |
getEntry(int index)
Get an constant pool entry at a particular index.
|
int |
getFieldRefEntry(String fieldClassName,
String fieldName,
String fieldType)
Get the index of a given CONSTANT_FIELDREF entry in the constant
pool.
|
int |
getInterfaceMethodRefEntry(String interfaceMethodClassName,
String interfaceMethodName,
String interfaceMethodType)
Get the index of a given CONSTANT_INTERFACEMETHODREF entry in the
constant pool.
|
int |
getMethodRefEntry(String methodClassName,
String methodName,
String methodType)
Get the index of a given CONSTANT_METHODREF entry in the constant
pool.
|
int |
getNameAndTypeEntry(String name,
String type)
Get the index of a given CONSTANT_NAMEANDTYPE entry in the constant
pool.
|
int |
getUTF8Entry(String value)
Get the index of a given UTF8 constant pool entry.
|
void |
read(DataInputStream classStream)
Read the constant pool from a class input stream.
|
void |
resolve()
Resolve the entries in the constant pool.
|
int |
size()
Get the size of the constant pool.
|
String |
toString()
Dump the constant pool to a string.
|
public int addEntry(ConstantPoolEntry entry)
entry
- the new entry to be added to the constant pool.public int getClassEntry(String className)
className
- the name of the class for which the class entry
index is required.public int getConstantEntry(Object constantValue)
constantValue
- the constant value for which the index is
required.public ConstantPoolEntry getEntry(int index)
index
- the index into the constant pool.public int getFieldRefEntry(String fieldClassName, String fieldName, String fieldType)
fieldClassName
- the name of the class which contains the field
being referenced.fieldName
- the name of the field being referenced.fieldType
- the type descriptor of the field being referenced.public int getInterfaceMethodRefEntry(String interfaceMethodClassName, String interfaceMethodName, String interfaceMethodType)
interfaceMethodClassName
- the name of the interface which
contains the method being referenced.interfaceMethodName
- the name of the method being referenced.interfaceMethodType
- the type descriptor of the method being
referenced.public int getMethodRefEntry(String methodClassName, String methodName, String methodType)
methodClassName
- the name of the class which contains the
method being referenced.methodName
- the name of the method being referenced.methodType
- the type descriptor of the method being referenced.public int getNameAndTypeEntry(String name, String type)
name
- the nametype
- the typepublic int getUTF8Entry(String value)
value
- the string value of the UTF8 entry.public void read(DataInputStream classStream) throws IOException
classStream
- the DataInputStream of a class file.IOException
- if there is a problem reading the constant pool
from the streampublic void resolve()
public int size()