Package org.codehaus.groovy.classgen.asm
Class InvocationWriter
- java.lang.Object
-
- org.codehaus.groovy.classgen.asm.InvocationWriter
-
- Direct Known Subclasses:
InvokeDynamicWriter,StaticInvocationWriter
public class InvocationWriter extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static MethodCallercastToVargsArraystatic MethodCallerinvokeClosureMethodstatic MethodCallerMultiAdapterinvokeMethodstatic MethodCallerMultiAdapterinvokeMethodOnCurrentstatic MethodCallerMultiAdapterinvokeMethodOnSuperstatic MethodCallerMultiAdapterinvokeStaticMethod
-
Constructor Summary
Constructors Constructor Description InvocationWriter(WriterController wc)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcastNonPrimitiveToBool(ClassNode last)voidcastToNonPrimitiveIfNecessary(ClassNode sourceType, ClassNode targetType)This converts sourceType to a non primitive by using Groovy casting.voidcoerce(ClassNode from, ClassNode target)protected voidfinnishConstructorCall(ConstructorNode cn, java.lang.String ownerDescriptor, int argsToRemove)protected java.lang.StringgetMethodName(Expression message)protected voidloadArguments(java.util.List<Expression> argumentList, Parameter[] para)static ArgumentListExpressionmakeArgumentList(Expression arguments)protected booleanmakeCachedCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)protected voidmakeCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis)voidmakeCall(Expression origin, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis)protected booleanmakeClassForNameCall(Expression origin, Expression receiver, Expression message, Expression arguments)if Class.forName(x) is recognized, make a direct method callprotected booleanmakeDirectCall(Expression origin, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean implicitThis, boolean containsSpreadExpression)voidmakeSingleArgumentCall(Expression receiver, java.lang.String message, Expression arguments)protected voidmakeUncachedCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)protected java.lang.StringprepareConstructorCall(ConstructorNode cn)protected booleanwriteAICCall(ConstructorCallExpression call)protected booleanwriteDirectMethodCall(MethodNode target, boolean implicitThis, Expression receiver, TupleExpression args)voidwriteInvokeConstructor(ConstructorCallExpression call)voidwriteInvokeMethod(MethodCallExpression call)voidwriteInvokeStaticMethod(StaticMethodCallExpression call)protected voidwriteNormalConstructorCall(ConstructorCallExpression call)voidwriteSpecialConstructorCall(ConstructorCallExpression call)
-
-
-
Field Detail
-
invokeMethodOnCurrent
public static final MethodCallerMultiAdapter invokeMethodOnCurrent
-
invokeMethodOnSuper
public static final MethodCallerMultiAdapter invokeMethodOnSuper
-
invokeMethod
public static final MethodCallerMultiAdapter invokeMethod
-
invokeStaticMethod
public static final MethodCallerMultiAdapter invokeStaticMethod
-
invokeClosureMethod
public static final MethodCaller invokeClosureMethod
-
castToVargsArray
public static final MethodCaller castToVargsArray
-
-
Constructor Detail
-
InvocationWriter
public InvocationWriter(WriterController wc)
-
-
Method Detail
-
makeCall
public void makeCall(Expression origin, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis)
-
writeDirectMethodCall
protected boolean writeDirectMethodCall(MethodNode target, boolean implicitThis, Expression receiver, TupleExpression args)
-
loadArguments
protected void loadArguments(java.util.List<Expression> argumentList, Parameter[] para)
-
makeDirectCall
protected boolean makeDirectCall(Expression origin, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean implicitThis, boolean containsSpreadExpression)
-
makeCachedCall
protected boolean makeCachedCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)
-
makeUncachedCall
protected void makeUncachedCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)
-
makeCall
protected void makeCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis)
-
makeClassForNameCall
protected boolean makeClassForNameCall(Expression origin, Expression receiver, Expression message, Expression arguments)
if Class.forName(x) is recognized, make a direct method call
-
makeArgumentList
public static ArgumentListExpression makeArgumentList(Expression arguments)
-
getMethodName
protected java.lang.String getMethodName(Expression message)
-
writeInvokeMethod
public void writeInvokeMethod(MethodCallExpression call)
-
writeInvokeStaticMethod
public void writeInvokeStaticMethod(StaticMethodCallExpression call)
-
prepareConstructorCall
protected java.lang.String prepareConstructorCall(ConstructorNode cn)
-
finnishConstructorCall
protected void finnishConstructorCall(ConstructorNode cn, java.lang.String ownerDescriptor, int argsToRemove)
-
writeNormalConstructorCall
protected void writeNormalConstructorCall(ConstructorCallExpression call)
-
writeInvokeConstructor
public void writeInvokeConstructor(ConstructorCallExpression call)
-
writeAICCall
protected boolean writeAICCall(ConstructorCallExpression call)
-
makeSingleArgumentCall
public void makeSingleArgumentCall(Expression receiver, java.lang.String message, Expression arguments)
-
writeSpecialConstructorCall
public void writeSpecialConstructorCall(ConstructorCallExpression call)
-
castToNonPrimitiveIfNecessary
public void castToNonPrimitiveIfNecessary(ClassNode sourceType, ClassNode targetType)
This converts sourceType to a non primitive by using Groovy casting. sourceType might be a primitive This might be done using SBA#castToType
-
castNonPrimitiveToBool
public void castNonPrimitiveToBool(ClassNode last)
-
-