EODelegateModel

2007/03/30 (Fri) 22:07:46 JST

モデルの情報を動的に決定するデリゲートメソッドが中心です。デリゲートは?EOModelGroupにセットします。 メソッドは基本的にEOFの初期化からオブジェクトのフェッチまでに呼ばれる順序で並べています。

defaultModelGroup (ClassDelegate)
?EOModelGroup.defaultGroup()を呼ぶたびに呼ばれる。 このメソッドを実装すると、独自の?ModelGroupをEOFにデフォルトの?ModelGroupとして使わせることができる。 また、デフォルトの?ModelGroupは?EOModelGroup.setDefaultGroupでも設定できる。
relationshipFailedToLookupDestinationWithName
モデルファイルからリレーションシップを構築するとき(動的にモデルファイルを追加するなどしてloadAllModelObjectsを呼んだとき)、接続先のエンティティが存在しない場合に呼ばれる。 代わりの接続先にするエンティティか、nullを返す。 nullを返すと接続先のエンティティにnullがセットされる。
classForObjectWithGlobalID
オブジェクトを生成するためのクラスを決定するときに呼ばれる。 nullを返すと?EOGenericRecordが使われる。 動的にeoのクラスを決定したり、エンティティの継承の調整ができる。
failedToLookupClassNamed
エンティティで指定されている、オブジェクトを生成するためのクラスが見つからないときに呼ばれる。 戻り値のクラスが見つからないか、もしくはnullを返すと?EOGenericRecordが使われる。
subEntityForEntity
フェッチ時、スナップショットに対するサブエンティティを決定するときに呼ばれる。 フェッチしたスナップショットに対し、モデルファイルで指定したエンティティではなく特定のサブエンティティを使ってオブジェクトを生成するよう指定することができる。
relationshipForRow
フェッチしたオブジェクトのリレーションシップを決定するときに呼ばれる。 エンティティで指定したリレーションシップとは異なるリレーションシップを設定することができる。

Inverse Pages: WebObjects基礎研究室