【问题标题】:EMF EObject with last modified time-stamp带有最后修改时间戳的 EMF EObject
【发布时间】:2018-05-28 15:18:30
【问题描述】:

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

【问题讨论】:

    标签: eclipse-emf


    【解决方案1】:

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

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

    【讨论】:

    • 我正在关注 eSet() 方法,但 ReviewObjectImpl 也是一个生成的类,我认为我不应该修改它的内容。 Adapter 方法效果很好,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 2019-02-24
    • 2023-03-08
    • 2021-04-03
    • 2019-07-01
    • 2014-10-11
    • 1970-01-01
    相关资源
    最近更新 更多