JET, JMerger에 대해서.

1898 단어 merge
우리가jet를 사용하여 코드를 생성할 때 기존 코드의 기초 위에서 코드를 증량적으로 생성하는 상황이 나타날 수 있다.JMerger는 jet에서 코드 덮어쓰기를 담당하는 클래스입니다.
 
1. JMerger의 사용:
 
//              
 String pluginId = "demo3"; 
 //                
 String uri = Platform.getBundle(pluginId).getEntry("/").toString(); 
 uri += "templates/demo4.jet"; 

 //    JETEmitter 
 JETEmitter emitter = new JETEmitter(uri); 
 IProgressMonitor progress = new NullProgressMonitor(); 
 //      Map          container 
 Map argument = new HashMap(); 
 argument.put("fileName", fileName); 
 argument.put("className", fileName.substring(0, fileName.indexOf("."))); 

 //                                   
 String result = emitter.generate(progress, new Object[] { argument }); 

 //    JMerger 
 JMerger jmerger = new JMerger(); 
 //                  
 String uri2 = Platform.getBundle(pluginId).getEntry("/").toString(); 
 uri2 += "/templates/emf-merge.xml"; 
 //    JControlModel,      
 JControlModel controlModel = new JControlModel(uri2); 
 jmerger.setControlModel(controlModel); 
 //   JMerger              
 jmerger.setSourceCompilationUnit(jmerger 
 .createCompilationUnitForContents(result)); 
 //   JMerger               
 jmerger.setTargetCompilationUnit(jmerger 
 .createCompilationUnitForInputStream(new FileInputStream(file 
 .getLocation().toFile()))); 
 //   JMerger                
 jmerger.merge(); 
 return new ByteArrayInputStream(jmerger.getTargetCompilationUnit() 
 .getContents().getBytes());

 
 
다음은 비교적 상세하게 설명된 연결입니다.
http://fuliang.iteye.com/blog/373509

좋은 웹페이지 즐겨찾기