org.codehaus.groovy.runtime
Class CurriedClosure<V>
java.lang.Object
  
groovy.lang.GroovyObjectSupport
      
groovy.lang.Closure<V>
          
org.codehaus.groovy.runtime.CurriedClosure<V>
- All Implemented Interfaces: 
 - GroovyCallable<V>, GroovyObject, java.io.Serializable, java.lang.Cloneable, java.lang.Runnable, java.util.concurrent.Callable<V>
 
public final class CurriedClosure<V>
- extends Closure<V>
 
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"
 
- See Also:
 - Serialized Form
 
 
 
 
| 
Method Summary | 
 java.lang.Object | 
clone()
 
            | 
 java.lang.Object | 
getDelegate()
 
            | 
 java.lang.Class[] | 
getParameterTypes()
 
            | 
 int | 
getResolveStrategy()
 
          Gets the strategy which the closure users to resolve methods and properties | 
 java.lang.Object[] | 
getUncurriedArguments(java.lang.Object... arguments)
 
            | 
 void | 
setDelegate(java.lang.Object delegate)
 
          Allows the delegate to be changed such as when performing markup building | 
 void | 
setResolveStrategy(int resolveStrategy)
 
          Sets the strategy which the closure uses to resolve property references. | 
 
| Methods inherited from class groovy.lang.Closure | 
asWritable, call, call, call, curry, curry, dehydrate, getDirective, getMaximumNumberOfParameters, getOwner, getProperty, getThisObject, isCase, leftShift, leftShift, memoize, memoizeAtLeast, memoizeAtMost, memoizeBetween, ncurry, ncurry, rcurry, rcurry, rehydrate, rightShift, run, setDirective, setProperty, throwRuntimeException, trampoline, trampoline | 
 
 
| Methods inherited from class java.lang.Object | 
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
 
CurriedClosure
public CurriedClosure(int index,
                      Closure<V> uncurriedClosure,
                      java.lang.Object... arguments)
CurriedClosure
public CurriedClosure(Closure<V> uncurriedClosure,
                      java.lang.Object... arguments)
getUncurriedArguments
public java.lang.Object[] getUncurriedArguments(java.lang.Object... arguments)
 
setDelegate
public void setDelegate(java.lang.Object delegate)
- Description copied from class: 
Closure 
- Allows the delegate to be changed such as when performing markup building
- Overrides:
 setDelegate in class Closure<V>
 
- Parameters:
 delegate - the new delegate
 
 
getDelegate
public java.lang.Object getDelegate()
- Overrides:
 getDelegate in class Closure<V>
 
- 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:
 setResolveStrategy in class Closure<V>
 
- 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:
 getResolveStrategy in class Closure<V>
 
- Returns:
 - The resolve strategy
 - See Also:
 Closure.DELEGATE_FIRST, 
Closure.DELEGATE_ONLY, 
Closure.OWNER_FIRST, 
Closure.OWNER_ONLY, 
Closure.TO_SELF
 
 
clone
public java.lang.Object clone()
- Overrides:
 clone in class Closure<V>
 
 
getParameterTypes
public java.lang.Class[] getParameterTypes()
- Overrides:
 getParameterTypes in class Closure<V>
 
- Returns:
 - the parameter types of the longest doCall method
 of this closure