ej-technologies

org.gjt.jclasslib.bytecode
Class AbstractInstruction

java.lang.Object
  extended byorg.gjt.jclasslib.bytecode.AbstractInstruction
All Implemented Interfaces:
Opcodes
Direct Known Subclasses:
BranchInstruction, ImmediateByteInstruction, ImmediateIntInstruction, ImmediateShortInstruction, PaddedInstruction, SimpleInstruction

public abstract class AbstractInstruction
extends Object
implements Opcodes

Base class for all opcode instruction wrappers.

Version:
$Revision: 1.5 $ $Date: 2003/08/18 07:58:35 $
Author:
Ingo Kegel

Field Summary
 
Fields inherited from interface org.gjt.jclasslib.bytecode.Opcodes
NEWARRAY_T_BOOLEAN, NEWARRAY_T_BYTE, NEWARRAY_T_CHAR, NEWARRAY_T_DOUBLE, NEWARRAY_T_FLOAT, NEWARRAY_T_INT, NEWARRAY_T_LONG, NEWARRAY_T_SHORT, OPCODE_AALOAD, OPCODE_AASTORE, OPCODE_ACONST_NULL, OPCODE_ALOAD, OPCODE_ALOAD_0, OPCODE_ALOAD_1, OPCODE_ALOAD_2, OPCODE_ALOAD_3, OPCODE_ANEWARRAY, OPCODE_ARETURN, OPCODE_ARRAYLENGTH, OPCODE_ASTORE, OPCODE_ASTORE_0, OPCODE_ASTORE_1, OPCODE_ASTORE_2, OPCODE_ASTORE_3, OPCODE_ATHROW, OPCODE_BALOAD, OPCODE_BASTORE, OPCODE_BIPUSH, OPCODE_BREAKPOINT, OPCODE_CALOAD, OPCODE_CASTORE, OPCODE_CHECKCAST, OPCODE_D2F, OPCODE_D2I, OPCODE_D2L, OPCODE_DADD, OPCODE_DALOAD, OPCODE_DASTORE, OPCODE_DCMPG, OPCODE_DCMPL, OPCODE_DCONST_0, OPCODE_DCONST_1, OPCODE_DDIV, OPCODE_DLOAD, OPCODE_DLOAD_0, OPCODE_DLOAD_1, OPCODE_DLOAD_2, OPCODE_DLOAD_3, OPCODE_DMUL, OPCODE_DNEG, OPCODE_DREM, OPCODE_DRETURN, OPCODE_DSTORE, OPCODE_DSTORE_0, OPCODE_DSTORE_1, OPCODE_DSTORE_2, OPCODE_DSTORE_3, OPCODE_DSUB, OPCODE_DUP, OPCODE_DUP_X1, OPCODE_DUP_X2, OPCODE_DUP2, OPCODE_DUP2_X1, OPCODE_DUP2_X2, OPCODE_F2D, OPCODE_F2I, OPCODE_F2L, OPCODE_FADD, OPCODE_FALOAD, OPCODE_FASTORE, OPCODE_FCMPG, OPCODE_FCMPL, OPCODE_FCONST_0, OPCODE_FCONST_1, OPCODE_FCONST_2, OPCODE_FDIV, OPCODE_FLOAD, OPCODE_FLOAD_0, OPCODE_FLOAD_1, OPCODE_FLOAD_2, OPCODE_FLOAD_3, OPCODE_FMUL, OPCODE_FNEG, OPCODE_FREM, OPCODE_FRETURN, OPCODE_FSTORE, OPCODE_FSTORE_0, OPCODE_FSTORE_1, OPCODE_FSTORE_2, OPCODE_FSTORE_3, OPCODE_FSUB, OPCODE_GETFIELD, OPCODE_GETSTATIC, OPCODE_GOTO, OPCODE_GOTO_W, OPCODE_I2B, OPCODE_I2C, OPCODE_I2D, OPCODE_I2F, OPCODE_I2L, OPCODE_I2S, OPCODE_IADD, OPCODE_IALOAD, OPCODE_IAND, OPCODE_IASTORE, OPCODE_ICONST_0, OPCODE_ICONST_1, OPCODE_ICONST_2, OPCODE_ICONST_3, OPCODE_ICONST_4, OPCODE_ICONST_5, OPCODE_ICONST_M1, OPCODE_IDIV, OPCODE_IF_ACMPEQ, OPCODE_IF_ACMPNE, OPCODE_IF_ICMPEQ, OPCODE_IF_ICMPGE, OPCODE_IF_ICMPGT, OPCODE_IF_ICMPLE, OPCODE_IF_ICMPLT, OPCODE_IF_ICMPNE, OPCODE_IFEQ, OPCODE_IFGE, OPCODE_IFGT, OPCODE_IFLE, OPCODE_IFLT, OPCODE_IFNE, OPCODE_IFNONNULL, OPCODE_IFNULL, OPCODE_IINC, OPCODE_ILOAD, OPCODE_ILOAD_0, OPCODE_ILOAD_1, OPCODE_ILOAD_2, OPCODE_ILOAD_3, OPCODE_IMPDEP1, OPCODE_IMPDEP2, OPCODE_IMUL, OPCODE_INEG, OPCODE_INSTANCEOF, OPCODE_INVOKEINTERFACE, OPCODE_INVOKESPECIAL, OPCODE_INVOKESTATIC, OPCODE_INVOKEVIRTUAL, OPCODE_IOR, OPCODE_IREM, OPCODE_IRETURN, OPCODE_ISHL, OPCODE_ISHR, OPCODE_ISTORE, OPCODE_ISTORE_0, OPCODE_ISTORE_1, OPCODE_ISTORE_2, OPCODE_ISTORE_3, OPCODE_ISUB, OPCODE_IUSHR, OPCODE_IXOR, OPCODE_JSR, OPCODE_JSR_W, OPCODE_L2D, OPCODE_L2F, OPCODE_L2I, OPCODE_LADD, OPCODE_LALOAD, OPCODE_LAND, OPCODE_LASTORE, OPCODE_LCMP, OPCODE_LCONST_0, OPCODE_LCONST_1, OPCODE_LDC, OPCODE_LDC_W, OPCODE_LDC2_W, OPCODE_LDIV, OPCODE_LLOAD, OPCODE_LLOAD_0, OPCODE_LLOAD_1, OPCODE_LLOAD_2, OPCODE_LLOAD_3, OPCODE_LMUL, OPCODE_LNEG, OPCODE_LOOKUPSWITCH, OPCODE_LOR, OPCODE_LREM, OPCODE_LRETURN, OPCODE_LSHL, OPCODE_LSHR, OPCODE_LSTORE, OPCODE_LSTORE_0, OPCODE_LSTORE_1, OPCODE_LSTORE_2, OPCODE_LSTORE_3, OPCODE_LSUB, OPCODE_LUSHR, OPCODE_LXOR, OPCODE_MONITORENTER, OPCODE_MONITOREXIT, OPCODE_MULTIANEWARRAY, OPCODE_NEW, OPCODE_NEWARRAY, OPCODE_NOP, OPCODE_POP, OPCODE_POP2, OPCODE_PUTFIELD, OPCODE_PUTSTATIC, OPCODE_RET, OPCODE_RETURN, OPCODE_SALOAD, OPCODE_SASTORE, OPCODE_SIPUSH, OPCODE_SWAP, OPCODE_TABLESWITCH, OPCODE_WIDE, OPCODE_XXXUNUSEDXXX
 
