Class LocalVariableTable

java.lang.Object
org.apache.bcel.classfile.Attribute
org.apache.bcel.classfile.LocalVariableTable
All Implemented Interfaces:
Cloneable, Iterable<LocalVariable>, Node

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

    • LocalVariableTable

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

      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 Details

    • 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)
      Description copied from class: Attribute
      Creates a deep copy of this attribute.
      Specified by:
      copy in class Attribute
      Parameters:
      constantPool - constant pool to save.
      Returns:
      deep copy of this attribute.
    • dump

      public final void dump(DataOutputStream file) throws IOException
      Dumps local variable table attribute to file stream in binary format.
      Overrides:
      dump in class Attribute
      Parameters:
      file - Output file stream.
      Throws:
      IOException - Thrown 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.
      Gets the local variable for the given index.
      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)
      Gets the local variable for the given index and program counter.
      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

      Gets the local variable table.
      Returns:
      Array of local variables of method.
    • getTableLength

      public final int getTableLength()
      Gets the table length.
      Returns:
      The table length.
    • iterator

      Specified by:
      iterator in interface Iterable<LocalVariable>
    • setLocalVariableTable

      public final void setLocalVariableTable(LocalVariable[] localVariableTable)
      Sets the local variable table.
      Parameters:
      localVariableTable - The local variable table to set.
    • toString

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