Package net.sf.cglib.core

## Class EmitUtils

- java.lang.Object
- - net.sf.cglib.core.EmitUtils

    public class EmitUtils
    extends java.lang.Object

### Nested Class Summary

Nested Classes
`static class` `EmitUtils.ArrayDelimiters`

### Field Summary

Fields
`static EmitUtils.ArrayDelimiters` `DEFAULT_DELIMITERS`

### Method Summary

All Methods Static Methods Concrete Methods Deprecated Methods
`static void` `add_properties​(ClassEmitter ce, java.lang.String[] names, org.objectweb.asm.Type[] types)`
`static void` `add_property​(ClassEmitter ce, java.lang.String name, org.objectweb.asm.Type type, java.lang.String fieldName)`
`static void` `append_string​(CodeEmitter e, org.objectweb.asm.Type type, EmitUtils.ArrayDelimiters delims, Customizer customizer)` Deprecated. use `append_string(CodeEmitter, Type, ArrayDelimiters, CustomizerRegistry)` instead
`static void` `append_string​(CodeEmitter e, org.objectweb.asm.Type type, EmitUtils.ArrayDelimiters delims, CustomizerRegistry registry)`
`static CodeEmitter` `begin_method​(ClassEmitter e, MethodInfo method)`
`static CodeEmitter` `begin_method​(ClassEmitter e, MethodInfo method, int access)`
`static void` `constructor_switch​(CodeEmitter e, java.util.List constructors, ObjectSwitchCallback callback)`
`static void` `factory_method​(ClassEmitter ce, Signature sig)`
`static void` `hash_code​(CodeEmitter e, org.objectweb.asm.Type type, int multiplier, Customizer customizer)` Deprecated. use `hash_code(CodeEmitter, Type, int, CustomizerRegistry)` instead
`static void` `hash_code​(CodeEmitter e, org.objectweb.asm.Type type, int multiplier, CustomizerRegistry registry)`
`static void` `load_class​(CodeEmitter e, org.objectweb.asm.Type type)`
`static void` `load_class_this​(CodeEmitter e)`
`static void` `load_method​(CodeEmitter e, MethodInfo method)`
`static void` `method_switch​(CodeEmitter e, java.util.List methods, ObjectSwitchCallback callback)`
`static void` `not_equals​(CodeEmitter e, org.objectweb.asm.Type type, org.objectweb.asm.Label notEquals, Customizer customizer)` Deprecated. use `not_equals(CodeEmitter, Type, Label, CustomizerRegistry)` instead
`static void` `not_equals​(CodeEmitter e, org.objectweb.asm.Type type, org.objectweb.asm.Label notEquals, CustomizerRegistry registry)` Branches to the specified label if the top two items on the stack are not equal.
`static void` `null_constructor​(ClassEmitter ce)`
`static void` `process_array​(CodeEmitter e, org.objectweb.asm.Type type, ProcessArrayCallback callback)` Process an array on the stack.
`static void` `process_arrays​(CodeEmitter e, org.objectweb.asm.Type type, ProcessArrayCallback callback)` Process two arrays on the stack in parallel.
`static void` `push_array​(CodeEmitter e, java.lang.Object[] array)`
`static void` `push_object​(CodeEmitter e, java.lang.Object obj)`
`static void` `string_switch​(CodeEmitter e, java.lang.String[] strings, int switchStyle, ObjectSwitchCallback callback)`
`static void` `wrap_throwable​(Block block, org.objectweb.asm.Type wrapper)`
`static void` `wrap_undeclared_throwable​(CodeEmitter e, Block handler, org.objectweb.asm.Type[] exceptions, org.objectweb.asm.Type wrapper)`

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

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

### Field Detail

#### DEFAULT_DELIMITERS

    public static final EmitUtils.ArrayDelimiters DEFAULT_DELIMITERS

### Method Detail

#### factory_method

    public static void factory_method​(ClassEmitter ce,
                                      Signature sig)

#### null_constructor

    public static void null_constructor​(ClassEmitter ce)

#### process_array

    public static void process_array​(CodeEmitter e,
                                     org.objectweb.asm.Type type,
                                     ProcessArrayCallback callback)

Process an array on the stack. Assumes the top item on the stack is an array of the specified type. For each element in the array, puts the element on the stack and triggers the callback.

