在Ecore模型中,有一个属性被声明为瞬态和易失性(它的值是从其他几个字段中计算出来的),是否有一种规范的方法来为该字段的更改生成通知(即,当瞬态易失性字段所依赖的字段之一发生更改时,检查该瞬态字段的值是否受此更改的影响并发送通知)?
目前我要做的是在瞬态属性的所有者上注册一个侦听器,该侦听器对依赖项的更改做出反应,并在计算值发生更改时触发通知,但这是一项繁琐的手动工作,我希望避免这种工作。
发布于 2012-11-13 17:37:49
您将会意识到EMF自带了自己的适配器。添加适配器实际上并不是那么乏味的工作,我建议在您的情况下,这可能是最好的选择(实际上,生成模型代码将包括这些适配器,请参阅。this blog post about what every developer should know about EMF)。
如果您想手动添加这样的通知功能,您可以简单地将EContentAdapter附加到模型的根元素,它将监听整个元素树中的更改。这样,您就可以避免向每个模型类添加适配器。
有一个Lars Vogel的simple tutorial on Adapter and EContentAdapter。
https://stackoverflow.com/questions/13221097
复制相似问题