0

コレクション内のオブジェクトの保存と削除を管理するという点で、%Library.RelationshipObject に似たコレクション クラスを作成しようとしています。これを独自のオブジェクトで柔軟に行えるようにしたいので、関係キーワードを使用したり、%Library.RelationshipObject クラスをサブクラス化したりしたくありません。

このコレクションを保持している親オブジェクトで独自の Save() および Delete() メソッドを呼び出すことができず、コレクション クラスを呼び出させることができません (そして、クラスに %Save() の代わりに Save() を呼び出すようにするだけです)。 %Save() を直接呼び出します。

私がしようとしているのは、コレクション クラスと親クラスで %OnAddToSaveSet メソッドを使用することです。親クラス %OnAddToSaveSet が呼び出されると、親クラスはコレクション クラスを保存セットに入れます。コレクション クラス呼び出しは、必要に応じてコレクション内の項目を保存および削除します。

私のコレクション クラスでこれを行う正しい方法は、%OnAddToSaveSet() メソッドを使用して保存セットに保存するコレクション項目を追加し、%Delete() を使用して削除する必要がある項目を削除することです。設定

%objTX(5,+oref) = oref

削除されたアイテムごとに。

これは正しい方法ですか?私は何かを逃したことがありますか?これはサポートされていますか? サポートされていないものをより適切にサポートされているものに変更できますか?

4

2 に答える 2

1

%OnAddToSaveSet() 内のコードを呼び出しyourObject.%AddToSaveSet()yourObject.%RemoveFromSaveSet()、現在の保存操作に含める (または含めない) オブジェクトを制御する必要があると思います。実装したい動作であれば、コレクションに含まれなくなったオブジェクトで %Delete() を呼び出すこともできるはずです。

于 2013-07-09T20:09:17.477 に答える
0

%Library.RelationshipObject を直接使用する代わりに、RelationShips
を使用する ことをお勧めします。そのため、親オブジェクトと子オブジェクトを制御する可能性が高くなります。

于 2013-07-09T05:58:34.397 に答える