Groovy 2.2.0

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, Object... arguments)

CurriedClosure(Closure uncurriedClosure, Object... arguments)

 
Method Summary
Object clone()

Object getDelegate()

Class[] getParameterTypes()

int getResolveStrategy()

Object[] getUncurriedArguments(Object... arguments)

void setDelegate(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 Object
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll
 

Constructor Detail

CurriedClosure

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


CurriedClosure

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


 
Method Detail

clone

@SuppressWarningsClosure uncurriedClosure = (Closure) ((Closure) getOwner()).clone();
public Object clone()


getDelegate

public Object getDelegate()


getParameterTypes

public Class[] getParameterTypes()


getResolveStrategy

public int getResolveStrategy()


getUncurriedArguments

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


setDelegate

public void setDelegate(Object delegate)


setResolveStrategy

public void setResolveStrategy(int resolveStrategy)


 

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