Parameters:
  `type` - the type of the array (type.isArray() must be true)
  `callback` - the callback triggered for each element

#### process_arrays

    public static void process_arrays​(CodeEmitter e,
                                      org.objectweb.asm.Type type,
                                      ProcessArrayCallback callback)

Process two arrays on the stack in parallel. Assumes the top two items on the stack are arrays of the specified class. The arrays must be the same length. For each pair of elements in the arrays, puts the pair on the stack and triggers the callback.

Parameters:
  `type` - the type of the arrays (type.isArray() must be true)
  `callback` - the callback triggered for each pair of elements

#### string_switch

    public static void string_switch​(CodeEmitter e,
                                     java.lang.String[] strings,
                                     int switchStyle,
                                     ObjectSwitchCallback callback)

#### load_class_this

    public static void load_class_this​(CodeEmitter e)

#### load_class

    public static void load_class​(CodeEmitter e,
                                  org.objectweb.asm.Type type)

#### push_array

    public static void push_array​(CodeEmitter e,
                                  java.lang.Object[] array)

#### push_object

    public static void push_object​(CodeEmitter e,
                                   java.lang.Object obj)

#### hash_code

    @Deprecated
    public static void hash_code​(CodeEmitter e,
                                 org.objectweb.asm.Type type,
                                 int multiplier,
                                 Customizer customizer)

Deprecated.
use `hash_code(CodeEmitter, Type, int, CustomizerRegistry)` instead

#### hash_code

    public static void hash_code​(CodeEmitter e,
                                 org.objectweb.asm.Type type,
                                 int multiplier,
                                 CustomizerRegistry registry)

#### not_equals

    @Deprecated
    public static void not_equals​(CodeEmitter e,
                                  org.objectweb.asm.Type type,
                                  org.objectweb.asm.Label notEquals,
                                  Customizer customizer)

Deprecated.
use `not_equals(CodeEmitter, Type, Label, CustomizerRegistry)` instead

#### not_equals

    public static void not_equals​(CodeEmitter e,
                                  org.objectweb.asm.Type type,
                                  org.objectweb.asm.Label notEquals,
                                  CustomizerRegistry registry)

Branches to the specified label if the top two items on the stack are not equal. The items must both be of the specified class. Equality is determined by comparing primitive values directly and by invoking the `equals` method for Objects. Arrays are recursively processed in the same manner.

#### append_string

    @Deprecated
    public static void append_string​(CodeEmitter e,
                                     org.objectweb.asm.Type type,
                                     EmitUtils.ArrayDelimiters delims,
                                     Customizer customizer)

Deprecated.
use `append_string(CodeEmitter, Type, ArrayDelimiters, CustomizerRegistry)` instead

#### append_string

    public static void append_string​(CodeEmitter e,
                                     org.objectweb.asm.Type type,
                                     EmitUtils.ArrayDelimiters delims,
                                     CustomizerRegistry registry)

#### load_method

    public static void load_method​(CodeEmitter e,
                                   MethodInfo method)

#### method_switch

    public static void method_switch​(CodeEmitter e,
                                     java.util.List methods,
                                     ObjectSwitchCallback callback)

#### constructor_switch

    public static void constructor_switch​(CodeEmitter e,
                                          java.util.List constructors,
                                          ObjectSwitchCallback callback)

#### wrap_throwable

    public static void wrap_throwable​(Block block,
                                      org.objectweb.asm.Type wrapper)

#### add_properties

    public static void add_properties​(ClassEmitter ce,
                                      java.lang.String[] names,
                                      org.objectweb.asm.Type[] types)

#### add_property

    public static void add_property​(ClassEmitter ce,
                                    java.lang.String name,
                                    org.objectweb.asm.Type type,
                                    java.lang.String fieldName)

#### wrap_undeclared_throwable

    public static void wrap_undeclared_throwable​(CodeEmitter e,
                                                 Block handler,
                                                 org.objectweb.asm.Type[] exceptions,
                                                 org.objectweb.asm.Type wrapper)

#### begin_method

    public static CodeEmitter begin_method​(ClassEmitter e,
                                           MethodInfo method)

#### begin_method

    public static CodeEmitter begin_method​(ClassEmitter e,
                                           MethodInfo method,
                                           int access)