我有一个后端系统,我通过一个基于REST的API访问它,我得到了一个资源。这是一个EMF资源(一种XMI表示)。问题是,在设计时,我不能假设此资源的元模型-因为后端系统中的元模型可以在没有通知的情况下更改。
我想知道我是否可以,首先,从后端读取元模型( .ecore文件),生成代码,然后读取模型。诚然,这会更慢,但我将不得不在每个会话中只读取元模型一次,并且这不会使我提交到固定的元模型。这样行得通吗?或者有没有更好的方法来实现我想要的?
另外,这是否适用于UI?我可以在运行时生成编辑器代码(EMF.Edit),就在从后端读取模型之前,并以适当的可视化显示模型吗?
Dynamic EMF能帮我解决问题吗?
发布于 2009-08-05 10:15:32
使用EMF从模型中即时生成代码听起来很麻烦。尤其是当你转过身来运行它的时候。但是我猜如果您在一个新的Eclipse实例中运行它,它将会工作。
动态EMF是一种可能的替代方案。但是,使用动态方法的应用程序更难编写,而且往往需要更多的调试。(通过使用动态EMF,您牺牲了很多静态类型安全性。)我对模型编辑器的问题不太确定。
实际上,我有点不明白如何将生成的Java类用于内存中的模型实例。如果元模型正在更改,那么生成的类的签名也会更改。如何编写代码来应对不断变化的API呢?如果你说“我生成它”,考虑你的生成器必须使用动态EMF。
如果我是你,我会在EMF邮件列表上询问。根据我的经验,如果你问一些合理的问题(即不太模糊和/或投机性的问题),你会得到合理的答案。
https://stackoverflow.com/questions/1219092
复制相似问题