仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 474|回复: 8
打印 上一主题 下一主题

[学习教程] 了解下JAVA的利用EMF举行建模,第3部分:利用Eclipse的JMerge定制天生的代码和编纂器 ...

[复制链接]
再现理想 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:12:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
关于第二点:俺问问你,如果是企业级项目的话,诸如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:34 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
因胸联盟 该用户已被删除
板凳
发表于 2015-1-25 23:05:55 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
第二个灵魂 该用户已被删除
地板
发表于 2015-2-9 20:34:48 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
活着的死人 该用户已被删除
5#
发表于 2015-2-17 23:44:24 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
飘灵儿 该用户已被删除
6#
发表于 2015-2-27 02:00:40 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
简单生活 该用户已被删除
7#
发表于 2015-3-8 18:52:44 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
透明 该用户已被删除
8#
发表于 2015-3-16 11:50:31 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
兰色精灵 该用户已被删除
9#
发表于 2015-3-22 22:37:44 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 19:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表