在具有声明为 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/