Overview | Package | Class | Deprecated | Index | Help
| Groovy Documentation
| FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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), java.lang.Object#wait(long, int), 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