使用JET在Eclipse中创建更多更好的代码 - 编程入门网
ype="UDP" >
<logToFile name="packet_types" />
</packet>
</sniffer>
</app>
蓝图将转换这些输入参数为实现该网络嗅探器的代码。蓝图的参数可视为自定义编程语言,而蓝图扮演 “编译器” 的角色,将输入转换为本机工件。2. 控制文件 这些文件控制代码生成的执行。控制标记中最重要的标记是 <ws:file>,它将执行一个模板并将结果转储至指定的文件。代码生成执行从 main.jet 开始,这与程序的 main 函数类似。3. 模板文件 模板文件指定如何以及何种情况下生成文本。该文本可以是代码、配置文件或其他。 使用JET在Eclipse中创建更多更好的代码(4)时间:2011-11-29 IBM Chris AniszczykXPath 既然任何 JET 蓝图的输入都是一个 XML 模型,XPath 语言被用来引用节点和属性。此外,在表达式里 XPath 有自己的参数使用方式,这在 JET 里使用得非常多。要点如下: 路径表达式 与文件系统路径相似。路径是由斜杠分开的一系列步(/)。 从左向右估算步,如果这样做,通常会下行模型树。 每步通过其名字定义树节点(尽管存在其他可能性)。 在步的结尾,步可以在方括号([ 和 ])中编写可选的过滤器条件。 初始斜杠(/)指示表达式开始于模型树的根。 路径表达式还可以以变量开始,变量是以美元符号($)开头的名字。 关于 JET 中的 XPath ,应记住以下几个要点: 变量是由几个 JET 标记定义的 - 注意 var 属性。它们可能也是由 c:setVariable 标签定义的。 需要路径表达式的 JET 标签有一个 select 属性。 任何标签属性都可能包含一个动态的 XPath 表达式,是由括号({ 和 })所包含的 XPath 表达式。 JET 标签 下例将使用下列输入模型。 清单 2. 输入模型 <app middle="Hello" > <person name="Chris" gender="Male" /> <person name="Nick" gender="Male" /> <person name="Lee" gender="Male" /> <person name="Yasmary" gender="Female" /> </app> ws:file 该标签属于蓝图的 control 部分,它初始化一个模板。例如: <ws:file template="templates/house.java.jet" path="{$org.eclipse.jet.resource.project.name}/house1.java"> 使用JET在Eclipse中创建更多更好的代码(5)时间:2011-11-29 IBM Chris Aniszczyk将在输入模型上运行 house.java.jet 模板并将结果转储在 $(Project Root)/house1.java 中。{$org.eclipse.jet.resource.project.name} 是一个动态 XPath 表达式,用 org.eclipse.jet.resource.project.name 变量的值替换部分字符串。该变量是由 JET 引擎定义的。c:get 该标签将输出 XPath 表达式的结果。例如,Pre<c:get select="/app/@middle" />Post 将输出 PreHelloPost。注意 select 参数将使用 XPath 表达式。要在期望静态字符串的参数中使用 XPath 表达式,可以通过将表达式封装在括号({ 和 })中来调用动态 XPath 表达式。c:iterate 该标签将遍历具有特定名称的节点,为每个节点执行 iterate 的主体。例如: <c:iterate select="/app/person" var="currNode" delimiter="," > Name = <c:get select="$currNode/@name" /> </c:iterate> 将输出 Name = Chris, Name = Nick, Name = Lee, Name = Yasmary。 iterate 标签通常也用于控制模板的其实标记。例如,如果要为模型中的每个人创建 Java™ 类,可使用如下代码: &l |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |