LocalVariableTableAttributepublic class LocalVariableTableAttribute extends Attribute Encapsulates the LocalVariableTable attribute of a Java class file. |
Fields Summary |
---|
private int | attributeNameIndexindex into the constant pool table containing the name
of this class | private int | attributeLengthlength of this attribute in bytes | private int | localVariableTableLengththe length of the attribute | private LocalVariableTable[] | localVariableTableeach entry indicates a range of code array offsets within which a local
variable has a value |
Constructors Summary |
---|
public LocalVariableTableAttribute(DataInputStream iStream, int attributeNameIndex, int attributeLength)Constructor. Reads the LocalVariableTableAttribute attribute from
the class file.
this.attributeNameIndex = attributeNameIndex;
this.attributeLength = attributeLength;
//read in the length of the LocalVariableTable array
localVariableTableLength = iStream.readUnsignedShort ();
//allocate space for and read in the LocalVariableTable
localVariableTable = new LocalVariableTable[localVariableTableLength];
for (int lcv = 0; lcv < localVariableTableLength; ++lcv)
{
localVariableTable[lcv] = new LocalVariableTable ();
localVariableTable[lcv].startPC = iStream.readUnsignedShort ();
localVariableTable[lcv].length = iStream.readUnsignedShort ();
localVariableTable[lcv].nameIndex = iStream.readUnsignedShort ();
localVariableTable[lcv].descriptorIndex = iStream.readUnsignedShort ();
localVariableTable[lcv].index = iStream.readUnsignedShort ();
}
|
Methods Summary |
---|
public LocalVariableTable[] | getLocalVariableTable()
return localVariableTable;
| public java.lang.String | toString(ConstantPoolInfo[] constantPool)Returns the LocalVariableTableAttribute attribute in a nice easy to
read format as a string.
ConstantUtf8Info utf8Info;
String s = new String ("");
utf8Info = (ConstantUtf8Info) constantPool[attributeNameIndex];
s = s + "\t" + utf8Info.toString ();
for (int lcv = 0; lcv < localVariableTableLength; ++lcv)
{
utf8Info = (ConstantUtf8Info)
constantPool[localVariableTable[lcv].nameIndex];
s = s + "\n\t\t\t\tName =\t" + utf8Info.toString ();
utf8Info = (ConstantUtf8Info)
constantPool[localVariableTable[lcv].descriptorIndex];
s = s + "\n\t\t\t\tClass=\t" + StringParser.parseDataType (utf8Info.toString ());
}
return s;
|
|