[Java] Class ComposedClosure<V>

  • org.codehaus.groovy.runtime.ComposedClosure

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 DELEGATE_FIRST, DELEGATE_ONLY, DONE, IDENTITY, OWNER_FIRST, OWNER_ONLY, SKIP, TO_SELF, maximumNumberOfParameters, parameterTypes

Properties Summary

Properties
Type Name and description
Object delegate
int resolveStrategy

Constructor Summary

Constructors
Constructor and description
ComposedClosure (Closure first, Closure<V> second)

Methods Summary

Methods
Type Params Return Type Name and description
V call(Object... args)
Object clone()
Object doCall(Object... args)
Object getDelegate()
Class[] getParameterTypes()
int getResolveStrategy()
void setDelegate(Object delegate)
void setResolveStrategy(int resolveStrategy)

Inherited Methods Summary

Inherited Methods
Methods inherited from class Name
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
class GroovyObjectSupport getMetaClass, getProperty, invokeMethod, setMetaClass, setProperty

Property Detail

Object delegate

int resolveStrategy

Constructor Detail

public ComposedClosure(Closure first, Closure<V> second)

Method Detail

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

public Object clone()

public Object doCall(Object... args)

public Object getDelegate()

public Class[] getParameterTypes()

public int getResolveStrategy()

public void setDelegate(Object delegate)

public void setResolveStrategy(int resolveStrategy)

© 2003-2020 The Apache Software Foundation
Licensed under the Apache license.
https://docs.groovy-lang.org/2.5.14/html/gapi/org/codehaus/groovy/runtime/ComposedClosure.html