使用EMF进行建模,第3部分:使用Eclipse的JMerge定制生成的代码和编辑器 - 编程入门网
代码 (例如跟踪和日志记录代码)。此时我们既不希望禁止生成代码,也不希望全部生成整个 方法的代码,而是希望能够让用户定制一部分代码。
要实现这种功能,可以将前 面的 pull 目标替用清单 6 来代替。 清单 6. 细粒度的定制代码
这样会只重写字符串 " // begin- user-code " 之前和 " // end user-code " 之后的内容,因此就可以在定制代码中保留 二者之间的内容。在上面的正则表达式中, "?" 表示在目标代码中,除了要替换的内容 之外,其他内容全部保留。您可以实现与 JavaDoc 注释类似的功能,这样就可以拷贝注 释,同时为用户定制预留了空间。请参见清单 7。 清单 7. 细粒度的 JavaDoc 定 制
要支持这种注释,首先要修改开始 标签和结束标签,使其遵循 HTML 注释语法,这样它们就不会出现在所生成的 JavaDoc 中;然后修改 sourceGet 和 targetPut 属性,以便使用 "Member/ getComment" 和 "Member/ setComment" 。JMerge 允许您在细粒度级别上存取 Java 代码的不同部分。( 更多内容请参见 附录 A)。 下一步 到现在为止,我们已经介绍了如何转 换方法体,但是 JMerge 还可以处理域、初始化、异常、返回值、import 语句以及其他 Java 元素。它们也采用类似的基本思想,可能只需稍加修改即可。参考 plugins/org.eclipse.emf.codegen_1.1.0/test/merge.xml 就可以知道如何使用这些功 能(我使用的是 Eclipse 2.1,因此如果您使用的是其他版本的 Eclipse,那么 ecore 插件的版本可能会不同)。这个例子非常简单,其中并没有使用 sourceTransfer 标记, 但是该例显示了处理异常、标志和其他 Java 元素的方法。 更复杂的例子请参见 EMF 使用 JMerge 的方法: plugins/org.eclipse.emf.codegen.ecore_1.1.0/templates/emf-merge.xml 。从这个例 子中可以看出 EMF 只允许部分定制 JavaDoc,但是采用上面介绍的一些技巧,就可以为 方法体添加支持(这样可以增强 JET 的功能)。 使用EMF进行建模,第3部分:使用Eclipse的JMerge定制生成的代码和编辑器(4)时间:2011-03-26 IBM Adrian Powell附录 A:有效的目标选项 在 dictionaryPattern 和 pull 规则中,我们已经使用了 " Member/getComment " 和 " Member/getBody " 以及它们的 setter 方法,但是还有很多其他可用的选项。 JMerge 支持 org.eclipse.jdt.core.jdom.IDOM* 中定义的任何类的匹配和取代。所有可 用的选项如表 1 所示。 表 1. 有效的目标选项
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |