org.apache.commons.lang.enum
クラス ValuedEnum

java.lang.Object
  拡張org.apache.commons.lang.enum.Enum
      拡張org.apache.commons.lang.enum.ValuedEnum
すべての実装インタフェース:
Comparable, Serializable

public abstract class ValuedEnum
extends Enum

タイプセーフな int の値を使用した enum のスーパークラスとなる抽象クラスです。

Abstract superclass for type-safe enums with integer values.

注: Java クラスローダの処理に依存して結果が変わるため Enum オブジェクトの比較には == ではなく equals() メソッドを使う必要があります。 The equals() メソッドは初めに == を実行するため、たいていの場合は同じ結果になります。

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 JavaVersion 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(JavaVersion ver) {
   switch (ver.getValue()) {
     case JAVA1_0_VALUE:
       // ...
       break;
     case JAVA1_1_VALUE:
       // ...
       break;
     //...
   }
 }
 

上に見られるように各 enum は名前と値をもっています。 これには getNamegetValue を使用することによりアクセスできます。

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

getEnumiterator のメソッドの使用をお勧めします。 不幸なことに、Javaの制限のために各サブクラス毎にこのようなコードが必要となってしまいます。 この代案は EnumUtils クラスの使用です

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 {@link EnumUtils} class.

注: このクラスのオリジナルは Jakarta Avalon プロジェクト内にあります。

NOTE: This class originated in the Jakarta Avalon project.

バージョン:
$Id: ValuedEnum.java,v 1.1.1.1 2004/02/13 10:02:04 hioki Exp $
作成者:
Stephen Colebourne
関連項目:
直列化された形式
翻訳者:
日置 聡
翻訳状況:
初稿(校正者募集中)
翻訳更新日:
2003/08/05

入れ子クラスの概要
 
クラス org.apache.commons.lang.enum.Enum から継承した入れ子クラス
 
フィールドの概要
private  int iValue
          enum の持つ値。
 
クラス org.apache.commons.lang.enum.Enum から継承したフィールド
 
コンストラクタの概要
protected ValuedEnum(String name, int value)
          enum アイテムを生成します。
 
メソッドの概要
 int compareTo(Object other)
          順序をチェックします。
protected static Enum getEnum(Class enumClass, int value)
          クラスと値から Enum を取得します。
 int getValue()
          enum アイテムの値を取得します。
 String toString()
          Enum アイテムを読みやすい形で返します。
 
クラス org.apache.commons.lang.enum.Enum から継承したメソッド
equals, getEnum, getEnumList, getEnumMap, getName, hashCode, iterator, readResolve
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

iValue

private final int iValue
enum の持つ値。
The value contained in enum.

コンストラクタの詳細

ValuedEnum

protected ValuedEnum(String name,
                     int value)
enum アイテムを生成します。
Constructor for enum item.

パラメータ:
name - enum アイテムの名称
the name of enum item.
value - enum アイテムの値
the value of enum item.
メソッドの詳細

getEnum

protected static Enum getEnum(Class enumClass,
                              int value)
クラスと値から Enum を取得します。 このメソッドは Enum のリストをループして走査するため、多くの Enum が登録されている場合、その処理は遅くなります。
Gets an Enum object by class and value. This method loops through the list of Enums, thus if there are many Enums this will be slow.

パラメータ:
enumClass - 取得元となる Enum クラス
the class of the Enum to get
value - 取得する Enum の値
the value of the Enum to get
戻り値:
enum オブジェクト、該当する enum 画存在しない場合 null
the enum object, or null if the enum does not exist
例外:
IllegalArgumentException - enum クラスが null だった場合
if the enum class is null

getValue

public final int getValue()
enum アイテムの値を取得します。
Get value of enum item.

戻り値:
enum アイテムの値
the enum item's value.

compareTo

public int compareTo(Object other)
順序をチェックします。 デフォルトの順番は値のの数値順となりますが、これはサブクラスによってオーバライドされます。
Tests for order. The default ordering is numeric by value, but this can be overridden by subclasses.

定義:
インタフェース Comparable 内の compareTo
オーバーライド:
クラス Enum 内の compareTo
パラメータ:
other - 比較対照となるオブジェクト
the other object to compare to
戻り値:
比較対照より小さかった場合 -ve(マイナス)、比較対照より大きかった場合 +ve(プラス)、等しかった場合 0
-ve if this is less than the other object, +ve if greater than, 0 of equal
例外:
ClassCastException - 比較対照が Enum でなかった場合
if other is not an Enum
NullPointerException - 比較対照が null だった場合
if other is null
関連項目:
Comparable.compareTo(Object)

toString

public String toString()
Enum アイテムを読みやすい形で返します。 デバッグの際に使用されます。
Human readable description of this Enum item. For use when debugging.

オーバーライド:
クラス Enum 内の toString
戻り値:
type[name=value] のフォームの文字列、例: JavaVersion[Java 1.0=100]、 注 型の名前の中のパッケージ名は省略されます。
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.


このドキュメントは、Ja-Jakartaにより訳されました。 コメントがある場合は report@jajakarta.orgまでお願いします。
Translated into Japanese by jajakarta.org. The original page is here.
Copyright (c) 2002-2003 - Apache Software Foundation