|
WebObjects 5.2.3 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
EORelationshipManipulationインターフェースは、EOKeyValueCodingインターフェースに基づいて1対多のリレーションシップのプロパティを変更するメソッドを定義します。 EOCustomObjectとEOGenericRecordはEORelationshipManipulationのデフォルト実装であり、オーバーライドをする必要はほとんどありません。
基本的なメソッド addObjectToPropertyWithKey と removeObjectFromPropertyWithKey は、それぞれ単一のオブジェクトを1対多のリレーションシップに追加、削除します。
その他のメソッド addObjectToBothSidesOfRelationshipWithKey と removeObjectFromBothSidesOfRelationshipWithKey は、相互リレーションシップを扱います。
これらのメソッドは、指定されたキーの対応するリレーションシップと逆方向から張られているリレーションシップを探します。
続けて addObjectToPropertyWithKey と removeObjectFromPropertyWithKey を使い、1対1か1対多かに関わらず相互のリレーションシップを操作します。
基本的なメソッドは、初めに addToKey か removeFromKey が実装されているかどうか確認します。
実装されていればそのメソッドを使いますが、実装されていなければ key-value コーディングのメソッドを使います。
このように必要な処理は実装されているので、EORelationshipManipulationを実装し直す必要はほとんどありません。
それよりも、ビジネスロジックにリレーションシップのアクセサメソッド(addToKey と removeFromKey)を実装するべきです。
| Method Summary | |
void |
addObjectToBothSidesOfRelationshipWithKey(EORelationshipManipulation eo,
String key)
|
void |
addObjectToPropertyWithKey(Object eo,
String key)
エンタープライズオブジェクト eo を、 key に対応するリレーションシップに追加します。
ただし、逆方向からのリレーションシップは変更しません。
|
void |
removeObjectFromBothSidesOfRelationshipWithKey(EORelationshipManipulation eo,
String key)
エンタープライズオブジェクト eo を、 key に対応するリレーションシップから削除します。
また、オブジェクトを逆方向に張られているリレーションシップ(エンタープライズオブジェクト eo からオブジェクトへのリレーションシップ)から削除します。
|
void |
removeObjectFromPropertyWithKey(Object eo,
String key)
エンタープライズオブジェクト eo を、 key に対応するリレーションシップから削除します。
ただし、逆方向からのリレーションシップは変更しません。
|
| Method Detail |
public void addObjectToBothSidesOfRelationshipWithKey(EORelationshipManipulation eo,
String key)
public void addObjectToPropertyWithKey(Object eo,
String key)
eo を、 key に対応するリレーションシップに追加します。
ただし、逆方向からのリレーションシップは変更しません。
takeValueForKey と似ていますが、EOCustomObjectの実装では、最初に "addToKey"("key"はリレーションシップ名)メソッドを実行します。
このメソッドがなければ、valueForKey を使ってプロパティ値や配列を取得し、直接操作します。
1対多のリレーションシップに対しては、 eo を配列に追加します(二重には追加されません)。
1対1のリレーションシップに対しては、 プロパティ値を eo に置き換えます。
eo - リレーションシップに追加、設定するオブジェクト
Tkey - リレーションシップ名
public void removeObjectFromBothSidesOfRelationshipWithKey(EORelationshipManipulation eo,
String key)
eo を、 key に対応するリレーションシップから削除します。
また、オブジェクトを逆方向に張られているリレーションシップ(エンタープライズオブジェクト eo からオブジェクトへのリレーションシップ)から削除します。
1対1のリレーションシップに対しては、 takeValueForKey でプロパティ値を null に設定します。
1対多のリレーションシップに対しては、 removeObjectFromPropertyWithKey で anObject を取り除きます。
eo - リレーションシップから削除するオブジェクト
key - リレーションシップ名
public void removeObjectFromPropertyWithKey(Object eo,
String key)
eo を、 key に対応するリレーションシップから削除します。
ただし、逆方向からのリレーションシップは変更しません。
takeValueForKey と似ていますが、EOCustomObjectの実装では、最初に "removeToKey"("key"はリレーションシップ名)メソッドを実行します。
このメソッドがなければ、valueForKey を使ってプロパティ値や配列を取得し、直接操作します。
1対多のリレーションシップに対しては、配列から eo を削除します。
1対1のリレーションシップに対しては、 プロパティ値を null に置き換えます。
eo - 削除するオブジェクト
key - リレーションシップ名
|
Last updated Thu Oct 21 15:04:16 PDT 2004. | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||