WEB开发网
开发学院软件开发Java 基于 Eclipse 平台的代码生成技术 阅读

基于 Eclipse 平台的代码生成技术

 2010-07-02 00:00:00 来源:WEB开发网   
核心提示: importjava.util.Date;publicclassCLASS{publicStrings="MissionCompleted!";privateDategetCurrentDate(){returnnewDate();}publicStringgenerate(

import java.util.Date; 
 
 public class CLASS { 
 public String s = "Mission Completed!"; 
 private Date getCurrentDate() { 
 return new Date(); 
 } 
 public String generate(Object argument) { 
 return ""; 
 } 
 }

在该文件中,我们 import java.util.Date 类,声明了 String s 及声明了方法 getCurrentDate(),这些内容将被合并到对模板文件进行编译后的代码中。此外,在文件中的类名“ CLASS ”在代码执行类中会被模板文件中的代码执行类类名替换。

将 demo1.jet 文件修改为以下内容,并将文件另存为 demo2.jet 。

清单 5. demo2.jet

<%@jet package="demo.translated" imports="java.util.List" class="Demo2" 
 skeleton="demo.skeleton"%> 
 Hello, <%=((List)argument).get(0).toString()%>! 
 The current time is <%=getCurrentDate()%>. 
 <%=s%>

经 JET 编译后的模板文件代码内容如下,其中红色文字为利用骨架合并的效果。

清单 6. 模板文件代码

package demo.translated; 
 
 import java.util.Date; 
 import java.util.List; 
 
 public class Demo2 { 
 protected static String nl; 
 public static synchronized Demo1 create(String lineSeparator) 
 { 
 nl = lineSeparator; 
 Demo2 result = new Demo2(); 
 nl = null; 
 return result; 
 } 
 
 public final String NL = nl == null ? 
 (System.getProperties().getProperty("line.separator")) : nl; 
 protected final String TEXT_1 = "Hello, "; 
 protected final String TEXT_2 = "!" + NL + "The current time is "; 
 protected final String TEXT_3 = ". "; 
 protected final String TEXT_4 = NL; 
 protected final String TEXT_5 = NL; 
 
 public String s = "Mission Completed!"; 
 
 private Date getCurrentDate() { 
 return new Date(); 
 } 
 
 public String generate(Object argument) 
 { 
 final StringBuffer stringBuffer = new StringBuffer(); 
 stringBuffer.append(TEXT_1); 
 stringBuffer.append(((List)argument).get(0).toString()); 
 stringBuffer.append(TEXT_2); 
 stringBuffer.append(getCurrentDate()); 
 stringBuffer.append(TEXT_3); 
 stringBuffer.append(TEXT_4); 
 stringBuffer.append(s); 
 stringBuffer.append(TEXT_5); 
 return stringBuffer.toString(); 
 } 
 }

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:基于 Eclipse 平台

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接