Groovy 2.2.0

org.codehaus.groovy.classgen.asm
[Java] Class InvocationWriter

java.lang.Object
  org.codehaus.groovy.classgen.asm.InvocationWriter

public class InvocationWriter
extends Object

Field Summary
static MethodCaller invokeClosureMethod

static MethodCallerMultiAdapter invokeMethod

static MethodCallerMultiAdapter invokeMethodOnCurrent

static MethodCallerMultiAdapter invokeMethodOnSuper

static MethodCallerMultiAdapter invokeStaticMethod

 
Constructor Summary
InvocationWriter(WriterController wc)

 
Method Summary
protected void finnishConstructorCall(ConstructorNode cn, String ownerDescriptor, int argsToRemove)

protected String getMethodName(Expression message)

protected void loadArguments(List 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)

void makeCall(Expression origin, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis)

protected void makeCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis)

if Class.forName(x) is recognized, make a direct method call

protected boolean makeClassForNameCall(Expression origin, Expression receiver, Expression message, Expression arguments)

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)

 
Methods inherited from class Object
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll
 

Field Detail

invokeClosureMethod

public static final MethodCaller invokeClosureMethod


invokeMethod

public static final MethodCallerMultiAdapter invokeMethod


invokeMethodOnCurrent

public static final MethodCallerMultiAdapter invokeMethodOnCurrent


invokeMethodOnSuper

public static final MethodCallerMultiAdapter invokeMethodOnSuper


invokeStaticMethod

public static final MethodCallerMultiAdapter invokeStaticMethod


 
Constructor Detail

InvocationWriter

public InvocationWriter(WriterController wc)


 
Method Detail

finnishConstructorCall

protected void finnishConstructorCall(ConstructorNode cn, String ownerDescriptor, int argsToRemove)


getMethodName

protected String getMethodName(Expression message)


loadArguments

protected void loadArguments(List argumentList, Parameter[] para)


makeArgumentList

public static ArgumentListExpression makeArgumentList(Expression arguments)


makeCachedCall

protected boolean makeCachedCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)


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)
if Class.forName(x) is recognized, make a direct method call


makeClassForNameCall

protected boolean makeClassForNameCall(Expression origin, Expression receiver, Expression message, Expression arguments)


makeDirectCall

protected boolean makeDirectCall(Expression origin, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean implicitThis, boolean containsSpreadExpression)


makeSingleArgumentCall

public void makeSingleArgumentCall(Expression receiver, String message, Expression arguments)


makeUncachedCall

protected void makeUncachedCall(Expression origin, ClassExpression sender, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis, boolean containsSpreadExpression)


prepareConstructorCall

protected String prepareConstructorCall(ConstructorNode cn)


writeAICCall

protected boolean writeAICCall(ConstructorCallExpression call)


writeDirectMethodCall

protected boolean writeDirectMethodCall(MethodNode target, boolean implicitThis, Expression receiver, TupleExpression args)


writeInvokeConstructor

public void writeInvokeConstructor(ConstructorCallExpression call)


writeInvokeMethod

public void writeInvokeMethod(MethodCallExpression call)


writeInvokeStaticMethod

public void writeInvokeStaticMethod(StaticMethodCallExpression call)


writeNormalConstructorCall

protected void writeNormalConstructorCall(ConstructorCallExpression call)


writeSpecialConstructorCall

public void writeSpecialConstructorCall(ConstructorCallExpression call)


 

Copyright © 2003-2013 The Codehaus. All rights reserved.