|
|||||||||||
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 |
Fields inherited from interface org.objectweb.asm.Opcodes |
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, V1_6 |
Constructor Summary | |
BytecodeHelper(org.objectweb.asm.MethodVisitor cv)
|
Method Summary | |
void |
box(Class type)
Generates the bytecode to autobox the current value on the stack |
void |
box(String type)
|
void |
boxBoolean()
convert boolean to Boolean |
static Class |
boxOnPrimitive(Class cls)
|
void |
doCast(Class type)
|
void |
doCast(String type)
|
void |
dup()
|
static String |
formatNameForClassLoading(String name)
returns a name that Class.forName() can take. |
static String |
getClassInternalName(String name)
|
static String[] |
getClassInternalNames(String[] names)
|
static String |
getClassRegularName(String name)
|
static String |
getMethodDescriptor(Class returnType,
Class[] paramTypes)
|
static String |
getMethodDescriptor(MetaMethod metamethod)
|
static String |
getMethodDescriptor(Method meth)
|
static String |
getMethodDescriptor(String returnTypeName,
Parameter[] paramTypeNames)
|
org.objectweb.asm.MethodVisitor |
getMethodVisitor()
|
static String |
getObjectTypeForPrimitive(String type)
|
static String |
getTypeDescription(Class type)
|
static String |
getTypeDescription(String name)
array types are special: eg.: String[]: classname: [Ljava/lang/String; int[]: [I |
void |
invoke(Method meth)
create the bytecode to invoke a method |
static boolean |
isPrimitiveType(String type)
|
void |
load(String type,
int idx)
|
void |
load(Variable v)
|
void |
loadThis()
|
void |
loadVar(Variable variable,
boolean holder)
load the value of the variable on the operand stack. |
void |
mark(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,
String ownerName)
|
void |
quickBoxIfNecessary(Class cls)
box the primitive value on the stack |
void |
quickUnboxIfNecessary(Class cls)
unbox the ref on the stack |
void |
store(String type,
int idx)
|
void |
store(Variable v)
|
void |
store(Variable v,
boolean markStart)
|
void |
storeVar(Variable variable,
boolean holder)
|
void |
unbox(Class type)
Generates the bytecode to unbox the current value on the stack |
void |
unbox(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 |
Constructor Detail |
public BytecodeHelper(org.objectweb.asm.MethodVisitor cv)
Method Detail |
public org.objectweb.asm.MethodVisitor getMethodVisitor()
public void box(Class type)
public void quickBoxIfNecessary(Class cls)
cls
- public void quickUnboxIfNecessary(Class cls)
cls
- public void box(String type)
public void unbox(Class type)
public void unbox(String type)
public static boolean isPrimitiveType(String type)
public static String getTypeDescription(String name)
public static String getClassInternalName(String name)
public static String getClassRegularName(String name)
public static String getMethodDescriptor(String returnTypeName, Parameter[] paramTypeNames)
public static String getMethodDescriptor(Class returnType, Class[] paramTypes)
public static String getMethodDescriptor(Method meth)
public static String getTypeDescription(Class type)
public static String[] getClassInternalNames(String[] names)
protected void pushConstant(boolean value)
protected void pushConstant(int value)
public void doCast(String type)
public void doCast(Class type)
public void load(String type, int idx)
public void load(Variable v)
public void store(String type, int idx)
public void store(Variable v, boolean markStart)
public void store(Variable v)
public static String getObjectTypeForPrimitive(String type)
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, String ownerName)
public void loadThis()
public static Class boxOnPrimitive(Class cls)
public void invoke(Method meth)
meth
- the method object to invokepublic void boxBoolean()
public static String getMethodDescriptor(MetaMethod metamethod)
public void mark(String msg)
msg
- public static String formatNameForClassLoading(String name)
name
-
public void dup()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |