Groovy 2.2.0

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

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

public final class ComposedClosure
extends Closure

A wrapper for Closure to support composition. Normally used only internally through the rightShift() and leftShift() methods on Closure.

Typical usages:

 def twice = { a -> a * 2 }
 def inc = { b -> b + 1 }
 def f = { x -> twice(inc(x)) } // longhand
 def g = inc >> twice
 def h = twice << inc
 assert f(10) == 22
 assert g(10) == 22
 assert h(10) == 22

 def s2c = { it.chars[0] }
 def p = Integer.&toHexString >> s2c >> Character.&toUpperCase
 assert p(15) == 'F'

 def multiply = { a, b -> a * b }
 def identity = { a -> [a, a] }
 def sq = identity >> multiply
 assert (1..5).collect{ sq(it) } == [1, 4, 9, 16, 25]

 def add3 = { a, b, c -> a + b + c }
 def add2plus10 = add3.curry(10)
 def multBoth = { a, b, c -> [a*c, b*c] }
 def twiceBoth = multBoth.rcurry(2)
 def twiceBothPlus10 = twiceBoth >> add2plus10
 assert twiceBothPlus10(5, 10) == 40
 
Authors:
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
ComposedClosure(Closure first, Closure second)

 
Method Summary
Object call(Object... args)

Object clone()

Object doCall(Object... args)

Object getDelegate()

Class[] getParameterTypes()

int getResolveStrategy()

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

ComposedClosure

public ComposedClosure(Closure first, Closure second)


 
Method Detail

call

@Override
public Object call(Object... args)


clone

public Object clone()


doCall

public Object doCall(Object... args)


getDelegate

public Object getDelegate()


getParameterTypes

public Class[] getParameterTypes()


getResolveStrategy

public int getResolveStrategy()


setDelegate

public void setDelegate(Object delegate)


setResolveStrategy

public void setResolveStrategy(int resolveStrategy)


 

Copyright &copy; 2003-2013 The Codehaus. All rights reserved.