JavaTM 2
Platform
Std. Ed. v1.4.0

java.beans
クラス DefaultPersistenceDelegate

java.lang.Object
  |
  +--java.beans.PersistenceDelegate
        |
        +--java.beans.DefaultPersistenceDelegate

public class DefaultPersistenceDelegate
extends PersistenceDelegate

DefaultPersistenceDelegate は、抽象クラス PersistenceDelegate の固定実装であり、情報の得られないクラスがデフォルトで使用する委譲です。JavaBeans 規約に従うクラスは、DefaultPersistenceDelegate により、特別な構成を行わなくても、バージョンの違いによる影響を受けない公開 API ベースの持続性を確保することができます。

クラスが nullary のコンストラクタを持っていて、Introspector から返される順番で set メソッドと get メソッドの照合を行うことにより、その状態が正確に示されていることが重要な仮定条件となります。DefaultPersistenceDelegate は、JavaBean のコードフリーに対する持続性を提供するほか、引数としてプロパティの値を要求するだけの nullary でないコンストラクタを持つクラスに持続記憶域をもたらす便利な手段を提供します。

導入されたバージョン:
1.4
関連項目:
DefaultPersistenceDelegate(String[]), Introspector

コンストラクタの概要
DefaultPersistenceDelegate()
          nullary のコンストラクタを持つクラス向けに、持続的な委譲を作成します。
DefaultPersistenceDelegate(String[] constructorPropertyNames)
          constructorPropertyNames によって指定されたプロパティ名を引数の値とするコンストラクタを持ったクラス向けに、デフォルトの持続的な委譲を作成します。
 
メソッドの概要
protected  void initialize(Class type, Object oldInstance, Object newInstance, Encoder out)
          この initialize メソッドのデフォルト実装は、Introspector によって返される順番で set メソッドと get メソッドの照合を行うことにより、この型のオブジェクトの状態がすべて公開された状態にします。
protected  Expression instantiate(Object oldInstance, Encoder out)
          この instantiate メソッドのデフォルト実装は、事前定義済みのメソッド名「new」を含む式 (DefaultPersistenceDelegate のコンストラクタに指定されたように引数を使ってコンストラクタを呼び出す) を返します。
protected  boolean mutatesTo(Object oldInstance, Object newInstance)
          指定されたコンストラクタ内の引数の数がゼロ以外で、oldInstance クラスが明示的に equals メソッドを宣言している場合、このメソッドの戻り値は oldInstance.equals(newInstance) になります。
 
クラス java.beans.PersistenceDelegate から継承したメソッド
writeObject
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

DefaultPersistenceDelegate

public DefaultPersistenceDelegate()
nullary のコンストラクタを持つクラス向けに、持続的な委譲を作成します。

関連項目:
DefaultPersistenceDelegate(java.lang.String[])

DefaultPersistenceDelegate

public DefaultPersistenceDelegate(String[] constructorPropertyNames)
constructorPropertyNames によって指定されたプロパティ名を引数の値とするコンストラクタを持ったクラス向けに、デフォルトの持続的な委譲を作成します。コンストラクタの引数は、プロパティ名を提供される順番で評価することによって作成されます。このクラスを使って、特定の型を直列化するとき使用する優先コンストラクタを指定するには、コンストラクタの引数を構成するプロパティ名を記述します。たとえば、nullary のコンストラクタを定義しない Font クラスは、次の持続的な委譲を使って処理できます。
     new DefaultPersistenceDelegate(new String[]{"name", "style", "size"});
 

パラメータ:
constructorPropertyNames - このコンストラクタの引数となるプロパティ名
関連項目:
instantiate(java.lang.Object, java.beans.Encoder)
メソッドの詳細

mutatesTo

protected boolean mutatesTo(Object oldInstance,
                            Object newInstance)
指定されたコンストラクタ内の引数の数がゼロ以外で、oldInstance クラスが明示的に equals メソッドを宣言している場合、このメソッドの戻り値は oldInstance.equals(newInstance) になります。それ以外の場合、このメソッドは、2 つのインスタンスのクラスが等価である場合に true を返すスーパークラス定義を使用します。

オーバーライド:
クラス PersistenceDelegate 内の mutatesTo
パラメータ:
oldInstance - コピーされるインスタンス
newInstance - 変更されるインスタンス
戻り値:
oldInstance に一連の変更を適用することによって、newInstance と等価のコピーを作成できる場合 true
関連項目:
DefaultPersistenceDelegate(String[])

instantiate

protected Expression instantiate(Object oldInstance,
                                 Encoder out)
この instantiate メソッドのデフォルト実装は、事前定義済みのメソッド名「new」を含む式 (DefaultPersistenceDelegate のコンストラクタに指定されたように引数を使ってコンストラクタを呼び出す) を返します。

定義:
クラス PersistenceDelegate 内の instantiate
パラメータ:
oldInstance - インスタンスを生成されるインスタンス
out - コード出力ストリーム
戻り値:
oldInstance を持つ式
関連項目:
DefaultPersistenceDelegate(String[])

initialize

protected void initialize(Class type,
                          Object oldInstance,
                          Object newInstance,
                          Encoder out)
この initialize メソッドのデフォルト実装は、Introspector によって返される順番で set メソッドと get メソッドの照合を行うことにより、この型のオブジェクトの状態がすべて公開された状態にします。プロパティ記述子が Boolean.TRUE と等価の値を持つ一時的な属性を定義している場合は、そのプロパティを無視します。ObjectOutputStream が使用するフィールド修飾子によって、「一時的」という語の使い方がまったく異なる点に注意してください。

非一時的なプロパティごとに、oldInstance に nullary の get メソッドを適用する式が作成されます。インスタンスを直列化すると、この式の値がそのプロパティ値になります。複製された環境で、この式の値によってターゲットの値が変化する場合 (mutatesTo)、新しい値は古い値と等価になるように初期化されます。この場合、プロパティ値は変更されないので、対応する set メソッドを呼び出す必要はありません。また、文も一切発行されません。しかし、上記以外の場合、この値の式は別の式 (通常はコンストラクタ) で置き換えられ、オブジェクトに新しいプロパティの値をインストールするため、対応する set メソッドが呼び出されます。このスキーマは、この委譲を使って、ストリームの出力からデフォルトの情報を削除します。

これらの文が実行される出力ストリームに渡される際、newInstance に対する副作用が発生します。通常、これは相互に依存する値を持つプロパティの問題です。しかし、このことによって、出力に書き込まなければならない文が少なくなり、直列化処理が容易になるという利点もあります。一般には、相互依存の関係にあるプロパティを処理する作業のほうが、後続のプロパティの値に依存しないようにクラス内のプロパティの順序を決定する作業よりも簡単です。

オーバーライド:
クラス PersistenceDelegate 内の initialize
パラメータ:
oldInstance - コピーされるインスタンス
newInstance - 変更されるインスタンス
out - 初期化文が書き込まれるストリーム
関連項目:
Introspector.getBeanInfo(java.lang.Class), PropertyDescriptor

JavaTM 2
Platform
Std. Ed. v1.4.0

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

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.