net.sf.cglib.core
Class CodeEmitter

java.lang.Object
  extended byorg.objectweb.asm.CodeAdapter
      extended bynet.sf.cglib.core.RemappingCodeVisitor
          extended bynet.sf.cglib.core.CodeEmitter
All Implemented Interfaces:
org.objectweb.asm.CodeVisitor

public class CodeEmitter
extends RemappingCodeVisitor

Author:
Juozas Baliuka, Chris Nokleberg

Field Summary
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
           
 
Fields inherited from class org.objectweb.asm.CodeAdapter
cv
 
Constructor Summary
CodeEmitter(CodeEmitter wrap)
           
 
Method Summary
 void aaload()
           
 void aaload(int index)
           
 void aastore()
           
 void aconst_null()
           
 void array_load(org.objectweb.asm.Type type)
           
 void array_store(org.objectweb.asm.Type type)
           
 void arraylength()
           
 void athrow()
           
 Block begin_block()
           
 void box(org.objectweb.asm.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(org.objectweb.asm.Type from, org.objectweb.asm.Type to)
          Casts from one primitive numeric type to another
 void catch_exception(Block block, org.objectweb.asm.Type exception)
           
 void checkcast_this()
           
 void checkcast(org.objectweb.asm.Type type)
           
 void create_arg_array()
          Allocates and fills an Object[] array with the arguments to the current method.
 void define_attribute(org.objectweb.asm.Attribute attrs)
           
 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(org.objectweb.asm.Type owner, java.lang.String name, org.objectweb.asm.Type type)
           
 org.objectweb.asm.Type getReturnType()
           
 Signature getSignature()
           
 void getstatic(org.objectweb.asm.Type owner, java.lang.String name, org.objectweb.asm.Type type)
           
 void goTo(org.objectweb.asm.Label label)
           
 void if_cmp(org.objectweb.asm.Type type, int mode, org.objectweb.asm.Label label)
           
 void if_icmp(int mode, org.objectweb.asm.Label label)
           
 void if_jump(int mode, org.objectweb.asm.Label label)
           
 void ifnonnull(org.objectweb.asm.Label label)
           
 void ifnull(org.objectweb.asm.Label label)
           
 void iinc(Local local, int amount)
           
 void instance_of_this()
           
 void instance_of(org.objectweb.asm.Type type)
           
 void invoke_constructor_this()
           
 void invoke_constructor_this(Signature sig)
           
 void invoke_constructor(org.objectweb.asm.Type type)
           
 void invoke_constructor(org.objectweb.asm.Type type, Signature sig)
           
 void invoke_interface(org.objectweb.asm.Type owner, Signature sig)
           
 void invoke_static_this(Signature sig)
           
 void invoke_static(org.objectweb.asm.Type owner, Signature sig)
           
 void invoke_virtual_this(Signature sig)
           
 void invoke_virtual(org.objectweb.asm.Type owner, Signature sig)
           
 void invoke(java.lang.reflect.Method method)
           
 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()
           
 org.objectweb.asm.Label make_label()
           
 Local make_local()
           
 Local make_local(org.objectweb.asm.Type type)
           
 void mark(org.objectweb.asm.Label label)
           
 void math(int op, org.objectweb.asm.Type type)
           
 void monitorenter()
           
 void monitorexit()
           
 void new_instance_this()
           
 void new_instance(org.objectweb.asm.Type type)
           
 void newarray()
           
 void newarray(org.objectweb.asm.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(org.objectweb.asm.Type owner, java.lang.String name, org.objectweb.asm.Type type)
           
 void putstatic(org.objectweb.asm.Type owner, java.lang.String name, org.objectweb.asm.Type type)
           
 void return_value()
           
 void store_local(Local local)
           
 void super_getfield(java.lang.String name, org.objectweb.asm.Type type)
           
 void super_getstatic(java.lang.String name, org.objectweb.asm.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, org.objectweb.asm.Type type)
           
 void super_putstatic(java.lang.String name, org.objectweb.asm.Type type)
           
 void swap()
           
 void swap(org.objectweb.asm.Type prev, org.objectweb.asm.Type type)
           
 void throw_exception(org.objectweb.asm.Type type, java.lang.String msg)
           
 void unbox_or_zero(org.objectweb.asm.Type type)
          Unboxes the object on the top of the stack.
 void unbox(org.objectweb.asm.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(org.objectweb.asm.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.RemappingCodeVisitor
nextLocal, visitIincInsn, visitLocalVariable, visitVarInsn
 
Methods inherited from class org.objectweb.asm.CodeAdapter
visitAttribute, visitFieldInsn, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLookupSwitchInsn, visitMethodInsn, visitMultiANewArrayInsn, visitTableSwitchInsn, visitTypeInsn, visitTryCatchBlock
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ADD

public static final int ADD
See Also:
Constant Field Values

MUL

public static final int MUL
See Also:
Constant Field Values

XOR

public static final int XOR
See Also:
Constant Field Values

USHR

public static final int USHR
See Also:
Constant Field Values

SUB

public static final int SUB
See Also:
Constant Field Values

DIV

public static final int DIV
See Also:
Constant Field Values

NEG

public static final int NEG
See Also:
Constant Field Values

REM

public static final int REM
See Also:
Constant Field Values

AND

public static final int AND
See Also:
Constant Field Values

OR

public static final int OR
See Also:
Constant Field Values

GT

public static final int GT
See Also:
Constant Field Values

LT

public static final int LT
See Also:
Constant Field Values

GE

public static final int GE
See Also:
Constant Field Values

LE

public static final int LE
See Also:
Constant Field Values

NE

public static final int NE
See Also:
Constant Field Values

EQ

public static final int EQ
See Also:
Constant Field Values
Constructor Detail

CodeEmitter

public CodeEmitter(CodeEmitter wrap)
Method Detail

isStaticHook

public boolean isStaticHook()

getSignature

public Signature getSignature()

getReturnType

public org.objectweb.asm.Type getReturnType()

getClassEmitter

public ClassEmitter getClassEmitter()

end_method

public void end_method()

begin_block

public Block begin_block()

catch_exception

public void catch_exception(Block block,
                            org.objectweb.asm.Type exception)

goTo

public void goTo(org.objectweb.asm.Label label)

ifnull

public void ifnull(org.objectweb.asm.Label label)

ifnonnull

public void ifnonnull(org.objectweb.asm.Label label)

if_jump

public void if_jump(int mode,
                    org.objectweb.asm.Label label)

if_icmp

public void if_icmp(int mode,
                    org.objectweb.asm.Label label)

if_cmp

public void if_cmp(org.objectweb.asm.Type type,
                   int mode,
                   org.objectweb.asm.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(org.objectweb.asm.Type prev,
                 org.objectweb.asm.Type type)

monitorenter

public void monitorenter()

monitorexit

public void monitorexit()

math

public void math(int op,
                 org.objectweb.asm.Type type)

array_load

public void array_load(org.objectweb.asm.Type type)

array_store

public void array_store(org.objectweb.asm.Type type)

cast_numeric

public void cast_numeric(org.objectweb.asm.Type from,
                         org.objectweb.asm.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(org.objectweb.asm.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,
                           org.objectweb.asm.Type type)

super_putfield

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

super_getstatic

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

super_putstatic

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

getfield

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

putfield

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

getstatic

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

putstatic

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

super_invoke

public void super_invoke()

super_invoke

public void super_invoke(Signature sig)

invoke_constructor

public void invoke_constructor(org.objectweb.asm.Type type)

super_invoke_constructor

public void super_invoke_constructor()

invoke_constructor_this

public void invoke_constructor_this()

invoke_interface

public void invoke_interface(org.objectweb.asm.Type owner,
                             Signature sig)

invoke_virtual

public void invoke_virtual(org.objectweb.asm.Type owner,
                           Signature sig)

invoke_static

public void invoke_static(org.objectweb.asm.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(org.objectweb.asm.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(org.objectweb.asm.Type type)

aaload

public void aaload(int index)

aaload

public void aaload()

aastore

public void aastore()

athrow

public void athrow()

make_label

public org.objectweb.asm.Label make_label()

make_local

public Local make_local()

make_local

public Local make_local(org.objectweb.asm.Type type)

checkcast_this

public void checkcast_this()

checkcast

public void checkcast(org.objectweb.asm.Type type)

instance_of

public void instance_of(org.objectweb.asm.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(org.objectweb.asm.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(org.objectweb.asm.Type type,
                            java.lang.String msg)

box

public void box(org.objectweb.asm.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(org.objectweb.asm.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
Returns:
true if the value was unboxed

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(org.objectweb.asm.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(org.objectweb.asm.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)
Specified by:
visitMaxs in interface org.objectweb.asm.CodeVisitor
Overrides:
visitMaxs in class RemappingCodeVisitor

invoke

public void invoke(java.lang.reflect.Method method)

define_attribute

public void define_attribute(org.objectweb.asm.Attribute attrs)


Copyright © 2002-2003 cglib. All Rights Reserved.