org.codehaus.groovy.classgen.asm
Class InvocationWriter

java.lang.Object
  extended by org.codehaus.groovy.classgen.asm.InvocationWriter
Direct Known Subclasses:
StaticInvocationWriter

public class InvocationWriter
extends java.lang.Object


Field Summary
protected static MethodCaller invokeClosureMethod
           
protected static MethodCallerMultiAdapter invokeMethod
           
protected static MethodCallerMultiAdapter invokeMethodOnCurrent
           
protected static MethodCallerMultiAdapter invokeMethodOnSuper
           
protected static MethodCallerMultiAdapter invokeStaticMethod
           
 
Constructor Summary
InvocationWriter(WriterController wc)
           
 
Method Summary
protected  void finnishConstructorCall(ConstructorNode cn, java.lang.String ownerDescriptor, int argsToRemove)
           
protected  java.lang.String getMethodName(Expression message)
           
protected  void loadArguments(java.util.List<Expression> argumentList, Parameter[] para)
           
static ArgumentListExpression makeArgumentList(Expression arguments)
           
 void makeCall(Expression origin, Expression receiver, Expression message, Expression arguments, MethodCallerMultiAdapter adapter, boolean safe, boolean spreadSafe, boolean implicitThis)
           
 void makeSingleArgumentCall(Expression receiver, java.lang.String message, Expression arguments)
           
protected  java.lang.String prepareConstructorCall(ConstructorNode cn)
           
protected  boolean writeDirectMethodCall(MethodNode target, boolean implicitThis, Expression receiver, TupleExpression args)
           
 void writeInvokeConstructor(ConstructorCallExpression call)
           
 void writeInvokeMethod(MethodCallExpression call)
           
 void writeInvokeStaticMethod(StaticMethodCallExpression call)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

invokeMethodOnCurrent

protected static final MethodCallerMultiAdapter invokeMethodOnCurrent

invokeMethodOnSuper

protected static final MethodCallerMultiAdapter invokeMethodOnSuper

invokeMethod

protected static final MethodCallerMultiAdapter invokeMethod

invokeStaticMethod

protected static final MethodCallerMultiAdapter invokeStaticMethod

invokeClosureMethod

protected static final MethodCaller invokeClosureMethod
Constructor Detail

InvocationWriter

public InvocationWriter(WriterController wc)
Method Detail

makeCall

public void makeCall(Expression origin,
                     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

protected void loadArguments(java.util.List<Expression> argumentList,
                             Parameter[] para)

makeArgumentList

public static ArgumentListExpression makeArgumentList(Expression arguments)

getMethodName

protected java.lang.String getMethodName(Expression message)

writeInvokeMethod

public void writeInvokeMethod(MethodCallExpression call)

writeInvokeStaticMethod

public void writeInvokeStaticMethod(StaticMethodCallExpression call)

prepareConstructorCall

protected java.lang.String prepareConstructorCall(ConstructorNode cn)

finnishConstructorCall

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

writeInvokeConstructor

public void writeInvokeConstructor(ConstructorCallExpression call)

makeSingleArgumentCall

public void makeSingleArgumentCall(Expression receiver,
                                   java.lang.String message,
                                   Expression arguments)