org.apache.commons.collections.functors
Class SwitchClosure
java.lang.Object
|
+--org.apache.commons.collections.functors.SwitchClosure
- All Implemented Interfaces:
- Closure, Serializable
- public class SwitchClosure
- extends Object
- implements Closure, Serializable
Closure implementation calls the closure whose predicate returns true,
like a switch statement.
- Since:
- Commons Collections 3.0
- Version:
- $Revision: 1.2 $ $Date: 2004/01/14 21:43:09 $
- Author:
- Stephen Colebourne
- See Also:
- Serialized Form
Method Summary |
void |
execute(Object input)
Execute the closure whose predicate returns true |
static Closure |
getInstance(Map predicatesAndClosures)
Create a new Closure that calls one of the closures depending
on the predicates. |
static Closure |
getInstance(Predicate[] predicates,
Closure[] closures,
Closure defaultClosure)
Factory method that performs validation and copies the parameter arrays. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SwitchClosure
public SwitchClosure(Predicate[] predicates,
Closure[] closures,
Closure defaultClosure)
- Constructor that performs no validation.
Use
getInstance
if you want that.
- Parameters:
predicates
- array of predicates, not cloned, no nullsclosures
- matching array of closures, not cloned, no nullsdefaultClosure
- the closure to use if no match, null means nop
getInstance
public static Closure getInstance(Predicate[] predicates,
Closure[] closures,
Closure defaultClosure)
- Factory method that performs validation and copies the parameter arrays.
- Parameters:
predicates
- array of predicates, cloned, no nullsclosures
- matching array of closures, cloned, no nullsdefaultClosure
- the closure to use if no match, null means nop- Returns:
- the
chained
closure - Throws:
IllegalArgumentException
- if array is nullIllegalArgumentException
- if any element in the array is null
getInstance
public static Closure getInstance(Map predicatesAndClosures)
- Create a new Closure that calls one of the closures depending
on the predicates.
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 nullIllegalArgumentException
- if any closure in the map is nullClassCastException
- if the map elements are of the wrong type
execute
public void execute(Object input)
- Execute the closure whose predicate returns true
- Specified by:
execute
in interface Closure
- Following copied from interface:
org.apache.commons.collections.Closure
- Parameters:
input
- the input to execute on- Throws:
ClassCastException
- (runtime) if the input is the wrong classIllegalArgumentException
- (runtime) if the input is invalidFunctorException
- (runtime) if any other error occurs
Copyright © 2001-2004 Apache Software Foundation. All Rights Reserved.