使用 Xtend 和 Sirius 生成 Java 代码

Generating Java code using Xtend and Sirius

所以,我的目标是创建图形 DSL。我使用 Eclipse 建模框架创建了一个 ecore 模型,之后我使用 Sirius 创建了图形建模工具,但我在生成 Java 代码的最后一步遇到了问题。我想用 Xtend 来生成它。任何建议什么是最好的方法,或者一些有用的链接?

有两个方面:

  1. Xtend 生成器本身,可以独立于 Sirius 进行开发和测试。它会将您的 DSL files/models(不是来自 Sirius 的 .aird.odesign 文件作为输入)并生成您想要的任何内容。这方面帮不上忙
  2. 生成与基于 Sirius 的建模器的集成。

假设您知道如何以编程方式调用 Xtend 生成器,可以通过多种方式从 Sirius 内部触发它。例如,您可以使用 Popup Menu 类型的工具向建模器的上下文菜单添加一个条目,然后它可以调用您想要的任何 Java 代码,并从那里启动生成器。

这就是Ecore Tools does to launch the EMF GenModel code gen: it declares the popup menu which invokes this Java class执行实际生成的内容。