ValuedEnum (Lang 2.6)
Date: 2019-01-01

org.apache.commons.lang.enum

## Class ValuedEnum

- java.lang.Object
- - org.apache.commons.lang.enum.Enum
  - - org.apache.commons.lang.enum.ValuedEnum

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable

  Deprecated.
  Replaced by `org.apache.commons.lang.enums.ValuedEnum` and will be removed in version 3.0. All classes in this package are deprecated and repackaged to `org.apache.commons.lang.enums` since `enum` is a Java 1.5 keyword.

      public abstract class ValuedEnum
      extends Enum

  Abstract superclass for type-safe enums with integer values suitable for use in `switch` statements.

  NOTE:Due to the way in which Java ClassLoaders work, comparing `Enum` objects should always be done using the equals() method, not `==`. The equals() method will try `==` first so in most cases the effect is the same.

  To use this class, it must be subclassed. For example:

       public final class JavaVersionEnum extends ValuedEnum {
         //standard enums for version of JVM
         public static final int  JAVA1_0_VALUE  = 100;
         public static final int  JAVA1_1_VALUE  = 110;
         public static final int  JAVA1_2_VALUE  = 120;
         public static final int  JAVA1_3_VALUE  = 130;
         public static final JavaVersionEnum  JAVA1_0  = new JavaVersionEnum( "Java 1.0", JAVA1_0_VALUE );
         public static final JavaVersionEnum  JAVA1_1  = new JavaVersionEnum( "Java 1.1", JAVA1_1_VALUE );
         public static final JavaVersionEnum  JAVA1_2  = new JavaVersionEnum( "Java 1.2", JAVA1_2_VALUE );
         public static final JavaVersionEnum  JAVA1_3  = new JavaVersionEnum( "Java 1.3", JAVA1_3_VALUE );

         private JavaVersionEnum(String name, int value) {
           super( name, value );
         }

         public static JavaVersionEnum getEnum(String javaVersion) {
           return (JavaVersionEnum) getEnum(JavaVersionEnum.class, javaVersion);
         }

         public static JavaVersionEnum getEnum(int javaVersion) {
           return (JavaVersionEnum) getEnum(JavaVersionEnum.class, javaVersion);
         }

         public static Map getEnumMap() {
           return getEnumMap(JavaVersionEnum.class);
         }

         public static List getEnumList() {
           return getEnumList(JavaVersionEnum.class);
         }

         public static Iterator iterator() {
           return iterator(JavaVersionEnum.class);
         }
       }

  The above class could then be used as follows:

       public void doSomething(JavaVersionEnum ver) {
         switch (ver.getValue()) {
           case JAVA1_0_VALUE:
             // ...
             break;
           case JAVA1_1_VALUE:
             // ...
             break;
           //...
         }
       }

  As shown, each enum has a name and a value. These can be accessed using `getName` and `getValue`.

  The `getEnum` and `iterator` methods are recommended. Unfortunately, Java restrictions require these to be coded as shown in each subclass. An alternative choice is to use the `EnumUtils` class.

  Since:
    1.0
  Version:
    $Id: ValuedEnum.java 905636 2010-02-02 14:03:32Z niallp $
  See Also:
    `ValuedEnum`, Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.apache.commons.lang.enum.Enum

      `iToString`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ValuedEnum(java.lang.String name, int value)` Deprecated. Constructor for enum item.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `compareTo(java.lang.Object other)` Deprecated. Tests for order.
    `protected static Enum` | `getEnum(java.lang.Class enumClass, int value)` Deprecated. Gets an `Enum` object by class and value.
    `int` | `getValue()` Deprecated. Get value of enum item.
    `java.lang.String` | `toString()` Deprecated. Human readable description of this `Enum` item.

    - ### Methods inherited from class org.apache.commons.lang.enum.Enum

      `equals, getEnum, getEnumClass, getEnumList, getEnumMap, getName, hashCode, iterator, readResolve`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ValuedEnum

          protected ValuedEnum(java.lang.String name,
                               int value)

      Deprecated.
      Constructor for enum item.
      Parameters:
        `name` - the name of enum item
        `value` - the value of enum item

  - ### Method Detail

    - #### getEnum

          protected static Enum getEnum(java.lang.Class enumClass,
                                        int value)

      Deprecated.

      Gets an `Enum` object by class and value.

      This method loops through the list of `Enum`, thus if there are many `Enum`s this will be slow.

      Parameters:
        `enumClass` - the class of the `Enum` to get
        `value` - the value of the `Enum` to get
      Returns:
        the enum object, or null if the enum does not exist
      Throws:
        `java.lang.IllegalArgumentException` - if the enum class is `null`

    - #### getValue

          public final int getValue()

      Deprecated.

      Get value of enum item.

      Returns:
        the enum item's value.

    - #### compareTo

          public int compareTo(java.lang.Object other)

      Deprecated.

      Tests for order.

      The default ordering is numeric by value, but this can be overridden by subclasses.

      Specified by:
        `compareTo` in interface `java.lang.Comparable`
      Overrides:
        `compareTo` in class `Enum`
      Parameters:
        `other` - the other object to compare to
      Returns:
        -ve if this is less than the other object, +ve if greater than, `0` of equal
      Throws:
        `java.lang.ClassCastException` - if other is not an `Enum`
        `java.lang.NullPointerException` - if other is `null`
      See Also:
        `Comparable.compareTo(Object)`

    - #### toString

          public java.lang.String toString()

      Deprecated.

      Human readable description of this `Enum` item.

      Overrides:
        `toString` in class `Enum`
      Returns:
        String in the form `type[name=value]`, for example: `JavaVersion[Java 1.0=100]`. Note that the package name is stripped from the type name.

Copyright © 2001-2019 - Apache Software Foundation