Package org.apache.bcel.generic
Class MULTIANEWARRAY
- java.lang.Object
-
- org.apache.bcel.generic.Instruction
-
- org.apache.bcel.generic.CPInstruction
-
- org.apache.bcel.generic.MULTIANEWARRAY
-
- All Implemented Interfaces:
Cloneable
,AllocationInstruction
,ExceptionThrower
,IndexedInstruction
,LoadClass
,TypedInstruction
public class MULTIANEWARRAY extends CPInstruction implements LoadClass, AllocationInstruction, ExceptionThrower
MULTIANEWARRAY - Create new mutidimensional array of referencesStack: ..., count1, [count2, ...] -> ..., arrayref
-
-
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
Constructors Constructor Description MULTIANEWARRAY(int index, short dimensions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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(DataOutputStream out)
Dump instruction as byte code to stream out.short
getDimensions()
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.String
toString(boolean verbose)
Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"< constant pool index>">"String
toString(ConstantPool cp)
-
Methods inherited from class org.apache.bcel.generic.CPInstruction
getIndex, getType, setIndex
-
Methods inherited from class org.apache.bcel.generic.Instruction
copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, produceStack, readInstruction, setComparator, toString
-
-
-
-
Method Detail
-
dump
public void dump(DataOutputStream out) throws IOException
Dump instruction as byte code to stream out.- Overrides:
dump
in classCPInstruction
- Parameters:
out
- Output stream- Throws:
IOException
-
initFromFile
protected void initFromFile(ByteSequence bytes, boolean wide) throws IOException
Read needed data (i.e., no. dimension) from file.- Overrides:
initFromFile
in classCPInstruction
- Parameters:
bytes
- input streamwide
- wide prefix?- Throws:
IOException
- may be thrown if the implementation needs to read data from the file
-
getDimensions
public final short getDimensions()
- Returns:
- number of dimensions to be created
-
toString
public 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 classCPInstruction
- Parameters:
verbose
- long/short format switch- Returns:
- mnemonic for instruction
-
toString
public String toString(ConstantPool cp)
- Overrides:
toString
in classCPInstruction
- 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 classInstruction
- Returns:
- Number of words consumed from stack by this instruction
-
getExceptions
public Class<?>[] getExceptions()
- Specified by:
getExceptions
in interfaceExceptionThrower
-
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 interfaceLoadClass
- 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.- Specified by:
accept
in classInstruction
- Parameters:
v
- Visitor object
-
-