クラスEncoder

java.lang.Object
java.beans.Encoder
直系の既知のサブクラス:
XMLEncoder

public class Encoder extends Object
Encoderは、公開APIに関して複数のJavaBeansの状態をエンコードするファイルまたはストリームを作成する際に使用できるクラスです。 Encoderは、永続性委任とともに、オブジェクト・グラフを一連のStatementおよびExpressionに分割し、これを使用してオブジェクト・グラフを作成できます。 通常、サブクラスは、ユーザーが読める書式、たとえばJavaソース・コードやXMLとして、これらの式の構文を提供します。
導入されたバージョン:
1.4
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    Encoderを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    get(Object oldInstance)
    このストリームによって作成された、その環境におけるoldInstanceの試験値を返します。
    このストリームの例外ハンドラを取得します。
    指定された型の持続的な委譲を返します。
    remove(Object oldInstance)
    このインスタンスのエントリを削除し、古いエントリを返します。
    void
    このストリームの例外ハンドラをexceptionListenerに設定します。
    void
    指定された永続的な委譲を指定されたタイプに関連付けます。
    void
    実装は、最初に、この値を持つ式がすでに書き込まれているかどうかを確認します。
    protected void
    指定されたオブジェクトを出力ストリームに書き込みます。
    void
    ストリームにoldStm文を書き込みます。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • Encoder

      public Encoder()
      Encoderを構築します。
  • メソッドの詳細

    • writeObject

      protected void writeObject(Object o)
      指定されたオブジェクトを出力ストリームに書き込みます。 直列化された書式は、一連の式を示します。式の組み合わせの結果、入力ストリームの読込み時に等価のオブジェクトが作成されます。 デフォルトでは、オブジェクトは引数なしのコンストラクタ(その状態はIntrospectorが返す設定メソッドと取得メソッドの照合によって定義される)を持つJavaBeanになります。
      パラメータ:
      o - ストリームに書き込まれるオブジェクト。
      関連項目:
    • setExceptionListener

      public void setExceptionListener(ExceptionListener exceptionListener)
      このストリームの例外ハンドラをexceptionListenerに設定します。 このストリームが回復可能な例外をキャッチすると、この例外ハンドラに通知されます。
      パラメータ:
      exceptionListener - このストリームの例外ハンドラ。nullの場合は、デフォルトの例外リスナーが使用されます。
      関連項目:
    • getExceptionListener

      public ExceptionListener getExceptionListener()
      このストリームの例外ハンドラを取得します。
      戻り値:
      このストリームの例外ハンドラ。明示的に設定されていない場合、デフォルトの例外リスナーが返される。
      関連項目:
    • getPersistenceDelegate

      public PersistenceDelegate getPersistenceDelegate(Class<?> type)
      指定された型の持続的な委譲を返します。 持続的な委譲は、次のルールを正しく適用することによって計算されます。
      1. setPersistenceDelegate(Class, PersistenceDelegate)メソッドを使用して特定の型に永続性委譲が関連付けられている場合は、その型が返されます。
      2. 次に、永続性デリゲートは、指定された型の完全修飾名と"PersistenceDelegate"のポストフィクスで構成される名前によって検索されます。 たとえば、Beanクラスの持続的な委譲は、BeanPersistenceDelegateという名前で同じパッケージ内にある必要があります。
        public class Bean { ... }
        public class BeanPersistenceDelegate { ... }
        Beanクラスの場合は、BeanPersistenceDelegateクラスのインスタンスが返されます。
      3. 型がnullである場合は、null値をエンコードする内部共有の持続的な委譲が返されます。
      4. 型がenum宣言の場合、この列挙の定数を名前でエンコードする共有内部永続性委任が返されます。
      5. 型がプリミティブ型または対応するラッパーである場合は、指定された型の値をエンコードする内部共有の持続的な委譲が返されます。
      6. array型の場合、内部共有の持続的な委譲が返されます。この委譲は、適切な型および長さを持つ配列をエンコードし、個々の要素をプロパティと同様にエンコードします。
      7. タイプがプロキシの場合、Proxy.newProxyInstance(ClassLoader, Class[], InvocationHandler)メソッドを使用してプロキシ・インスタンスをエンコードする共有内部永続性デリゲートが返されます。
      8. この型のBeanInfoにpersistenceDelegate属性が定義されたBeanDescriptorがある場合は、この名前付き属性の値が返されます。
      9. それ以外の場合、デフォルトの持続的な委譲が返されます。 デフォルトの持続性委譲は、型がJavaBeanであると見なします。すなわち、デフォルトコンストラクタを持ち、その状態がIntrospectorクラスによって返されるsetterメソッドとgetterメソッドペアの照合によって特色付けられることを示します。 デフォルトコンストラクタは、ConstructorProperties注釈を持つ、パラメータの数がもっとも多いコンストラクタです。 ConstructorProperties注釈の付けられたコンストラクタがない場合、引数なしのコンストラクタ(パラメータのないコンストラクタ)が使用されます。 たとえば次のコードでは、Fooクラスでは引数なしのコンストラクタが使用され、Barクラスでは2つのパラメータを持つコンストラクタが使用されます。
        public class Foo {
            public Foo() { ... }
            public Foo(int x) { ... }
        }
        public class Bar {
            public Bar() { ... }
            @ConstructorProperties({"x"})
            public Bar(int x) { ... }
            @ConstructorProperties({"x", "y"})
            public Bar(int x, int y) { ... }
        }
      パラメータ:
      type - オブジェクトのクラス
      戻り値:
      指定された型の持続的な委譲
      関連項目:
    • setPersistenceDelegate

      public void setPersistenceDelegate(Class<?> type, PersistenceDelegate delegate)
      指定された永続的な委譲を指定されたタイプに関連付けます。
      パラメータ:
      type - 指定された持続的な委譲が適用されるオブジェクトのクラス
      delegate - 指定された型のインスタンスの持続的な委譲
      関連項目:
    • remove

      public Object remove(Object oldInstance)
      このインスタンスのエントリを削除し、古いエントリを返します。
      パラメータ:
      oldInstance - 削除されるエントリ。
      戻り値:
      削除されたエントリ。
      関連項目:
    • get

      public Object get(Object oldInstance)
      このストリームによって作成された、その環境におけるoldInstanceの試験値を返します。 持続的な委譲は、この値の初期化によって出力時に等価オブジェクトを作成するのか、あるいは新しいオブジェクトをインスタンス化する必要があるのかどうかを、mutatesToメソッドを使って判断します。 この値がストリームにとって未知の値である場合、戻り値はnullになります。
      パラメータ:
      oldInstance - 検索されるインスタンス。
      戻り値:
      未知のオブジェクトの場合null。
    • writeStatement

      public void writeStatement(Statement oldStm)
      ストリームにoldStm文を書き込みます。 oldStmは、完全に呼出し元の環境で書き込まれる必要があります。これは、ターゲットとすべての引数が、書き込まれるオブジェクト・グラフの一部になっていなければならないということです。 これらの式は、何が起こったかを示す一連の式、すなわち、出力ストリームにオリジナルと同様のオブジェクト・グラフを生成する方法を示す式になります。

      このメソッドを実装すると、ストリームの読込み時にその環境内の式となる、2番目の式が生成されます。 この式を取得するには、ターゲット上のwriteObjectとすべての引数を呼び出し、その結果を使って新しい式を構築します。

      パラメータ:
      oldStm - ストリームに書き込まれる式。
    • writeExpression

      public void writeExpression(Expression oldExp)
      実装は、最初に、この値を持つ式がすでに書き込まれているかどうかを確認します。 書き込まれていない場合は、writeStatementと同様の手順で式が複製され、writeObjectの呼出しにより、複製された式の値とこの式の値が照合されます。
      パラメータ:
      oldExp - ストリームに書き込まれる式。