如何为每次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实现者的方法中处理它,而不是编写基于序列化或事务的解决方案。
答案 0 :(得分:2)
您可以实现org.eclipse.emf.common.notify.Adapter
(有关详细信息,请参阅http://www.vogella.com/tutorials/EclipseEMFNotification/article.html)并将适配器添加到所有相关的ReviewObject。收到通知后,分析是否为模型更改并调用setLastModified
方法。请注意,您必须确保在您的模型加载时随时放置适配器,这样您可能需要找到一种方法来实例化它#34;自动"。
通过使生成的模型代码继承一些ReviewObject来自定义方法eSet(...)
以便调用setLastModified
,可能还有另一种解决方案。您必须确保每个setter调用此eSet
方法(我不确定默认情况下是这种情况)。您可能需要使用动态/反射方法调用设置。