Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.bcel.generic
Class Instruction  view Instruction download Instruction.java

java.lang.Object
  extended byorg.apache.bcel.generic.Instruction
All Implemented Interfaces:
java.lang.Cloneable, java.io.Serializable
Direct Known Subclasses:
ACONST_NULL, ArithmeticInstruction, ArrayInstruction, ARRAYLENGTH, ATHROW, BIPUSH, BranchInstruction, BREAKPOINT, ConversionInstruction, CPInstruction, DCMPG, DCMPL, DCONST, FCMPG, FCMPL, FCONST, ICONST, IMPDEP1, IMPDEP2, LCMP, LCONST, LocalVariableInstruction, MONITORENTER, MONITOREXIT, NEWARRAY, NOP, RET, ReturnInstruction, SIPUSH, StackInstruction

public abstract class Instruction
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable

Abstract super class for all Java byte codes.

Version:
$Id: Instruction.java 386056 2006-03-15 11:31:56Z tcurdt $

Field Summary
private static InstructionComparator cmp
           
protected  short length
           
protected  short opcode
           
 
Constructor Summary
(package private) Instruction()
          Empty constructor needed for the Class.newInstance() statement in Instruction.readInstruction().
  Instruction(short opcode, short length)
           
 
Method Summary
abstract  void accept(Visitor v)
          Call corresponding visitor method(s).
private static java.lang.String className(short opcode)
           
 int consumeStack(ConstantPoolGen cpg)
          This method also gives right results for instructions whose effect on the stack depends on the constant pool entry they reference.
 Instruction copy()
          Use with caution, since `BranchInstruction's have a `target' reference which is not copied correctly (only basic types are).
(package private)  void dispose()
          Some instructions may be reused, so don't do anything by default.
 void dump(java.io.DataOutputStream out)
          Dump instruction as byte code to stream out.
 boolean equals(java.lang.Object that)
          Check for equality, delegated to comparator
static InstructionComparator getComparator()
          Get Comparator object used in the equals() method to determine equality of instructions.
 int getLength()
           
 java.lang.String getName()
           
 short getOpcode()
           
protected  void initFromFile(org.apache.bcel.util.ByteSequence bytes, boolean wide)
          Read needed data (e.g.
 int produceStack(ConstantPoolGen cpg)
          This method also gives right results for instructions whose effect on the stack depends on the constant pool entry they reference.
static Instruction readInstruction(org.apache.bcel.util.ByteSequence bytes)
          Read an instruction from (byte code) input stream and return the appropiate object.
static void setComparator(InstructionComparator c)
          Set comparator to be used for equals().
private  void setOpcode(short opcode)
          Needed in readInstruction.
 java.lang.String toString()
          Convert this Object to a human-readable String.
 java.lang.String toString(boolean verbose)
          Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")"
 java.lang.String toString(org.apache.bcel.classfile.ConstantPool cp)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

length

protected short length

opcode

protected short opcode

cmp

private static InstructionComparator cmp
Constructor Detail

Instruction

Instruction()
Empty constructor needed for the Class.newInstance() statement in Instruction.readInstruction(). Not to be used otherwise.


Instruction

public Instruction(short opcode,
                   short length)
Method Detail

dump

public void dump(java.io.DataOutputStream out)
          throws java.io.IOException
Dump instruction as byte code to stream out.


getName

public java.lang.String getName()

toString

public java.lang.String toString(boolean verbose)
Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")"


toString

public java.lang.String toString()
Description copied from class: java.lang.Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() 55 and such.

It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).


toString

public java.lang.String toString(org.apache.bcel.classfile.ConstantPool cp)

copy

public Instruction copy()
Use with caution, since `BranchInstruction's have a `target' reference which is not copied correctly (only basic types are). This also applies for `Select' instructions with their multiple branch targets.


initFromFile

protected void initFromFile(org.apache.bcel.util.ByteSequence bytes,
                            boolean wide)
                     throws java.io.IOException
Read needed data (e.g. index) from file.


readInstruction

public static final Instruction readInstruction(org.apache.bcel.util.ByteSequence bytes)
                                         throws java.io.IOException
Read an instruction from (byte code) input stream and return the appropiate object.


className

private static final java.lang.String className(short opcode)

consumeStack

public int consumeStack(ConstantPoolGen cpg)
This method also gives right results for instructions whose effect on the stack depends on the constant pool entry they reference.


produceStack

public int produceStack(ConstantPoolGen cpg)
This method also gives right results for instructions whose effect on the stack depends on the constant pool entry they reference.


getOpcode

public short getOpcode()

getLength

public int getLength()

setOpcode

private void setOpcode(short opcode)
Needed in readInstruction.


dispose

void dispose()
Some instructions may be reused, so don't do anything by default.


accept

public abstract void accept(Visitor v)
Call corresponding visitor method(s). The order is: Call visitor methods of implemented interfaces first, then call methods according to the class hierarchy in descending order, i.e., the most specific visitXXX() call comes last.


getComparator

public static InstructionComparator getComparator()
Get Comparator object used in the equals() method to determine equality of instructions.


setComparator

public static void setComparator(InstructionComparator c)
Set comparator to be used for equals().


equals

public boolean equals(java.lang.Object that)
Check for equality, delegated to comparator