本文档描述用于从 JDT AST 生成 Java 代码的 JET2 变换的元素和结构。这对于想要使用此变换来从 JDT AST 生成 Java 代码的开发者尤其有价值。
JDT 至代码 JET2 变换是顶级变换。
| JDT 至代码 JET2 变换 |
|
此变换需要将 Map<IJavaProject,Collection<CompilationUnit>> 作为根元素。 然后它对每个项目的集合进行处理并在相应项目中生成相应的源文件。CompilationUnit 元素应包含所有必需信息,例如,包声明、导入声明等。
此变换使用 org.eclipse.jet.modelInspectors 扩展来遍历 JET 模板中的 JDT AST。检查器是一种对象,用于改造对象以使其适合 XPath 信息模型。每个检查器定义其能够改造的对象类型,并且也仅向这些检查器移交其能够改造的这些对象。对于 ASTNode 都存在一个检查器,该检查器用来应答针对该 ASTNode 发出的 XPath 查询。在插件 com.ibm.xtools.transform.java.jet2 中已实现这些检查器
此变换提供了扩展点 com.ibm.xtools.transform.java.jet2.IJavaJET2ListenerProvider,该扩展点允许此调用变换在变换执行期间执行定制操作。IJavaJET2ListenerProvider 是一个接口,它让客户机为每个 ASTNode 向 Java JET2 变换注册侦听器以及为每个被写入的文件向 Java JET2 变换注册 org.eclipse.jet.IWriterListener。该扩展点的结构描述如下。
| IJavaJET2ListenerProvider 扩展 |
|
接口 IJavaJET2ListenerProvider 定义如下
| public interface IJavaJET2ListenerProvider { public IJavaJET2Listener getJavaJET2Listener(String activityId); public IWriterListener getWriterListener(String activityId); } |
IJavaJET2Listener 是一个节点级别侦听器,在处理每个 ASTNode 之前和之后被调用,而 IWriterListener 是文件级别侦听器,在落实每个文件之前被调用。添加程序可以仅为所需的特定 activityIds 提供侦听器。ActivityId 是可由 Java JET2 变换的客户机指定的标识,并且添加程序可为任何 activityId 提供侦听器,从而使添加程序可以扩展调用 Java JET2 变换的任何变换。接口 IJavaJET2Listener 定义如下
| public interface IJavaJET2Listener { public void preVisit (ASTNode node, JET2Writer writer); public void postVisit(ASTNode node, JET2Writer writer); } |
<待完成>
<待完成>