|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.groovy.classgen.BytecodeHelper
public class 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(ClassNode type)
|
void |
boxBoolean()
convert boolean to Boolean |
static ClassNode |
boxOnPrimitive(ClassNode type)
|
void |
doCast(Class type)
|
void |
doCast(ClassNode type)
|
void |
dup()
|
static String |
formatNameForClassLoading(String name)
returns a name that Class.forName() can take. |
static String |
getClassInternalName(Class t)
|
static String |
getClassInternalName(ClassNode t)
|
static String |
getClassInternalName(String name)
|
static String[] |
getClassInternalNames(ClassNode[] names)
|
static String |
getMethodDescriptor(Class returnType,
Class[] paramTypes)
|
static String |
getMethodDescriptor(ClassNode returnType,
Parameter[] parameters)
|
org.objectweb.asm.MethodVisitor |
getMethodVisitor()
|
static String |
getTypeDescription(ClassNode type)
|
static String |
getTypeDescription(String name)
array types are special: eg.: String[]: classname: [Ljava/lang/String; int[]: [I |
void |
load(ClassNode 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(ClassNode type)
box the primitive value on the stack |
void |
quickUnboxIfNecessary(ClassNode type)
|
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(ClassNode type)
|
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 quickBoxIfNecessary(ClassNode type)
cls
- public void quickUnboxIfNecessary(ClassNode type)
public void box(Class type)
public void box(ClassNode type)
public void unbox(Class type)
public void unbox(ClassNode type)
public static String getTypeDescription(String name)
public static String getClassInternalName(ClassNode t)
public static String getClassInternalName(Class t)
public static String getClassInternalName(String name)
public static String getMethodDescriptor(ClassNode returnType, Parameter[] parameters)
public static String getMethodDescriptor(Class returnType, Class[] paramTypes)
public static String getTypeDescription(ClassNode type)
public static String[] getClassInternalNames(ClassNode[] names)
protected void pushConstant(boolean value)
protected void pushConstant(int value)
public void doCast(Class type)
public void doCast(ClassNode type)
public void load(ClassNode type, int idx)
public void load(Variable v)
public void store(Variable v, boolean markStart)
public void store(Variable v)
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 ClassNode boxOnPrimitive(ClassNode type)
public void boxBoolean()
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 |