仓酷云

标题: 了解下JAVA的利用EMF举行建模,第3部分:利用Eclipse的JMerge定制天生的代码和编纂器 ... [打印本页]

作者: 再现理想    时间: 2015-1-18 11:12
标题: 了解下JAVA的利用EMF举行建模,第3部分:利用Eclipse的JMerge定制天生的代码和编纂器 ...
关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。
概述
本系列文章的前一篇先容了有关Eclipse的JavaEmitterTemplates(JET)和代码天生的常识,在那篇文章中,您已看到怎样经由过程利用模板和代码天生器来节俭工夫,并完成形式级的代码重用。但是在年夜部分情形中,这都还不敷。您必要可以将所天生的代码拔出现有的代码中,大概同意今后的开辟职员来定制所天生的代码,而不必要在从头天生代码时从头编写任何内容。幻想情形下,代码天生器的创立者但愿能够支持从此开辟职员一切的需求:从修正办法的完成、修正各类办法署名,到修正所天生类的承继布局。这是一个十分风趣的成绩,今朝还没有很好的通用办理计划;可是有一个很好的纯Java的办理计划,称为JMerge。
JMerge是EMF中包括的一个开放源代码的工具,可让您定制所天生的模子和编纂器,而从头天生的代码不会破坏已修正过的内容。假如形貌了怎样将重生成的代码兼并到现有定制过的代码中,那末JETEmitter就能够撑持JMerge。本文经由过程一个例子来展示个中的一些可用选项。
第一步
假定您已增加了一个新项目,在这个项目中必要为编写的每一个类都创立一个JUnit测试类,如许必需要对编写的每一个办法都进行测试。作为一个仔细且高效的(大概对照懒的)程序员来讲,您决意要编写一个插件,它承受一个Java类作为输出,并天生JUnit测试例子的存根(stub)。您热忱低落地创立了JET和插件,如今想同意用户定制所天生的测试类;但是在原有类的接口产生变化时,仍旧必要从头天生代码。要完成这类功效,可使用JMerge。
从插件中调用JMerge的代码十分复杂(拜见清单1)。这会创立一个新的JMerger实例,和一个URImerge.xml,设置要兼并的来历和方针,并挪用merger.merge()。然后兼并的内容就能够睁开为merger.getTargetCompilationUnit()。
清单1.挪用JMerge
 // ...
 JMerger merger = getJMerger();

 // set source
 merger.setSourceCompilationUnit(
 merger.createCompilationUnitForContents(generated));

 // set target
 merger.setTargetCompilationUnit(
 merger.createCompilationUnitForInputStream(
  new FileInputStream(target.getLocation().toFile())));

 // merge source and target
 merger.merge();
 // extract merged contents
 InputStream mergedContents = new ByteArrayInputStream(
 merger.getTargetCompilationUnit().getContents().getBytes());

 // overwrite the target with the merged contents
 target.setContents(mergedContents, true, false, monitor);
 // ...
// ...
private JMerger getJMerger() {
 // build URI for merge document
 String uri =
  Platform.getPlugin(PLUGIN_ID).getDescriptor().getInstallURL().toString();
 uri += "templates/merge.xml";

 JMerger jmerger = new JMerger();
 JControlModel controlModel = new JControlModel( uri );
 jmerger.setControlModel( controlModel );
 return jmerger;
}
<p>
唉!都是钱闹的1.Swing和.net开发比较------从市场份额看.net开发主要占据大部分的中小型和中型的的桌面开发,原因是它封装了很多工具
作者: 小妖女    时间: 2015-1-20 17:13
Java是一种计算机编程语言,拥有跨平台、面向对java
作者: 因胸联盟    时间: 2015-1-25 23:05
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 第二个灵魂    时间: 2015-2-9 20:34
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 活着的死人    时间: 2015-2-17 23:44
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 飘灵儿    时间: 2015-2-27 02:00
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 简单生活    时间: 2015-3-8 18:52
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 透明    时间: 2015-3-16 11:50
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 兰色精灵    时间: 2015-3-22 22:37
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2