Class LocalVariableTable

  • All Implemented Interfaces:
    java.lang.Cloneable, java.lang.Iterable<LocalVariable>, Node

    public class LocalVariableTable
    extends Attribute
    implements java.lang.Iterable<LocalVariable>
    This class represents colection of local variables in a method. This attribute is contained in the Code attribute.
    See Also:
    Code, LocalVariable
    • Field Detail

    • Constructor Detail

      • LocalVariableTable

        LocalVariableTable​(int nameIndex,
                           int length,
                           java.io.DataInput input,
                           ConstantPool constantPool)
                    throws java.io.IOException
        Construct object from input stream.
        Parameters:
        nameIndex - Index in constant pool
        length - Content length in bytes
        input - Input stream
        constantPool - Array of constants
        Throws:
        java.io.IOException - if an I/O error occurs.
      • LocalVariableTable

        public LocalVariableTable​(int nameIndex,
                                  int length,
                                  LocalVariable[] localVariableTable,
                                  ConstantPool constantPool)
        Parameters:
        nameIndex - Index in constant pool to 'LocalVariableTable'
        length - Content length in bytes
        localVariableTable - Table of local variables
        constantPool - Array of constants
      • LocalVariableTable

        public LocalVariableTable​(LocalVariableTable c)
        Initialize from another object. Note that both objects use the same references (shallow copy). Use copy() for a physical copy.
        Parameters:
        c - Source to copy.
    • Method Detail

      • accept

        public void accept​(Visitor v)
        Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.
        Specified by:
        accept in interface Node
        Specified by:
        accept in class Attribute
        Parameters:
        v - Visitor object
      • copy

        public Attribute copy​(ConstantPool constantPool)
        Specified by:
        copy in class Attribute
        Parameters:
        constantPool - constant pool to save.
        Returns:
        deep copy of this attribute
      • dump

        public final void dump​(java.io.DataOutputStream file)
                        throws java.io.IOException
        Dump local variable table attribute to file stream in binary format.
        Overrides:
        dump in class Attribute
        Parameters:
        file - Output file stream
        Throws:
        java.io.IOException - if an I/O error occurs.
      • getLocalVariable

        @Deprecated
        public final LocalVariable getLocalVariable​(int index)
        Deprecated.
        since 5.2 because multiple variables can share the same slot, use getLocalVariable(int index, int pc) instead.
        Parameters:
        index - the variable slot
        Returns:
        the first LocalVariable that matches the slot or null if not found
      • getLocalVariable

        public final LocalVariable getLocalVariable​(int index,
                                                    int pc)
        Parameters:
        index - the variable slot
        pc - the current pc that this variable is alive
        Returns:
        the LocalVariable that matches or null if not found
      • getLocalVariableTable

        public final LocalVariable[] getLocalVariableTable()
        Returns:
        Array of local variables of method.
      • getTableLength

        public final int getTableLength()
      • iterator

        public java.util.Iterator<LocalVariable> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<LocalVariable>
      • setLocalVariableTable

        public final void setLocalVariableTable​(LocalVariable[] localVariableTable)
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class Attribute
        Returns:
        String representation.