|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.beans.PersistenceDelegate java.beans.DefaultPersistenceDelegate
public class DefaultPersistenceDelegate
DefaultPersistenceDelegate
は、 abstract クラス PersistenceDelegate
の具象実装であり、情報の得られないクラスがデフォルトで使用する委譲です。JavaBeans 規約に従うクラスは、DefaultPersistenceDelegate
により、特別な構成を行わなくても、バージョンの違いによる影響を受けない公開 API ベースの持続性を確保することができます。
クラスが引数なしのコンストラクタを持っていて、Introspector から返される順番で設定メソッドと取得メソッドの照合を行うことにより、その状態が正確に示されていることが重要な仮定条件となります。DefaultPersistenceDelegate
は、JavaBeans のコード不要の持続性を提供するほか、引数としてプロパティーの値を要求するだけの引数なしでないコンストラクタを持つクラスに持続記憶域をもたらす便利な手段を提供します。
DefaultPersistenceDelegate(String[])
,
Introspector
コンストラクタの概要 | |
---|---|
DefaultPersistenceDelegate()
引数なしのコンストラクタを持つクラス向けに、持続的な委譲を作成します。 |
|
DefaultPersistenceDelegate(String[] constructorPropertyNames)
constructorPropertyNames によって指定されたプロパティー名を引数の値とするコンストラクタを持ったクラス向けに、デフォルトの持続的な委譲を作成します。 |
メソッドの概要 | |
---|---|
protected void |
initialize(Class<?> type,
Object oldInstance,
Object newInstance,
Encoder out)
この initialize メソッドのデフォルト実装は、Introspector によって返される順番で設定メソッドと取得メソッドの照合を行うことにより、この型のオブジェクトの状態がすべて公開された状態にします。 |
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
によって指定されたプロパティー名を引数の値とするコンストラクタを持ったクラス向けに、デフォルトの持続的な委譲を作成します。コンストラクタの引数は、プロパティー名を提供される順番で評価することによって作成されます。このクラスを使って、特定の型を直列化するときに使用する単一の優先コンストラクタを指定するには、コンストラクタの引数を構成するプロパティー名を記述します。たとえば、引数なしのコンストラクタを定義しない 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 によって返される順番で設定メソッドと取得メソッドの照合を行うことにより、この型のオブジェクトの状態がすべて公開された状態にします。プロパティー記述子が Boolean.TRUE
と等価の値を持つ一時的な属性を定義している場合は、そのプロパティーを無視します。ObjectOutputStream
が使用するフィールド修飾子によって、「一時的」という語の使い方がまったく異なる点に注意してください。
非一時的なプロパティーごとに、oldInstance
に引数なしの取得メソッドを適用する式が作成されます。インスタンスを直列化すると、この式の値がそのプロパティー値になります。複製された環境で、この式の値によってターゲットの値が変化する場合 (mutatesTo
)、新しい値は古い値と等価になるように初期化されます。この場合、プロパティー値は変更されないので、対応する設定メソッドを呼び出す必要はありません。また、文も一切発行されません。しかし、上記以外の場合、この値の式は別の式 (通常はコンストラクタ) で置き換えられ、オブジェクトに新しいプロパティーの値をインストールする目的で、対応する設定メソッドが呼び出されます。このスキーマは、この委譲を使って、ストリームの出力からデフォルトの情報を削除します。
これらの文が実行される出力ストリームに渡される際、newInstance
に対する副作用が発生します。通常、これは相互に依存する値を持つプロパティーの問題です。しかし、このことによって、出力に書き込まなければならない文が少なくなり、直列化処理が容易になるという利点もあります。一般には、相互依存の関係にあるプロパティーを処理する作業の問題は、後続のプロパティーの値に依存しないようにクラス内のプロパティーの順序を決定する作業の問題になります。
PersistenceDelegate
内の initialize
oldInstance
- コピーされるインスタンスnewInstance
- 変更されるインスタンスout
- 初期化文が書き込まれるストリームIntrospector.getBeanInfo(java.lang.Class>)
,
PropertyDescriptor
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。