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

Quick Search    Search Deep

com.techtrader.modules.tools.bytecode
Class MethodInstruction  view MethodInstruction download MethodInstruction.java

java.lang.Object
  extended bycom.techtrader.modules.tools.bytecode.Instruction
      extended bycom.techtrader.modules.tools.bytecode.MethodInstruction
All Implemented Interfaces:
Constants, com.techtrader.modules.tools.bytecode.visitor.VisitAcceptor

public class MethodInstruction
extends Instruction

Represents an instruction that takes as an argument a method to operate on. Examples include INVOKEINTERFACE, INVOKEVIRTUAL, etc.


Field Summary
private  int _index
           
 
Fields inherited from class com.techtrader.modules.tools.bytecode.Instruction
_byteIndex, _opcode, _opcodeTypes, _owner
 
Fields inherited from interface com.techtrader.modules.tools.bytecode.Constants
AALOAD, AASTORE, ACCESS_ABSTRACT, ACCESS_FINAL, ACCESS_INTERFACE, ACCESS_NATIVE, ACCESS_PRIVATE, ACCESS_PROTECTED, ACCESS_PUBLIC, ACCESS_STATIC, ACCESS_STRICT, ACCESS_SUPER, ACCESS_SYNCHRONIZED, ACCESS_TRANSIENT, ACCESS_VOLATILE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAY_BOOLEAN, ARRAY_BYTE, ARRAY_CHAR, ARRAY_DOUBLE, ARRAY_FLOAT, ARRAY_INT, ARRAY_LONG, ARRAY_SHORT, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTR_CODE, ATTR_CONST, ATTR_DEPRECATED, ATTR_EXCEPTIONS, ATTR_INNERCLASS, ATTR_LINENUMBERS, ATTR_LOCALS, ATTR_SOURCE, ATTR_SYNTHETIC, ATTR_UNKNOWN, 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_EQ, IF_GE, IF_GT, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IF_LE, IF_LT, IF_NE, IF_NONNULL, IF_NULL, 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, MATH_ADD, MATH_AND, MATH_DIV, MATH_MUL, MATH_NEG, MATH_OR, MATH_REM, MATH_SHL, MATH_SHR, MATH_SUB, MATH_USHR, MATH_XOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, OPCODE_NAMES, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, TABLESWITCH, VALID_MAGIC, WIDE
 
Constructor Summary
protected MethodInstruction(Code owner, int opcode)
           
 
Method Summary
 void acceptVisit(com.techtrader.modules.tools.bytecode.visitor.BCVisitor visit)
          Accept a visit from a BCVisitor, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this object.
protected  void copy(Instruction orig)
           
 boolean equals(java.lang.Object other)
          Method instructions are equal if the method of either is unset, or if they refer to the same method.
 int getLength()
          Return the length in bytes of this opcode, including all arguments.
 BCMethod getMethod()
          If the method is a member of the current class, then this method will retrieve the BCMethod object for it; otherwise it will return null.
 int getMethodIndex()
          Get the index of the ComplexEntry in the constant pool describing the method to operate on.
 java.lang.String getMethodName()
          Get the nam of the method to operate on.
 java.lang.Class getMethodOwnerType()
          Get the type of the method.
 java.lang.String getMethodOwnerTypeName()
          Get the type of the method.
 java.lang.String[] getMethodParamTypeNames()
          Get the param types of the method.
 java.lang.Class[] getMethodParamTypes()
          Get the param types of the method.
 java.lang.Class getMethodReturnType()
          Get the return type of the method.
 java.lang.String getMethodReturnTypeName()
          Get the return type of the method.
 int getStackChange()
          Return the number of stack positions this instruction pushes or pops during its execution.
 boolean isMethodInCurrentClass()
          Return true if the method is a member of the current class.
protected  void readData(java.io.DataInput in)
          Read the arguments for this opcode from the given stream.
 MethodInstruction setMethod(BCMethod method)
          Set the method to operate on.
 MethodInstruction setMethod(java.lang.reflect.Constructor method)
          Set the method to operate on.
 MethodInstruction setMethod(java.lang.reflect.Method method)
          Set the method to operate on.
 MethodInstruction setMethod(java.lang.String name, java.lang.Class returnType, java.lang.Class[] paramTypes, java.lang.Class ownerType)
          Set the method to operate on.
 MethodInstruction setMethod(java.lang.String name, java.lang.Class returnType, java.lang.Class[] paramTypes, java.lang.String ownerType)
          Set the method to operate on.
 MethodInstruction setMethod(java.lang.String name, java.lang.String returnType, java.lang.String[] paramTypes, java.lang.String ownerType)
          Set the method to operate on.
 void setMethodIndex(int index)
          Set the index of the ComplexEntry in the constant pool describing the method to operate on.
 MethodInstruction setMethodName(java.lang.String name)
          Change the method name.
 MethodInstruction setMethodOwnerTypeName(java.lang.String name)
          Change the method owner type.
 MethodInstruction setMethodParamTypeNames(java.lang.String[] names)
          Change the method param types.
 MethodInstruction setMethodReturnTypeName(java.lang.String name)
          Change the method return type.
