JavaTM Platform
Standard Ed. 6

javax.print.attribute
クラス EnumSyntax

java.lang.Object
  上位を拡張 javax.print.attribute.EnumSyntax
すべての実装されたインタフェース:
Serializable, Cloneable
直系の既知のサブクラス:
Chromaticity, ColorSupported, Compression, 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()
          この列挙値に対応する文字列値を返します。
 
クラス java.lang.Object から継承されたメソッド
equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

EnumSyntax

protected EnumSyntax(int value)
指定された整数値を持つ新しい列挙値を構築します。

パラメータ:
value - 整数値
メソッドの詳細

getValue

public int getValue()
列挙値の整数値を返します。

戻り値:

clone

public Object clone()
列挙値の複製を返します。これは、列挙値のセマンティクスを保護するために、この列挙値と同じオブジェクトになります。

オーバーライド:
クラス Object 内の clone
戻り値:
このインスタンスの複製
関連項目:
Cloneable

hashCode

public int hashCode()
この列挙値のハッシュコード値を返します。ハッシュコードはこの列挙値の整数値です。

オーバーライド:
クラス Object 内の hashCode
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

toString

public String toString()
この列挙値に対応する文字列値を返します。

オーバーライド:
クラス Object 内の toString
戻り値:
このオブジェクトの文字列表現

readResolve

protected Object readResolve()
                      throws ObjectStreamException
オブジェクトの入力時に、この直列化復元された列挙インスタンスを、列挙属性クラスで定義された適切な列挙値に変換します。

戻り値:
getEnumValueTable() によって返された列挙値テーブルのインデックス i 〜 L に格納された列挙の単独値。 ここで、i はこの列挙値の整数値、 L は getOffset() によって返された値
例外:
ObjectStreamException - ストリームが直列化復元できない場合
InvalidObjectException - 列挙値のテーブルが null の場合、 この列挙値の整数値が列挙値のテーブルの要素に対応しない場合、 または列挙値のテーブルの対応する要素が null の場合、 スローされる。注: InvalidObjectException は、readResolve() がスローを宣言された ObjectStreamException のサブクラスである

getStringTable

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

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

戻り値:
文字列テーブル

getEnumValueTable

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

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

戻り値:
値テーブル

getOffset

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

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

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

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。