gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 15:26:33 26 4
gpt4 key购买 nike

大家好,我对 acceleo 很陌生

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

  1. initialize() 期望第一个参数为 Ecore 对象,其余参数为 List。然而,正如我提到的,某些模板没有任何 EObject 参数。如何从 java 应用程序调用此类模板?

  2. 为了解决上述问题,我调整了驱动程序和模板,将虚拟 EObject 作为第一个参数。然后它成功调用模板,但不会生成任何输出。如果我从另一个驱动程序模板调用模板,这些模板会生成输出。但是我不想用 MTL 编写驱动程序,因为它需要对数据模型进行复杂的分析。

请就我的案件如何取得进展提出建议。

感谢和问候
Dhanunjaya M.

最佳答案

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

对于其他用例,您将必须使用这些外观背后的 API。也就是说,当您根本没有 EObject 时,您可以创建另一个不将 EObject 作为参数的“初始化”方法。然后,您还需要重写“generate(Monitor)”方法,以便它不使用 AcceleoService.doGenerate... 或 AcceleoService 的任何其他方法:这是我正在讨论的“facade”类。

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

关于java - 从java应用程序调用acceleo模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10069858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com