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 SummaryFields Modifier and Type Field Description static MethodCallercastToVargsArrayprotected WriterControllercontrollerstatic MethodCallerinvokeClosureMethodstatic MethodCallerMultiAdapterinvokeMethodstatic MethodCallerMultiAdapterinvokeMethodOnCurrentstatic MethodCallerMultiAdapterinvokeMethodOnSuperstatic MethodCallerMultiAdapterinvokeStaticMethod
- 
Constructor SummaryConstructors Constructor Description InvocationWriter(WriterController controller)
- 
Method SummaryModifier and Type Method Description voidcastNonPrimitiveToBool(ClassNode last)voidcastToNonPrimitiveIfNecessary(ClassNode sourceType, ClassNode targetType)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)voidmakeSingleArgumentCall(Expression receiver, java.lang.String message, Expression arguments, boolean safe)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)Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- 
Field Details- 
invokeMethodOnCurrent
- 
invokeMethodOnSuper
- 
invokeMethod
- 
invokeStaticMethod
- 
invokeClosureMethod
- 
castToVargsArray
- 
controller
 
- 
- 
Constructor Details- 
InvocationWriter
 
- 
- 
Method Details- 
makeCallpublic void makeCall(Expression origin, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis)
- 
makeCallprotected void makeCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis)
- 
writeDirectMethodCallprotected boolean writeDirectMethodCall(MethodNode target, boolean implicitThis, Expression receiver, TupleExpression args)
- 
loadArguments
- 
makeDirectCallprotected boolean makeDirectCall(Expression origin, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean implicitThis, boolean containsSpreadExpression)
- 
makeCachedCallprotected boolean makeCachedCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)
- 
makeUncachedCallprotected void makeUncachedCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)
- 
makeClassForNameCallprotected boolean makeClassForNameCall(Expression origin, Expression receiver, Expression message, Expression arguments)if Class.forName(x) is recognized, make a direct method call
- 
makeArgumentList
- 
getMethodName
- 
writeInvokeMethod
- 
writeInvokeStaticMethod
- 
prepareConstructorCall
- 
finnishConstructorCallprotected void finnishConstructorCall(ConstructorNode cn, java.lang.String ownerDescriptor, int argsToRemove)
- 
writeNormalConstructorCall
- 
writeInvokeConstructor
- 
writeAICCall
- 
makeSingleArgumentCallpublic final void makeSingleArgumentCall(Expression receiver, java.lang.String message, Expression arguments)
- 
makeSingleArgumentCallpublic void makeSingleArgumentCall(Expression receiver, java.lang.String message, Expression arguments, boolean safe)
- 
writeSpecialConstructorCall
- 
castToNonPrimitiveIfNecessaryConverts sourceType to a non primitive by using Groovy casting. sourceType might be a primitive This might be done using SBA#castToType
- 
castNonPrimitiveToBool
- 
coerce
 
-