de.fub.bytecode.generic
Class MULTIANEWARRAY

java.lang.Object
  |
  +--de.fub.bytecode.generic.Instruction
        |
        +--de.fub.bytecode.generic.CPInstruction
              |
              +--de.fub.bytecode.generic.MULTIANEWARRAY
All Implemented Interfaces:
AllocationInstruction, java.lang.Cloneable, ExceptionThrower, IndexedInstruction, LoadClass, java.io.Serializable, TypedInstruction

public class MULTIANEWARRAY
extends CPInstruction
implements LoadClass, AllocationInstruction, ExceptionThrower

MULTIANEWARRAY - Create new mutidimensional array of references

Stack: ..., count1, [count2, ...] -> ..., arrayref

Version:
$Id: MULTIANEWARRAY.java,v 1.10 2001/07/14 08:54:10 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
MULTIANEWARRAY(int index, short dimensions)
           
 
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.
 short getDimensions()
           
 java.lang.Class[] getExceptions()
           
 ObjectType getLoadClassType(ConstantPoolGen cpg)
          Returns the ObjectType of the referenced class or interface that may be loaded and resolved.
protected  void initFromFile(ByteSequence bytes, boolean wide)
          Read needed data (i.e., no.
 java.lang.String toString(boolean verbose)
          Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"< constant pool index>">"
 java.lang.String toString(ConstantPool cp)
           
 
Methods inherited from class de.fub.bytecode.generic.CPInstruction
getIndex, getType, setIndex
 
Methods inherited from class de.fub.bytecode.generic.Instruction
consumeStack, copy, getLength, getOpcode, getTag, produceStack, produceStack, readInstruction, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface de.fub.bytecode.generic.LoadClass
getType
 

Constructor Detail

MULTIANEWARRAY

public MULTIANEWARRAY(int index,
                      short dimensions)
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

initFromFile

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

getDimensions

public final short getDimensions()
Returns:
number of dimensions to be created

toString

public java.lang.String toString(boolean verbose)
Description copied from class: CPInstruction
Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"< constant pool index>">"
Overrides:
toString in class CPInstruction
Returns:
mnemonic for instruction

toString

public java.lang.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.
Overrides:
consumeStack in class Instruction
Returns:
Number of words consumed from stack by this instruction

getExceptions

public java.lang.Class[] getExceptions()
Specified by:
getExceptions in interface ExceptionThrower

getLoadClassType

public ObjectType getLoadClassType(ConstantPoolGen cpg)
Description copied from interface: LoadClass
Returns the ObjectType of the referenced class or interface that may be loaded and resolved.
Specified by:
getLoadClassType in interface LoadClass
Following copied from interface: de.fub.bytecode.generic.LoadClass
Returns:
object type that may be loaded or null if a primitive is referenced

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