簡介:代碼產生技術是項目建設中常用的減輕工作量的方法,但大部分開發人員對 Eclipse 平台下的代碼產生技術瞭解不多。本文詳細介紹在 Eclipse 平台下進行代碼產生的技術,包括 Eclipse 自身模板引擎 JET 的使用,進行 Eclipse 項目產生使用的技術,以及在 Eclipse 平台下進行代碼產生的相關輔助技術。本文對軟體架構師和 Eclipse 開發人員都將有所裨益。
Eclipse 的 Java Emitter Templates(JET)一個開源的模板引擎,其功能是在 Eclipse Modeling Framework(EMF)中產生代碼。 JET 的文法與 JSP 文法比較相似,但它們處於不同的應用領域。
JET 的模板檔案(template files)尾碼一般為(*.jet),但為區分組建檔案的類型建議副檔名採用組建檔案類型加 jet 尾碼的方式,如 ***.javajet、***.textjet 等。
org.eclipse.emf.codegen.jet.JETEmitter 是 JET 的核心類,其 generate() 方法完成實現兩個功能,將模板檔案轉換為模板執行類(template implementation class)然後通過模板執行類的輸出產生相應的代碼或文本。
圖 1. 文本產生流程圖
查看原圖(大圖)
JET 應用樣本
本文隨附三個樣本源碼,下文描述的三個樣本分別對應樣本源碼中的 demo1、demo2 及 demo3,樣本中具體方法寫在樣本源碼中 SampleNewWizard 的 doFinish 方法中。將樣本項目以 Eclipse Application 方式運行後,在新啟動並執行 Eclipse 平台上選擇菜單 FileNewOther,在彈出的 New 對話方塊中選擇 JET Sample Wizards Demo1 至 Demo3,在彈出對話方塊中填入相應內容即可顯示樣本效果。
圖 2. JET Sample Wizards