org.apache.bcel.classfile

Class LocalVariableTable

Implemented Interfaces:
Cloneable, Node, Serializable

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 386056 2006-03-15 11:31:56Z tcurdt $
Author:
M. Dahm
See Also:
Code, LocalVariable

Field Summary

private LocalVariable[]
local_variable_table
private int
local_variable_table_length

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

constant_pool, length, name_index, readers, tag

Constructor Summary

LocalVariableTable(int name_index, int length, DataInputStream file, ConstantPool constant_pool)
Construct object from file stream.
LocalVariableTable(int name_index, int length, LocalVariable[] local_variable_table, ConstantPool constant_pool)
LocalVariableTable(LocalVariableTable c)
Initialize from another object.

Method Summary

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

accept, addAttributeReader, clone, copy, dump, getConstantPool, getLength, getNameIndex, getTag, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndex, toString

Field Details

local_variable_table

private LocalVariable[] local_variable_table

local_variable_table_length

private int local_variable_table_length

Constructor Details

LocalVariableTable

(package private)  LocalVariableTable(int name_index,
                                      int length,
                                      DataInputStream file,
                                      ConstantPool constant_pool)
            throws IOException
Construct object from file stream.
Parameters:
name_index - Index in constant pool
length - Content length in bytes
file - Input stream
constant_pool - Array of constants

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

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.

Method Details

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
Overrides:
accept in interface Attribute
Parameters:
v - Visitor object

copy

public Attribute copy(ConstantPool _constant_pool)
Overrides:
copy in interface Attribute
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 interface Attribute
Parameters:
file - Output file stream

getLocalVariable

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:
first matching variable using index

getLocalVariable

public final LocalVariable getLocalVariable(int index,
                                            int pc)
Parameters:
index - the variable slot
pc - the current pc that this variable is alive
Returns:
matching variable using index when variable is used at supplied pc

getLocalVariableTable

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

getTableLength

public final int getTableLength()

setLocalVariableTable

public final void setLocalVariableTable(LocalVariable[] local_variable_table)

toString

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