当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

<b>浅析Eclipse建模框架(EMF)及其动态本领</b>[Java编程]

赞助商链接



  本文“<b>浅析Eclipse建模框架(EMF)及其动态本领</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

假如给定一个模子,那么EMF可以自动生成Java源代码-该源码答应你成立、查询、更新、串行化、反串行化、查验和追踪你的模子实例的改变.EMF供应了一组有效的反射API并且答应你用动态的(非生成的)模子举行工作.

1、引言

Eclipse建模框架(EMF)是一个Java开源框架与代码生成工具-用于基于构造化的模子来构建工具和别的利用程序.在Eclipse平台在用户界面和文件级上供应一个强有力的集成框架的同时,EMF加强了这种本领来实现工具和利用程序之间杰出粒度的数据分享.

近似于别的的Java绑定框架,比方JAXB或XMLBeans,给定一个模子后,EMF就可以够生成Java源代码-它答应你成立、查询、更新、反串行化以及串行化你的模子的实例.固然大都Java绑定框架仅支持一个模子类,比方XML情势,而EMF支持从XML情势,UML类图(Rational Rose或UML2)以及被注解的Java接口中生成代码.除了模子代码,EMF还能生成一个完好的利用程序-它包含一个可定制的编辑器.

EMF生成的代码有一个内建的改变告诉机制并且支持跨文档参考.EMF供应一个反射API以存取你的模子实例并且答应你动态地成立模子.EMF支持模子约束校验.EMF供应强有力的代码生成工具来支持模子的重新生成和利用用户书写的代码举行归并.

在本文中,我们将注释什么是EMF,并解析其基本框架.

EMF最开始是一个对象管理组的(OMG)元对象设备(MOF)阐明书的实现-它为面向对象的解析和计划供应一个尺度化的元模子.在很长一段时间以来,EMF被用于实现大量的工具并且因此演变成一个有效的MOF API的一个核心子集的Java实现.

在EMF中的类MOF核心元模子(一个模子的模子)被称作Ecore.在对当前的MOF 2.0的实现中,有一个近似的MOF模子的子集,称作Essential MOF(EMOF),它目前已经被独立出来.在Ecore和EMOF之间主要存在上些小的分外是命名上的辨别,因此EMF能透明地读和写串行化的EMOF,从而答应工具间数据的尺度交换.

本日EMF已被遍及利用.比方,EMF被用于实现开源XML情势Infoset模子(XSD),服务数据对象(SDO),UML2以及Eclipse上的Web工具平台(WTP)工程.别的,EMF也被利用在商业化的产品中,比方Omondo EclipseUML以及IBM Rational和WebSphere产品等.

2、Ecore和反射API

EMF中的一个关键接口是Eobject,它在概念上等价于java.lang.Object.全部的建模对象,无论是生成的与否,为了供应以下几个重要特点,都要实现这个接口:

·近似Java的Object.getClass(),通过利用eClass()办法,你能检索实例的元数据,也就是它的Eclass.

·在任何EMF建模的对象上,你都能利用反射API(eGet(),eSet())来存取它的数据.这在概念上平等于Java的java.lang.reflect.Method.invoke()办法,固然效率更高些.

·从任何实例对象,你都可以通过利用eContainer()办法得到它的容器(parent).

·EObject也扩大了Notifier,这答应你监督对象的数据的全部改变.

为找到更多关于EMF和Ecore,请读在线概述或购置Eclipse建模框架(EMF).EMF网站供应了若干文件来描写怎么利用EMF来从一个XML情势或UML图表生成Java代码.

下面我将描写一个示例,它利用Ecore来成立一个简单公司模子,然后利用动态的EMF来成立,串行化和反串行化这个模子的实例.假如你想持续读下去并且你已经是一个Eclipse用户,请下载和安装EMF 2.1 SDK或任何可用的更新的版本,在EMF下载站点.假如不那样,你还可以下载独立包,它包含EMF jar文件,它没有任何对Eclipse的依靠性并且能被利用于一个独立的利用程序.


  以上是“<b>浅析Eclipse建模框架(EMF)及其动态本领</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .