at.dms.classfile
Class MethodRefInstruction

java.lang.Object
  extended by at.dms.classfile.AbstractInstructionAccessor
      extended by at.dms.classfile.Instruction
          extended by at.dms.classfile.MethodRefInstruction
All Implemented Interfaces:
Constants, InstructionAccessor

public class MethodRefInstruction
extends Instruction

Instruction that references method opc_invokevirtual,_invokespecial, opc_invokestatic


Field Summary
 
Fields inherited from interface at.dms.classfile.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INLINE, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ATT_CODE, ATT_CONSTANTVALUE, ATT_DEPRECATED, ATT_EXCEPTIONS, ATT_GENERIC, ATT_INNERCLASSES, ATT_LINENUMBERTABLE, ATT_LOCALVARIABLETABLE, ATT_SOURCEFILE, ATT_SYNTHETIC, CST_CLASS, CST_DOUBLE, CST_FIELD, CST_FLOAT, CST_INTEGER, CST_INTERFACEMETHOD, CST_LONG, CST_METHOD, CST_NAMEANDTYPE, CST_STRING, CST_UTF8, ENV_DEBUG_MODE, ENV_USE_CACHE, JAVA_MAGIC, JAVA_MAJOR, JAVA_MINOR, MAX_CODE_PER_METHOD, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, POO_ASCII_CONSTANT, POO_CLASS_CONSTANT, POO_DOUBLE_CONSTANT, POO_FLOAT_CONSTANT, POO_INTEGER_CONSTANT, POO_LONG_CONSTANT, POO_NAT_CONSTANT, POO_REF_CONSTANT, POO_STRING_CONSTANT, TYP_ADDRESS, TYP_DOUBLE, TYP_FLOAT, TYP_INT, TYP_LONG, TYP_REFERENCE, TYP_VOID
 
Constructor Summary
MethodRefInstruction(int opcode, MethodRefConstant method)
          Constructs a new method reference instruction from a class file
MethodRefInstruction(int opcode, String name, String type)
          Constructs a new method reference instruction
MethodRefInstruction(int opcode, String owner, String name, String type)
          Constructs a new method reference instruction
 
Method Summary
 boolean canComplete()
          Returns true iff control flow can reach the next instruction in textual order.
 MethodRefConstant getMethodRefConstant()
          Returns the method reference constant used by this instruction
 int getPushedOnStack()
          Returns the size of data pushed on the stack by this instruction
 byte getReturnType()
          Returns the type pushed on the stack
 int getStack()
          Return the amount of stack (positive or negative) used by this instruction
 
Methods inherited from class at.dms.classfile.Instruction
dump, getOpcode, getPoppedFromStack, isLiteral
 
Methods inherited from class at.dms.classfile.AbstractInstructionAccessor
deepClone, deepCloneInto, transform
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MethodRefInstruction

public MethodRefInstruction(int opcode,
                            String name,
                            String type)
Constructs a new method reference instruction

Parameters:
opcode - the opcode of the instruction
name - the qualified name of the referenced object
type - the signature of the referenced object

MethodRefInstruction

public MethodRefInstruction(int opcode,
                            String owner,
                            String name,
                            String type)
Constructs a new method reference instruction

Parameters:
opcode - the opcode of the instruction
name - the qualified name of the referenced object
type - the signature of the referenced object

MethodRefInstruction

public MethodRefInstruction(int opcode,
                            MethodRefConstant method)
Constructs a new method reference instruction from a class file

Parameters:
opcode - the opcode of the instruction
method - the method reference (as pooled constant)
Method Detail

canComplete

public boolean canComplete()
Returns true iff control flow can reach the next instruction in textual order.

Specified by:
canComplete in class Instruction

getMethodRefConstant

public MethodRefConstant getMethodRefConstant()
Returns the method reference constant used by this instruction


getReturnType

public byte getReturnType()
Returns the type pushed on the stack

Specified by:
getReturnType in class Instruction

getPushedOnStack

public int getPushedOnStack()
Returns the size of data pushed on the stack by this instruction

Specified by:
getPushedOnStack in class Instruction

getStack

public int getStack()
Return the amount of stack (positive or negative) used by this instruction

Specified by:
getStack in class Instruction