KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > collections > functors > ConstantTransformer


1 /*
2  * Copyright 2001-2004 The Apache Software Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.commons.collections.functors;
17
18 import java.io.Serializable JavaDoc;
19
20 import org.apache.commons.collections.Transformer;
21
22 /**
23  * Transformer implementation that returns the same constant each time.
24  * <p>
25  * No check is made that the object is immutable. In general, only immutable
26  * objects should use the constant factory. Mutable objects should
27  * use the prototype factory.
28  *
29  * @since Commons Collections 3.0
30  * @version $Revision: 1.5 $ $Date: 2004/05/16 11:36:31 $
31  *
32  * @author Stephen Colebourne
33  */

34 public class ConstantTransformer implements Transformer, Serializable JavaDoc {
35
36     /** Serial version UID */
37     static final long serialVersionUID = 6374440726369055124L;
38     
39     /** Returns null each time */
40     public static final Transformer NULL_INSTANCE = new ConstantTransformer(null);
41
42     /** The closures to call in turn */
43     private final Object JavaDoc iConstant;
44
45     /**
46      * Transformer method that performs validation.
47      *
48      * @param constantToReturn the constant object to return each time in the factory
49      * @return the <code>constant</code> factory.
50      */

51     public static Transformer getInstance(Object JavaDoc constantToReturn) {
52         if (constantToReturn == null) {
53             return NULL_INSTANCE;
54         }
55         return new ConstantTransformer(constantToReturn);
56     }
57     
58     /**
59      * Constructor that performs no validation.
60      * Use <code>getInstance</code> if you want that.
61      *
62      * @param constantToReturn the constant to return each time
63      */

64     public ConstantTransformer(Object JavaDoc constantToReturn) {
65         super();
66         iConstant = constantToReturn;
67     }
68
69     /**
70      * Transforms the input by ignoring it and returning the stored constant instead.
71      *
72      * @param input the input object which is ignored
73      * @return the stored constant
74      */

75     public Object JavaDoc transform(Object JavaDoc input) {
76         return iConstant;
77     }
78
79     /**
80      * Gets the constant.
81      *
82      * @return the constant
83      * @since Commons Collections 3.1
84      */

85     public Object JavaDoc getConstant() {
86         return iConstant;
87     }
88
89 }
90
Popular Tags