EMF 快速入门

dzhang600 贡献于2015-05-12

作者 Michael  创建于2013-10-29 14:40:00   修改者微软用户  修改于2013-10-29 14:40:00字数3801

文档摘要:EMF 快速入门
关键词:

 EMF 入门 By WIN http://358184482-qq-com.javaeye.com/ 第一章:创建一个空的 EMF 项目 我使用的是 eclipse3.5 EMF2.4 JDK1.6 首先 New 一个 Project 选择 Eclipse Modeling Framework 下的 Empty EMF Project 如下图: 然后 Next,输入项目名称,按照 eclipse 项目的命名规范来命名,如图: 点击 finish,那么 EMF 项目就创建了 现在就以图书馆为例来进一步的学习 EMF 首先创建一个包 com.heming.gef.demo.library 用来存放 Library 信息 然后编写 Library、Book 、Writer、BookCategory 四个 interface 代码如下: package com.heming.emf.demo.library; /** * @model * @author Ming.He * */ public interface Book { /** * @model */ String getTitle(); /** * @model default="100" */ int getPages(); /** * @model */ BookCategory getCategory(); /** * @model opposite="books" */ Writer getAuthor(); } package com.heming.emf.demo.library; /** * @model * @author Ming.He * */ public enum BookCategory { /** * @model name="Mystery" */ MYSTERY, /** * @model name="ScienceFiction" */ SCIENCE_FICTION, /** * @model name="Biography" */ BIOGRAPHY; } package com.heming.emf.demo.library; import java.util.List; /** * @model * @author Ming.He * */ public interface Library { /** * @model */ String getName(); /** * @model containment="true" */ List getWriters(); /** * @model containment="true" */ List getBooks(); } package com.heming.emf.demo.library; /** * @model * @author Ming.He * */ public interface Writer { /** * @model */ String getName(); /** * @model opposite="author" */ java.util.List getBooks(); } 其实只需要写上 get 方法 格式如下: /** * @model */ String getName(); Set 方法 EMF 会根据 get 方法来生成 创建 EMF 模型: 包资源管理器里有个 model 文件夹 选中反键 New -> Other ->Eclipse Modeling Framework -> EMF Model 如下图: 在 file 的地方输入模型名称,在输入的时候大家可以仔细看错误信息,需要的是以.genmodel 的文件,然后 Next 选择 Annotated Java Annotated Java 的意思就是说根据刚才咱们写的那四个接口中带有注释的 Java 代 码 来 创 建 , 也就是为刚才的四个接口生成模型,带有注释的 Java 代码就是在你写的接口上面和方法上面 加上了 /** * @model */ 这就是所谓的带有注释的 Java 代码 Next 选中 com.heming.emf.demo.library 包,然后 finish 就这样 EMF 模型就生成了,并且还生成了两个文件 library.genmodel、library.ecore 第二章:生成 EMF 模型代码 展开模型可以看到它的要素 这个产生器模型展示了一个根对象,描述了整个模型。这个模型对象的子节点描述了他们所 在的包,这些节点的子节点描述了类级别的东西(类,数据类型,包括枚举类型)。这些类 的 子 节 点 是 类 的 属 性 , 参 数 , 和 operations ; 枚 举 类 型 的 子 节 点 是 枚 举 值 这些属性控制代码生成器的行为。 如果你希望生成代码的代码中使用泛型,那么你的 JAVA 环境应该在5.0以上 通过右击一个模型对象一下,可以为它生成代码 下面就生成的代码 ,另外大家可以看上图,我选中的是紫色的包,那个就是对应咱们项目里 的 com.heming.gef.demo.library 这个包,选中它就是生成该包下所有的接口的实现代码 类接口和枚举类将被创建时(如果该模型从 ROSE 入口) 或已完成(如果该模型定义使用注释的 Java ),以及新的接口将一对已建立 为包本身和工厂。也将有两个新的软件包,以“impl”和“util”后缀,这 包含的接口和实现更多的实用工具类,和两种类型的文件清单 模型插件:“plugin.xml 中”和“的 MANIFEST.MF”。 如果您使用注释定义 Java 的 模 式 ,你也许能看到在 Problems view 会出现: “The import java.util.List is never used 。“这一警告是正常现象,不过它是不会组织你 进行下一步工作的 如果你改变了模型( 比 如 删 除 ),可以重新生成,并会作出任何修改,合并则可 能已经作出的代码。您也可以选择生成的通过右键点击模型的代码子集 包,类,或枚举对象,从弹出菜单中选择“Generate Model Code”。 第三章:生成一个模型的编辑器 一个全功能的 Eclipse 编辑器也可以生成任何模型。默认情况下,它分为两个插 件:1 “edit”插件包括适配器,提供一套有系统视图和执行命令为基础的模型编辑 对象;一个“editor”插件提供的编辑器和向导的界面。 第一种:在 Library.genmodel 中右键单击"Library" 的模型对象,并选 择"Generate Edit Code" 第二种:在 Library.genmodel 中 右 键 单 击“Library"的模型对象,并选择"Generate Editor Code" 经过上面的两个步骤 Package Explorer 中会多出"edit"和"edigor"后缀的项目 一般来说,如果你想生成模式,编辑和编辑插件一个步骤插件,您可以通过选择” "Generate All"来完成 这也将创造一个测试插件,使用的 JUnit 来测试模型中定义的操作,这些测试插 件还包括一个简单的例子类(LibraryTest)它展示了如何在一个独立的模式单独 的应用中加载和验证 该代码应被编译,因为它是自动生成的,应该重新编译时,它被更改 。 如果你已禁用的工作台偏好自动建设,可以启动手动编译: 从"Project" 菜单中选择"Build All" 我这里没取消自动编译,所以 Build All 是灰色 如果 Problems View 里没有 Error 那就成功了 接下来我们就要运行这些项目了 第四章:运行生成的 Editor 为了测试新的插件,一个 Eclipse 的第二个实例必须启动。插件将运行在这 工作台。 选择一个项目,然后选择 “Run As / Eclipse Application”,从“Run 菜单或工具 栏下拉。 等待 Eclipse 平台的第二个实例来了 。 调出 “Help/ About Eclipse SDK” 然后再对话框中点击 Installation Details 在 Plug - ins Tab 中你能找到第一个 eclipse 实例中的三个项目 Library 模型向导现在可以用于创建模型的新实例。 第五章:测试 打开“File/New/ Project...”对话框。 展开“General ”,然后选择“Project ”。点击“Next”按钮。 这个项目是用来测试的,按照一贯的手法就是在被测试的项目后面加个 test 点击"Finish"完成创建 右键单击该项目并选择“New/Other ..” 展开"Example EMF Model Creation Wizards"并且选择“Library Model"点击"Next" 输入模型库的文件名。请确保它结束了。“Library”的后缀。然后,单击“下一步” 按钮。 选择"Library"点击"Finish" 在新创建的模型库中打开主视图。 在此编辑器的根对象对应于 My.library 资源。它是在一个单一的库,对象 被选为向导中的模型对象。 展开“平台:/资源/ librarytest / My.library”资源看到“Library”的对象。选择 它。 如果属性的看法是不是已经显示 ,右键单击 “Library” 对象 ,并选择 “Show Properties View” 在 Properties 视图中的“Value”和"Name"属 性 ,为 Library 命一个名。 当你按下回车键主视图标签将被更新。 右键单击该库并选择“New Child/Writer”从弹出菜单中。一个新的 Writer 被添加 到 Library。 在属性视图中为 Writer 命名 同样,一本书可以被添加到该库。 所有这本书的属性和引用可以编辑在 Properties 视图,不过你得保存你之前的操 作,因为这样你才能从 Author 中选择作者 您可以保存,关闭,然后再重新打开该模型使用文本编辑器,如果你希望看到保 存的模型 XMI 格式。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档