org.apache.bcel.generic
Class LocalVariableInstruction

java.lang.Object
  extended by org.apache.bcel.generic.Instruction
      extended by 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.