|
Groovy 2.2.0 | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.codehaus.groovy.classgen.asm.BytecodeHelper
public class BytecodeHelper extends Object
A helper class for bytecode generation with AsmClassGenerator.
Method Summary | |
---|---|
static boolean
|
box(org.objectweb.asm.MethodVisitor mv, ClassNode type)
box top level operand |
static boolean
|
box(org.objectweb.asm.MethodVisitor mv, Class type)
Generates the bytecode to autobox the current value on the stack |
static void
|
doCast(org.objectweb.asm.MethodVisitor mv, ClassNode type)
|
static void
|
doCast(org.objectweb.asm.MethodVisitor mv, Class type)
|
static void
|
doCastToPrimitive(org.objectweb.asm.MethodVisitor mv, ClassNode sourceType, ClassNode targetType)
Given a wrapped number type (Byte, Integer, Short, ...), generates bytecode to convert it to a primitive number (int, long, double) using calls to wrapped. |
static void
|
doCastToWrappedType(org.objectweb.asm.MethodVisitor mv, ClassNode sourceType, ClassNode targetType)
Given a primitive number type (byte, integer, short, ...), generates bytecode to convert it to a wrapped number (Integer, Long, Double) using calls to [WrappedType].valueOf |
static void
|
doReturn(org.objectweb.asm.MethodVisitor mv, ClassNode returnType)
|
static String
|
formatNameForClassLoading(String name)
load a message on the stack and remove it right away. |
static String
|
getClassInternalName(ClassNode t)
|
static String
|
getClassInternalName(Class t)
|
static String
|
getClassInternalName(String name)
@return the ASM internal name of the type |
static String[]
|
getClassInternalNames(ClassNode[] names)
@return an array of ASM internal names of the type |
static String
|
getClassLoadingTypeDescription(ClassNode c)
array types are special: eg.: String[]: classname: [Ljava.lang.String; Object: classname: java.lang.Object int[] : classname: [I unlike getTypeDescription '.' is not replaced by '/'. |
static String
|
getGenericsBounds(ClassNode type)
|
static String
|
getGenericsMethodSignature(MethodNode node)
|
static String
|
getGenericsSignature(ClassNode node)
|
static String
|
getMethodDescriptor(ClassNode returnType, Parameter[] parameters)
|
static String
|
getMethodDescriptor(MethodNode methodNode)
Returns a method descriptor for the given MethodNode. |
static String
|
getMethodDescriptor(Class returnType, Class[] paramTypes)
@return the ASM method type descriptor |
static String
|
getTypeDescription(Class c)
|
static String
|
getTypeDescription(ClassNode c)
array types are special: eg.: String[]: classname: [Ljava/lang/String; int[]: [I |
static int
|
hashCode(String str)
|
static boolean
|
isClassLiteralPossible(ClassNode classNode)
Tells if a class node is candidate for class literal bytecode optimization. |
static boolean
|
isSameCompilationUnit(ClassNode a, ClassNode b)
Returns true if the two classes share the same compilation unit. |
static void
|
load(org.objectweb.asm.MethodVisitor mv, ClassNode type, int idx)
|
static void
|
negateBoolean(org.objectweb.asm.MethodVisitor mv)
negate a boolean on stack. true->false, false->true |
static void
|
pushConstant(org.objectweb.asm.MethodVisitor mv, int value)
|
static void
|
unbox(org.objectweb.asm.MethodVisitor mv, Class type)
Generates the bytecode to unbox the current value on the stack |
static void
|
unbox(org.objectweb.asm.MethodVisitor mv, ClassNode type)
|
static void
|
visitClassLiteral(org.objectweb.asm.MethodVisitor mv, ClassNode classNode)
Visits a class literal. |
Methods inherited from class Object | |
---|---|
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll |
Method Detail |
---|
public static boolean box(org.objectweb.asm.MethodVisitor mv, ClassNode type)
public static boolean box(org.objectweb.asm.MethodVisitor mv, Class type)
public static void doCast(org.objectweb.asm.MethodVisitor mv, ClassNode type)
public static void doCast(org.objectweb.asm.MethodVisitor mv, Class type)
public static void doCastToPrimitive(org.objectweb.asm.MethodVisitor mv, ClassNode sourceType, ClassNode targetType)
mv
- method visitorsourceType
- the wrapped number typetargetType
- the primitive target type
public static void doCastToWrappedType(org.objectweb.asm.MethodVisitor mv, ClassNode sourceType, ClassNode targetType)
mv
- method visitorsourceType
- the primitive number typetargetType
- the wrapped target type
public static void doReturn(org.objectweb.asm.MethodVisitor mv, ClassNode returnType)
public static String formatNameForClassLoading(String name)
public static String getClassInternalName(ClassNode t)
public static String getClassInternalName(Class t)
public static String getClassInternalName(String name)
public static String[] getClassInternalNames(ClassNode[] names)
public static String getClassLoadingTypeDescription(ClassNode c)
public static String getGenericsBounds(ClassNode type)
public static String getGenericsMethodSignature(MethodNode node)
public static String getGenericsSignature(ClassNode node)
public static String getMethodDescriptor(ClassNode returnType, Parameter[] parameters)
public static String getMethodDescriptor(MethodNode methodNode)
methodNode
- the method node for which to create the descriptor
public static String getMethodDescriptor(Class returnType, Class[] paramTypes)
public static String getTypeDescription(Class c)
public static String getTypeDescription(ClassNode c)
public static int hashCode(String str)
public static boolean isClassLiteralPossible(ClassNode classNode)
classNode
- the classnode for which we want to know if bytecode optimization is possible
public static boolean isSameCompilationUnit(ClassNode a, ClassNode b)
a
- class ab
- class b
public static void load(org.objectweb.asm.MethodVisitor mv, ClassNode type, int idx)
public static void negateBoolean(org.objectweb.asm.MethodVisitor mv)
public static void pushConstant(org.objectweb.asm.MethodVisitor mv, int value)
public static void unbox(org.objectweb.asm.MethodVisitor mv, Class type)
public static void unbox(org.objectweb.asm.MethodVisitor mv, ClassNode type)
public static void visitClassLiteral(org.objectweb.asm.MethodVisitor mv, ClassNode classNode)
Copyright © 2003-2013 The Codehaus. All rights reserved.