de.fub.bytecode.generic
Class INVOKEINTERFACE

java.lang.Object
  |
  +--de.fub.bytecode.generic.Instruction
        |
        +--de.fub.bytecode.generic.CPInstruction
              |
              +--de.fub.bytecode.generic.FieldOrMethod
                    |
                    +--de.fub.bytecode.generic.InvokeInstruction
                          |
                          +--de.fub.bytecode.generic.INVOKEINTERFACE
All Implemented Interfaces:
java.lang.Cloneable, ExceptionThrower, IndexedInstruction, LoadClass, java.io.Serializable, StackConsumer, StackProducer, TypedInstruction

public final class INVOKEINTERFACE
extends InvokeInstruction

INVOKEINTERFACE - Invoke interface method

Stack: ..., objectref, [arg1, [arg2 ...]] -> ...

Version:
$Id: INVOKEINTERFACE.java,v 1.8 2001/08/16 19:52:45 ehaase Exp $
Author:
M. Dahm
See Also:
Serialized Form

Fields inherited from class de.fub.bytecode.generic.CPInstruction
index
 
Fields inherited from class de.fub.bytecode.generic.Instruction
length, opcode
 
Constructor Summary
INVOKEINTERFACE(int index, int nargs)
           
 
Method Summary
 void accept(Visitor v)
          Call corresponding visitor method(s).
 int consumeStack(ConstantPoolGen cpg)
          Also works for instructions whose stack effect depends on the constant pool entry they reference.
 void dump(java.io.DataOutputStream out)
          Dump instruction as byte code to stream out.
 int getCount()
          The count argument according to the Java Language Specification, Second Edition.
 java.lang.Class[] getExceptions()
           
 int getNoArguments()
          Deprecated. Use getCount().
protected  void initFromFile(ByteSequence bytes, boolean wide)
          Read needed data (i.e., index) from file.
 java.lang.String toString(ConstantPool cp)
           
 
Methods inherited from class de.fub.bytecode.generic.InvokeInstruction
getArgumentTypes, getMethodName, getReturnType, getType, produceStack
 
Methods inherited from class de.fub.bytecode.generic.FieldOrMethod
getClassName, getClassType, getLoadClassType, getName, getSignature
 
Methods inherited from class de.fub.bytecode.generic.CPInstruction
getIndex, setIndex, toString
 
Methods inherited from class de.fub.bytecode.generic.Instruction
consumeStack, copy, getLength, getOpcode, getTag, produceStack, readInstruction, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

INVOKEINTERFACE

public INVOKEINTERFACE(int index,
                       int nargs)
Method Detail

dump

public void dump(java.io.DataOutputStream out)
          throws java.io.IOException
Dump instruction as byte code to stream out.
Overrides:
dump in class CPInstruction
Parameters:
out - Output stream

getNoArguments

public int getNoArguments()
Deprecated. Use getCount().

The Java Virtual Machine Specification, First Edition was a little bit unprecise about the naming. In the Java Virtual Machine Specification, Second Edition, the value returned here is called "count".

getCount

public int getCount()
The count argument according to the Java Language Specification, Second Edition.

initFromFile

protected void initFromFile(ByteSequence bytes,
                            boolean wide)
                     throws java.io.IOException
Read needed data (i.e., index) from file.
Overrides:
initFromFile in class CPInstruction
Following copied from class: de.fub.bytecode.generic.CPInstruction
Parameters:
bytes - input stream
wide - wide prefix?

toString

public java.lang.String toString(ConstantPool cp)
Overrides:
toString in class InvokeInstruction
Returns:
mnemonic for instruction with symbolic references resolved

consumeStack

public int consumeStack(ConstantPoolGen cpg)
Description copied from class: InvokeInstruction
Also works for instructions whose stack effect depends on the constant pool entry they reference.
Overrides:
consumeStack in class InvokeInstruction
Following copied from class: de.fub.bytecode.generic.InvokeInstruction
Returns:
Number of words consumed from stack by this instruction

getExceptions

public java.lang.Class[] getExceptions()

accept

public 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.
Overrides:
accept in class Instruction
Parameters:
v - Visitor object