public class InvocationWriter extends Object
Modifier and Type | Field and Description |
---|---|
static MethodCaller |
invokeClosureMethod |
static MethodCallerMultiAdapter |
invokeMethod |
static MethodCallerMultiAdapter |
invokeMethodOnCurrent |
static MethodCallerMultiAdapter |
invokeMethodOnSuper |
static MethodCallerMultiAdapter |
invokeStaticMethod |
Constructor and Description |
---|
InvocationWriter(WriterController wc) |
Modifier and Type | Method and Description |
---|---|
void |
castNonPrimitiveToBool(ClassNode last) |
void |
castToNonPrimitiveIfNecessary(ClassNode sourceType,
ClassNode targetType)
This converts sourceType to a non primitive by using Groovy casting.
|
void |
coerce(ClassNode from,
ClassNode target) |
protected void |
finnishConstructorCall(ConstructorNode cn,
String ownerDescriptor,
int argsToRemove) |
protected String |
getMethodName(Expression message) |
protected void |
loadArguments(List<Expression> argumentList,
Parameter[] para) |
static ArgumentListExpression |
makeArgumentList(Expression arguments) |
protected boolean |
makeCachedCall(Expression origin,
ClassExpression sender,
Expression receiver,
Expression message,
Expression arguments,
MethodCallerMultiAdapter adapter,
boolean safe,
boolean spreadSafe,
boolean implicitThis,
boolean containsSpreadExpression) |
protected void |
makeCall(Expression origin,
ClassExpression sender,
Expression receiver,
Expression message,
Expression arguments,
MethodCallerMultiAdapter adapter,
boolean safe,
boolean spreadSafe,
boolean implicitThis) |
void |
makeCall(Expression origin,
Expression receiver,
Expression message,
Expression arguments,
MethodCallerMultiAdapter adapter,
boolean safe,
boolean spreadSafe,
boolean implicitThis) |
protected boolean |
makeClassForNameCall(Expression origin,
Expression receiver,
Expression message,
Expression arguments)
if Class.forName(x) is recognized, make a direct method call
|
protected boolean |
makeDirectCall(Expression origin,
Expression receiver,
Expression message,
Expression arguments,
MethodCallerMultiAdapter adapter,
boolean implicitThis,
boolean containsSpreadExpression) |
void |
makeSingleArgumentCall(Expression receiver,
String message,
Expression arguments) |
protected void |
makeUncachedCall(Expression origin,
ClassExpression sender,
Expression receiver,
Expression message,
Expression arguments,
MethodCallerMultiAdapter adapter,
boolean safe,
boolean spreadSafe,
boolean implicitThis,
boolean containsSpreadExpression) |
protected String |
prepareConstructorCall(ConstructorNode cn) |
protected boolean |
writeAICCall(ConstructorCallExpression call) |
protected boolean |
writeDirectMethodCall(MethodNode target,
boolean implicitThis,
Expression receiver,
TupleExpression args) |
void |
writeInvokeConstructor(ConstructorCallExpression call) |
void |
writeInvokeMethod(MethodCallExpression call) |
void |
writeInvokeStaticMethod(StaticMethodCallExpression call) |
protected void |
writeNormalConstructorCall(ConstructorCallExpression call) |
void |
writeSpecialConstructorCall(ConstructorCallExpression call) |
public static final MethodCallerMultiAdapter invokeMethodOnCurrent
public static final MethodCallerMultiAdapter invokeMethodOnSuper
public static final MethodCallerMultiAdapter invokeMethod
public static final MethodCallerMultiAdapter invokeStaticMethod
public static final MethodCaller invokeClosureMethod
public InvocationWriter(WriterController wc)
public void makeCall(Expression origin, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis)
protected boolean writeDirectMethodCall(MethodNode target, boolean implicitThis, Expression receiver, TupleExpression args)
protected void loadArguments(List<Expression> argumentList, Parameter[] para)
protected boolean makeDirectCall(Expression origin, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean implicitThis, boolean containsSpreadExpression)
protected boolean makeCachedCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)
protected void makeUncachedCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)
protected void makeCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis)
protected boolean makeClassForNameCall(Expression origin, Expression receiver, Expression message, Expression arguments)
public static ArgumentListExpression makeArgumentList(Expression arguments)
protected String getMethodName(Expression message)
public void writeInvokeMethod(MethodCallExpression call)
public void writeInvokeStaticMethod(StaticMethodCallExpression call)
protected String prepareConstructorCall(ConstructorNode cn)
protected void finnishConstructorCall(ConstructorNode cn, String ownerDescriptor, int argsToRemove)
protected void writeNormalConstructorCall(ConstructorCallExpression call)
public void writeInvokeConstructor(ConstructorCallExpression call)
protected boolean writeAICCall(ConstructorCallExpression call)
public void makeSingleArgumentCall(Expression receiver, String message, Expression arguments)
public void writeSpecialConstructorCall(ConstructorCallExpression call)
public void castToNonPrimitiveIfNecessary(ClassNode sourceType, ClassNode targetType)
public void castNonPrimitiveToBool(ClassNode last)