Package org.codehaus.groovy.classgen.asm
Class InvocationWriter
java.lang.Object
org.codehaus.groovy.classgen.asm.InvocationWriter
- Direct Known Subclasses:
- InvokeDynamicWriter,- StaticInvocationWriter
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final MethodCallerprotected final WriterControllerprotected Expressionstatic final MethodCallerDeprecated.static final MethodCallerMultiAdapterstatic final MethodCallerMultiAdapterstatic final MethodCallerMultiAdapterstatic final MethodCallerMultiAdapter
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidvoidcastToNonPrimitiveIfNecessary(ClassNode sourceType, ClassNode targetType) Converts sourceType to a non-primitive by using Groovy casting.voidprotected voidfinnishConstructorCall(ConstructorNode cn, String ownerDescriptor, int argsToRemove) protected StringgetMethodName(Expression message) protected voidloadArguments(List<Expression> arguments, Parameter[] parameters) static ArgumentListExpressionmakeArgumentList(Expression arguments) Converts an expression to an argument list.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) final voidmakeSingleArgumentCall(Expression receiver, String message, Expression arguments) voidmakeSingleArgumentCall(Expression receiver, 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 Stringprotected booleanprotected booleanwriteDirectMethodCall(MethodNode target, boolean implicitThis, Expression receiver, TupleExpression args) voidvoidvoidprotected voidvoid
- 
Field Details- 
invokeMethodOnCurrent
- 
invokeMethodOnSuper
- 
invokeMethod
- 
invokeStaticMethod
- 
invokeClosureMethodDeprecated.
- 
castToVargsArray
- 
controller
- 
currentCall
 
- 
- 
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
- 
makeArgumentListConverts an expression to an argument list.- Returns:
- argumentsif already an argument list or an argument list of the expression or expressions (in case of a tuple expression).
- Since:
- 2.0.0
 
- 
getMethodName
- 
writeInvokeMethod
- 
writeInvokeStaticMethod
- 
writeInvokeConstructor
- 
prepareConstructorCall
- 
finnishConstructorCall
- 
writeNormalConstructorCall
- 
writeAICCall
- 
makeSingleArgumentCall
- 
makeSingleArgumentCallpublic void makeSingleArgumentCall(Expression receiver, 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
 
-