首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从java应用程序调用acceleo模板

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

Stack Overflow用户
提问于 2012-04-09 06:43:24
回答 1查看 576关注 0票数 0

嗨,我是新来的

在我的项目中,我有一个java驱动类,它调用不同的acceleo模板。有些模板具有没有任何EObject类型的参数。我正在调用生成的java模块的initialize()和doGenerate()函数作为模板。目前所面临的问题是:

  1. 初始化()期望第一个参数是Ecore对象,其余参数为List。但是,正如我前面提到的,一些模板没有任何EObject参数。如何从java应用程序调用此类模板?
  2. 为了解决上述问题,我调整了驱动程序和模板,将虚拟EObject作为第一个参数。然后,它成功地调用模板,但不会生成任何输出。但是,如果我从另一个驱动程序模板调用它们,则模板将生成输出。但是,我不想用MTL编写我的驱动程序,因为它需要对数据模型进行复杂的分析。

请建议我如何在我的情况下取得进展。

谢谢和问候

Dhanunjaya M.

EN

回答 1

Stack Overflow用户

发布于 2012-04-11 08:23:51

默认情况下,我们通过与“主”模板模块和Acceleo "facade“类一起生成的Java类公开的API总是假定要调用的模板的第一个参数是EObject。这样做是为了方便大多数用例的使用(我们预计这个用例占总用例的90% )。

对于其他用例,您必须使用这些外观后面的API。也就是说,您可以创建另一个“初始化”方法,在这些情况下,当您没有EObject时,它不接受一个参数。然后,您还需要重写"generate(Monitor)“方法,以便它不使用AcceleoService.doGenerate.或者AcceleoService的任何其他方法:这就是我所说的"facade“类。

您需要的是调用一个模拟AcceleoService.doGenerate所做工作的方法,而无需依赖EObject来查找需要调用的模板。如果您手头没有Acceleo或源代码,可以通过github:AcceleoService#doGenerate查看代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10069858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档