net.sf.cglib.core
Class EmitUtils

java.lang.Object
  extended bynet.sf.cglib.core.EmitUtils

public class EmitUtils
extends java.lang.Object


Nested Class Summary
static class EmitUtils.ArrayDelimiters
           
 
Field Summary
static EmitUtils.ArrayDelimiters DEFAULT_DELIMITERS
           
 
Method Summary
static void add_property(ClassEmitter ce, java.lang.String name, org.objectweb.asm.Type type, java.lang.String fieldName)
           
static void add_properties(ClassEmitter ce, java.lang.String[] names, org.objectweb.asm.Type[] types)
           
static void append_string(CodeEmitter e, org.objectweb.asm.Type type, EmitUtils.ArrayDelimiters delims, Customizer customizer)
           
static void constructor_switch(CodeEmitter e, java.lang.reflect.Constructor[] cstructs, 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)
           
static void load_class_this(CodeEmitter e)
           
static void load_class(CodeEmitter e, org.objectweb.asm.Type type)
           
static void load_method(CodeEmitter e, java.lang.reflect.Method method)
           
static void method_switch(CodeEmitter e, java.lang.reflect.Method[] methods, ObjectSwitchCallback callback)
           
static void not_equals(CodeEmitter e, org.objectweb.asm.Type type, org.objectweb.asm.Label notEquals, Customizer customizer)
          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)
           
 
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

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

not_equals

public static void not_equals(CodeEmitter e,
                              org.objectweb.asm.Type type,
                              org.objectweb.asm.Label notEquals,
                              Customizer customizer)
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

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

load_method

public static void load_method(CodeEmitter e,
                               java.lang.reflect.Method method)

method_switch

public static void method_switch(CodeEmitter e,
                                 java.lang.reflect.Method[] methods,
                                 ObjectSwitchCallback callback)

constructor_switch

public static void constructor_switch(CodeEmitter e,
                                      java.lang.reflect.Constructor[] cstructs,
                                      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)


Copyright © 2002-2003 cglib. All Rights Reserved.