org.apache.bcel.classfile

## Class LocalVariable

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

- All Implemented Interfaces:
    Cloneable, Node, Constants

      public final class LocalVariable
      extends Object
      implements Cloneable, Node, Constants

  This class represents a local variable within a method. It contains its scope, name, signature and index on the method's frame.
  Version:
    $Id$
  See Also:
    `LocalVariableTable`

- - ### 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, INVOKEDYNAMIC, 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

    Constructors
    Constructor and Description
    `LocalVariable(int start_pc, int length, int name_index, int signature_index, int index, ConstantPool constant_pool)`
    `LocalVariable(int start_pc, int length, int name_index, int signature_index, int index, ConstantPool constant_pool, int orig_index)`
    `LocalVariable(LocalVariable c)` Initialize from another object.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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()`
    `int` | `getOrigIndex()`
    `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

    - #### LocalVariable

          public LocalVariable(int start_pc,
                               int length,
                               int name_index,
                               int signature_index,
                               int index,
                               ConstantPool constant_pool,
                               int orig_index)

      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
        `orig_index` - Variable is `index'th local variable on the method's frame prior to any changes

  - ### 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

    - #### getOrigIndex

          public final int getOrigIndex()

      Returns:
        index of register where variable was originally 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 © 2004–2019 The Apache Software Foundation. All rights reserved.