Class LocalVariableTable
java.lang.Object
org.apache.bcel.classfile.Attribute
org.apache.bcel.classfile.LocalVariableTable
- All Implemented Interfaces:
Cloneable, Iterable<LocalVariable>, Node
This class represents a collection of local variables in a method. This attribute is contained in the Code
attribute.
- See Also:
-
Field Summary
Fields inherited from class Attribute
constant_pool, length, name_index, tagModifier and TypeFieldDescriptionprotected ConstantPoolDeprecated.(since 6.0) will be made private; do not access directly, use getter/setter.protected intDeprecated.(since 6.0) (since 6.0) will be made private; do not access directly, use getter/setter.protected intDeprecated.(since 6.0) will be made private; do not access directly, use getter/setter.protected byteDeprecated.(since 6.0) will be made private; do not access directly, use getter/setter. -
Constructor Summary
ConstructorsConstructorDescriptionLocalVariableTable(int nameIndex, int length, LocalVariable[] localVariableTable, ConstantPool constantPool) Constructs a new LocalVariableTable.Initialize from another object. -
Method Summary
Modifier and TypeMethodDescriptionvoidCalled by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class.copy(ConstantPool constantPool) Creates a deep copy of this attribute.final voiddump(DataOutputStream file) Dumps local variable table attribute to file stream in binary format.final LocalVariablegetLocalVariable(int index) Deprecated.Since 5.2 because multiple variables can share the same slot, use getLocalVariable(int index, int pc) instead.final LocalVariablegetLocalVariable(int index, int pc) Gets the local variable for the given index and program counter.final LocalVariable[]Gets the local variable table.final intGets the table length.iterator()final voidsetLocalVariableTable(LocalVariable[] localVariableTable) Sets the local variable table.final StringtoString()Methods inherited from class Attribute
addAttributeReader, addAttributeReader, clone, getConstantPool, getLength, getName, getNameIndex, getTag, println, readAttribute, readAttribute, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndexModifier and TypeMethodDescriptionstatic voidaddAttributeReader(String name, AttributeReader attributeReader) Deprecated.(6.0) UseAttribute.addAttributeReader(String, UnknownAttributeReader)instead.static voidaddAttributeReader(String name, UnknownAttributeReader unknownAttributeReader) Add an Attribute reader capable of parsing (user-defined) attributes named "name".clone()Use copy() if you want to have a deep copy(), that is, with all references copied correctly.final ConstantPoolGets the constant pool used by this object.final intGets the length of attribute field in bytes.getName()Gets the name of the attribute.final intGets the name index in constant pool of attribute name.final bytegetTag()Gets the tag of attribute, that is, its type.protected static voidPrints a message to stderr if debug mode is enabled.static AttributereadAttribute(DataInput dataInput, ConstantPool constantPool) Reads one attribute using standard eight-byte Code headers.static AttributereadAttribute(DataInput dataInput, ConstantPool constantPool, boolean compactCodeHeader) Reads one attribute using the selected Code header layout.static AttributereadAttribute(DataInputStream dataInputStream, ConstantPool constantPool) Reads one attribute using standard eight-byte Code headers.static voidremoveAttributeReader(String name) Remove attribute readerfinal voidsetConstantPool(ConstantPool constantPool) Sets the constant pool to be used for this object.final voidsetLength(int length) Sets the length in bytes.final voidsetNameIndex(int nameIndex) Sets the name index of attribute.Methods inherited from class Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Iterable
forEach, spliterator
-
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
Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class. That is, the hierarchy of methods, fields, attributes, and other elements forms a tree of objects. -
copy
-
dump
Dumps local variable table attribute to file stream in binary format.- Overrides:
dumpin classAttribute- Parameters:
file- Output file stream.- Throws:
IOException- Thrown if an I/O error occurs.
-
getLocalVariable
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
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
-
iterator
- Specified by:
iteratorin interfaceIterable<LocalVariable>
-
setLocalVariableTable
Sets the local variable table.- Parameters:
localVariableTable- The local variable table to set.
-
toString
-