- org.codehaus.groovy.runtime.ComposedClosure
-
public final class ComposedClosure<V>
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
-
-
Inherited fields
Fields inherited from class |
Fields |
class Closure |
OWNER_FIRST, DELEGATE_FIRST, OWNER_ONLY, DELEGATE_ONLY, TO_SELF, DONE, SKIP, IDENTITY |
-
Methods Summary
-
Inherited Methods Summary
Inherited Methods
Methods inherited from class |
Name |
class Closure |
compose, run, getProperty, clone, getParameterTypes, setProperty, getOwner, setDelegate, andThen, call, call, call, leftShift, leftShift, getThisObject, getMaximumNumberOfParameters, memoize, getDelegate, composeSelf, composeSelf, andThenSelf, andThenSelf, getDirective, setResolveStrategy, getResolveStrategy, rehydrate, isCase, rightShift, ncurry, ncurry, rcurry, rcurry, curry, curry, asWritable, trampoline, trampoline, memoizeAtLeast, memoizeBetween, memoizeAtMost, dehydrate, setDirective, getMetaClass, setMetaClass, wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll, invokeMethod |
-
-
Method Detail
-
public Class[] getParameterTypes()
-
public int getResolveStrategy()
-
public void setDelegate(Object delegate)
-
public void setResolveStrategy(int resolveStrategy)
Copyright © 2003-2020 The Apache Software Foundation. All rights reserved.