快速业务通道

使用EMF进行元建模:生成具体、可重用的Java代码片段 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
件了解要为哪个 EClass 创建什么属性。

构建并启动 the Editor Metamodel 插件

I在构建步骤中,我们将创建元模型 genmodel 并构建模型和编辑器项目。右键单击 EcoreX 项目并选择 New > Other > Eclipse Modeling Framework > EMF Model。(对于 EMF V2.5+ [Galileo, Helios],则应选择 New > Other > Eclipse Modeling Framework > EMF Generator Model。)可以提供一个名称或接受默认的名称 EcoreX.genmodel。EcoreX 模型应该被预选择为 genmodel 的基模型。单击 Load 验证 EcoreX.ecore 元模型。

图 3. 新 EMF 模型

使用EMF进行元建模:生成具体、可重用的Java代码片段(4)

时间:2010-11-03 IBM Ken McNeill

当要求指定要生成和从其他生成器模型引用的包时,选择 Root packages 下面的 EcoreX 包和 Referenced generator models 下面的 Ecore。

现在,向导将为元模型创建一个 genmodel。突出显示 genmodel 中的顶级元素之后,从上下文菜单中选择 Generate All,这样可以自动生成关联的代码。根据在 genmodel 中配置的行为,这将生成 4 个 Eclipse 项目。本文不会关注 .test 项目,所以您可能不希望生成这个插件。

现在我们继续启动步骤。在大多数 Eclipse 教程中,都会要求您在单独的 Eclipse 过程中启动所开发的插件。在本节中,我们将采用一种不同的方法:我们将在当前 Eclipse 和工作区中激活插件。这样更容易将预构建的元模型与下一节中具体的模型开发集成。为此:

双击 EMFX plugin.xml 打开插件配置编辑器。

单击 Exporting 选项卡下的 Export Wizard。

选择基本的建模插件和两个编辑器插件。

在 Destination 选项卡下,选择 Eclipse 安装目录,或托管存储库(如果可用)。

图 4. 导出

注意:如果使用 –console 选项启动 Eclipse,您可以使用 OSGi 命令控制台动态地启动、停止、更新和刷新插件(插件组),无需重新启动 Eclipse 或启动一个单独的实例。

单击 Finish 时,会自动构建生成的插件 JAR 文件,并自动将其复制到插件目录。此时,您需要重新启动 Eclipse,激活新插件。现在我们已经准备好启动编辑器插件了,创建一个新项目来保存我们的具体模型(我们的模型命名为 Test2)。

在这个新项目中,导航到 New > Other Example EMF Model Creation Wizards > Ecorex Model 并提供一个模型名称。注意:在 EMF 的最新版本 (V2.5+) 中,具体模型的文件扩展名必须被设为 .ecore,而不是 .ecorex;否则,这个具体的 genmodel 将不能在后续步骤中被成功创建。选择 EPackageX 元素。您现在有了一个空的具体模型。后续小节将讨论如何构建这些编程模型元素;完成后的文件 My.ecore 可以在 参考资料 部分找到。

使用EMF进行元建模:生成具体、可重用的Java代码片段(5)

时间:2010-11-03 IBM Ken McNeill

建模具体的测试模型

在本节中,我们将对一个具体的 Java 类(EClassX 的实例)进行建模,这个类包含两个具体的方法,我们将对这两个方法的实现进行建模。第一个示例方法接受 String 参数消息,并输出消息和一个时间戳 — 这有利于调试消息。以下是期望结果的表示。

清单 1. printTimestampMessage

void printTimestampMessage(String message) {   System.out.print(message);   System.out.print("; Timestamp= ");   System.out.println(System.currentTimeMillis()); } 

第二个示例接受 3 个基于日期的参数,并返回一个数字值,表示该日期对应的是星期几。

清单 2. getDayOfWeek

int getDayOfWeek(int year, int month, int date) {   int result;   Calendar calendar = Calendar.getInstance();   calendar.set(y

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号