|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.groovy.classgen.BytecodeHelper
A helper class for bytecode generation with AsmClassGenerator.
Field Summary | |
private org.objectweb.asm.CodeVisitor |
cv
|
Fields inherited from interface org.objectweb.asm.Constants |
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, V1_1, V1_2, V1_3, V1_4, V1_5 |
Constructor Summary | |
BytecodeHelper(org.objectweb.asm.CodeVisitor cv)
|
Method Summary | |
void |
box(java.lang.Class type)
Generates the bytecode to autobox the current value on the stack |
void |
box(java.lang.String type)
|
void |
boxBoolean()
convert boolean to Boolean |
static java.lang.Class |
boxOnPrimitive(java.lang.Class cls)
|
void |
doCast(java.lang.Class type)
|
void |
doCast(java.lang.String type)
|
void |
dup()
|
static java.lang.String |
formatNameForClassLoading(java.lang.String name)
returns a name that Class.forName() can take. |
static java.lang.String |
getClassInternalName(java.lang.String name)
|
static java.lang.String[] |
getClassInternalNames(java.lang.String[] names)
|
static java.lang.String |
getClassRegularName(java.lang.String name)
|
org.objectweb.asm.CodeVisitor |
getCodeVisitor()
|
static java.lang.String |
getMethodDescriptor(java.lang.Class returnType,
java.lang.Class[] paramTypes)
|
static java.lang.String |
getMethodDescriptor(MetaMethod metamethod)
|
static java.lang.String |
getMethodDescriptor(java.lang.reflect.Method meth)
|
static java.lang.String |
getMethodDescriptor(java.lang.String returnTypeName,
Parameter[] paramTypeNames)
|
static java.lang.String |
getObjectTypeForPrimitive(java.lang.String type)
|
static java.lang.String |
getTypeDescription(java.lang.Class type)
|
static java.lang.String |
getTypeDescription(java.lang.String name)
array types are special: eg.: String[]: classname: [Ljava/lang/String; int[]: [I |
void |
invoke(java.lang.reflect.Method meth)
create the bytecode to invoke a method |
static boolean |
isPrimitiveType(java.lang.String type)
|
void |
load(java.lang.String type,
int idx)
|
void |
load(Variable v)
|
(package private) void |
loadConstant(java.lang.Object value)
load the constant on the operand stack. |
void |
loadThis()
|
void |
loadVar(Variable variable,
boolean holder)
load the value of the variable on the operand stack. |
void |
mark(java.lang.String msg)
load a message on the stack and remove it right away. |
protected void |
pushConstant(boolean value)
|
protected void |
pushConstant(int value)
|
void |
putField(FieldNode fld)
|
void |
putField(FieldNode fld,
java.lang.String ownerName)
|
void |
quickBoxIfNecessary(java.lang.Class cls)
box the primitive value on the stack |
void |
quickUnboxIfNecessary(java.lang.Class cls)
unbox the ref on the stack |
void |
store(java.lang.String type,
int idx)
|
void |
store(Variable v)
|
void |
store(Variable v,
boolean markStart)
|
void |
storeVar(Variable variable,
boolean holder)
|
void |
unbox(java.lang.Class type)
Generates the bytecode to unbox the current value on the stack |
void |
unbox(java.lang.String type)
Generates the bytecode to unbox the current value on the stack |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private org.objectweb.asm.CodeVisitor cv
Constructor Detail |
public BytecodeHelper(org.objectweb.asm.CodeVisitor cv)
Method Detail |
public org.objectweb.asm.CodeVisitor getCodeVisitor()
public void box(java.lang.Class type)
public void quickBoxIfNecessary(java.lang.Class cls)
cls
- public void quickUnboxIfNecessary(java.lang.Class cls)
cls
- public void box(java.lang.String type)
public void unbox(java.lang.Class type)
public void unbox(java.lang.String type)
public static boolean isPrimitiveType(java.lang.String type)
public static java.lang.String getTypeDescription(java.lang.String name)
public static java.lang.String getClassInternalName(java.lang.String name)
public static java.lang.String getClassRegularName(java.lang.String name)
public static java.lang.String getMethodDescriptor(java.lang.String returnTypeName, Parameter[] paramTypeNames)
public static java.lang.String getMethodDescriptor(java.lang.Class returnType, java.lang.Class[] paramTypes)
public static java.lang.String getMethodDescriptor(java.lang.reflect.Method meth)
public static java.lang.String getTypeDescription(java.lang.Class type)
public static java.lang.String[] getClassInternalNames(java.lang.String[] names)
protected void pushConstant(boolean value)
protected void pushConstant(int value)
public void doCast(java.lang.String type)
public void doCast(java.lang.Class type)
public void load(java.lang.String type, int idx)
public void load(Variable v)
public void store(java.lang.String type, int idx)
public void store(Variable v, boolean markStart)
public void store(Variable v)
public static java.lang.String getObjectTypeForPrimitive(java.lang.String type)
void loadConstant(java.lang.Object value)
public void loadVar(Variable variable, boolean holder)
variable
- holder
- public void storeVar(Variable variable, boolean holder)
public void putField(FieldNode fld)
public void putField(FieldNode fld, java.lang.String ownerName)
public void loadThis()
public static java.lang.Class boxOnPrimitive(java.lang.Class cls)
public void invoke(java.lang.reflect.Method meth)
meth
- the method object to invokepublic void boxBoolean()
public static java.lang.String getMethodDescriptor(MetaMethod metamethod)
public void mark(java.lang.String msg)
msg
- public static java.lang.String formatNameForClassLoading(java.lang.String name)
name
-
public void dup()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |