WebObjects 5.2.3

com.webobjects.eocontrol
Interface EORelationshipManipulation

All Known Subinterfaces:
EOEnterpriseObject
All Known Implementing Classes:
EOCustomObject

public interface EORelationshipManipulation

EORelationshipManipulationインターフェースは、EOKeyValueCodingインターフェースに基づいて1対多のリレーションシップのプロパティを変更するメソッドを定義します。 EOCustomObjectとEOGenericRecordはEORelationshipManipulationのデフォルト実装であり、オーバーライドをする必要はほとんどありません。

基本的なメソッド addObjectToPropertyWithKeyremoveObjectFromPropertyWithKey は、それぞれ単一のオブジェクトを1対多のリレーションシップに追加、削除します。 その他のメソッド addObjectToBothSidesOfRelationshipWithKeyremoveObjectFromBothSidesOfRelationshipWithKey は、相互リレーションシップを扱います。 これらのメソッドは、指定されたキーの対応するリレーションシップと逆方向から張られているリレーションシップを探します。 続けて addObjectToPropertyWithKeyremoveObjectFromPropertyWithKey を使い、1対1か1対多かに関わらず相互のリレーションシップを操作します。

基本的なメソッドは、初めに addToKeyremoveFromKey が実装されているかどうか確認します。 実装されていればそのメソッドを使いますが、実装されていなければ key-value コーディングのメソッドを使います。 このように必要な処理は実装されているので、EORelationshipManipulationを実装し直す必要はほとんどありません。 それよりも、ビジネスロジックにリレーションシップのアクセサメソッド(addToKeyremoveFromKey)を実装するべきです。


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

addObjectToBothSidesOfRelationshipWithKey

public void addObjectToBothSidesOfRelationshipWithKey(EORelationshipManipulation eo,
                                                      String key)

addObjectToPropertyWithKey

public void addObjectToPropertyWithKey(Object eo,
                                       String key)
エンタープライズオブジェクト eo を、 key に対応するリレーションシップに追加します。 ただし、逆方向からのリレーションシップは変更しません。 takeValueForKey と似ていますが、EOCustomObjectの実装では、最初に "addToKey"("key"はリレーションシップ名)メソッドを実行します。 このメソッドがなければ、valueForKey を使ってプロパティ値や配列を取得し、直接操作します。 1対多のリレーションシップに対しては、 eo を配列に追加します(二重には追加されません)。 1対1のリレーションシップに対しては、 プロパティ値を eo に置き換えます。

Parameters:
eo - リレーションシップに追加、設定するオブジェクト T
key - リレーションシップ名

removeObjectFromBothSidesOfRelationshipWithKey

public void removeObjectFromBothSidesOfRelationshipWithKey(EORelationshipManipulation eo,
                                                           String key)
エンタープライズオブジェクト eo を、 key に対応するリレーションシップから削除します。 また、オブジェクトを逆方向に張られているリレーションシップ(エンタープライズオブジェクト eo からオブジェクトへのリレーションシップ)から削除します。 1対1のリレーションシップに対しては、 takeValueForKey でプロパティ値を null に設定します。 1対多のリレーションシップに対しては、 removeObjectFromPropertyWithKeyanObject を取り除きます。

Parameters:
eo - リレーションシップから削除するオブジェクト
key - リレーションシップ名

removeObjectFromPropertyWithKey

public void removeObjectFromPropertyWithKey(Object eo,
                                            String key)
エンタープライズオブジェクト eo を、 key に対応するリレーションシップから削除します。 ただし、逆方向からのリレーションシップは変更しません。 takeValueForKey と似ていますが、EOCustomObjectの実装では、最初に "removeToKey"("key"はリレーションシップ名)メソッドを実行します。 このメソッドがなければ、valueForKey を使ってプロパティ値や配列を取得し、直接操作します。 1対多のリレーションシップに対しては、配列から eo を削除します。 1対1のリレーションシップに対しては、 プロパティ値を null に置き換えます。

Parameters:
eo - 削除するオブジェクト
key - リレーションシップ名

Last updated Thu Oct 21 15:04:16 PDT 2004.

Copyright © 2004 Apple Computer, Inc.