net.sf.cglib.core

## Class CodeEmitter

- java.lang.Object
- - MethodVisitor
  - - net.sf.cglib.core.LocalVariablesSorter
    - - net.sf.cglib.core.CodeEmitter

-     public class CodeEmitter
      extends LocalVariablesSorter

  Author:
    Juozas Baliuka, Chris Nokleberg

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ADD`
    `static int` | `AND`
    `static int` | `DIV`
    `static int` | `EQ`
    `static int` | `GE`
    `static int` | `GT`
    `static int` | `LE`
    `static int` | `LT`
    `static int` | `MUL`
    `static int` | `NE`
    `static int` | `NEG`
    `static int` | `OR`
    `static int` | `REM`
    `static int` | `SUB`
    `static int` | `USHR`
    `static int` | `XOR`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CodeEmitter(CodeEmitter wrap)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `aaload()`
    `void` | `aaload(int index)`
    `void` | `aastore()`
    `void` | `aconst_null()`
    `void` | `array_load(Type type)`
    `void` | `array_store(Type type)`
    `void` | `arraylength()`
    `void` | `athrow()`
    `Block` | `begin_block()`
    `void` | `box(Type type)` If the argument is a primitive class, replaces the primitive value on the top of the stack with the wrapped (Object) equivalent.
    `void` | `cast_numeric(Type from, Type to)` Casts from one primitive numeric type to another
    `void` | `catch_exception(Block block, Type exception)`
    `void` | `checkcast_this()`
    `void` | `checkcast(Type type)`
    `void` | `create_arg_array()` Allocates and fills an Object[] array with the arguments to the current method.
    `void` | `dup_x1()`
    `void` | `dup_x2()`
    `void` | `dup()`
    `void` | `dup2_x1()`
    `void` | `dup2_x2()`
    `void` | `dup2()`
    `void` | `end_method()`
    `ClassEmitter` | `getClassEmitter()`
    `void` | `getfield(java.lang.String name)`
    `void` | `getfield(Type owner, java.lang.String name, Type type)`
    `MethodInfo` | `getMethodInfo()`
    `Type` | `getReturnType()`
    `Signature` | `getSignature()`
    `void` | `getstatic(Type owner, java.lang.String name, Type type)`
    `void` | `goTo(Label label)`
    `void` | `if_cmp(Type type, int mode, Label label)`
    `void` | `if_icmp(int mode, Label label)`
    `void` | `if_jump(int mode, Label label)`
    `void` | `ifnonnull(Label label)`
    `void` | `ifnull(Label label)`
    `void` | `iinc(Local local, int amount)`
    `void` | `instance_of_this()`
    `void` | `instance_of(Type type)`
    `void` | `invoke_constructor_this()`
    `void` | `invoke_constructor_this(Signature sig)`
    `void` | `invoke_constructor(Type type)`
    `void` | `invoke_constructor(Type type, Signature sig)`
    `void` | `invoke_interface(Type owner, Signature sig)`
    `void` | `invoke_static_this(Signature sig)`
    `void` | `invoke_static(Type owner, Signature sig)`
    `void` | `invoke_virtual_this(Signature sig)`
    `void` | `invoke_virtual(Type owner, Signature sig)`
    `void` | `invoke(MethodInfo method)`
    `void` | `invoke(MethodInfo method, Type virtualType)`
    `boolean` | `isStaticHook()`
    `void` | `load_arg(int index)` Pushes the specified argument of the current method onto the stack.
    `void` | `load_args()` Pushes all of the arguments of the current method onto the stack.
    `void` | `load_args(int fromArg, int count)`
    `void` | `load_local(Local local)`
    `void` | `load_this()`
    `Label` | `make_label()`
    `Local` | `make_local()`
    `Local` | `make_local(Type type)`
    `void` | `mark(Label label)`
    `void` | `math(int op, Type type)`
    `void` | `monitorenter()`
    `void` | `monitorexit()`
    `void` | `new_instance_this()`
    `void` | `new_instance(Type type)`
    `void` | `newarray()`
    `void` | `newarray(Type type)`
    `void` | `not()` Toggles the integer on the top of the stack from 1 to 0 or vice versa
    `void` | `pop()`
    `void` | `pop2()`
    `void` | `process_switch(int[] keys, ProcessSwitchCallback callback)`
    `void` | `process_switch(int[] keys, ProcessSwitchCallback callback, boolean useTable)`
    `void` | `push(boolean value)`
    `void` | `push(double value)`
    `void` | `push(float value)`
    `void` | `push(int i)`
    `void` | `push(long value)`
    `void` | `push(java.lang.String value)`
    `void` | `putfield(java.lang.String name)`
    `void` | `putfield(Type owner, java.lang.String name, Type type)`
    `void` | `putstatic(Type owner, java.lang.String name, Type type)`
    `void` | `return_value()`
    `void` | `store_local(Local local)`
    `void` | `super_getfield(java.lang.String name, Type type)`
    `void` | `super_getstatic(java.lang.String name, Type type)`
    `void` | `super_invoke_constructor()`
    `void` | `super_invoke_constructor(Signature sig)`
    `void` | `super_invoke()`
    `void` | `super_invoke(Signature sig)`
    `void` | `super_putfield(java.lang.String name, Type type)`
    `void` | `super_putstatic(java.lang.String name, Type type)`
    `void` | `swap()`
    `void` | `swap(Type prev, Type type)`
    `void` | `throw_exception(Type type, java.lang.String msg)`
    `void` | `unbox_or_zero(Type type)` Unboxes the object on the top of the stack.
    `void` | `unbox(Type type)` If the argument is a primitive class, replaces the object on the top of the stack with the unwrapped (primitive) equivalent.
    `void` | `visitMaxs(int maxStack, int maxLocals)`
    `void` | `zero_or_null(Type type)` Pushes a zero onto the stack if the argument is a primitive class, or a null otherwise.

    - ### Methods inherited from class net.sf.cglib.core.LocalVariablesSorter

      `visitIincInsn, visitLocalVariable, visitVarInsn`

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

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

- - ### Field Detail

    - #### ADD

          public static final int ADD

    - #### MUL

          public static final int MUL

    - #### XOR

          public static final int XOR

    - #### USHR

          public static final int USHR

    - #### SUB

          public static final int SUB

    - #### DIV

          public static final int DIV

    - #### NEG

          public static final int NEG

    - #### REM

          public static final int REM

    - #### AND

          public static final int AND

    - #### OR

          public static final int OR

    - #### GT

          public static final int GT

    - #### LT

          public static final int LT

    - #### GE

          public static final int GE

    - #### LE

          public static final int LE

    - #### NE

          public static final int NE

    - #### EQ

          public static final int EQ

  - ### Constructor Detail

    - #### CodeEmitter

          public CodeEmitter(CodeEmitter wrap)

  - ### Method Detail

    - #### isStaticHook

          public boolean isStaticHook()

    - #### getSignature

          public Signature getSignature()

    - #### getReturnType

          public Type getReturnType()

    - #### getMethodInfo

          public MethodInfo getMethodInfo()

    - #### getClassEmitter

          public ClassEmitter getClassEmitter()

    - #### end_method

          public void end_method()

    - #### begin_block

          public Block begin_block()

    - #### catch_exception

          public void catch_exception(Block block,
                             Type exception)

    - #### goTo

          public void goTo(Label label)

    - #### ifnull

          public void ifnull(Label label)

    - #### ifnonnull

          public void ifnonnull(Label label)

    - #### if_jump

          public void if_jump(int mode,
                     Label label)

    - #### if_icmp

          public void if_icmp(int mode,
                     Label label)

    - #### if_cmp

          public void if_cmp(Type type,
                    int mode,
                    Label label)

    - #### pop

          public void pop()

    - #### pop2

          public void pop2()

    - #### dup

          public void dup()

    - #### dup2

          public void dup2()

    - #### dup_x1

          public void dup_x1()

    - #### dup_x2

          public void dup_x2()

    - #### dup2_x1

          public void dup2_x1()

    - #### dup2_x2

          public void dup2_x2()

    - #### swap

          public void swap()

    - #### aconst_null

          public void aconst_null()

    - #### swap

          public void swap(Type prev,
                  Type type)

    - #### monitorenter

          public void monitorenter()

    - #### monitorexit

          public void monitorexit()

    - #### math

          public void math(int op,
                  Type type)

    - #### array_load

          public void array_load(Type type)

    - #### array_store

          public void array_store(Type type)

    - #### cast_numeric

          public void cast_numeric(Type from,
                          Type to)

      Casts from one primitive numeric type to another

    - #### push

          public void push(int i)

    - #### push

          public void push(long value)

    - #### push

          public void push(float value)

    - #### push

          public void push(double value)

    - #### push

          public void push(java.lang.String value)

    - #### newarray

          public void newarray()

    - #### newarray

          public void newarray(Type type)

    - #### arraylength

          public void arraylength()

    - #### load_this

          public void load_this()

    - #### load_args

          public void load_args()

      Pushes all of the arguments of the current method onto the stack.

    - #### load_arg

          public void load_arg(int index)

      Pushes the specified argument of the current method onto the stack.
      Parameters:
        `index` - the zero-based index into the argument list

    - #### load_args

          public void load_args(int fromArg,
                       int count)

    - #### iinc

          public void iinc(Local local,
                  int amount)

    - #### store_local

          public void store_local(Local local)

    - #### load_local

          public void load_local(Local local)

    - #### return_value

          public void return_value()

    - #### getfield

          public void getfield(java.lang.String name)

    - #### putfield

          public void putfield(java.lang.String name)

    - #### super_getfield

          public void super_getfield(java.lang.String name,
                            Type type)

    - #### super_putfield

          public void super_putfield(java.lang.String name,
                            Type type)

    - #### super_getstatic

          public void super_getstatic(java.lang.String name,
                             Type type)

    - #### super_putstatic

          public void super_putstatic(java.lang.String name,
                             Type type)

    - #### getfield

          public void getfield(Type owner,
                      java.lang.String name,
                      Type type)

    - #### putfield

          public void putfield(Type owner,
                      java.lang.String name,
                      Type type)

    - #### getstatic

          public void getstatic(Type owner,
                       java.lang.String name,
                       Type type)

    - #### putstatic

          public void putstatic(Type owner,
                       java.lang.String name,
                       Type type)

    - #### super_invoke

          public void super_invoke()

    - #### super_invoke

          public void super_invoke(Signature sig)

    - #### invoke_constructor

          public void invoke_constructor(Type type)

    - #### super_invoke_constructor

          public void super_invoke_constructor()

    - #### invoke_constructor_this

          public void invoke_constructor_this()

    - #### invoke_interface

          public void invoke_interface(Type owner,
                              Signature sig)

    - #### invoke_virtual

          public void invoke_virtual(Type owner,
                            Signature sig)

    - #### invoke_static

          public void invoke_static(Type owner,
                           Signature sig)

    - #### invoke_virtual_this

          public void invoke_virtual_this(Signature sig)

    - #### invoke_static_this

          public void invoke_static_this(Signature sig)

    - #### invoke_constructor

          public void invoke_constructor(Type type,
                                Signature sig)

    - #### invoke_constructor_this

          public void invoke_constructor_this(Signature sig)

    - #### super_invoke_constructor

          public void super_invoke_constructor(Signature sig)

    - #### new_instance_this

          public void new_instance_this()

    - #### new_instance

          public void new_instance(Type type)

    - #### aaload

          public void aaload(int index)

    - #### aaload

          public void aaload()

    - #### aastore

          public void aastore()

    - #### athrow

          public void athrow()

    - #### make_label

          public Label make_label()

    - #### make_local

          public Local make_local()

    - #### make_local

          public Local make_local(Type type)

    - #### checkcast_this

          public void checkcast_this()

    - #### checkcast

          public void checkcast(Type type)

    - #### instance_of

          public void instance_of(Type type)

    - #### instance_of_this

          public void instance_of_this()

    - #### process_switch

          public void process_switch(int[] keys,
                            ProcessSwitchCallback callback)

    - #### process_switch

          public void process_switch(int[] keys,
                            ProcessSwitchCallback callback,
                            boolean useTable)

    - #### mark

          public void mark(Label label)

    - #### push

          public void push(boolean value)

    - #### not

          public void not()

      Toggles the integer on the top of the stack from 1 to 0 or vice versa

    - #### throw_exception

          public void throw_exception(Type type,
                             java.lang.String msg)

    - #### box

          public void box(Type type)

      If the argument is a primitive class, replaces the primitive value on the top of the stack with the wrapped (Object) equivalent. For example, char -> Character. If the class is Void, a null is pushed onto the stack instead.
      Parameters:
        `type` - the class indicating the current type of the top stack value

    - #### unbox

          public void unbox(Type type)

      If the argument is a primitive class, replaces the object on the top of the stack with the unwrapped (primitive) equivalent. For example, Character -> char.
      Parameters:
        `type` - the class indicating the desired type of the top stack value

    - #### create_arg_array

          public void create_arg_array()

      Allocates and fills an Object[] array with the arguments to the current method. Primitive values are inserted as their boxed (Object) equivalents.

    - #### zero_or_null

          public void zero_or_null(Type type)

      Pushes a zero onto the stack if the argument is a primitive class, or a null otherwise.

    - #### unbox_or_zero

          public void unbox_or_zero(Type type)

      Unboxes the object on the top of the stack. If the object is null, the unboxed primitive value becomes zero.

    - #### visitMaxs

          public void visitMaxs(int maxStack,
                       int maxLocals)

      Overrides:
        `visitMaxs` in class `LocalVariablesSorter`

    - #### invoke

          public void invoke(MethodInfo method,
                    Type virtualType)

    - #### invoke

          public void invoke(MethodInfo method)

Copyright (c) 2001 - Apache Software Foundation