KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > idaremedia > antx > parameters > EnumSkeleton


1 /**
2  * $Id: EnumSkeleton.java 180 2007-03-15 12:56:38Z ssmc $
3  * Copyright 2002-2004 iDare Media, Inc. All rights reserved.
4  *
5  * Originally written by iDare Media, Inc. for release into the public domain. This
6  * library, source form and binary form, is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public License as published by the
8  * Free Software Foundation; either version 2.1 of the License, or (at your option) any
9  * later version.<p>
10  *
11  * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
12  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13  * See the GNU LGPL (GNU Lesser General Public License) for more details.<p>
14  *
15  * You should have received a copy of the GNU Lesser General Public License along with this
16  * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite
17  * 330, Boston, MA 02111-1307 USA. The LGPL can be found online at
18  * http://www.fsf.org/copyleft/lesser.html<p>
19  *
20  * This product has been influenced by several projects within the open-source community.
21  * The JWare developers wish to acknowledge the open-source community's support. For more
22  * information regarding the open-source products used within JWare, please visit the
23  * JWare website.
24  *----------------------------------------------------------------------------------------*
25  * WEBSITE- http://www.jware.info EMAIL- inquiries@jware.info
26  *----------------------------------------------------------------------------------------*
27  **/

28
29 package com.idaremedia.antx.parameters;
30
31 import org.apache.tools.ant.Project;
32 import org.apache.tools.ant.types.EnumeratedAttribute;
33
34 import com.idaremedia.antx.apis.FlexStringFriendly;
35 import com.idaremedia.antx.helpers.Tk;
36
37 /**
38  * Enumeration attribute helper that implements the standard
39  * <span class="src">equals()</span> and <span class="src">hashCode()</span>
40  * methods to support proper comparison.
41  *
42  * @since JWare/AntX 0.2
43  * @author ssmc, &copy;2002-2004 <a HREF="http://www.jware.info">iDare&nbsp;Media,&nbsp;Inc.</a>
44  * @version 0.5
45  * @.safety n/a
46  * @.group impl,helper
47  **/

48
49 public abstract class EnumSkeleton extends EnumeratedAttribute
50     implements FlexStringFriendly
51 {
52     /**
53      * Initializes an undefined Enum instance.
54      **/

55     protected EnumSkeleton()
56     {
57         super();
58     }
59
60
61     /**
62      * Use to create public singletons. Ensures the enum
63      * instance is initialized as with default Ant
64      * Introspector helper thingy.
65      **/

66     protected EnumSkeleton(String JavaDoc v)
67     {
68         super();
69         Tk.initEnum(this,v);
70         this.index = getIndex();
71     }
72
73
74     /**
75      * Returns <i>true</i> if this enumerated attribute
76      * equals incoming object (also an enumerated attribute).
77      **/

78     public boolean equals(Object JavaDoc o)
79     {
80         if (o==this) { return true; }
81         if (o==null) { return false; }
82         if (o.getClass()==getClass()) {
83             return ((EnumSkeleton)o).getIndex()==this.getIndex();
84         }
85         return false;
86     }
87
88
89     /**
90      * Returns this modification's hash value; fixed when
91      * constructed.
92      **/

93     public int hashCode()
94     {
95         return this.value.hashCode();
96     }
97
98
99     /**
100      * Returns this enum's string value as the flex value.
101      * @since JWare/AntX 0.3
102      **/

103     public String JavaDoc stringFrom(Project p)
104     {
105         return getValue();
106     }
107
108
109     /**
110      * For VM singletons, initialized to this enum's index
111      * in values array. Is "-1" if undefined (as with default
112      * Ant Introspector helper thingy).
113      **/

114     protected int index= -1;
115 }
116
117 /* end-of-Enum.java */
118
Popular Tags