Package org.spongepowered.asm.mixin.transformer.struct

## Class Initialiser

- java.lang.Object
- - org.spongepowered.asm.mixin.transformer.struct.Initialiser

    public class Initialiser
    extends java.lang.Object

### Nested Class Summary

Nested Classes
`static class` `Initialiser.InjectionMode` Strategy for injecting initialiser insns

### Field Summary

Fields
`protected static int[]` `OPCODE_BLACKLIST` List of opcodes which must not appear in a class initialiser, mainly a sanity check so that if any of the specified opcodes are found, we can log it as an error condition and then people can bitch at me to fix it.

### Constructor Summary

Constructors
`Initialiser​(MixinTargetContext mixin, org.objectweb.asm.tree.MethodNode ctor, InsnRange range)`

### Method Summary

All Methods Instance Methods Concrete Methods
`org.objectweb.asm.tree.MethodNode` `getCtor()` Get the source constructor
`java.util.Deque<org.objectweb.asm.tree.AbstractInsnNode>` `getInsns()` Get the extracted instructions
`int` `getMaxStack()` Get the MAXS for the original (source) constructor
`void` `injectInto​(Constructor ctor)` Inject initialiser code into the target constructor
`int` `size()` Get the number of instructions in the extracted initialiser

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

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

### Field Detail

#### OPCODE_BLACKLIST

    protected static final int[] OPCODE_BLACKLIST

List of opcodes which must not appear in a class initialiser, mainly a sanity check so that if any of the specified opcodes are found, we can log it as an error condition and then people can bitch at me to fix it. Essentially if it turns out that field initialisers can somehow make use of local variables, then I need to write some code to ensure that said locals are shifted so that they don't interfere with locals in the receiving constructor.

### Constructor Detail

#### Initialiser

    public Initialiser​(MixinTargetContext mixin,
                       org.objectweb.asm.tree.MethodNode ctor,
                       InsnRange range)

### Method Detail

#### size

    public int size()

Get the number of instructions in the extracted initialiser

#### getMaxStack

    public int getMaxStack()

Get the MAXS for the original (source) constructor

#### getCtor

    public org.objectweb.asm.tree.MethodNode getCtor()

Get the source constructor

#### getInsns

    public java.util.Deque<org.objectweb.asm.tree.AbstractInsnNode> getInsns()

Get the extracted instructions

#### injectInto

    public void injectInto​(Constructor ctor)

Inject initialiser code into the target constructor

Parameters:
  `ctor` - Constructor to inject into