2

我必须在 Acceleo 文件中包装一个 java 函数,有没有人可以帮助我?

谢谢

4

3 回答 3

4

从 Acceleo 调用 Java 服务的最简单方法是使用用户指南(如您发现的 help.eclipse.org,但“用户指南”而不是“Android 教程”)中描述的工具来创建“Java 服务包装器”来自 Java 文件。这会自动创建将为您调用 Java 代码的 Acceleo 查询。

但是,如果没有 Java 类,就不能从 Acceleo 调用 Java 代码。“mtl”文件只允许 Acceleo 代码,虽然您可以从 Acceleo 调用 Java 方法,但它们必须位于它们自己的“java”类文件中。您也可以调用不属于您的 java 代码,只要您的 Acceleo 项目依赖于您要从中调用代码的库即可。例如,以下 Acceleo 查询将调用org.eclipse.emf.ecore.util.EcoreUtil.getID(EObject)给定 EClass 上的方法:

[query public getURI(eClass : EClass) : String = invoke('org.eclipse.emf.ecore.util.EcoreUtil', 'getID(org.eclipse.emf.ecore.EObject)', Sequence{eClass})/]

(现在您明白为什么让 Acceleo 为您生成这些查询更容易了:p)。

我们确实希望使对 Java 服务的支持更易于使用,但目前这仅在我们的愿望清单上,并未计划。

不要犹豫,在 wiki ( http://wiki.eclipse.org/Acceleo ) 上查找信息,如果我们遗漏了什么,请对其进行编辑 :)。

PS:很抱歉没有超链接,我的stackoverflow账号还小。

于 2011-01-24T08:57:44.003 回答
1

为了完成 Kellindil 的回答,我在 Acceleo 的 FAQ 中添加了一个新条目,其中包含使用 Java 服务的屏幕截图。

如何在 Acceleo 3 中使用 Java 服务

于 2011-01-24T09:16:44.473 回答
0

eclipse 帮助页面中的这个页面包含一个教程,在我看来,它们好像在模型文件中包含 java 代码。希望能帮助到你。

Acceleo 代码生成

于 2011-01-21T15:24:28.057 回答