org.apache.commons.collections
public class ClosureUtils extends Object
ClosureUtils
provides reference implementations and utilities
for the Closure functor interface. The supplied closures are:
Since: Commons Collections 3.0
Version: $Revision: 375766 $ $Date: 2006-02-07 23:10:36 +0000 (Tue, 07 Feb 2006) $
Constructor Summary | |
---|---|
ClosureUtils()
This class is not normally instantiated. |
Method Summary | |
---|---|
static Closure | asClosure(Transformer transformer)
Creates a Closure that calls a Transformer each time it is called.
|
static Closure | chainedClosure(Closure closure1, Closure closure2)
Create a new Closure that calls two Closures, passing the result of
the first into the second.
|
static Closure | chainedClosure(Closure[] closures)
Create a new Closure that calls each closure in turn, passing the
result into the next closure.
|
static Closure | chainedClosure(Collection closures)
Create a new Closure that calls each closure in turn, passing the
result into the next closure. |
static Closure | doWhileClosure(Closure closure, Predicate predicate)
Creates a Closure that will call the closure once and then repeatedly
until the predicate returns false.
|
static Closure | exceptionClosure()
Gets a Closure that always throws an exception.
|
static Closure | forClosure(int count, Closure closure)
Creates a Closure that will call the closure count times.
|
static Closure | ifClosure(Predicate predicate, Closure trueClosure)
Create a new Closure that calls another closure based on the
result of the specified predicate.
|
static Closure | ifClosure(Predicate predicate, Closure trueClosure, Closure falseClosure)
Create a new Closure that calls one of two closures depending
on the specified predicate.
|
static Closure | invokerClosure(String methodName)
Creates a Closure that will invoke a specific method on the closure's
input object by reflection.
|
static Closure | invokerClosure(String methodName, Class[] paramTypes, Object[] args)
Creates a Closure that will invoke a specific method on the closure's
input object by reflection.
|
static Closure | nopClosure()
Gets a Closure that will do nothing.
|
static Closure | switchClosure(Predicate[] predicates, Closure[] closures)
Create a new Closure that calls one of the closures depending
on the predicates.
|
static Closure | switchClosure(Predicate[] predicates, Closure[] closures, Closure defaultClosure)
Create a new Closure that calls one of the closures depending
on the predicates.
|
static Closure | switchClosure(Map predicatesAndClosures)
Create a new Closure that calls one of the closures depending
on the predicates.
|
static Closure | switchMapClosure(Map objectsAndClosures)
Create a new Closure that uses the input object as a key to find the
closure to call.
|
static Closure | whileClosure(Predicate predicate, Closure closure)
Creates a Closure that will call the closure repeatedly until the
predicate returns false.
|
Parameters: transformer the transformer to run each time in the closure, null means nop
Returns: the closure
Parameters: closure1 the first closure closure2 the second closure
Returns: the chained
closure
Throws: IllegalArgumentException if either closure is null
Parameters: closures an array of closures to chain
Returns: the chained
closure
Throws: IllegalArgumentException if the closures array is null IllegalArgumentException if any closure in the array is null
Parameters: closures a collection of closures to chain
Returns: the chained
closure
Throws: IllegalArgumentException if the closures collection is null IllegalArgumentException if the closures collection is empty IllegalArgumentException if any closure in the collection is null
Parameters: closure the closure to call repeatedly, not null predicate the predicate to use as an end of loop test, not null
Returns: the do-while
closure
Throws: IllegalArgumentException if either argument is null
Returns: the closure
count
times.
A null closure or zero count returns the NOPClosure
.
Parameters: count the number of times to loop closure the closure to call repeatedly
Returns: the for
closure
Parameters: predicate the validating predicate trueClosure the closure called if the predicate is true
Returns: the if
closure
Throws: IllegalArgumentException if the predicate is null IllegalArgumentException if the closure is null
Since: Commons Collections 3.2
Parameters: predicate the predicate to switch on trueClosure the closure called if the predicate is true falseClosure the closure called if the predicate is false
Returns: the switch
closure
Throws: IllegalArgumentException if the predicate is null IllegalArgumentException if either closure is null
Parameters: methodName the name of the method
Returns: the invoker
closure
Throws: IllegalArgumentException if the method name is null
See Also: InvokerTransformer
Parameters: methodName the name of the method paramTypes the parameter types args the arguments
Returns: the invoker
closure
Throws: IllegalArgumentException if the method name is null IllegalArgumentException if the paramTypes and args don't match
See Also: InvokerTransformer
Returns: the closure
The closure at array location 0 is called if the predicate at array location 0 returned true. Each predicate is evaluated until one returns true.
Parameters: predicates an array of predicates to check, not null closures an array of closures to call, not null
Returns: the switch
closure
Throws: IllegalArgumentException if the either array is null IllegalArgumentException if any element in the arrays is null IllegalArgumentException if the arrays are different sizes
The closure at array location 0 is called if the predicate at array location 0 returned true. Each predicate is evaluated until one returns true. If no predicates evaluate to true, the default closure is called.
Parameters: predicates an array of predicates to check, not null closures an array of closures to call, not null defaultClosure the default to call if no predicate matches
Returns: the switch
closure
Throws: IllegalArgumentException if the either array is null IllegalArgumentException if any element in the arrays is null IllegalArgumentException if the arrays are different sizes
The Map consists of Predicate keys and Closure values. A closure is called if its matching predicate returns true. Each predicate is evaluated until one returns true. If no predicates evaluate to true, the default closure is called. The default closure is set in the map with a null key. The ordering is that of the iterator() method on the entryset collection of the map.
Parameters: predicatesAndClosures a map of predicates to closures
Returns: the switch
closure
Throws: IllegalArgumentException if the map is null IllegalArgumentException if the map is empty IllegalArgumentException if any closure in the map is null ClassCastException if the map elements are of the wrong type
The Map consists of object keys and Closure values. A closure is called if the input object equals the key. If there is no match, the default closure is called. The default closure is set in the map using a null key.
Parameters: objectsAndClosures a map of objects to closures
Returns: the closure
Throws: IllegalArgumentException if the map is null IllegalArgumentException if the map is empty IllegalArgumentException if any closure in the map is null
Parameters: predicate the predicate to use as an end of loop test, not null closure the closure to call repeatedly, not null
Returns: the while
closure
Throws: IllegalArgumentException if either argument is null