具有上次修改时间戳的EMF EObject

时间:2018-05-25 11:21:34

标签: eclipse-emf

如何为每次setter更改对象的任何(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' -s实现者的方法中处理它,而不是编写基于序列化或事务的解决方案。

1 个答案:

答案 0 :(得分:2)

您可以实现org.eclipse.emf.common.notify.Adapter(有关详细信息,请参阅http://www.vogella.com/tutorials/EclipseEMFNotification/article.html)并将适配器添加到所有相关的ReviewObject。收到通知后,分析是否为模型更改并调用setLastModified方法。请注意,您必须确保在您的模型加载时随时放置适配器,这样您可能需要找到一种方法来实例化它#34;自动"。

通过使生成的模型代码继承一些ReviewObject来自定义方法eSet(...)以便调用setLastModified,可能还有另一种解决方案。您必须确保每个setter调用此eSet方法(我不确定默认情况下是这种情况)。您可能需要使用动态/反射方法调用设置。