net.sf.cglib.core

Class CodeEmitter


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

Constructor Summary

CodeEmitter(CodeEmitter wrap)

Method Summary

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(Type type)
void
checkcast_this()
void
create_arg_array()
Allocates and fills an Object[] array with the arguments to the current method.
void
define_attribute(Attribute attrs)
void
dup()
void
dup2()
void
dup2_x1()
void
dup2_x2()
void
dup_x1()
void
dup_x2()
void
end_method()
ClassEmitter
getClassEmitter()
MethodInfo
getMethodInfo()
Type
getReturnType()
Signature
getSignature()
void
getfield(String name)
void
getfield(Type owner, String name, Type type)
void
getstatic(Type owner, 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(Type type)
void
instance_of_this()
void
invoke(MethodInfo method)
void
invoke_constructor(Type type)
void
invoke_constructor(Type type, Signature sig)
void
invoke_constructor_this()
void
invoke_constructor_this(Signature sig)
void
invoke_interface(Type owner, Signature sig)
void
invoke_static(Type owner, Signature sig)
void
invoke_static_this(Signature sig)
void
invoke_virtual(Type owner, Signature sig)
void
invoke_virtual_this(Signature sig)
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(Type type)
void
new_instance_this()
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(String value)
void
push(boolean value)
void
push(double value)
void
push(float value)
void
push(int i)
void
push(long value)
void
putfield(String name)
void
putfield(Type owner, String name, Type type)
void
putstatic(Type owner, String name, Type type)
void
return_value()
void
store_local(Local local)
void
super_getfield(String name, Type type)
void
super_getstatic(String name, Type type)
void
super_invoke()
void
super_invoke(Signature sig)
void
super_invoke_constructor()
void
super_invoke_constructor(Signature sig)
void
super_putfield(String name, Type type)
void
super_putstatic(String name, Type type)
void
swap()
void
swap(Type prev, Type type)
void
throw_exception(Type type, String msg)
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
unbox_or_zero(Type type)
Unboxes the object on the top of the stack.
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.RemappingCodeVisitor

visitIincInsn, visitLocalVariable, visitMaxs, visitVarInsn

Field Details

ADD

public static final int ADD

AND

public static final int AND

DIV

public static final int DIV

EQ

public static final int EQ

GE

public static final int GE

GT

public static final int GT

LE

public static final int LE

LT

public static final int LT

MUL

public static final int MUL

NE

public static final int NE

NEG

public static final int NEG

OR

public static final int OR

REM

public static final int REM

SUB

public static final int SUB

USHR

public static final int USHR

XOR

public static final int XOR

Constructor Details

CodeEmitter

public CodeEmitter(CodeEmitter wrap)

Method Details

aaload

public void aaload()

aaload

public void aaload(int index)

aastore

public void aastore()

aconst_null

public void aconst_null()

array_load

public void array_load(Type type)

array_store

public void array_store(Type type)

arraylength

public void arraylength()

athrow

public void athrow()

begin_block

public Block begin_block()

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

cast_numeric

public void cast_numeric(Type from,
                         Type to)
Casts from one primitive numeric type to another

catch_exception

public void catch_exception(Block block,
                            Type exception)

checkcast

public void checkcast(Type type)

checkcast_this

public void checkcast_this()

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.

define_attribute

public void define_attribute(Attribute attrs)

dup

public void dup()

dup2

public void dup2()

dup2_x1

public void dup2_x1()

dup2_x2

public void dup2_x2()

dup_x1

public void dup_x1()

dup_x2

public void dup_x2()

end_method

public void end_method()

getClassEmitter

public ClassEmitter getClassEmitter()

getMethodInfo

public MethodInfo getMethodInfo()

getReturnType

public Type getReturnType()

getSignature

public Signature getSignature()

getfield

public void getfield(String name)

getfield

public void getfield(Type owner,
                     String name,
                     Type type)

getstatic

public void getstatic(Type owner,
                      String name,
                      Type type)

goTo

public void goTo(Label label)

if_cmp

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

if_icmp

public void if_icmp(int mode,
                    Label label)

if_jump

public void if_jump(int mode,
                    Label label)

ifnonnull

public void ifnonnull(Label label)

ifnull

public void ifnull(Label label)

iinc

public void iinc(Local local,
                 int amount)

instance_of

public void instance_of(Type type)

instance_of_this

public void instance_of_this()

invoke

public void invoke(MethodInfo method)

invoke_constructor

public void invoke_constructor(Type type)

invoke_constructor

public void invoke_constructor(Type type,
                               Signature sig)

invoke_constructor_this

public void invoke_constructor_this()

invoke_constructor_this

public void invoke_constructor_this(Signature sig)

invoke_interface

public void invoke_interface(Type owner,
                             Signature sig)

invoke_static

public void invoke_static(Type owner,
                          Signature sig)

invoke_static_this

public void invoke_static_this(Signature sig)

invoke_virtual

public void invoke_virtual(Type owner,
                           Signature sig)

invoke_virtual_this

public void invoke_virtual_this(Signature sig)

isStaticHook

public boolean isStaticHook()

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()
Pushes all of the arguments of the current method onto the stack.

load_args

public void load_args(int fromArg,
                      int count)

load_local

public void load_local(Local local)

load_this

public void load_this()

make_label

public Label make_label()

make_local

public Local make_local()

make_local

public Local make_local(Type type)

mark

public void mark(Label label)

math

public void math(int op,
                 Type type)

monitorenter

public void monitorenter()

monitorexit

public void monitorexit()

new_instance

public void new_instance(Type type)

new_instance_this

public void new_instance_this()

newarray

public void newarray()

newarray

public void newarray(Type type)

not

public void not()
Toggles the integer on the top of the stack from 1 to 0 or vice versa

pop

public void pop()

pop2

public void pop2()

process_switch

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

process_switch

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

push

public void push(String value)

push

public void push(boolean value)

push

public void push(double value)

push

public void push(float value)

push

public void push(int i)

push

public void push(long value)

putfield

public void putfield(String name)

putfield

public void putfield(Type owner,
                     String name,
                     Type type)

putstatic

public void putstatic(Type owner,
                      String name,
                      Type type)

return_value

public void return_value()

store_local

public void store_local(Local local)

super_getfield

public void super_getfield(String name,
                           Type type)

super_getstatic

public void super_getstatic(String name,
                            Type type)

super_invoke

public void super_invoke()

super_invoke

public void super_invoke(Signature sig)

super_invoke_constructor

public void super_invoke_constructor()

super_invoke_constructor

public void super_invoke_constructor(Signature sig)

super_putfield

public void super_putfield(String name,
                           Type type)

super_putstatic

public void super_putstatic(String name,
                            Type type)

swap

public void swap()

swap

public void swap(Type prev,
                 Type type)

throw_exception

public void throw_exception(Type type,
                            String msg)

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

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 interface RemappingCodeVisitor

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.

Copyright (c) 2001 - Apache Software Foundation