Package org.apache.avalon.framework
Class Enum
java.lang.Object
org.apache.avalon.framework.Enum
- Direct Known Subclasses:
ValuedEnum
Basic enum class for type-safe enums. Should be used as an abstract base. For example:
import org.apache.avalon.framework.Enum;
public final class Color extends Enum {
public static final Color RED = new Color( "Red" );
public static final Color GREEN = new Color( "Green" );
public static final Color BLUE = new Color( "Blue" );
private Color( final String color )
{
super( color );
}
}
If further operations, such as iterating over all items, are required, the
Enum(String, Map) constructor can be used to populate a Map, from which
further functionality can be derived:
public final class Color extends Enum {
static final Map map = new HashMap();
public static final Color RED = new Color( "Red", map );
public static final Color GREEN = new Color( "Green", map );
public static final Color BLUE = new Color( "Blue", map );
private Color( final String color, final Map map )
{
super( color, map );
}
public static Iterator iterator()
{
return map.values().iterator();
}
}
NOTE: between 4.0 and 4.1, the constructors' access has been changed
from public to protected. This is to prevent users
of the Enum breaking type-safety by defining new Enum items. All Enum items
should be defined in the Enum class, as shown above.
- Version:
- CVS $Revision: 1.28 $ $Date: 2004/02/11 14:34:24 $
- Author:
- Avalon Development Team
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
Enum
Constructor to add a new named item.Note: access changed from
publictoprotectedafter 4.0. See class description.- Parameters:
name- Name of the item.
-
Enum
Constructor to add a new named item.Note: access changed from
publictoprotectedafter 4.0. See class description.- Parameters:
name- Name of the item.map- AMap, to which will be added a pointer to the newly constructed object.
-
-
Method Details
-
equals
Tests for equality. Two Enum:s are considered equal if they are of the same class and have the same names. The method is also declared final - I (LSutic) did this to allow the JIT to inline it easily. -
hashCode
public int hashCode() -
getName
Retrieve the name of this Enum item, set in the constructor.- Returns:
- the name
Stringof this Enum item
-
toString
Human readable description of this Enum item. For use when debugging.
-