org.apache.bcel.classfile

## Class LocalVariableTable

- java.lang.Object
- - org.apache.bcel.classfile.Attribute
  - - org.apache.bcel.classfile.LocalVariableTable

- All Implemented Interfaces:
    Cloneable, Node

      public class LocalVariableTable
      extends Attribute

  This class represents colection of local variables in a method. This attribute is contained in the Code attribute.
  Version:
    $Id: LocalVariableTable.java 1806200 2017-08-25 16:33:06Z ggregory $
  See Also:
    `Code`, `LocalVariable`

- - ### Field Summary

    - ### Fields inherited from class org.apache.bcel.classfile.Attribute

      `constant_pool, length, name_index, tag`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LocalVariableTable(int name_index, int length, LocalVariable[] local_variable_table, ConstantPool constant_pool)`
    `LocalVariableTable(LocalVariableTable c)` Initialize from another object.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `accept(Visitor v)` Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class.
    `Attribute` | `copy(ConstantPool _constant_pool)`
    `void` | `dump(DataOutputStream file)` Dump local variable table attribute to file stream in binary format.
    `LocalVariable` | `getLocalVariable(int index)` Deprecated. since 5.2 because multiple variables can share the same slot, use getLocalVariable(int index, int pc) instead.
    `LocalVariable` | `getLocalVariable(int index, int pc)`
    `LocalVariable[]` | `getLocalVariableTable()`
    `int` | `getTableLength()`
    `void` | `setLocalVariableTable(LocalVariable[] local_variable_table)`
    `String` | `toString()`

    - ### Methods inherited from class org.apache.bcel.classfile.Attribute

      `addAttributeReader, addAttributeReader, clone, getConstantPool, getLength, getName, getNameIndex, getTag, readAttribute, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndex`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### 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.

    - #### LocalVariableTable

          public LocalVariableTable(int name_index,
                                    int length,
                                    LocalVariable[] local_variable_table,
                                    ConstantPool constant_pool)

      Parameters:
        `name_index` - Index in constant pool to `LocalVariableTable'
        `length` - Content length in bytes
        `local_variable_table` - Table of local variables
        `constant_pool` - Array of constants

  - ### Method Detail

    - #### accept

          public void accept(Visitor v)

      Called by objects that are traversing the nodes of the tree implicitely 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

    - #### 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`

    - #### getLocalVariableTable

          public final LocalVariable[] getLocalVariableTable()

      Returns:
        Array of local variables of method.

    - #### 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

    - #### setLocalVariableTable

          public final void setLocalVariableTable(LocalVariable[] local_variable_table)

    - #### toString

          public final String toString()

      Overrides:
        `toString` in class `Attribute`
      Returns:
        String representation.

    - #### copy

          public Attribute copy(ConstantPool _constant_pool)

      Specified by:
        `copy` in class `Attribute`
      Returns:
        deep copy of this attribute

    - #### getTableLength

          public final int getTableLength()

Copyright © 2004–2017 The Apache Software Foundation. All rights reserved.