fr.umlv.corosol.component.instruction
Class AbstractJInstruction

java.lang.Object
  extended by fr.umlv.corosol.component.instruction.AbstractJInstruction
All Implemented Interfaces:
JInstruction, JObject, JVMComponent

public abstract class AbstractJInstruction
extends java.lang.Object
implements JInstruction

An abstract implementation of the JInstruction interface.

Author:
Christophe Deleray

Nested Class Summary
 
Nested classes/interfaces inherited from interface fr.umlv.corosol.component.instruction.JInstruction
JInstruction.AALoad, JInstruction.AAStore, JInstruction.AConst_Null, JInstruction.ALoad, JInstruction.ALoad_0, JInstruction.ALoad_1, JInstruction.ALoad_2, JInstruction.ALoad_3, JInstruction.ANewArray, JInstruction.AReturn, JInstruction.ArrayLength, JInstruction.AStore, JInstruction.AStore_0, JInstruction.AStore_1, JInstruction.AStore_2, JInstruction.AStore_3, JInstruction.AThrow, JInstruction.BALoad, JInstruction.BAStore, JInstruction.BIPush, JInstruction.CALoad, JInstruction.CAStore, JInstruction.CheckCast, JInstruction.D2F, JInstruction.D2I, JInstruction.D2L, JInstruction.DAdd, JInstruction.DALoad, JInstruction.DAStore, JInstruction.DCmpG, JInstruction.DCmpL, JInstruction.DConst_0, JInstruction.DConst_1, JInstruction.DDiv, JInstruction.DLoad, JInstruction.DLoad_0, JInstruction.DLoad_1, JInstruction.DLoad_2, JInstruction.DLoad_3, JInstruction.DMul, JInstruction.DNeg, JInstruction.DRem, JInstruction.DReturn, JInstruction.DStore, JInstruction.DStore_0, JInstruction.DStore_1, JInstruction.DStore_2, JInstruction.DStore_3, JInstruction.DSub, JInstruction.Dup, JInstruction.Dup_X1, JInstruction.Dup_X2, JInstruction.Dup2, JInstruction.Dup2_X1, JInstruction.Dup2_X2, JInstruction.F2D, JInstruction.F2I, JInstruction.F2L, JInstruction.FAdd, JInstruction.FALoad, JInstruction.FAStore, JInstruction.FCmpG, JInstruction.FCmpL, JInstruction.FConst_0, JInstruction.FConst_1, JInstruction.FConst_2, JInstruction.FDiv, JInstruction.FLoad, JInstruction.FLoad_0, JInstruction.FLoad_1, JInstruction.FLoad_2, JInstruction.FLoad_3, JInstruction.FMul, JInstruction.FNeg, JInstruction.FRem, JInstruction.FReturn, JInstruction.FStore, JInstruction.FStore_0, JInstruction.FStore_1, JInstruction.FStore_2, JInstruction.FStore_3, JInstruction.FSub, JInstruction.GetField, JInstruction.GetStatic, JInstruction.Goto, JInstruction.Goto_W, JInstruction.I2B, JInstruction.I2C, JInstruction.I2D, JInstruction.I2F, JInstruction.I2L, JInstruction.I2S, JInstruction.IAdd, JInstruction.IALoad, JInstruction.IAND, JInstruction.IAStore, JInstruction.IConst_0, JInstruction.IConst_1, JInstruction.IConst_2, JInstruction.IConst_3, JInstruction.IConst_4, JInstruction.IConst_5, JInstruction.IConst_M1, JInstruction.IDiv, JInstruction.IfACmpEq, JInstruction.IfACmpNE, JInstruction.IfEq, JInstruction.IfGE, JInstruction.IfGT, JInstruction.IfICmpEq, JInstruction.IfICmpGE, JInstruction.IfICmpGT, JInstruction.IfICmpLE, JInstruction.IfICmpLT, JInstruction.IfICmpNE, JInstruction.IfLE, JInstruction.IfLT, JInstruction.IfNE, JInstruction.IfNonNull, JInstruction.IfNull, JInstruction.IInc, JInstruction.ILoad, JInstruction.ILoad_0, JInstruction.ILoad_1, JInstruction.ILoad_2, JInstruction.ILoad_3, JInstruction.IMul, JInstruction.INeg, JInstruction.InstanceOf, JInstruction.InvokeInterface, JInstruction.InvokeSpecial, JInstruction.InvokeStatic, JInstruction.InvokeVirtual, JInstruction.IOR, JInstruction.IRem, JInstruction.IReturn, JInstruction.IShL, JInstruction.IShR, JInstruction.IStore, JInstruction.IStore_0, JInstruction.IStore_1, JInstruction.IStore_2, JInstruction.IStore_3, JInstruction.ISub, JInstruction.IUShR, JInstruction.IXOR, JInstruction.JSR, JInstruction.JSR_W, JInstruction.L2D, JInstruction.L2F, JInstruction.L2I, JInstruction.LAdd, JInstruction.LALoad, JInstruction.LAND, JInstruction.LAStore, JInstruction.LCmp, JInstruction.LConst_0, JInstruction.LConst_1, JInstruction.LdC, JInstruction.LdC_W, JInstruction.LdC2_W, JInstruction.LDiv, JInstruction.LLoad, JInstruction.LLoad_0, JInstruction.LLoad_1, JInstruction.LLoad_2, JInstruction.LLoad_3, JInstruction.LMul, JInstruction.LNeg, JInstruction.LookupSwitch, JInstruction.LOR, JInstruction.LRem, JInstruction.LReturn, JInstruction.LShL, JInstruction.LShR, JInstruction.LStore, JInstruction.LStore_0, JInstruction.LStore_1, JInstruction.LStore_2, JInstruction.LStore_3, JInstruction.LSub, JInstruction.LUShR, JInstruction.LXOR, JInstruction.MonitorEnter, JInstruction.MonitorExit, JInstruction.MultiANewArray, JInstruction.New, JInstruction.NewArray, JInstruction.NOp, JInstruction.Pop, JInstruction.Pop2, JInstruction.PutField, JInstruction.PutStatic, JInstruction.Ret, JInstruction.Return, JInstruction.SALoad, JInstruction.SAStore, JInstruction.SIPush, JInstruction.Swap, JInstruction.TableSwitch, JInstruction.Wide
 
