/**
 * Returns an array containing the constants of this enum
 * type, in the order they're declared.  This method may be
 * used to iterate over the constants as follows:
 * <pre>
 *    for(<ClassName> c : <ClassName>.values())
 *        System.out.println(c);
 * </pre>
 *
 * @return an array containing the constants of this enum
 * type, in the order they're declared
 */
 