KickJava   Java API By Example, From Geeks To Geeks.

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


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.Factory;
21
22 /**
23  * Factory 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:47:38 $
31  *
32  * @author Stephen Colebourne
33  */

34 public class ConstantFactory implements Factory, Serializable JavaDoc {
35
36     /** Serial version UID */
37     static final long serialVersionUID = -3520677225766901240L;
38     
39     /** Returns null each time */
40     public static final Factory NULL_INSTANCE = new ConstantFactory(null);
41
42     /** The closures to call in turn */
43     private final Object JavaDoc iConstant;
44
45     /**
46      * Factory 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 Factory getInstance(Object JavaDoc constantToReturn) {
52         if (constantToReturn == null) {
53             return NULL_INSTANCE;
54         }
55         return new ConstantFactory(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 ConstantFactory(Object JavaDoc constantToReturn) {
65         super();
66         iConstant = constantToReturn;
67     }
68
69     /**
70      * Always return constant.
71      *
72      * @return the stored constant value
73      */

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

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