Package serp.bytecode

# Class MultiANewArrayInstruction

java.lang.Object
serp.bytecode.Instruction
serp.bytecode.TypedInstruction
serp.bytecode.ClassInstruction
serp.bytecode.MultiANewArrayInstruction

All Implemented Interfaces:
  `BCEntity`, `VisitAcceptor`

public class MultiANewArrayInstruction extends ClassInstruction
The `multianewarray` instruction, which creates a new multi-dimensional array.

Author:
  Abe White

## Method Summary

Modifier and Type
Method
Description
`void`
`acceptVisit(BCVisitor visit)`
Accept a visit from a `BCVisitor`, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.
`boolean`
`equalsInstruction(Instruction other)`
Two MultiANewArray instructions are equal if they have the same type and dimensions, or if the type and dimensions of either is unset.
`int`
`getDimensions()`
Return the dimensions of the array, or -1 if not set.
`int`
`getStackChange()`
Return the number of stack positions this instruction pushes or pops during its execution.
`MultiANewArrayInstruction`
`setDimensions(int dims)`
Set the dimensions of the array.

### Methods inherited from class serp.bytecode.ClassInstruction

`getTypeIndex, getTypeName, setType, setTypeIndex`

### Methods inherited from class serp.bytecode.TypedInstruction

`getType, getTypeBC, setType, setType`

### Methods inherited from class serp.bytecode.Instruction

`getByteIndex, getClassLoader, getCode, getLineNumber, getLogicalStackChange, getName, getOpcode, getPool, getProject, isValid`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### getStackChange

public int getStackChange()
Description copied from class: `Instruction`
Return the number of stack positions this instruction pushes or pops during its execution.

Overrides:
  `getStackChange` in class `ClassInstruction`
Returns:
  0 if the stack is not affected by this instruction, a positive number if it pushes onto the stack, and a negative number if it pops from the stack

### getDimensions

public int getDimensions()
Return the dimensions of the array, or -1 if not set.

### setDimensions

public MultiANewArrayInstruction setDimensions(int dims)
Set the dimensions of the array.

Returns:
  this instruction, for method chaining

### equalsInstruction

public boolean equalsInstruction(Instruction other)
Two MultiANewArray instructions are equal if they have the same type and dimensions, or if the type and dimensions of either is unset.

Overrides:
  `equalsInstruction` in class `ClassInstruction`

### acceptVisit

public void acceptVisit(BCVisitor visit)
Description copied from interface: `VisitAcceptor`
Accept a visit from a `BCVisitor`, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.

Specified by:
  `acceptVisit` in interface `VisitAcceptor`
Overrides:
  `acceptVisit` in class `ClassInstruction`