de.fub.bytecode.generic
Class CPInstruction

java.lang.Object
  |
  +--de.fub.bytecode.generic.Instruction
        |
        +--de.fub.bytecode.generic.CPInstruction
All Implemented Interfaces:
java.lang.Cloneable, IndexedInstruction, java.io.Serializable, TypedInstruction
Direct Known Subclasses:
ANEWARRAY, CHECKCAST, FieldOrMethod, INSTANCEOF, LDC, LDC2_W, MULTIANEWARRAY, NEW

public abstract class CPInstruction
extends Instruction
implements TypedInstruction, IndexedInstruction

Abstract super class for instructions that use an index into the constant pool such as LDC, INVOKEVIRTUAL, etc.

Version:
$Id: CPInstruction.java,v 1.6 2001/07/03 08:20:18 dahm Exp $
Author:
M. Dahm
See Also:
ConstantPoolGen, LDC, INVOKEVIRTUAL, Serialized Form

Field Summary
protected  int index
           
 
Fields inherited from class de.fub.bytecode.generic.Instruction
length, opcode
 
Constructor Summary
protected CPInstruction(short opcode, int index)
           
 
Method Summary
 void dump(java.io.DataOutputStream out)
          Dump instruction as byte code to stream out.
 int getIndex()
           
 Type getType(ConstantPoolGen cpg)
           
protected  void initFromFile(ByteSequence bytes, boolean wide)
          Read needed data (i.e., index) from file.
 void setIndex(int index)
          Set the index to constant pool.
 java.lang.String toString(boolean verbose)
          Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"< constant pool index>">"
 java.lang.String toString(ConstantPool cp)
           
 
Methods inherited from class de.fub.bytecode.generic.Instruction
accept, consumeStack, consumeStack, copy, getLength, getOpcode, getTag, produceStack, produceStack, readInstruction, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

index

protected int index
Constructor Detail

CPInstruction

protected CPInstruction(short opcode,
                        int index)
Parameters:
index - to constant pool
Method Detail

dump

public void dump(java.io.DataOutputStream out)
          throws java.io.IOException
Dump instruction as byte code to stream out.
Overrides:
dump in class Instruction
Parameters:
out - Output stream

toString

public java.lang.String toString(boolean verbose)
Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"< constant pool index>">"
Overrides:
toString in class Instruction
Parameters:
verbose - long/short format switch
Returns:
mnemonic for instruction

toString

public java.lang.String toString(ConstantPool cp)
Overrides:
toString in class Instruction
Returns:
mnemonic for instruction with symbolic references resolved

initFromFile

protected void initFromFile(ByteSequence bytes,
                            boolean wide)
                     throws java.io.IOException
Read needed data (i.e., index) from file.
Overrides:
initFromFile in class Instruction
Parameters:
bytes - input stream
wide - wide prefix?

getIndex

public final int getIndex()
Specified by:
getIndex in interface IndexedInstruction
Returns:
index in constant pool referred by this instruction.

setIndex

public void setIndex(int index)
Set the index to constant pool.
Specified by:
setIndex in interface IndexedInstruction
Parameters:
index - in constant pool.

getType

public Type getType(ConstantPoolGen cpg)
Specified by:
getType in interface TypedInstruction
Returns:
type related with this instruction.