|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.beans.PersistenceDelegate | +--java.beans.DefaultPersistenceDelegate
DefaultPersistenceDelegate
は、抽象クラス PersistenceDelegate
の固定実装であり、情報の得られないクラスがデフォルトで使用する委譲です。JavaBeans 規約に従うクラスは、DefaultPersistenceDelegate
により、特別な構成を行わなくても、バージョンの違いによる影響を受けない公開 API ベースの持続性を確保することができます。
クラスが nullary のコンストラクタを持っていて、Introspector から返される順番で set メソッドと get メソッドの照合を行うことにより、その状態が正確に示されていることが重要な仮定条件となります。DefaultPersistenceDelegate
は、JavaBean のコードフリーに対する持続性を提供するほか、引数としてプロパティの値を要求するだけの nullary でないコンストラクタを持つクラスに持続記憶域をもたらす便利な手段を提供します。
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 |
コンストラクタの詳細 |
public DefaultPersistenceDelegate()
DefaultPersistenceDelegate(java.lang.String[])
public DefaultPersistenceDelegate(String[] constructorPropertyNames)
constructorPropertyNames
によって指定されたプロパティ名を引数の値とするコンストラクタを持ったクラス向けに、デフォルトの持続的な委譲を作成します。コンストラクタの引数は、プロパティ名を提供される順番で評価することによって作成されます。このクラスを使って、特定の型を直列化するとき使用する優先コンストラクタを指定するには、コンストラクタの引数を構成するプロパティ名を記述します。たとえば、nullary のコンストラクタを定義しない Font
クラスは、次の持続的な委譲を使って処理できます。
new DefaultPersistenceDelegate(new String[]{"name", "style", "size"});
constructorPropertyNames
- このコンストラクタの引数となるプロパティ名instantiate(java.lang.Object, java.beans.Encoder)
メソッドの詳細 |
protected boolean mutatesTo(Object oldInstance, Object newInstance)
oldInstance
クラスが明示的に equals メソッドを宣言している場合、このメソッドの戻り値は oldInstance.equals(newInstance)
になります。それ以外の場合、このメソッドは、2 つのインスタンスのクラスが等価である場合に true を返すスーパークラス定義を使用します。
PersistenceDelegate
内の mutatesTo
oldInstance
- コピーされるインスタンスnewInstance
- 変更されるインスタンス
oldInstance
に一連の変更を適用することによって、newInstance
と等価のコピーを作成できる場合 trueDefaultPersistenceDelegate(String[])
protected Expression instantiate(Object oldInstance, Encoder out)
instantiate
メソッドのデフォルト実装は、事前定義済みのメソッド名「new」を含む式 (DefaultPersistenceDelegate
のコンストラクタに指定されたように引数を使ってコンストラクタを呼び出す) を返します。
PersistenceDelegate
内の instantiate
oldInstance
- インスタンスを生成されるインスタンスout
- コード出力ストリーム
oldInstance
を持つ式DefaultPersistenceDelegate(String[])
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 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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.