Groovy Documentation

org.codehaus.groovy.runtime
[Java] Class CurriedClosure

java.lang.Object
  groovy.lang.GroovyObjectSupport
      groovy.lang.Closure
          org.codehaus.groovy.runtime.CurriedClosure

public final class CurriedClosure
extends Closure

A wrapper for Closure to support currying. Normally used only internally through the curry(), rcurry() or ncurry() methods on Closure. Typical usages:

 // normal usage
 def unitAdder = { first, second, unit -> "${first + second} $unit" }
 assert unitAdder(10, 15, "minutes") == "25 minutes"
 assert unitAdder.curry(60)(15, "minutes") == "75 minutes"
 def minuteAdder = unitAdder.rcurry("minutes")
 assert minuteAdder(15, 60) == "75 minutes"

 // explicit creation
 import org.codehaus.groovy.runtime.CurriedClosure
 assert new CurriedClosure(unitAdder, 45)(15, "minutes") == "60 minutes"
 assert new CurriedClosure(unitAdder, "six", "ty")("minutes") == "sixty minutes"
 
Authors:
Jochen Theodorou
Paul King


Field Summary
 
Fields inherited from class Closure
DELEGATE_FIRST, DELEGATE_ONLY, DONE, IDENTITY, OWNER_FIRST, OWNER_ONLY, SKIP, TO_SELF, maximumNumberOfParameters, parameterTypes
 
Constructor Summary
CurriedClosure(int index, Closure uncurriedClosure, java.lang.Object... arguments)

CurriedClosure(Closure uncurriedClosure, java.lang.Object... arguments)

 
Method Summary
java.lang.Object clone()

java.lang.Object getDelegate()

java.lang.Class[] getParameterTypes()

int getResolveStrategy()

java.lang.Object[] getUncurriedArguments(java.lang.Object... arguments)

void setDelegate(java.lang.Object delegate)

void setResolveStrategy(int resolveStrategy)

 
Methods inherited from class Closure
asWritable, call, call, call, clone, curry, curry, dehydrate, getDelegate, getDirective, getMaximumNumberOfParameters, getOwner, getParameterTypes, getProperty, getResolveStrategy, getThisObject, isCase, leftShift, leftShift, memoize, memoizeAtLeast, memoizeAtMost, memoizeBetween, ncurry, ncurry, rcurry, rcurry, rehydrate, rightShift, run, setDelegate, setDirective, setProperty, setResolveStrategy, throwRuntimeException, trampoline, trampoline
 
Methods inherited from class GroovyObjectSupport
getMetaClass, getProperty, invokeMethod, setMetaClass, setProperty
 
Methods inherited from class java.lang.Object
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Constructor Detail

CurriedClosure

public CurriedClosure(int index, Closure uncurriedClosure, java.lang.Object... arguments)


CurriedClosure

public CurriedClosure(Closure uncurriedClosure, java.lang.Object... arguments)


 
Method Detail

clone

Closure uncurriedClosure = (Closure) ((Closure) getOwner()).clone();
public java.lang.Object clone()


getDelegate

public java.lang.Object getDelegate()


getParameterTypes

public java.lang.Class[] getParameterTypes()


getResolveStrategy

public int getResolveStrategy()


getUncurriedArguments

public java.lang.Object[] getUncurriedArguments(java.lang.Object... arguments)


setDelegate

public void setDelegate(java.lang.Object delegate)


setResolveStrategy

public void setResolveStrategy(int resolveStrategy)


 

Groovy Documentation