org.codehaus.groovy.classgen
Class BytecodeHelper

java.lang.Object
  extended byorg.codehaus.groovy.classgen.BytecodeHelper
All Implemented Interfaces:
org.objectweb.asm.Constants

public class BytecodeHelper
extends Object
implements org.objectweb.asm.Constants

AClass helper class for bytecode generation

Version:
$Revision: 1.12 $
Author:
James Strachan

Field Summary
 
Fields inherited from interface org.objectweb.asm.Constants
AALOAD, AASTORE, ACC_ABSTRACT, 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
 
Constructor Summary
BytecodeHelper(org.objectweb.asm.CodeVisitor cv)
           
 
Method Summary
 void box(Class type)
          Generates the bytecode to autobox the current value on the stack
 void box(String type)
           
 void doCast(Class type)
           
 void doCast(String type)
           
protected static String getClassInternalName(String name)
           
protected static String[] getClassInternalNames(String[] names)
           
protected static String getMethodDescriptor(Class returnType, Class[] paramTypes)
           
protected static String getMethodDescriptor(String returnTypeName, Parameter[] paramTypeNames)
           
static String getObjectTypeForPrimitive(String type)
           
static String getTypeDescription(Class type)
           
static String getTypeDescription(String name)
           
static boolean isPrimitiveType(String type)
           
 void load(String type, int idx)
           
protected  void pushConstant(boolean value)
           
protected  void pushConstant(int value)
           
 void store(String type, int idx)
           
 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

BytecodeHelper

public BytecodeHelper(org.objectweb.asm.CodeVisitor cv)
Method Detail

box

public void box(Class type)
Generates the bytecode to autobox the current value on the stack


box

public void box(String type)

unbox

public void unbox(Class type)
Generates the bytecode to unbox the current value on the stack


unbox

public void unbox(String type)
Generates the bytecode to unbox the current value on the stack


isPrimitiveType

public static boolean isPrimitiveType(String type)

getTypeDescription

public static String getTypeDescription(String name)
Returns:
the ASM type description

getClassInternalName

protected static String getClassInternalName(String name)
Returns:
the ASM internal name of the type

getMethodDescriptor

protected static String getMethodDescriptor(String returnTypeName,
                                            Parameter[] paramTypeNames)
Returns:
the ASM method type descriptor

getMethodDescriptor

protected static String getMethodDescriptor(Class returnType,
                                            Class[] paramTypes)
Returns:
the ASM method type descriptor

getTypeDescription

public static String getTypeDescription(Class type)

getClassInternalNames

protected static String[] getClassInternalNames(String[] names)
Returns:
an array of ASM internal names of the type

pushConstant

protected void pushConstant(boolean value)

pushConstant

protected void pushConstant(int value)

doCast

public void doCast(String type)

doCast

public void doCast(Class type)

load

public void load(String type,
                 int idx)

store

public void store(String type,
                  int idx)

getObjectTypeForPrimitive

public static String getObjectTypeForPrimitive(String type)


Copyright © 2003-2004 The Codehaus. All Rights Reserved.