org.apache.bcel.classfile

Class LocalVariable

Implemented Interfaces:
Cloneable, Constants, Node, Serializable

public final class LocalVariable
extends java.lang.Object
implements Constants, Cloneable, Node, Serializable

This class represents a local variable within a method. It contains its scope, name, signature and index on the method's frame.
Version:
$Id: LocalVariable.java,v 1.3 2002/07/11 19:39:04 mdahm Exp $
Author:
M. Dahm
See Also:
LocalVariableTable

Fields inherited from interface org.apache.bcel.Constants

AALOAD, AASTORE, ACCESS_NAMES, ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ANEWARRAY_QUICK, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTRIBUTE_NAMES, ATTR_CODE, ATTR_CONSTANT_VALUE, ATTR_DEPRECATED, ATTR_EXCEPTIONS, ATTR_INNER_CLASSES, ATTR_LINE_NUMBER_TABLE, ATTR_LOCAL_VARIABLE_TABLE, ATTR_PMG, ATTR_SIGNATURE, ATTR_SOURCE_FILE, ATTR_STACK_MAP, ATTR_SYNTHETIC, ATTR_UNKNOWN, BALOAD, BASTORE, BIPUSH, BREAKPOINT, CALOAD, CASTORE, CHECKCAST, CHECKCAST_QUICK, CLASS_TYPE_NAMES, CONSTANT_Class, CONSTANT_Double, CONSTANT_Fieldref, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodref, CONSTANT_Long, CONSTANT_Methodref, CONSTANT_NAMES, CONSTANT_NameAndType, CONSTANT_String, CONSTANT_Utf8, CONSTRUCTOR_NAME, CONSUME_STACK, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP2, DUP2_X1, DUP2_X2, DUP_X1, DUP_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETFIELD2_QUICK, GETFIELD_QUICK, GETFIELD_QUICK_W, GETSTATIC, GETSTATIC2_QUICK, GETSTATIC_QUICK, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IINC, ILLEGAL_OPCODE, ILLEGAL_TYPE, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMPDEP1, IMPDEP2, IMUL, INEG, INSTANCEOF, INSTANCEOF_QUICK, INT2BYTE, INT2CHAR, INT2SHORT, INTERFACES_IMPLEMENTED_BY_ARRAYS, INVOKEINTERFACE, INVOKEINTERFACE_QUICK, INVOKENONVIRTUAL, INVOKENONVIRTUAL_QUICK, INVOKESPECIAL, INVOKESTATIC, INVOKESTATIC_QUICK, INVOKESUPER_QUICK, INVOKEVIRTUAL, INVOKEVIRTUALOBJECT_QUICK, INVOKEVIRTUAL_QUICK, INVOKEVIRTUAL_QUICK_W, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, ITEM_Bogus, ITEM_Double, ITEM_Float, ITEM_InitObject, ITEM_Integer, ITEM_Long, ITEM_NAMES, ITEM_NewObject, ITEM_Null, ITEM_Object, IUSHR, IXOR, JSR, JSR_W, KNOWN_ATTRIBUTES, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC2_W, LDC2_W_QUICK, LDC_QUICK, LDC_W, LDC_W_QUICK, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MAJOR, MAJOR_1_1, MAJOR_1_2, MAJOR_1_3, MAX_ACC_FLAG, MAX_BYTE, MAX_CODE_SIZE, MAX_CP_ENTRIES, MAX_SHORT, MINOR, MINOR_1_1, MINOR_1_2, MINOR_1_3, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, MULTIANEWARRAY_QUICK, NEW, NEWARRAY, NEW_QUICK, NOP, NO_OF_OPERANDS, OPCODE_NAMES, POP, POP2, PRODUCE_STACK, PUSH, PUTFIELD, PUTFIELD2_QUICK, PUTFIELD_QUICK, PUTFIELD_QUICK_W, PUTSTATIC, PUTSTATIC2_QUICK, PUTSTATIC_QUICK, RESERVED, RET, RETURN, SALOAD, SASTORE, SHORT_TYPE_NAMES, SIPUSH, STATIC_INITIALIZER_NAME, SWAP, SWITCH, TABLESWITCH, TYPE_NAMES, TYPE_OF_OPERANDS, T_ADDRESS, T_ARRAY, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_OBJECT, T_REFERENCE, T_SHORT, T_UNKNOWN, T_VOID, UNDEFINED, UNPREDICTABLE, WIDE

Constructor Summary

LocalVariable(int start_pc, int length, int name_index, int signature_index, int index, ConstantPool constant_pool)
LocalVariable(LocalVariable 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.
LocalVariable
copy()
void
dump(DataOutputStream file)
Dump local variable to file stream in binary format.
ConstantPool
getConstantPool()
int
getIndex()
int
getLength()
String
getName()
int
getNameIndex()
String
getSignature()
int
getSignatureIndex()
int
getStartPC()
void
setConstantPool(ConstantPool constant_pool)
void
setIndex(int index)
void
setLength(int length)
void
setNameIndex(int name_index)
void
setSignatureIndex(int signature_index)
void
setStartPC(int start_pc)
String
toString()

Constructor Details

LocalVariable

public LocalVariable(int start_pc,
                     int length,
                     int name_index,
                     int signature_index,
                     int index,
                     ConstantPool constant_pool)
Parameters:
start_pc - Range in which the variable
length - ... is valid
name_index - Index in constant pool of variable name
signature_index - Index of variable's signature
index - Variable is `index'th local variable on the method's frame
constant_pool - Array of constants

LocalVariable

public LocalVariable(LocalVariable 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
Parameters:
v - Visitor object

copy

public LocalVariable copy()
Returns:
deep copy of this object

dump

public final void dump(DataOutputStream file)
            throws IOException
Dump local variable to file stream in binary format.
Parameters:
file - Output file stream

getConstantPool

public final ConstantPool getConstantPool()
Returns:
Constant pool used by this object.

getIndex

public final int getIndex()
Returns:
index of register where variable is stored

getLength

public final int getLength()
Returns:
Variable is valid within getStartPC() .. getStartPC()+getLength()

getName

public final String getName()
Returns:
Variable name.

getNameIndex

public final int getNameIndex()
Returns:
Index in constant pool of variable name.

getSignature

public final String getSignature()
Returns:
Signature.

getSignatureIndex

public final int getSignatureIndex()
Returns:
Index in constant pool of variable signature.

getStartPC

public final int getStartPC()
Returns:
Start of range where he variable is valid

setConstantPool

public final void setConstantPool(ConstantPool constant_pool)
Parameters:
constant_pool - Constant pool to be used for this object.

setIndex

public final void setIndex(int index)
Parameters:

setLength

public final void setLength(int length)
Parameters:

setNameIndex

public final void setNameIndex(int name_index)
Parameters:

setSignatureIndex

public final void setSignatureIndex(int signature_index)
Parameters:

setStartPC

public final void setStartPC(int start_pc)
Parameters:
start_pc - Specify range where the local variable is valid.

toString

public final String toString()
Returns:
string representation.