protected  void writeData(java.io.DataOutput out)
          Write the arguments for this opcode to the given stream.
 
Methods inherited from class com.techtrader.modules.tools.bytecode.Instruction
getByteIndex, getName, getOpCode, getOwner, invalidate, setByteIndex, setOpCode
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_index

private int _index
Constructor Detail

MethodInstruction

protected MethodInstruction(Code owner,
                            int opcode)
Method Detail

getMethodIndex

public int getMethodIndex()
Get the index of the ComplexEntry in the constant pool describing the method to operate on.


setMethodIndex

public void setMethodIndex(int index)
Set the index of the ComplexEntry in the constant pool describing the method to operate on.


setMethod

public MethodInstruction setMethod(BCMethod method)
Set the method to operate on.


setMethod

public MethodInstruction setMethod(java.lang.reflect.Method method)
Set the method to operate on.


setMethod

public MethodInstruction setMethod(java.lang.reflect.Constructor method)
Set the method to operate on.


setMethod

public MethodInstruction setMethod(java.lang.String name,
                                   java.lang.String returnType,
                                   java.lang.String[] paramTypes,
                                   java.lang.String ownerType)
Set the method to operate on.


setMethod

public MethodInstruction setMethod(java.lang.String name,
                                   java.lang.Class returnType,
                                   java.lang.Class[] paramTypes,
                                   java.lang.String ownerType)
Set the method to operate on.


setMethod

public MethodInstruction setMethod(java.lang.String name,
                                   java.lang.Class returnType,
                                   java.lang.Class[] paramTypes,
                                   java.lang.Class ownerType)
Set the method to operate on.


setMethodName

public MethodInstruction setMethodName(java.lang.String name)
Change the method name.


setMethodOwnerTypeName

public MethodInstruction setMethodOwnerTypeName(java.lang.String name)
Change the method owner type.


setMethodReturnTypeName

public MethodInstruction setMethodReturnTypeName(java.lang.String name)
Change the method return type.


setMethodParamTypeNames

public MethodInstruction setMethodParamTypeNames(java.lang.String[] names)
Change the method param types.


isMethodInCurrentClass

public boolean isMethodInCurrentClass()
Return true if the method is a member of the current class.


getMethod

public BCMethod getMethod()
If the method is a member of the current class, then this method will retrieve the BCMethod object for it; otherwise it will return null.


getMethodName

public java.lang.String getMethodName()
Get the nam of the method to operate on.


getMethodReturnTypeName

public java.lang.String getMethodReturnTypeName()
Get the return type of the method.


getMethodReturnType

public java.lang.Class getMethodReturnType()
                                    throws java.lang.ClassNotFoundException
Get the return type of the method.


getMethodParamTypeNames

public java.lang.String[] getMethodParamTypeNames()
Get the param types of the method.


getMethodParamTypes

public java.lang.Class[] getMethodParamTypes()
                                      throws java.lang.ClassNotFoundException
Get the param types of the method.


getMethodOwnerTypeName

public java.lang.String getMethodOwnerTypeName()
Get the type of the method.


getMethodOwnerType

public java.lang.Class getMethodOwnerType()
                                   throws java.lang.ClassNotFoundException
Get the type of the method.


equals

public boolean equals(java.lang.Object other)
Method instructions are equal if the method of either is unset, or if they refer to the same method.

Overrides:
equals in class Instruction

getLength

public int getLength()
Description copied from class: Instruction
Return the length in bytes of this opcode, including all arguments. This method should be overridden by opcodes that take arguments.

Overrides:
getLength in class Instruction

getStackChange

public int getStackChange()
Description copied from class: Instruction
Return the number of stack positions this instruction pushes or pops during its execution.

Overrides:
getStackChange in class Instruction

copy

protected void copy(Instruction orig)
Overrides:
copy in class Instruction

readData

protected void readData(java.io.DataInput in)
                 throws java.io.IOException
Description copied from class: Instruction
Read the arguments for this opcode from the given stream. This method should be overridden by opcodes that take arguments.

Overrides:
readData in class Instruction

writeData

protected void writeData(java.io.DataOutput out)
                  throws java.io.IOException
Description copied from class: Instruction
Write the arguments for this opcode to the given stream. This method should be overridden by opcodes that take arguments.

Overrides:
writeData in class Instruction

acceptVisit

public void acceptVisit(com.techtrader.modules.tools.bytecode.visitor.BCVisitor visit)
Description copied from interface: com.techtrader.modules.tools.bytecode.visitor.VisitAcceptor
Accept a visit from a BCVisitor, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this object.

Specified by:
acceptVisit in interface com.techtrader.modules.tools.bytecode.visitor.VisitAcceptor
Overrides:
acceptVisit in class Instruction