net.dpml.lang
Class ValuedEnum

java.lang.Object
  extended by net.dpml.lang.Enum
      extended by net.dpml.lang.ValuedEnum
All Implemented Interfaces:
Serializable, Comparable
Direct Known Subclasses:
Category, Priority, ProcessState, Scope

public abstract class ValuedEnum
extends Enum
implements Comparable

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 net.dpml.lang.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 );
   public static final JavaVersion  JAVA1_4  = new JavaVersion( "Java 1.4", 140 );

   private JavaVersion( final String name, final int value )
   {
     super( name, value );
   }
 }
 
Usage:
   JavaVersion requiredVer = JavaVersion.JAVA1_2;

   public Widget( Context context )
   {
     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.

Version:
1.0.3
Author:
Digital Product Meta Library
See Also:
Serialized Form

Constructor Summary
protected ValuedEnum(String name, int value)
          Constructor for enum item.
protected ValuedEnum(String name, int value, Map map)
          Constructor for enum item so that it gets added to Map at creation.
 
Method Summary
 int compareTo(Object other)
          Compare this instance with the supplied object.
 boolean equals(Object o)
          Tests for equality.
 int getValue()
          Get value of enum item.
 int hashCode()
          Compute the hashcode value.
 boolean isEqualTo(ValuedEnum other)
          Test if enum item is equal in value to other enum.
 boolean isGreaterThan(ValuedEnum other)
          Test if enum item is greater than in value to other enum.
 boolean isGreaterThanOrEqual(ValuedEnum other)
          Test if enum item is greater than or equal in value to other enum.
 boolean isLessThan(ValuedEnum other)
          Test if enum item is less than in value to other enum.
 boolean isLessThanOrEqual(ValuedEnum other)
          Test if enum item is less than or equal in value to other enum.
 String toString()
          Override toString method to produce human readable description.
 
Methods inherited from class net.dpml.lang.Enum
getName
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ValuedEnum

protected ValuedEnum(String name,
                     int value)
Constructor for enum item.

Parameters:
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.

Parameters:
name - the name of enum item.
value - the value of enum item.
map - the Map to add enum item to.
Method Detail

getValue

public final int getValue()
Get value of enum item.

Returns:
the enum item's value.

isEqualTo

public final boolean isEqualTo(ValuedEnum other)
Test if enum item is equal in value to other enum.

Parameters:
other - the other enum
Returns:
true if equal

isGreaterThan

public final boolean isGreaterThan(ValuedEnum other)
Test if enum item is greater than in value to other enum.

Parameters:
other - the other enum
Returns:
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.

Parameters:
other - the other enum
Returns:
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.

Parameters:
other - the other enum
Returns:
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.

Parameters:
other - the other enum
Returns:
true if less than or equal

equals

public boolean equals(Object o)
Tests for equality. Two Enum:s are considered equal if they are of the same class, have the same name, and same value.

Overrides:
equals in class Enum
Parameters:
o - the other object
Returns:
the equality status

hashCode

public int hashCode()
Compute the hashcode value.

Overrides:
hashCode in class Enum
Returns:
the hashcode value

toString

public String toString()
Override toString method to produce human readable description.

Overrides:
toString in class Enum
Returns:
String in the form type:name#value, eg.: JavaVersion[Java 1.0=100].

compareTo

public int compareTo(Object other)
Compare this instance with the supplied object.

Specified by:
compareTo in interface Comparable
Parameters:
other - the object to compare against
Returns:
int 1 if this instance is ranked higher than the supplied instance, 0 if the ranking is equivalent, and -1 if this instance is ranked lower than the supplied instance