基于 Eclipse 平台的代码生成技术
2010-07-02 00:00:00 来源:WEB开发网
清单 3. 生成操作代码
// 模板文件所在插件项目的名称
String pluginId = "jet3";
// 通过插件项目获得其路径(basePath)
String basePath = Platform.getBundle(pluginId).getEntry("/").toString();
// 模板文件在项目中的路径及文件名
String uri = "templates/echo.jet";
JETEmitter emitter = new JETEmitter(basePath + uri);
IProgressMonitor progress = new NullProgressMonitor();
// 声明一个 List 作为数据变量集的 container
List<String> argument = new ArrayList<String>();
argument.add(fileName);
argument.add("12334");
// 对当前模板进行转换并将需要输出成实际文件的内容返回以便通过输出流输出
String result = emitter.generate(progress, new Object[] { argument });
示例 2 骨架(skeleton)的使用(demo2)
实际应用中往往会有多个代码执行类调用公用的方法或变量的情况,这时候我们通常会希望能够对代码执行类加入特定的方法,或在代码的生成过程中定制处理。对这类问题 JET 提供了一种强大的解决方案,骨架(skeleton)。
所谓骨架,简单来说是修改编译后的模板文件代码的样子。比如我们希望模板文件编译后的代码执行类要继承某个基类、实现某个接口、包含某个常量或方法,就应采用骨架技术。
以下对示例 1 中的模板进行少许修改,以对骨架有一个基本的了解。
在 templates 目录中,创建 demo.skeleton 文件,编辑其内容为
清单 4. demo.skeleton 文件内容
更多精彩
赞助商链接