public abstract class ConstantReference extends CPInfo
Modifier and Type | Field and Description |
---|---|
protected int |
classIndex
class_index field.
|
protected int |
nameAndTypeIndex
name_and_type_index field.
|
static int |
SIZE
Length of the constant pool data structure in bytes.
|
CONSTANT_CLASS, CONSTANT_CLASS_VERBOSE, CONSTANT_DOUBLE, CONSTANT_DOUBLE_VERBOSE, CONSTANT_FIELDREF, CONSTANT_FIELDREF_VERBOSE, CONSTANT_FLOAT, CONSTANT_FLOAT_VERBOSE, CONSTANT_INTEGER, CONSTANT_INTEGER_VERBOSE, CONSTANT_INTERFACE_METHODREF, CONSTANT_INTERFACE_METHODREF_VERBOSE, CONSTANT_LONG, CONSTANT_LONG_VERBOSE, CONSTANT_METHOD_HANDLE, CONSTANT_METHOD_HANDLE_VERBOSE, CONSTANT_METHOD_TYPE, CONSTANT_METHOD_TYPE_VERBOSE, CONSTANT_METHODREF, CONSTANT_METHODREF_VERBOSE, CONSTANT_NAME_AND_TYPE, CONSTANT_NAME_AND_TYPE_VERBOSE, CONSTANT_STRING, CONSTANT_STRING_VERBOSE, CONSTANT_UTF8, CONSTANT_UTF8_VERBOSE
classFile, debug, SYSTEM_PROPERTY_DEBUG
Constructor and Description |
---|
ConstantReference() |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object object) |
int |
getClassIndex()
Get the index of the constant pool entry containing the
CONSTANT_Class_info of this entry.
|
ConstantClassInfo |
getClassInfo()
Get the class info for this reference.
|
int |
getNameAndTypeIndex()
Get the index of the constant pool entry containing the
CONSTANT_NameAndType_info of this entry.
|
ConstantNameAndTypeInfo |
getNameAndTypeInfo()
Get the name and type info for this reference.
|
java.lang.String |
getVerbose()
Get the verbose description of the content of the constant pool entry.
|
int |
hashCode() |
void |
read(java.io.DataInput in)
Read this structure from the given DataInput.
|
void |
setClassIndex(int classIndex)
Set the index of the constant pool entry containing the
CONSTANT_Class_info of this entry.
|
void |
setNameAndTypeIndex(int nameAndTypeIndex)
Set the index of the constant pool entry containing the
CONSTANT_NameAndType_info of this entry.
|
void |
write(java.io.DataOutput out)
Write this structure to the given DataOutput.
|
create, getTag, getTagVerbose, printAccessFlagsVerbose, skip
debug, getClassFile, getDebug, getLength, printAccessFlags, printAccessFlagsVerbose, printBytes, setClassFile, setDebug
public static final int SIZE
protected int classIndex
protected int nameAndTypeIndex
public java.lang.String getVerbose() throws InvalidByteCodeException
CPInfo
getVerbose
in class CPInfo
InvalidByteCodeException
- if the byte code is invalidpublic int getClassIndex()
public void setClassIndex(int classIndex)
classIndex
- the indexpublic int getNameAndTypeIndex()
public void setNameAndTypeIndex(int nameAndTypeIndex)
nameAndTypeIndex
- the indexpublic ConstantClassInfo getClassInfo() throws InvalidByteCodeException
InvalidByteCodeException
public ConstantNameAndTypeInfo getNameAndTypeInfo() throws InvalidByteCodeException
InvalidByteCodeException
public void read(java.io.DataInput in) throws InvalidByteCodeException, java.io.IOException
AbstractStructure
Excpects DataInput to be in JVM class file format and just before a structure of this kind. No look ahead parsing since the class file format is deterministic.
read
in class AbstractStructure
in
- the DataInput from which to readInvalidByteCodeException
- if the byte code is invalidjava.io.IOException
- if an exception occurs with the DataInputpublic void write(java.io.DataOutput out) throws InvalidByteCodeException, java.io.IOException
AbstractStructure
The written bytes are in JVM class file format.
write
in class AbstractStructure
out
- the DataOutput to which to writeInvalidByteCodeException
- if the structure is internally inconsistentjava.io.IOException
- if an exception occurs with the DataOutput