脱离eclipse的插件环境使用EMF模型

本文介绍如何在不依赖Eclipse插件环境下使用EMF模型。重点是处理名为MyBak.model的文件,并确保在运行EmployManager应用时,正确引入所需的三个jar文件。
摘要由CSDN通过智能技术生成
    本文是一个简单的案例,讲解如果脱离eclipse的插件环境使用EMF建模后的生成代码。
EMF的建模过程使用的是eUML2, 该程序为eclipse插件, 支持在eclipse环境中构建,生成EMF模型文件。
    eUML2 下载网址为 www.soyatec.com. Eclipse update 地址为
 
1 创建Empty EMF 项目
 
2 在新建对话框中选择EMF Class Diagram, 创建eUML2的建模图表文件。
 
3 模型例子如下,成个模型的入口为Company, Company有雇佣和解雇员工的权力。Employee继承自Person,提供有别于普通人定义的薪水属性。
 
要注意的地方是,每个类的属性中不要选中 Is an interface 选项,否则只会生成模型的定义接口,不会生成具体的实现类。(如下图)
 
4 在新建对话框中,选择EMF Model, 创建EMF 模型文件
 填写文件的名字和存放地址,文件名后缀必须是genmodel
 
选择从Ecore model文件导入模型。
 
在使用eUML2构建模型图表后,会生成.ecore文件。其中保存的EMF模型的相关信息,按照下图导入该文件即可。
 
5 生成.genmodel文件后,打开该文件,右键单击,选择Generate Model Code,即会根据模型信息生成可供使用的java文件。
 
同样,在设计EMF 模型的editor中,在右键菜单中,同样会出现生成代码的选项。在本文中,只生成模型代码,因为并不使用其他跟eclipse开发环境相关的功能。(如editor等)
 
6 生成的代码如下图红框部分所示。Model部分是模型的定义接口部分;model.impl是模型的实现部分;model.util提供了一些工具类。
 
 
7 上图中file包中的EmplyManager类,进行相关持久化的工作。Observer提供了一个监听资源变化的观察者。
 
package  file;

import  java.io.IOException;
import  java.util.ArrayList;
import  java.util.Iterator;
import  java.util.List;

import  model.Company;
import  model.Employee;
import  model.ModelFactory;
import  model.ModelPackage;

import  org.eclipse.emf.common.notify.Adapter;
import  org.eclipse.emf.common.util.URI;
import  org.eclipse.emf.ecore.EPackage;
import  org.eclipse.emf.ecore.resource.Resource;
import  org.eclipse.emf.ecore.resource.ResourceSet;
import  org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import  org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;

public   class  EmployManager  {

    String file 
= "MyBak.model";

    
private List<Company> companies;

    
public EmployManager() {
        companies 
= load();
    }


    
public List<Company> getCompany() {
        
return companies;
    }


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值