モジュール 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を継承)は、列挙クラスのシングルトン・インスタンスである列挙値のグループ(objects)を提供します。例えば:
         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のサブクラス)がnon-null文字列テーブルを返すためにこのメソッドをオーバーライドせず、サブクラスがtoString()メソッドをオーバーライドしない場合、基本クラスtoString()メソッドはこの列挙値整数値の文字列表現を返します。

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

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

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

        戻り値:
        値テーブル
      • getOffset

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

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

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