bugfix> eclipse-emf > 投稿

セッターがオブジェクトの(EMFモデル化)プロパティの値を変更するたびに割り当てられるEObjectのタイムスタンプのようなプロパティを宣言するにはどうすればよいですか。

public interface ReviewObject extends EObject {
    /**
     * @generated
     */
    void setLastModified(Date value); // This should be invoked each time a child class's
                                      // setter changes any property
}

'ReviewObject'の実装者のメソッド内で処理し、シリアル化またはトランザクションベースのソリューションを記述しないことを希望します。

回答 1 件
  • org.eclipse.emf.common.notify.Adapter を実装できます  (詳細については、http://www.vogella.com/tutorials/EclipseEMFNotification/article.htmlを参照してください)、関連するすべてのReviewObjectsにアダプターを追加します。通知に応じて、それがモデル変更であるかどうかを分析し、 setLastModified を呼び出します  方法。モデルがロードされるたびにアダプタが配置されることを確認する必要があるため、「自動」でインスタンス化する方法を見つける必要がある場合があることに注意してください。

    生成されたモデルコードにメソッド eSet(...) をカスタマイズするReviewObjectを継承させることにより、別の解決策があります。  そのような setLastModified  と呼ばれます。この eSet を確認する必要があります  メソッドはすべてのセッターによって呼び出されます(デフォルトではそうではありません)。そのための動的/反射的なメソッド呼び出し設定をくすぐる必要があるかもしれません。

あなたの答え