モジュール java.desktop
パッケージ javax.print.attribute

クラスEnumSyntax

  • すべての実装されたインタフェース:
    Serializable, Cloneable
    直系の既知のサブクラス:
    Chromaticity, ColorSupported, Compression, DialogTypeSelection, Fidelity, Finishings, JobSheets, JobState, JobStateReason, Media, MultipleDocumentHandling, OrientationRequested, PDLOverrideSupported, PresentationDirection, PrinterIsAcceptingJobs, PrinterState, PrinterStateReason, PrintQuality, ReferenceUriSchemesSupported, Severity, SheetCollate, Sides


    public abstract class EnumSyntax
    extends Object
    implements Serializable, Cloneable
    EnumSyntaxクラスは、すべての「型保証された列挙」オブジェクトの一般的な実装を提供する抽象基底クラスです。 EnumSyntaxクラスの拡張である列挙クラスは、列挙クラスの単独インスタンスである列挙値(オブジェクト)のグループを提供します。次に例を示します。
         public class Bach extends EnumSyntax {
             public static final Bach JOHANN_SEBASTIAN     = new Bach(0);
             public static final Bach WILHELM_FRIEDEMANN   = new Bach(1);
             public static final Bach CARL_PHILIP_EMMANUEL = new Bach(2);
             public static final Bach JOHANN_CHRISTIAN     = new Bach(3);
             public static final Bach P_D_Q                = new Bach(4);
    
             private static final String[] stringTable = {
                 "Johann Sebastian Bach",
                  "Wilhelm Friedemann Bach",
                  "Carl Philip Emmanuel Bach",
                  "Johann Christian Bach",
                  "P.D.Q. Bach"
             };
    
             protected String[] getStringTable() {
                 return stringTable;
             }
    
             private static final Bach[] enumValueTable = {
                 JOHANN_SEBASTIAN,
                  WILHELM_FRIEDEMANN,
                  CARL_PHILIP_EMMANUEL,
                  JOHANN_CHRISTIAN,
                  P_D_Q
             };
    
             protected EnumSyntax[] getEnumValueTable() {
                 return enumValueTable;
             }
         }
     
    次いで、==および!=演算子を使用するコードを記述して、列挙値を判定できます。次に例を示します。
         Bach theComposer;
         . . .
         if (theComposer == Bach.JOHANN_SEBASTIAN) {
             System.out.println ("The greatest composer of all time!");
         }
     
    列挙クラスのequals()メソッドは、同一のオブジェクト(==)の判定だけを行います。

    列挙値を文字列に変換するには、toString()を呼び出します。 文字列は列挙クラスが提供するテーブルから取得されます。

    背後にある実装では、列挙値は整数値のみであり、列挙クラス内の列挙値ごとに異なる整数値が割り当てられています。 列挙値の整数値を取得するには、getValue()を呼び出します。 列挙値の整数値は、列挙値の構築時に設定されます(EnumSyntax(int)を参照)。 コンストラクタが保護されているので、使用できる列挙値は列挙クラスで宣言された単体オブジェクトのみです。実行時に新たに列挙値を作成できません。

    列挙クラスのサブクラスを定義して、追加の列挙値を持つ列挙クラスを拡張できます。 サブクラスの列挙値の整数値は、スーパー・クラスの列挙値の整数値と別個のものである必要はありません。サブクラスがスーパー・クラスと同じ整数値を使用しても、==!=equals()、およびtoString()メソッドは正常に動作します。 ただし、列挙クラスとサブクラスが使用されるアプリケーションは、スーパー・クラスとサブクラスで異なる整数値を持つ必要があります。

    関連項目:
    直列化された形式
    • コンストラクタのサマリー

      コンストラクタ 
      修飾子 コンストラクタ 説明
      protected EnumSyntax​(int value)
      指定された整数値を持つ新しい列挙値を構築します。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      Object clone​()
      列挙値の複製を返します。これは、列挙値のセマンティックスを保護するために、この列挙値と同じオブジェクトになります。
      protected EnumSyntax[] getEnumValueTable​()
      この列挙値の列挙クラスの列挙値テーブルを返します。
      protected int getOffset​()
      この列挙値の列挙クラスで使用される最小の整数値を返します。
      protected String[] getStringTable​()
      この列挙値の列挙クラスの文字列テーブルを返します。
      int getValue​()
      列挙値の整数値を返します。
      int hashCode​()
      この列挙値のハッシュ・コード値を返します。
      protected Object readResolve​()
      オブジェクトの入力時に、この直列化復元された列挙インスタンスを、列挙属性クラスで定義された適切な列挙値に変換します。
      String toString​()
      この列挙値に対応する文字列値を返します。
    • コンストラクタの詳細

      • EnumSyntax

        protected EnumSyntax​(int value)
        指定された整数値を持つ新しい列挙値を構築します。
        パラメータ:
        value - 整数値。
    • メソッドの詳細

      • getValue

        public int getValue​()
        列挙値の整数値を返します。
        戻り値:
      • clone

        public Object clone​()
        列挙値の複製を返します。これは、列挙値のセマンティックスを保護するために、この列挙値と同じオブジェクトになります。
        オーバーライド:
        clone、クラス: Object
        戻り値:
        このインスタンスの複製。
        関連項目:
        Cloneable
      • toString

        public String toString​()
        この列挙値に対応する文字列値を返します。
        オーバーライド:
        toString、クラス: Object
        戻り値:
        このオブジェクトの文字列表現。
      • readResolve

        protected Object readResolve​()
                              throws ObjectStreamException
        オブジェクトの入力時に、この直列化復元された列挙インスタンスを、列挙属性クラスで定義された適切な列挙値に変換します。
        戻り値:
        getEnumValueTable()によって返された列挙値テーブルのインデックスi - Lに格納された列挙の単独値。ここで、iはこの列挙値の整数値、LgetOffset()によって返された値。
        例外:
        ObjectStreamException - ストリームが直列化復元できない場合
        InvalidObjectException - 列挙値のテーブルがnullの場合、この列挙値の整数値が列挙値のテーブルの要素に対応しない場合、または列挙値のテーブルの対応する要素がnullの場合、スローされる。 (なお、InvalidObjectExceptionは、readResolve()からスローされると宣言されているObjectStreamExceptionのサブクラスです。)
      • getStringTable

        protected String[] getStringTable​()
        この列挙値の列挙クラスの文字列テーブルを返します。 列挙クラスの整数値はL..L+N-1の範囲にあるものと見なされます。ここで、LgetOffset()によって返された値、Nは文字列テーブルの長さです。 インデックスi - Lの文字列テーブルの要素は、整数値がiの列挙値に対するtoString()によって返された値です。 上述の範囲の整数値がどの列挙値でも使用されない場合、対応するテーブル要素はnullのままになります。

        デフォルト実装はnullを返します。 列挙クラス(EnumSyntaxクラスのサブクラス)がnull以外の文字列テーブルを返すためにこのメソッドをオーバーライドしない場合に、このサブクラスがtoString()メソッドをオーバーライドしないと、基底クラスのtoString()メソッドによってこの列挙値の整数値の文字列表現が返されます。

        戻り値:
        文字列テーブル
      • getEnumValueTable

        protected EnumSyntax[] getEnumValueTable​()
        この列挙値の列挙クラスの列挙値テーブルを返します。 列挙クラスの整数値はL..L+N-1の範囲にあるものと見なされます。ここで、LgetOffset()によって返された値、Nは列挙値テーブルの長さです。 インデックスi - Lの列挙値テーブルの要素は、整数値がiの列挙値オブジェクトです。readResolve()メソッドは、列挙インスタンスの直列化復元時に単独のセマンティックスを保護するためにこれが必要になります。 上述の範囲の整数値がどの列挙値でも使用されない場合、対応するテーブル要素はnullのままになります。

        デフォルト実装はnullを返します。 列挙クラス(EnumSyntaxクラスのサブクラス)がnull以外の列挙値テーブルを返すためにこのメソッドをオーバーライドしない場合に、このサブクラスがreadResolve()メソッドをオーバーライドしないと、基底クラスのreadResolve()メソッドによって、列挙インスタンスがオブジェクト入力ストリームから直列化復元されるときに必ず例外がスローされます。

        戻り値:
        値テーブル
      • getOffset

        protected int getOffset​()
        この列挙値の列挙クラスで使用される最小の整数値を返します。

        デフォルトの実装は0を返します。 列挙クラス(EnumSyntaxクラスのサブクラス)が0以外で始まる整数値を使用する場合、サブクラスのこのメソッドをオーバーライドします。

        戻り値:
        最小の列挙値のオフセット