本文件說明 JET2 轉換的元素和結構,它用於從 JDT AST 產生 Java 程式碼。對於尋求使用此轉換來從 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 轉換登錄接聽器,以及為寫入的每個 檔案登錄 org.eclipse.jet.IWriterListener。延伸點的結構說明如下
| IJavaJET2ListenerProvider 延伸 |
|
介面 IJavaJET2ListenerProvider 定義如下
| public interface IJavaJET2ListenerProvider { public IJavaJET2Listener getJavaJET2Listener(String activityId); public IWriterListener getWriterListener(String activityId); } |
IJavaJET2Listener 是在處理每個 ASTNode 前後呼叫的節點層次接聽器,而 IWriterListener 是在確定每個檔案前後呼叫的檔案層次接聽器。貢獻者僅可 為他們需要的特定 activityId 提供接聽器。ActivityId 是可由 Java JET2 轉換 的用戶端指定的 ID,貢獻者可為任何 activityId 提供接聽器,從而容許貢獻者 延伸呼叫 Java JET2 轉換的任何轉換。介面 IJavaJET2Listener 定義如下
| public interface IJavaJET2Listener { public void preVisit (ASTNode node, JET2Writer writer); public void postVisit(ASTNode node, JET2Writer writer); } |
<TBD>
<TBD>