org.apache.bcel.classfile
Class LocalVariable

java.lang.Object
  extended by org.apache.bcel.classfile.LocalVariable
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Node, Constants

public final class LocalVariable
extends java.lang.Object
implements Constants, java.lang.Cloneable, Node, java.io.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 386056 2006-03-15 11:31:56Z tcurdt $
Author:
M. Dahm
See Also:
LocalVariableTable, Serialized Form

Field Summary
private  ConstantPool constant_pool
           
private  int index
           
private  int length
           
private  int name_index
           
private  int signature_index
           
private  int start_pc
           
 
Fields inherited from interface org.apache.bcel.Constants
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACCESS_NAMES, 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, ATTR_ANNOTATION_DEFAULT, ATTR_CODE, ATTR_CONSTANT_VALUE, ATTR_DEPRECATED, ATTR_EXCEPTIONS, ATTR_INNER_CLASSES, ATTR_LINE_NUMBER_TABLE, ATTR_LOCAL_VARIABLE_TABLE, ATTR_PMG, ATTR_RUNTIMEINVISIBLE_ANNOTATIONS, ATTR_RUNTIMEINVISIBLE_PARAMETER_ANNOTATIONS, ATTR_RUNTIMEVISIBLE_ANNOTATIONS, ATTR_RUNTIMEVISIBLE_PARAMETER_ANNOTATIONS, ATTR_SIGNATURE, ATTR_SOURCE_FILE, ATTR_STACK_MAP, ATTR_SYNTHETIC, ATTR_UNKNOWN, ATTRIBUTE_NAMES, 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_NameAndType, CONSTANT_NAMES, 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, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_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, GETFIELD_QUICK, GETFIELD_QUICK_W, GETFIELD2_QUICK, GETSTATIC, GETSTATIC_QUICK, GETSTATIC2_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, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, 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, INVOKEVIRTUAL_QUICK, INVOKEVIRTUAL_QUICK_W, INVOKEVIRTUALOBJECT_QUICK, 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, LDC_QUICK, LDC_W, LDC_W_QUICK, LDC2_W, LDC2_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, MAJOR_1_4, MAJOR_1_5, MAX_ACC_FLAG, MAX_BYTE, MAX_CODE_SIZE, MAX_CP_ENTRIES, MAX_SHORT, MINOR, MINOR_1_1, MINOR_1_2, MINOR_1_3, MINOR_1_4, MINOR_1_5, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, MULTIANEWARRAY_QUICK, NEW, NEW_QUICK, NEWARRAY, NO_OF_OPERANDS, NOP, OPCODE_NAMES, POP, POP2, PRODUCE_STACK, PUSH, PUTFIELD, PUTFIELD_QUICK, PUTFIELD_QUICK_W, PUTFIELD2_QUICK, PUTSTATIC, PUTSTATIC_QUICK, PUTSTATIC2_QUICK, RESERVED, RET, RETURN, SALOAD, SASTORE, SHORT_TYPE_NAMES, SIPUSH, STATIC_INITIALIZER_NAME, SWAP, SWITCH, 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, TABLESWITCH, TYPE_NAMES, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE, WIDE
 
Constructor Summary
LocalVariable(java.io.DataInputStream file, ConstantPool constant_pool)
          Construct object from file stream.
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(java.io.DataOutputStream file)
          Dump local variable to file stream in binary format.
 ConstantPool getConstantPool()
           
 int getIndex()
           
 int getLength()
           
 java.lang.String getName()
           
 int getNameIndex()
           
 java.lang.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)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

start_pc

private int start_pc

length

private int length

name_index

private int name_index

signature_index

private int signature_index

index

private int index

constant_pool

private ConstantPool constant_pool
Constructor Detail

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.


LocalVariable

LocalVariable(java.io.DataInputStream file,
              ConstantPool constant_pool)
        throws java.io.IOException
Construct object from file stream.

Parameters:
file - Input stream
Throws:
java.io.IOException

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

dump

public final void dump(java.io.DataOutputStream file)
                throws java.io.IOException
Dump local variable to file stream in binary format.

Parameters:
file - Output file stream
Throws:
java.io.IOException

getConstantPool

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

getLength

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

getName

public final java.lang.String getName()
Returns:
Variable name.

getNameIndex

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

getSignature

public final java.lang.String getSignature()
Returns:
Signature.

getSignatureIndex

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

getIndex

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

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.

setLength

public final void setLength(int length)
Parameters:
length - the length of this local variable

setNameIndex

public final void setNameIndex(int name_index)
Parameters:
name_index - the index into the constant pool for the name of this variable

setSignatureIndex

public final void setSignatureIndex(int signature_index)
Parameters:
signature_index - the index into the constant pool for the signature of this variable

setIndex

public final void setIndex(int index)
Parameters:
index - the index in the local variable table of this variable

setStartPC

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

toString

public final java.lang.String toString()
Overrides:
toString in class java.lang.Object
Returns:
string representation.

copy

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