## org.apache.bcel.classfile
Class LocalVariable

    java.lang.Object
      org.apache.bcel.classfile.LocalVariable

All Implemented Interfaces:
  Serializable, Cloneable, Node, Constants

    public final class LocalVariable

extends 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 386056 2006-03-15 11:31:56Z tcurdt $
See Also:
  `LocalVariableTable`, Serialized Form

Field Summary

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(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()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

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

    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(DataOutputStream file)
                    throws IOException

  Dump local variable to file stream in binary format.

  Parameters:
    `file` - Output file stream
  Throws:
    `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 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.

### 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 String toString()

  Overrides:
    `toString` in class `Object`
  Returns:
    string representation.

### copy

    public LocalVariable copy()

  Returns:
    deep copy of this object

Copyright © 2002-2006 Apache Software Foundation. All Rights Reserved.