1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.collections15;
17
18 import net.sf.collections15.functors.FunctorException;
19
20 /***
21 * Defines a functor interface implemented by classes that do something.
22 * <p/>
23 * A <code>Closure</code> represents a block of code which is executed from
24 * inside some block, function or iteration. It operates an input object.
25 * <p/>
26 * Standard implementations of common closures are provided by {@link
27 * net.sf.collections15.functors.closure.ClosureUtils}. These include method
28 * invokation and for/while loops.
29 *
30 * @author James Strachan
31 * @author Nicola Ken Barozzi
32 * @author Stephen Colebourne
33 * @version $Revision: 1.2 $ $Date: 2004/10/17 01:02:42 $
34 * @since Commons Collections15 1.0
35 */
36 public interface Closure <E>
37 {
38
39 /***
40 * Performs an action on the specified input object.
41 *
42 * @param input the input to execute on
43 *
44 * @throws ClassCastException (runtime) if the input is the wrong
45 * class
46 * @throws IllegalArgumentException (runtime) if the input is invalid
47 * @throws net.sf.collections15.functors.FunctorException
48 * (runtime) if any other error occurs
49 */
50 public void execute(E input) throws FunctorException;
51
52 }