Class LocalVariable
java.lang.Object
org.apache.bcel.classfile.LocalVariable
This class represents a local variable within a method. It contains its scope, name, signature and index on the
method's frame. It is used both to represent an element of the LocalVariableTable as well as an element of the
LocalVariableTypeTable. The nomenclature used here may be a bit confusing; while the two items have the same layout
in a class file, a LocalVariableTable attribute contains a descriptor_index, not a signatureIndex. The
LocalVariableTypeTable attribute does have a signatureIndex.
- See Also:
-
Field Summary
Fields inherited from interface 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
ConstructorsConstructorDescriptionLocalVariable(int startPc, int length, int nameIndex, int signatureIndex, int index, ConstantPool constantPool) Constructs a LocalVariable.LocalVariable(int startPc, int length, int nameIndex, int signatureIndex, int index, ConstantPool constantPool, int origIndex) Constructs a LocalVariable.LocalVariable(LocalVariable localVariable) Initializes from another LocalVariable. -
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()Creates a deep copy of this object.voiddump(DataOutputStream dataOutputStream) Dumps local variable to file stream in binary format.Gets the constant pool used by this object.intgetIndex()Gets the index of register where variable is stored.intGets the length of validity.getName()Gets the variable name.intGets the index in constant pool of variable name.intGets the index of register where variable was originally stored.Gets the signature.intGets the index in constant pool of variable signature.intGets the start of range where the variable is valid.voidsetConstantPool(ConstantPool constantPool) Sets the constant pool to be used for this object.voidsetIndex(int index) Sets the index in the local variable table of this variable.voidsetLength(int length) Sets the length of this local variable.voidsetNameIndex(int nameIndex) Sets the index into the constant pool for the name of this variable.voidsetSignatureIndex(int signatureIndex) Sets the index into the constant pool for the signature of this variable.voidsetStartPC(int startPc) Sets the range where the local variable is valid.toString()Gets the string representation.
-
Constructor Details
-
LocalVariable
public LocalVariable(int startPc, int length, int nameIndex, int signatureIndex, int index, ConstantPool constantPool) Constructs a LocalVariable.- Parameters:
startPc- Range in which the variable is valid.length- length of validity.nameIndex- Index in constant pool of variable name.signatureIndex- Index of variable's signature.index- Variable is 'index'th local variable on the method's frame.constantPool- Array of constants.
-
LocalVariable
public LocalVariable(int startPc, int length, int nameIndex, int signatureIndex, int index, ConstantPool constantPool, int origIndex) Constructs a LocalVariable.- Parameters:
startPc- Range in which the variable is valid.length- length of validity.nameIndex- Index in constant pool of variable name.signatureIndex- Index of variable's signature.index- Variable is 'index'th local variable on the method's frame.constantPool- Array of constants.origIndex- Variable is 'index'th local variable on the method's frame prior to any changes.
-
LocalVariable
Initializes from another LocalVariable. Note that both objects use the same references (shallow copy). Use copy() for a physical copy.- Parameters:
localVariable- Another LocalVariable.
-
-
Method Details
-
accept
-
copy
-
dump
Dumps local variable to file stream in binary format.- Parameters:
dataOutputStream- Output file stream.- Throws:
IOException- if an I/O error occurs.- See Also:
-
getConstantPool
Gets the constant pool used by this object.- Returns:
- Constant pool used by this object.
-
getIndex
Gets the index of register where variable is stored.- Returns:
- index of register where variable is stored.
-
getLength
Gets the length of validity.- Returns:
- Variable is valid within getStartPC() .. getStartPC()+getLength().
-
getName
-
getNameIndex
Gets the index in constant pool of variable name.- Returns:
- Index in constant pool of variable name.
-
getOrigIndex
Gets the index of register where variable was originally stored.- Returns:
- index of register where variable was originally stored.
-
getSignature
-
getSignatureIndex
Gets the index in constant pool of variable signature.- Returns:
- Index in constant pool of variable signature.
-
getStartPC
Gets the start of range where the variable is valid.- Returns:
- Start of range where the variable is valid.
-
setConstantPool
Sets the constant pool to be used for this object.- Parameters:
constantPool- Constant pool to be used for this object.
-
setIndex
Sets the index in the local variable table of this variable.- Parameters:
index- the index in the local variable table of this variable.
-
setLength
Sets the length of this local variable.- Parameters:
length- the length of this local variable.
-
setNameIndex
Sets the index into the constant pool for the name of this variable.- Parameters:
nameIndex- the index into the constant pool for the name of this variable.
-
setSignatureIndex
Sets the index into the constant pool for the signature of this variable.- Parameters:
signatureIndex- the index into the constant pool for the signature of this variable.
-
setStartPC
Sets the range where the local variable is valid.- Parameters:
startPc- Specify range where the local variable is valid.
-
toString
-