java - EMF 中可变属性的通知

标签 java volatile transient emf ecore

在具有声明为 transient 和 volatile 属性的 Ecore 模型中(它的值是从其他几个字段计算的),是否有一种规范的方法来生成对该字段的更改的通知(即,当其中一个字段被transient volatile 字段依赖变化,检查 transient 字段的值是否受此变化影响并发送通知)?

我现在这样做的方法是在 transient 属性的所有者上注册一个监听器,该监听器对依赖项的更改使用react,并在计算值更改时触发通知,但这是一个非常繁琐的手动工作,我想避免。

最佳答案

您会注意到 EMF 带有它自己的适配器。添加适配器实际上并不是那么乏味的工作,我建议在您的情况下这可能是最好的选择(事实上,生成模型代码将包括这些适配器,参见 this blog post about what every developer should know about EMF)。

如果您想手动添加此类通知功能,只需将 EContentAdapter 附加到模型的根元素,它将监听整个元素树中的变化。这样您就可以避免向每个模型类添加适配器。

有一个 simple tutorial on Adapter and EContentAdapter作者:拉斯·沃格尔。

关于java - EMF 中可变属性的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13221097/

相关文章:

javascript - 使用 WordPress 瞬时缓存和 AJAX json 脚本的问题

java - 将具有 transient 属性的对象写入流 (Java)

java - 双向链表上的快速排序(输出不正确)

java - 使用 gradle 将 jar 包含到集成测试中

java - 警惕 volatile /同步性能损失

java - 多线程/ volatile 变量/条件/循环的特殊行为(Java)

c++ - 什么是 type* volatile* name = value?

java - 对负 float 文字进行四舍五入 - java

java - ByteBuffer 的 HashSet(实际上是整数),用于从 ByteBuffer 数组中分离唯一和非唯一元素

java - org.apache.catalina.core.StandardContext 重新加载后 transient 变量为空