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)
      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)
      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
      Dump local variable table attribute to file stream in binary format.
      Overrides:
      dump in class Attribute
      Parameters:
      file - Output file stream
      Throws:
      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

      Returns:
      Array of local variables of method.
    • getTableLength

      public final int getTableLength()
    • iterator

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

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

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