JavaTM Platform
Standard Ed. 6

java.beans
クラス DefaultPersistenceDelegate

java.lang.Object
  上位を拡張 java.beans.PersistenceDelegate
      上位を拡張 java.beans.DefaultPersistenceDelegate

public class DefaultPersistenceDelegate
extends PersistenceDelegate

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

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

導入されたバージョン:
1.4
関連項目:
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
 

コンストラクタの詳細

DefaultPersistenceDelegate

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

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

DefaultPersistenceDelegate

public DefaultPersistenceDelegate(String[] constructorPropertyNames)
constructorPropertyNames によって指定されたプロパティー名を引数の値とするコンストラクタを持ったクラス向けに、デフォルトの持続的な委譲を作成します。コンストラクタの引数は、プロパティー名を提供される順番で評価することによって作成されます。このクラスを使って、特定の型を直列化するときに使用する単一の優先コンストラクタを指定するには、コンストラクタの引数を構成するプロパティー名を記述します。たとえば、引数なしのコンストラクタを定義しない 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 によって返される順番で設定メソッドと取得メソッドの照合を行うことにより、この型のオブジェクトの状態がすべて公開された状態にします。プロパティー記述子が Boolean.TRUE と等価の値を持つ一時的な属性を定義している場合は、そのプロパティーを無視します。ObjectOutputStream が使用するフィールド修飾子によって、「一時的」という語の使い方がまったく異なる点に注意してください。

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

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

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

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 も参照してください。