net.lucidviews.util
Class Enumeration

java.lang.Object
  extended bynet.lucidviews.util.Enumeration

public class Enumeration
extends java.lang.Object

An enumerated list of values.
An enumeration is a finite set of distinct values.
Each value in an Enumeration is an instance of an EnumValue. Creating an enumeration simply requires you to create a sub-class of EnumValue - see the documentation of that class for more information.

Note: Java version 1.5 contains support for enum types. These classes (Enumeration and EnumValue) are provided to give backwards compatibiity with previous versions of Java.

Since:
1.0
Version:
$Revision: 1.4 $
Author:
Stephen Battey
See Also:
EnumValue

Field Summary
protected  java.lang.Class _enumType
          The type of enumeration values.
protected  java.util.ArrayList _values
          The values in this enumeration.
 
Constructor Summary
Enumeration()
          Create an enumeration.
Enumeration(int initialCapacity)
          Create an enumeration, specifying the number of values so that the enumeration list can be sized at creation, thereby improving performance.
 
Method Summary
(package private)  int addValue(EnumValue value)
          Add a value to this enumeration.
 boolean equals(java.lang.Object obj)
           
 java.lang.Class getType()
          Returns the type of enum value being stored in this enumeration.
 int hashCode()
           
 boolean isEmpty()
          Tests if this enumeration has no values.
 java.util.ListIterator listIterator()
          Returns an iterator of the values in this enumeration (in proper sequence).
 EnumValue lookupValue(java.lang.Object value)
          Lookup a value in this enumeration.
 int size()
          Returns the number of values in this enumeration.
 java.lang.Object[] toArray()
          Returns an array containing all of the values in this enumeration in the correct order.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

_values

protected java.util.ArrayList _values
The values in this enumeration.


_enumType

protected java.lang.Class _enumType
The type of enumeration values.

Constructor Detail

Enumeration

public Enumeration(int initialCapacity)
Create an enumeration, specifying the number of values so that the enumeration list can be sized at creation, thereby improving performance.

Parameters:
initialCapacity - the expected number of values in this enumeration

Enumeration

public Enumeration()
Create an enumeration.

Method Detail

addValue

int addValue(EnumValue value)
       throws java.lang.IllegalStateException
Add a value to this enumeration.
An enumeration may only hold values that are of the same type - i.e. instances of the same EnumValue class. Attempting to add a different type of value to the enumeration will result in an exception.
All values must be unique. Attempting to add a duplicate value will also result in an exception.

Enumerations are not editable once they have been created. This method should only be called from within the EnumValue class while the list of enumeration values is being built. Therefore this method has been given package scope to prevent the list being changed after it has been created.

Parameters:
value - enumeration value to be added to this list
Returns:
the index of where the value is stored in the enumeration list
Throws:
java.lang.IllegalStateException - invalid value for this list

lookupValue

public EnumValue lookupValue(java.lang.Object value)
                      throws java.util.NoSuchElementException
Lookup a value in this enumeration.
The value parameter can be any Object. The return value is always an EnumValue that is considered equal (using the equals method to compare values) to the specified value.
Thus, if the Enumeration contains an EnumValue with id 6 and string-value "yard":
lookupValue( "yard" );
lookupValue( new Integer( 6 ) );
will both return the EnumValue instance.

Parameters:
value - the value to find
Returns:
the matching enumeration value
Throws:
java.util.NoSuchElementException - the value could not be found

getType

public java.lang.Class getType()
Returns the type of enum value being stored in this enumeration.
This will return null if no values have been added to this enumeration list.

Returns:
the type of this enumeration

size

public int size()
Returns the number of values in this enumeration.

Returns:
the number of values in this enumeration

isEmpty

public boolean isEmpty()
Tests if this enumeration has no values.

Returns:
true if no values have been defined in this enuemration; false otherwise

toArray

public java.lang.Object[] toArray()
Returns an array containing all of the values in this enumeration in the correct order.

Returns:
an array containing all of the elements in this list in the correct order

listIterator

public java.util.ListIterator listIterator()
Returns an iterator of the values in this enumeration (in proper sequence).

Returns:
an iterator of the enumeration values (s)
See Also:
EnumValue

toString

public java.lang.String toString()

hashCode

public int hashCode()

equals

public boolean equals(java.lang.Object obj)