写代码的JET

本文介绍了JET代码生成器的工作原理及使用方法,通过对比CodeSmith,详细解释了JETEmitter如何将模板转换为Java类并生成目标代码。此外还提供了一个简单的插件示例,用于生成包含文件名的文本文件。

看了八进制的文章,感觉JET做的事情跟codeSmith差不多。

代码的生成是由JETEmitter完成的,它会在workbench里先生成一个.JETEmitter项目,把模板转换为java类(这个过程类似JSP转换为Servlet),然后调用这些类的generate()方法得到结果。

八进制做了一个生成.txt文件的生成器插件,点此下载。安装后在Eclipse主菜单里选File->New->Others,在New对话框里选择Sample Wizards下的Echo filename text file,新建的文本文件内容里会包含文件名。

因为用途有限,JET的资料不是很多,这里有两篇:链接1链接2,其中后者在EMF的帮助里也找得到。

最后补充一个Tip,在plugin里访问一个相对路径文件的方法如下:

None.gif String  base   =  Platform.getBundle(pluginId).getEntry( " / " ).toString();
None.gifString relativeUri 
=   " templates/echo.txtjet " ;
None.gifJETEmitter emitter 
=   new  JETEmitter( base   +  relativeUri, getClass().getClassLoader());
None.gifdot.gif

更正(08/23),上面说的方法只对JETEmitter有效,得到的路径是Platform内部路径而非本地路径,这里提供另一个方式可以得到本地路径:

None.gif Platform.asLocalURL(Platform.getBundle(pluginId).getEntry( " /log4j.properties " ))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值