|
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 |