EMF 自学笔记 1

先搜点中文资料,对EMF有个大概了解。

 

一楼献给百度百科。

EMF  Eclipse Modeling Framework  基于Eclipse的模型框架。它是Eclipse MDA(Model Driven Architecture)的一个重要组成部分,是Eclipse中许多项目的基础( e.g, GEF), EMF可以将模型转换成高效的,正确的,和易于定制的Java代码。EMF项目的最初目标是要实现OMG(Object Management Group)的MOF规范(Meta Object Facility)。在项目的进行中EMF的开发人员根据大量的实践经验对MOF规范进行了再加工,提取出了一些核心的元素集(MOF 2.0 中称为EMOF(Essential MOF))。可以说EMF 是MOF核心子集的java高效实现,在EMF 中MOF核心子集的实现称为Ecore。
 
= =!! 汗啊,问他一个名词,他抛出来N个新名词,继续百度百科。
MDA  Model Driven Architecture  模型驱动架构
UML:UML被MDA用来描述各种模型。
MOF:MOF(Meta Object Facility 元对象机制)是比UML更高层次的抽象,它的目的是为了描述UML的扩展或者其它未来可能出现的类UML的建模语言。
 
八进制的博客上有EMF的系列文章,传送门在此
 
以下内容摘自该博客:
  • EMF可以看作是Eclipse上的MDA一个实现(代码生成是MDA 的重要组成部分之一),它能够生成在Eclipse上执行的代码。
  • 模型是由元模型(Meta Model)定义的,例如UML里“类”和“属性”这些概念是在UML的元模型里定义的,而元模型又是由“元元模型”来定义,后者多是自描述的,也就是能够自己定义自己。
  • MOF规范里,元元模型处于M3层,元模型处于M2层,往下的M1层是模型,而M0层是实例。
  • EMF定义了一套Ecore元模型,该模型是EMOF(MOF的一个子集, MOF是Meta-Object Facility的缩写)的一个实现,这是一个自描述的模型,可以认为它处于MOF中的M2层,即与UML元模型相同的位置。
  • 用Ecore元模型可以定义 ecore模型,也就是.ecore文件,这个模型处于M1层,而ecore模型的实例处于M0层。
  • 用EMF构造一个应用的步骤很简单:1、构造模型,2、生成代码,前者可以通过UML类图、Java接口、 XML Schema等多种方式定义,后者可以选择只生成模型部分的代码,也可以同时生成编辑器部分的代码,对这个编辑器做一些定制就可以得到符合需求的应用程序。

该系列文章的例子使用了EclipseUML,我没下载到,只能去找点别的资料了。

找了半天也没找到好的文章,就用online help吧。

http://help.eclipse.org/help32/index.jsp  EMF Developer Guide > Tutorials > Generating an EMF Model

推荐看本机的help,EMF版本不同会略有出入。

 

该Tutorial步骤摘要:

  1. 通过 File>New>Project... 菜单选择 Eclipse Modeling Framework 目录下的 Empty EMF Project.
  2. 使用包含"@model"标注的Interface和Class来定义EMF模型。(见Tutorial)
  3. 创建 EMF Model. (见4-7步)
  4. 在model目录的上下文菜单中选择 New>Other... 打开 New Wizard,选择Eclipse Modeling Framework 目录下的 EMF Generator Model. (online help 中选的是 EMF Model,我的EMF版本较高,选项有变化)
  5. 在下一向导页面中输入文件名 library.genmodel. 必须以 .genmodel 为后缀名。
  6. 下一向导页面用来选择模型导入方式,一共有四种,该例子使用 Annotated Java 作为导入模型的手段。
  7. 完成向导,此时 model 目录下生成了两个新文件 library.ecore 与 library.genmodel. 前者为 Ecore Model. 后者为 Generator Model, controls code generation for the model.
  8. 在打开的 library.genmodel 的根结点上打开上下文菜单,选择 Generate Model Code. 这样代码就生成好了。今后就在生成好的代码上继续开发。如果模型有变,就重新生成代码,EMF会自动合并你写的代码。也可以选择 Generator Model 的一个子结点来生成部分模型的代码。
  9. 同上的上下文菜单中选择 Generate Edit Code, 可生成一个新插件 library.edit. 实现了一个 Structured View 和修改模型对象的命令。
  10. 同上的上下文菜单中选择 Generate Editor Code, 可生成一个新插件 library.editor. 实现了 Editor 和 Wizard.
  11. 运行生成的Editor插件(通过Run As/Eclipse Application)。在打开的新工作台中创建一个 General Project, 通过 New>Other... 上下文菜单项打开 New Wizard, 选择 Example EMF Model Creation Wizards 目录下的 Library Model.

 

 

eclipse插件开发学习笔记源码是指记录学习eclipse插件开发过程中的笔记所对应的源代码。在学习eclipse插件开发时,我们通常会通过写笔记的方式记录自己的理解、遇到的问题以及对应的解决方案。而这些笔记所涉及的源码,就是指在实践过程中编写的相关代码。 在学习eclipse插件开发时,源码是非常重要的,因为它直接反映了我们对于插件开发知识的理解和实践能力。一般而言,我们的源码应该包含以下几个方面的内容。 首先,源码应该包括插件的基本结构和配置信息。这包括插件的manifest.mf文件和plugin.xml文件。manifest.mf文件用于定义插件的基本信息,包括插件的名称、版本号以及对其他插件的依赖关系等。而plugin.xml文件则用于定义插件的扩展点和扩展。 其次,源码应该包括对于eclipse平台核心概念的理解和应用。例如,我们可以编写代码来创建和管理视图、编辑器、菜单、工具栏等界面元素,以及定义和处理事件等。 另外,源码还应该包含对于第三方插件的使用和扩展。eclipse的插件生态系统非常丰富,我们可以通过使用第三方插件来快速实现一些功能。比如,我们可以使用JFace、SWT等第三方库来创建复杂的UI界面,使用EMF来定义和管理领域模型等。 总之,eclipse插件开发学习笔记的源码应该是一个不断积累和完善的过程。通过编写源码,我们可以更好地理解和掌握eclipse插件开发的知识和技术,提高自己的实践能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值