org.codehaus.groovy.runtime
Class CurriedClosure
java.lang.Object
   groovy.lang.GroovyObjectSupport
groovy.lang.GroovyObjectSupport
       groovy.lang.Closure
groovy.lang.Closure
           org.codehaus.groovy.runtime.CurriedClosure
org.codehaus.groovy.runtime.CurriedClosure
- All Implemented Interfaces: 
- GroovyObject, Serializable, Cloneable, Runnable
- 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"
 
- Author:
- Jochen Theodorou, Paul King
- See Also:
- Serialized Form
 
 
 
 
| Methods inherited from class groovy.lang.Closure | 
| asWritable, call, call, call, curry, getDirective, getMaximumNumberOfParameters, getOwner, getProperty, getThisObject, isCase, ncurry, rcurry, run, setDirective, setProperty, throwRuntimeException | 
 
 
 
CurriedClosure
public CurriedClosure(int index,
                      Closure uncurriedClosure,
                      Object[] arguments)
CurriedClosure
public CurriedClosure(Closure uncurriedClosure,
                      Object[] arguments)
CurriedClosure
@Deprecated
public CurriedClosure(Closure uncurriedClosure,
                                 int i)
- Deprecated. 
 
getUncurriedArguments
public Object[] getUncurriedArguments(Object[] arguments)
- 
 
setDelegate
public void setDelegate(Object delegate)
- Description copied from class: Closure
- Allows the delegate to be changed such as when performing markup building
 
- 
- Overrides:
- setDelegatein class- Closure
 
- 
- Parameters:
- delegate- the new delegate
 
getDelegate
public Object getDelegate()
- 
- Overrides:
- getDelegatein class- Closure
 
- 
- Returns:
- the delegate Object to which method calls will go which is
         typically the outer class when the closure is constructed
 
setResolveStrategy
public void setResolveStrategy(int resolveStrategy)
- Description copied from class: Closure
- Sets the strategy which the closure uses to resolve property references. The default is Closure.OWNER_FIRST
 
- 
- Overrides:
- setResolveStrategyin class- Closure
 
- 
- Parameters:
- resolveStrategy- The resolve strategy to set
- See Also:
- Closure.DELEGATE_FIRST,- Closure.DELEGATE_ONLY,- Closure.OWNER_FIRST,- Closure.OWNER_ONLY,- Closure.TO_SELF
 
getResolveStrategy
public int getResolveStrategy()
- Description copied from class: Closure
- Gets the strategy which the closure users to resolve methods and properties
 
- 
- Overrides:
- getResolveStrategyin class- Closure
 
- 
- Returns:
- The resolve strategy
- See Also:
- Closure.DELEGATE_FIRST,- Closure.DELEGATE_ONLY,- Closure.OWNER_FIRST,- Closure.OWNER_ONLY,- Closure.TO_SELF
 
clone
public Object clone()
- 
- Overrides:
- clonein class- Closure
 
- 
 
getParameterTypes
public Class[] getParameterTypes()
- 
- Overrides:
- getParameterTypesin class- Closure
 
- 
- Returns:
- the parameter types of the longest doCall method
 of this closure