public abstract class EnumeratedType
EnumeratedType classes are used to define a fixed set of specific values that can be taken by a field.
For example, north/south/east/west. Subclasses of this abstract class declare the general category
of the typed constant (e.g., Direction), and subclasses of the general class declare the set of allowable values.
Thus a field of type "Direction" may take take on only the values of the defined static final instances, namely
NORTH, SOUTH, EAST, WEST. Further instances cannot be made because the constructor is private.
Fields may be compared against the static final values to query their value. If the field is named "direction",
the construction is if(direction == Constants.NORTH).
The constructor of a EnumeratedType takes a String parameter that becomes the return value of the toString method.