【问题标题】:Dynamically Loading EMF Models动态加载 EMF 模型
【发布时间】:2010-11-16 04:29:37
【问题描述】:
我有一个后端系统,我通过基于 REST 的 API 访问它并返回一个资源。这是一个 EMF 资源(一种 XMI 表示)。问题是我不能在设计时假设该资源的元模型 - 因为后端系统中的元模型可能会在没有通知的情况下更改。
我想知道我是否可以首先从后端读取元模型(.ecore 文件),生成代码,然后读取模型。诚然,这会更慢,但我每次会话只需阅读一次元模型,这不会让我承诺使用固定的元模型。这行得通吗?还是有更好的方法来实现我想要的?
另外,这对 UI 有用吗?我可以在运行时(EMF.Edit)生成编辑器代码,就在从后端读取模型并使用适当的可视化显示模型之前?
Dynamic EMF 会帮助解决我的问题吗?
【问题讨论】:
标签:
eclipse
modeling
eclipse-emf
【解决方案1】:
使用 EMF 从动态模型生成代码听起来很麻烦。尤其是当你转身运行它时。但我想如果您在新的 Eclipse 实例中运行它,它会起作用。
动态 EMF 是一种可能的替代方案。然而,使用动态方法的应用程序更难编写并且往往需要更多的调试。 (通过使用动态 EMF,您会牺牲很多静态类型安全性。)而且我不确定模型编辑器的问题。
实际上,我有点困惑如何将生成的 Java 类用于内存中的模型实例。如果元模型正在发生变化,那么生成的类的签名也会发生变化。你如何编写代码来处理不断变化的 API?如果您说“我生成它”,请考虑您的生成器必须使用动态 EMF。
如果我是你,我会在 EMF 邮件列表中提问。根据我的经验,如果您提出明智的问题(即不太模糊和/或投机性的问题),您会得到合理的答案。