使用EMF实现模型驱动开发,第1部分:创建UML模型并生成代码 - 编程入门网
析并加载 forum 模型。我们知道,Forum 是惟一的根元素,所以可以想象, res.getContents ().get(0) 将返回一个且仅有一个 Forum 对象。如果情况不是这样,我们还可以从 getContents().iterator() 中取出一个 Iterator,然后分别检查每一个元素。
我们还可以换一种方法,创建一个新的 Forum,然后用程序组装起来,如清单 8 所示。 清单 8. 初始化 Forum
在这个例子中,我们首先初始化包,然后创建 ForumFactory,用它 生成所有的子对象。创建完毕之后,就可以像标准的 JavaBean 那样访问这些对象。然而 ,由于我们把 Topic 和 Memeber 之间的 creator/topicsCreated 关系声明为双向,当 我们调用 noticeTopic.setCreator(adminMember) 的时候, adminMember 的 topicsCreated 清单中就包括 noticeTopic 。 一旦我们创建并操纵了 EMF 模型 ,就很容易将其保存为我们选定的格式(参见清单 9)。 清单 9. 保存 Forum
在本例中,我们给 URI.createFileURI () 提供了希望保存成的文件名与目标格式。这个例子因为是保存为 XMI,所以使用了 XMIResourceFactoryImpl 。一旦创建完毕,所有的模型对象就如我们所愿的持久保存起 来了。在这个例子中,除 Forum 之外的每一个对象都被另一个类包含,所以我们只需要 对包含所有孩子的 root 增加这条命令即可。如果某些对象没有 包含 关系,那么也必须 通过 resource.getContents().add() 显式地将它们加进去。否则,当您调用 resource.save() 时就会出现异常。 结束语 Eclipse Modeling Framework 提供了进行模型驱动开发的工具。它包含了将您的开发精力集中在模型上而不是实现细节 上所必需的元素。其主要关注的领域是:生成模型时支持定制、通知、参照完整性以及其 他基本特性;生成可定制的模型编辑器;默认的序列化。正像例子中展示的那样,生成的 过程既简单又直接,所有的定制代码都支持定制。序列化或图形化编辑器等独立的工具也 可以拉出来单独使用,但所有的部件一起使用才能发挥完整的效力。EMF 已经在很多成功 的项目中得到应用,它正在蓬勃成长。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |