java - 如何在内存模型上生成 Acceleo 代码?

标签 java eclipse acceleo ocl

我正在尝试使用 Acceleo 生成一些代码。我正在内存中构建我的模型实体,并且我想为其生成代码。

现在,当 Acceleo 尝试将我的模型对象与模板函数的参数类型匹配时,它不匹配。这些类完全相同,但由于 Acceleo 的包注册表和我的内存中模型不同,因此它们不匹配,Acceleo 表示找不到主模板的匹配模型元素。

我可以纠正这个问题吗?我可以强制 acceleo 包注册表成为内存注册表吗?我可以在语义级别上强制进行类匹配(而不仅仅是在 Java == 上吗?)

最佳答案

如果在全局注册表中找不到模型,Acceleo 只会在自己的注册表中注册模型。您确定使用正确的 NsURI 来注册包吗?您在 Acceleo 模块开头设置的 URI ( [module myModule('<NsURI>')] ) 必须与元模型根包的 NsURI 匹配。它还必须与您在 registerPackages 中定义的内容匹配与主模块一起生成的 java 类的方法(请注意,由于您是在内存中创建模型,因此最后一步可能不是强制性的)。

如果这三个匹配,Acceleo 应该能够将模型的元素与生成模块中定义的类型进行匹配。但是,如果这还不够,我们需要知道您在创建内存模型之前如何注册包?

洛朗·古贝 奥贝奥

关于java - 如何在内存模型上生成 Acceleo 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10791502/

相关文章:

java - java8流如何判断一个列表是否是另一个列表的子序列?

java - Java 是否有编译器指令来内联方法?

java - 如何在java数据库查询中使用不等于运算符?

eclipse - eclipse 上的 java.lang.ClassNotFoundException : com. mysql.jdbc.Driver

c - 用于在 Linux 中创建库的 Makefile 无法编译

eclipse-emf - 在 Acceleo 中加载 2 个不同的输入模型

java - Pacman 克隆,当在无法访问的方向按下按钮时,如何让 pacman 保持移动

java - 在 eclipse 中设置测试输入

java - 从java应用程序调用acceleo模板

eclipse-emf - 如何在 Acceleo 中使用循环删除模板后多余的新行?