Field Summary
 
Fields inherited from interface fr.umlv.corosol.component.instruction.JInstruction
AALOAD, AASTORE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETSTATIC, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMUL, INEG, INSTANCEOF, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_W, LDC2_W, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, TABLESWITCH, WIDE
 
Method Summary
 void configure(JVirtualMachine jvm)
          Configures this instruction via the specified JVM.
abstract  void exec(JThread thread)
          Executes this instruction in the specified thread.
abstract  java.lang.Class getComponentClass()
          Returns the class object describing this component.
 int getOpcode()
          Returns the opcode of this instruction.
 void replace(JVMComponent component)
          Replaces the data of this component by the data of the specified component.
abstract  java.lang.String toString()
          Returns a string representation of this instruction.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

configure

public void configure(JVirtualMachine jvm)
Configures this instruction via the specified JVM. During this configuration operation, this instruction can reach any unit of the specified JVM.

Specified by:
configure in interface JVMComponent
Parameters:
jvm - the Java Virtual Machine

exec

public abstract void exec(JThread thread)
                   throws java.lang.Throwable
Executes this instruction in the specified thread.

Specified by:
exec in interface JInstruction
Parameters:
thread - a thread
Throws:
java.lang.Throwable - if an exception occurs during execution

getOpcode

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

Specified by:
getOpcode in interface JInstruction
Returns:
the opcode of this instruction

getComponentClass

public abstract java.lang.Class getComponentClass()
Returns the class object describing this component.

Specified by:
getComponentClass in interface JVMComponent

toString

public abstract java.lang.String toString()
Returns a string representation of this instruction.

Overrides:
toString in class java.lang.Object
Returns:
a string representation of this instruction

replace

public void replace(JVMComponent component)
Replaces the data of this component by the data of the specified component. The type of component must be the type of this component. This method should be call when a component is replaced in the Corosol Virtual Machine.

Specified by:
replace in interface JVMComponent
Parameters:
component - a component to be used to initialize this component