使用 Eclipse Modeling Framework 进行建模,第 2 部分:使用 Eclipse 的 Java Emitter Templates 生成代码
2009-12-17 00:00:00 来源:WEB开发网
清单 1. 样例 jet 声明<%@ jet
package="com.ibm.pdc.example.jet.gen"
class="GenDAO"
imports="java.util.* com.ibm.pdc.example.jet.model.*"
%>
清单 1 的内容是真正自解释的。在编译 JET 模板时,会创建一个 Java 文件 GenDAO ,并将其保存到 com.ibm.pdc.example.jet.gen 中,它将导入指定的包。重复一遍,这只是说明模板像什么样子,而不是模板将要生成的内容 -- 后者稍后将会介绍。注意 JET 输出结果的 Java 文件名是在 jet 的声明中定义的,它并不局限于这个文件名。如果两个模板声明了相同的类名,那么它们就会相互影响到对方的变化,而不会产生任何警告信息。 如果您只是拷贝并粘贴模板文件,而没有正确地修改所有的 jet 声明,那就可能出现这种情况。因为在模板目录中创建新文件时会产生警告,而拷贝和粘贴是非常常见的,因此要自己小心这个问题。
JSP 可以通过预先声明的变量(例如会话、错误、上下文和请求)获取信息, JET 与此类似,也可以使用预先声明的变量向模板传递信息。JET 只使用两个隐式的变量: stringBuffer ,其类型为 StringBuffer (奇怪吧?),它用来在调用 generate() 时构建输出字符串;以及一个参数,出于方便起见,我们称之为 argument ,它是 Object 类型。典型的 JET 模板的第一行会将其转换为一个更适合的类,如清单 2 所示。
清单 2. JET 参数的初始化<% GenDBModel genDBModel = (GenDBModel)argument; %>
package <%= genDBModel.getPackageName() %>;
正如您可以看到的一样,JET 的缺省语法与 JSP 相同:使用 <%...%> 包括代码,使用 <%= ... %> 打印表达式的值。与 JSP 类似,正确地使用 <% ... %> 标签就可以添加任何逻辑循环或结构,就像是在任何 Java 方法中一样。例如:
- 中查找“使用 Eclipse Modeling Framework 进行建模,第 2 部分:使用 Eclipse 的 Java Emitter Templates 生成代码”更多相关内容
- 中查找“使用 Eclipse Modeling Framework 进行建模,第 2 部分:使用 Eclipse 的 Java Emitter Templates 生成代码”更多相关内容
- 上一篇:使用 Eclipse Modeling Framework 进行建模,第 3 部分:使用 Eclipse 的 JMerge 定制生成的代码和编辑器
- 下一篇:用 Eclipse Modeling Framework 实现模型驱动开发,第 1 部分:创建 UML 模型并生成代码
更多精彩
赞助商链接