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 java.lang.Object
implements org.objectweb.asm.Constants

A helper class for bytecode generation

Version:
$Revision: 1.9 $
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(java.lang.Class type)
          Generates the bytecode to autobox the current value on the stack
 void box(java.lang.String type)
           
 void doCast(java.lang.Class type)
           
 void doCast(java.lang.String type)
           
protected static java.lang.String getClassInternalName(java.lang.String name)
           
protected static java.lang.String[] getClassInternalNames(java.lang.String[] names)
           
protected static java.lang.String getMethodDescriptor(java.lang.Class returnType, java.lang.Class[] paramTypes)
           
protected static java.lang.String getMethodDescriptor(java.lang.String returnTypeName, Parameter[] paramTypeNames)
           
 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)
           
 boolean isPrimitiveType(java.lang.String type)
           
 void load(java.lang.String type, int idx)
           
protected  void pushConstant(boolean value)
           
protected  void pushConstant(int value)
           
 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
 

Constructor Detail

BytecodeHelper

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

box

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


box

public void box(java.lang.String type)

unbox

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


unbox

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


isPrimitiveType

public boolean isPrimitiveType(java.lang.String type)

getTypeDescription

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

getClassInternalName

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

getMethodDescriptor

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

getMethodDescriptor

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

getTypeDescription

public static java.lang.String getTypeDescription(java.lang.Class type)

getClassInternalNames

protected static java.lang.String[] getClassInternalNames(java.lang.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(java.lang.String type)

doCast

public void doCast(java.lang.Class type)

load

public void load(java.lang.String type,
                 int idx)

getObjectTypeForPrimitive

public java.lang.String getObjectTypeForPrimitive(java.lang.String type)


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