1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.collections15;
17
18 /***
19 * Defines a functor interface implemented by classes that transform one object
20 * into another.
21 * <p/>
22 * A <code>Transformer</code> converts the input object to the output object.
23 * The input object should be left unchanged. Transformers are typically used
24 * for type conversions, or extracting data from an object.
25 * <p/>
26 * Standard implementations of common transformers are provided by {@link
27 * net.sf.collections15.functors.transformer.TransformerUtils}. These include
28 * method invokation, returning a constant, cloning and returning the string
29 * value.
30 *
31 * @author James Strachan
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 Transformer <I, O>
37 {
38
39 /***
40 * Transforms the input object (leaving it unchanged) into some output
41 * object.
42 *
43 * @param input the object to be transformed, should be left unchanged
44 *
45 * @return a transformed object
46 *
47 * @throws ClassCastException (runtime) if the input is the wrong
48 * class
49 * @throws IllegalArgumentException (runtime) if the input is invalid
50 * @throws net.sf.collections15.functors.FunctorException
51 * (runtime) if the transform cannot be
52 * completed
53 */
54 public O transform(I input);
55
56 }