FileDocCategorySizeDatePackage
LocalVariableTableAttribute.javaAPI DocJ2ME CLDC 1.14413Wed Feb 05 15:56:04 GMT 2003kdp.classparser.attributes

LocalVariableTableAttribute

public class LocalVariableTableAttribute extends Attribute
Encapsulates the LocalVariableTable attribute of a Java class file.
author
Aaron Dietrich
version
$Id: LocalVariableTableAttribute.java,v 1.2 2000/08/14 19:49:11 zmm3876 Exp $ Revision History $Log: LocalVariableTableAttribute.java,v $ Revision 1.2 2000/08/14 19:49:11 zmm3876 *** empty log message *** Revision 1.1 2000/08/09 15:51:47 zmm3876 *** empty log message *** Revision 1.1.1.1 2000/07/07 13:34:24 jrv Initial import of kdp code Revision 1.1.1.1 2000/05/31 19:14:48 ritsun Initial import of kvmdt to CVS Revision 1.1 2000/04/25 00:30:39 ritsun Initial revision

Fields Summary
private int
attributeNameIndex
index into the constant pool table containing the name of this class
private int
attributeLength
length of this attribute in bytes
private int
localVariableTableLength
the length of the attribute
private LocalVariableTable[]
localVariableTable
each 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.

param
iStream the input stream on which to read the class file
param
attributeNameIndex attributeNameIndex member of attribute structure.
param
attributeLength attributeLength member of attribute structure.
exception
IOException pass IOExceptions up

      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.StringtoString(ConstantPoolInfo[] constantPool)
Returns the LocalVariableTableAttribute attribute in a nice easy to read format as a string.

param
constantPool constant pool of the class file
return
String the attribute as a nice easy to read 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;