org.apache.avalon.framework
Class ValuedEnum
public abstract class ValuedEnum
Basic enum class for type-safe enums with values. Valued enum items can be compared and ordered
with the provided methods. Should be used as an abstract base. For example:
import org.apache.avalon.framework.ValuedEnum;
public final class JavaVersion
extends ValuedEnum
{
//standard enums for version of JVM
public static final JavaVersion JAVA1_0 = new JavaVersion( "Java 1.0", 100 );
public static final JavaVersion JAVA1_1 = new JavaVersion( "Java 1.1", 110 );
public static final JavaVersion JAVA1_2 = new JavaVersion( "Java 1.2", 120 );
public static final JavaVersion JAVA1_3 = new JavaVersion( "Java 1.3", 130 );
private JavaVersion( final String name, final int value )
{
super( name, value );
}
}
The above class could then be used as follows:
import org.apache.avalon.framework.context.Context;
import org.apache.avalon.framework.context.Contextualizable;
import org.apache.avalon.framework.context.ContextException;
public class MyComponent implements Contextualizable
{
JavaVersion requiredVer = JavaVersion.JAVA1_2;
public void contextualize(Context context)
throws ContextException
{
JavaVersion ver = (JavaVersion)context.get("java.version");
if ( ver.isLessThan( requiredVer ) )
{
throw new RuntimeException( requiredVer.getName()+" or higher required" );
}
}
}
As with
Enum
, the
ValuedEnum(String,int,Map)
constructor can be used to
populate a
Map
, from which further functionality can be derived.
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:
- Avalon Development Team
ValuedEnum(String name, int value) - Constructor for enum item.
|
ValuedEnum(String name, int value, Map map) - Constructor for enum item so that it gets added to Map at creation.
|
ValuedEnum
protected ValuedEnum(String name,
int value)
Constructor for enum item.
Note: access changed from
public
to
protected
after 4.0. See class description.
name
- the name of enum item.value
- the value of enum item.
ValuedEnum
protected ValuedEnum(String name,
int value,
Map map)
Constructor for enum item so that it gets added to Map at creation.
Adding to a map is useful for implementing find...() style methods.
Note: access changed from public
to
protected
after 4.0. See class description.
name
- the name of enum item.value
- the value of enum item.map
- the Map
to add enum item to.
getValue
public final int getValue()
Get value of enum item.
- the enum item's value.
isEqualTo
public final boolean isEqualTo(ValuedEnum other)
Test if enum item is equal in value to other enum.
other
- the other enum
- true if equal
isGreaterThan
public final boolean isGreaterThan(ValuedEnum other)
Test if enum item is greater than in value to other enum.
other
- the other enum
- true if greater than
isGreaterThanOrEqual
public final boolean isGreaterThanOrEqual(ValuedEnum other)
Test if enum item is greater than or equal in value to other enum.
other
- the other enum
- true if greater than or equal
isLessThan
public final boolean isLessThan(ValuedEnum other)
Test if enum item is less than in value to other enum.
other
- the other enum
- true if less than
isLessThanOrEqual
public final boolean isLessThanOrEqual(ValuedEnum other)
Test if enum item is less than or equal in value to other enum.
other
- the other enum
- true if less than or equal
toString
public String toString()
Override toString method to produce human readable description.
- toString in interface Enum
- String in the form
type[name=value]
, eg.:
JavaVersion[Java 1.0=100]
.
"Copyright B) 2001 Apache Jakarta Project. All Rights Reserved."