## org.apache.bcel.generic
Class InvokeInstruction

    java.lang.Object
      org.apache.bcel.generic.Instruction
          org.apache.bcel.generic.CPInstruction
              org.apache.bcel.generic.FieldOrMethod
                  org.apache.bcel.generic.InvokeInstruction

All Implemented Interfaces:
  Serializable, Cloneable, ExceptionThrower, IndexedInstruction, LoadClass, StackConsumer, StackProducer, TypedInstruction

Direct Known Subclasses:
  INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL

    public abstract class InvokeInstruction

extends FieldOrMethod
implements ExceptionThrower, TypedInstruction, StackConsumer, StackProducer

Super class for the INVOKExxx family of instructions.

Version:
  $Id: InvokeInstruction.java 386056 2006-03-15 11:31:56Z tcurdt $
See Also:
  Serialized Form

Field Summary

Fields inherited from class org.apache.bcel.generic.CPInstruction
`index`

Fields inherited from class org.apache.bcel.generic.Instruction
`length, opcode`

Constructor Summary
`protected` `InvokeInstruction(short opcode, int index)`

Method Summary
`int` `consumeStack(ConstantPoolGen cpg)` Also works for instructions whose stack effect depends on the constant pool entry they reference.
`Type[]` `getArgumentTypes(ConstantPoolGen cpg)`
`String` `getMethodName(ConstantPoolGen cpg)`
`Type` `getReturnType(ConstantPoolGen cpg)`
`Type` `getType(ConstantPoolGen cpg)` Returns the type associated with this instruction.
`int` `produceStack(ConstantPoolGen cpg)` Also works for instructions whose stack effect depends on the constant pool entry they reference.
`String` `toString(ConstantPool cp)`

Methods inherited from class org.apache.bcel.generic.FieldOrMethod
`getClassName, getClassType, getLoadClassType, getName, getReferenceType, getSignature`

Methods inherited from class org.apache.bcel.generic.CPInstruction
`dump, getIndex, initFromFile, setIndex, toString`

Methods inherited from class org.apache.bcel.generic.Instruction
`accept, copy, equals, getComparator, getLength, getName, getOpcode, readInstruction, setComparator, toString`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.apache.bcel.generic.ExceptionThrower
`getExceptions`

Constructor Detail

### InvokeInstruction

    protected InvokeInstruction(short opcode,
                                int index)

Parameters:
  `index` - to constant pool

Method Detail

### toString

    public String toString(ConstantPool cp)

  Overrides:
    `toString` in class `CPInstruction`
  Returns:
    mnemonic for instruction with symbolic references resolved

### consumeStack

    public int consumeStack(ConstantPoolGen cpg)

  Also works for instructions whose stack effect depends on the constant pool entry they reference.

  Specified by:
    `consumeStack` in interface `StackConsumer`
  Overrides:
    `consumeStack` in class `Instruction`
  Returns:
    Number of words consumed from stack by this instruction

### produceStack

    public int produceStack(ConstantPoolGen cpg)

  Also works for instructions whose stack effect depends on the constant pool entry they reference.

  Specified by:
    `produceStack` in interface `StackProducer`
  Overrides:
    `produceStack` in class `Instruction`
  Returns:
    Number of words produced onto stack by this instruction

### getType

    public Type getType(ConstantPoolGen cpg)

  Description copied from interface: `LoadClass`
  Returns the type associated with this instruction. LoadClass instances are always typed, but this type does not always refer to the type of the class or interface that it possibly forces to load. For example, GETFIELD would return the type of the field and not the type of the class where the field is defined. If no class is forced to be loaded, null is returned. An example for this is an ANEWARRAY instruction that creates an int[][].

  Specified by:
    `getType` in interface `LoadClass`
  Specified by:
    `getType` in interface `TypedInstruction`
  Overrides:
    `getType` in class `CPInstruction`
  Returns:
    return type of referenced method.
  See Also:
    `LoadClass.getLoadClassType(ConstantPoolGen)`

### getMethodName

    public String getMethodName(ConstantPoolGen cpg)

  Returns:
    name of referenced method.

### getReturnType

    public Type getReturnType(ConstantPoolGen cpg)

  Returns:
    return type of referenced method.

### getArgumentTypes

    public Type[] getArgumentTypes(ConstantPoolGen cpg)

  Returns:
    argument types of referenced method.

Copyright © 2002-2006 Apache Software Foundation. All Rights Reserved.