更准确地说,我想知道如何将注释建模到 core 模型定义中。这样生成的 java 代码就会包含它们。 (例如:hibernate 持久性标签)
EMF 论坛上的这篇文章讨论了如何使用自定义模板来生成代码:https://www.eclipse.org/forums/index.php/t/131673/ https://www.eclipse.org/forums/index.php/t/131673/.
简而言之,您可以动态地为代码生成提供不同的模板,从而可以插入所需的注释。在论坛帖子中,Ed Merks(EMF 负责人)建议阅读两条信息:
- http://wiki.eclipse.org/index.php/EMF-FAQ#What_are_Dynamic_Templates.3F http://wiki.eclipse.org/index.php/EMF-FAQ#What_are_Dynamic_Templates.3F
- http://wiki.eclipse.org/index.php/EMF-FAQ#How_do_I_use_Dynamic_Templates.3F http://wiki.eclipse.org/index.php/EMF-FAQ#How_do_I_use_Dynamic_Templates.3F
以及如何使用它们的一个小例子:
插入内容如下所示:
<%@ include file="Class/getGenFeature.annotations.insert.javajetinc" fail="silent" %>
因此,在模板文件夹下,您将创建如下文件:
<someproject>/templates/model/Class/getGenFeature.annotations.insert.java jetinc
并且您在文件中放入的任何内容都将被插入到 getter 中。可能
你会包括这样的守卫:
<%if (isImplementation) {%>
@Something
<%}%>
尝试遵循使用制表符进行缩进的约定,因为
这些将转换为目标项目的格式首选项。
一旦您可以提供自己的模板,您就有两种选择:
- 默认情况下将 hibernate 标签添加到所有代码中
- 修改模板以读取ecore模型中的注释。
对于 2,您需要定义自己的注释源(基本上是 url),例如https://myproject/emf/hibernate
然后将注释添加到使用自定义 url 的类并提供key:value
设置(例如要添加的休眠注释)。然后,您的自定义模板可以从 EClass 读取注释,查询是否使用您的源,然后使用提供的值添加 Java 注释。
帖子还提到了Teneo https://wiki.eclipse.org/Teneo项目,为 EMF 提供 JPA 支持。 (显然)最近没有进行任何开发,但它已经足够成熟可以使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)