Package org.codehaus.groovy.classgen.asm
Class InvocationWriter
java.lang.Object
org.codehaus.groovy.classgen.asm.InvocationWriter
- Direct Known Subclasses:
InvokeDynamicWriter,StaticInvocationWriter
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final MethodCallerprotected final WriterControllerprotected Expressionstatic final MethodCallerDeprecated.static final MethodCallerMultiAdapterstatic final MethodCallerMultiAdapterstatic final MethodCallerMultiAdapterstatic final MethodCallerMultiAdapter -
Constructor Summary
Constructors -
Method Summary
Modifier 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
-
invokeClosureMethod
Deprecated. -
castToVargsArray
-
controller
-
currentCall
-
-
Constructor Details
-
InvocationWriter
-
-
Method Details
-
makeCall
public void makeCall(Expression origin, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis) -
makeCall
protected void makeCall(Expression origin, ClassExpression sender, 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
-
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) -
makeClassForNameCall
protected boolean makeClassForNameCall(Expression origin, Expression receiver, Expression message, Expression arguments) if Class.forName(x) is recognized, make a direct method call -
makeArgumentList
Converts 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
-
makeSingleArgumentCall
public void makeSingleArgumentCall(Expression receiver, String message, Expression arguments, boolean safe) -
writeSpecialConstructorCall
-
castToNonPrimitiveIfNecessary
Converts sourceType to a non-primitive by using Groovy casting. sourceType might be a primitive This might be done using SBA#castToType -
castNonPrimitiveToBool
-
coerce
-