org.codehaus.groovy.runtime.callsite
Class CallSite

Base class for all call sites

author:
Alex Tkachman

Field Summary
 CallSiteArray array
           
 int index
           
 String name
           
 AtomicInteger usage
           
 
Constructor Summary
CallSite(CallSiteArray array, int index, String name)
           
CallSite(CallSite prev)
           
 
Method Summary
CallSite acceptBinop(Object receiver, Object arg)
          
CallSite acceptCall(Object receiver, def args)
           Check if receiver/arguments are "exactly the same" as when this site was created.
CallSite acceptConstructor(Object receiver, def args)
          
CallSite acceptCurrent(Object receiver, def args)
          
CallSite acceptCurrentTyped(Object receiver, def args, def types)
          
CallSite acceptStatic(Object receiver, def args)
          
Object call(Object receiver, def args)
          
Object callBinop(Object receiver, Object arg)
          
Object callConstructor(Object receiver, def args)
          
Object callCurrent(Object receiver, def args)
          
Object callSafe(Object receiver, def args)
          
Object callStatic(Object receiver, def args)
          
CallSite createCallConstructorSite(Class receiver, def args)
          
CallSite createCallCurrentSite(Object receiver, def args, Class sender)
          
CallSite createCallStaticSite(Class receiver, def args)
          
CallSite createPogoSite(Object receiver, def args)
          
CallSite createPojoSite(Object receiver, def args)
          
Object invoke(Object receiver, def args)
           Call method 'name' of receiver with given arguments
Object invokeBinop(Object receiver, Object arg)
          
static boolean noCoerce(ParameterTypes metaMethod, def args)
          
static boolean noWrappers(def args)
          
boolean wantProvideCallSite()
          
 

Constructor Detail

CallSite

public CallSite(CallSiteArray array, int index, String name)


CallSite

public CallSite(CallSite prev)


Method Detail

acceptBinop

public CallSite acceptBinop(Object receiver, Object arg)


acceptCall

public CallSite acceptCall(Object receiver, def args)
Check if receiver/arguments are "exactly the same" as when this site was created. Exact meaning of "exactly the same" depends on type of the site. For example, for GroovyInterceptable it is enough to check that receiver is GroovyInterceptable but for site with meta method we need to be sure that classes of arguments are exactly the same in the strongest possible meaning.
param:
receiver receiver
param:
args arguments
return:
if receiver/arguments are valid for this site


acceptConstructor

public CallSite acceptConstructor(Object receiver, def args)


acceptCurrent

public CallSite acceptCurrent(Object receiver, def args)


acceptCurrentTyped

public CallSite acceptCurrentTyped(Object receiver, def args, def types)


acceptStatic

public CallSite acceptStatic(Object receiver, def args)


call

public Object call(Object receiver, def args)


callBinop

public Object callBinop(Object receiver, Object arg)


callConstructor

public Object callConstructor(Object receiver, def args)


callCurrent

public Object callCurrent(Object receiver, def args)


callSafe

public Object callSafe(Object receiver, def args)


callStatic

public Object callStatic(Object receiver, def args)


createCallConstructorSite

CallSite createCallConstructorSite(Class receiver, def args)


createCallCurrentSite

CallSite createCallCurrentSite(Object receiver, def args, Class sender)


createCallStaticSite

public CallSite createCallStaticSite(Class receiver, def args)


createPogoSite

public CallSite createPogoSite(Object receiver, def args)


createPojoSite

public CallSite createPojoSite(Object receiver, def args)


invoke

public Object invoke(Object receiver, def args)
Call method 'name' of receiver with given arguments
param:
receiver receiver
param:
args arguments
return:
result of invocation


invokeBinop

public Object invokeBinop(Object receiver, Object arg)


noCoerce

public static boolean noCoerce(ParameterTypes metaMethod, def args)


noWrappers

public static boolean noWrappers(def args)


wantProvideCallSite

public boolean wantProvideCallSite()