Constructor Summary
protected AbstractInstruction(int opcode)
          Constructor.
 
Method Summary
 int getOffset()
          Get the offset of this instruction in its parent Code attribute.
 int getOpcode()
          Get the opcode of this instruction.
 String getOpcodeVerbose()
          Get the verbose description of the opcode of this instruction.
 int getSize()
          Get the size in bytes of this instruction.
 void read(ByteCodeInput in)
          Read this instruction from the given ByteCodeInput.
 void setOffset(int offset)
          Set the offset of this instruction in its parent Code attribute.
 void setOpcode(int opcode)
          Set the opcode of this instruction.
 void write(ByteCodeOutput out)
          Write this instruction to the given ByteCodeOutput.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractInstruction

protected AbstractInstruction(int opcode)
Constructor.

Parameters:
opcode - the opcode.
Method Detail

getSize

public int getSize()
Get the size in bytes of this instruction.

Returns:
the size in bytes

getOpcode

public int getOpcode()
Get the opcode of this instruction.

Returns:
the opcode

setOpcode

public void setOpcode(int opcode)
Set the opcode of this instruction.

Parameters:
opcode - the opcode

getOpcodeVerbose

public String getOpcodeVerbose()
Get the verbose description of the opcode of this instruction.

Returns:
the description

getOffset

public int getOffset()
Get the offset of this instruction in its parent Code attribute.

Returns:
the offset

setOffset

public void setOffset(int offset)
Set the offset of this instruction in its parent Code attribute.

Parameters:
offset - the offset

read

public void read(ByteCodeInput in)
          throws IOException
Read this instruction from the given ByteCodeInput.

Excpects ByteCodeInput to be in JVM class file format and just before a instruction of this kind.

Parameters:
in - the ByteCodeInput from which to read
Throws:
IOException - if an exception occurs with the ByteCodeInput

write

public void write(ByteCodeOutput out)
           throws IOException
Write this instruction to the given ByteCodeOutput.

Parameters:
out - the ByteCodeOutput to which to write
Throws:
IOException - if an exception occurs with the ByteCodeOutput

ej-technologies