## org.apache.bcel.generic
Class LocalVariableInstruction

    java.lang.Object
      org.apache.bcel.generic.Instruction
          org.apache.bcel.generic.LocalVariableInstruction

All Implemented Interfaces:
  Serializable, Cloneable, IndexedInstruction, TypedInstruction

Direct Known Subclasses:
  IINC, LoadInstruction, StoreInstruction

    public abstract class LocalVariableInstruction

extends Instruction
implements TypedInstruction, IndexedInstruction

Abstract super class for instructions dealing with local variables.

Version:
  $Id: LocalVariableInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
See Also:
  Serialized Form

Field Summary
`protected int` `n`

Fields inherited from class org.apache.bcel.generic.Instruction
`length, opcode`

Constructor Summary
`protected` `LocalVariableInstruction(short opcode, short c_tag, int n)`

Method Summary
`void` `dump(DataOutputStream out)` Dump instruction as byte code to stream out.
`short` `getCanonicalTag()`
`int` `getIndex()`
`Type` `getType(ConstantPoolGen cp)` Returns the type associated with the instruction - in case of ALOAD or ASTORE Type.OBJECT is returned.
`protected void` `initFromFile(ByteSequence bytes, boolean wide)` Read needed data (e.g.
`void` `setIndex(int n)` Set the local variable index
`String` `toString(boolean verbose)` Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"< local variable index>">"

Methods inherited from class org.apache.bcel.generic.Instruction
`accept, consumeStack, copy, equals, getComparator, getLength, getName, getOpcode, produceStack, readInstruction, setComparator, toString, toString`

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

Field Detail

### n

    protected int n

Constructor Detail

### LocalVariableInstruction

    protected LocalVariableInstruction(short opcode,
                                       short c_tag,
                                       int n)

Parameters:
  `opcode` - Instruction opcode
  `c_tag` - Instruction number for compact version, ALOAD_0, e.g.
  `n` - local variable index (unsigned short)

Method Detail

### dump

    public void dump(DataOutputStream out)
              throws IOException

  Dump instruction as byte code to stream out.

  Overrides:
    `dump` in class `Instruction`
  Parameters:
    `out` - Output stream
  Throws:
    `IOException`

### toString

    public String toString(boolean verbose)

  Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"< local variable index>">"

  Overrides:
    `toString` in class `Instruction`
  Parameters:
    `verbose` - long/short format switch
  Returns:
    mnemonic for instruction

### initFromFile

    protected void initFromFile(ByteSequence bytes,
                                boolean wide)
                         throws IOException

  Read needed data (e.g. index) from file. PRE: (ILOAD <= tag <= ALOAD_3) || (ISTORE <= tag <= ASTORE_3)

  Overrides:
    `initFromFile` in class `Instruction`
  Parameters:
    `bytes` - byte sequence to read from
    `wide` - "wide" instruction flag
  Throws:
    `IOException`

### getIndex

    public final int getIndex()

  Specified by:
    `getIndex` in interface `IndexedInstruction`
  Returns:
    local variable index referred by this instruction.

### setIndex

    public void setIndex(int n)

  Set the local variable index

  Specified by:
    `setIndex` in interface `IndexedInstruction`

### getCanonicalTag

    public short getCanonicalTag()

  Returns:
    canonical tag for instruction, e.g., ALOAD for ALOAD_0

### getType

    public Type getType(ConstantPoolGen cp)

  Returns the type associated with the instruction - in case of ALOAD or ASTORE Type.OBJECT is returned. This is just a bit incorrect, because ALOAD and ASTORE may work on every ReferenceType (including Type.NULL) and ASTORE may even work on a ReturnaddressType .

  Specified by:
    `getType` in interface `TypedInstruction`
  Returns:
    type associated with the instruction

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