linux emf文件,使用EMF建立模型并生成Java代码

EMF实际上定义了2种meta model,分别称为Ecore和Genmodel。Ecore包含了模型的定义,我们在创建EMF模型的时候,也是通过新建和编辑Ecore文件来进行。Genmodel包含了自动生成Java代码(模型的POJO类)的信息,比如怎样生成POJO,生成的POJO放到哪里。当对Ecore进行修改时,Genmodel自动获得更新。

创建一个EMF项目(或者plugin项目也可),然后建立一个Ecore模型。

7eda5aa73fb4a4b3d8bd73df9e1e3755.gif

打开Properties视图,自行定义model的名称,namespace prefix,以及namespace url。

018407cd1fcf5c4bc5272372617cc4b2.gif

右键点击新建好的csdn模型,添加child。

child有5种支持类型。

EAnnotation是与Teneo结合,用作和hibernate以及数据库schema之间的mapping;

EClass是指模型里面的一个类;

EData Type代表数据的类型,比如int,float,或者java.util.Date

a820eef251665ccf280b842e7ff3156f.gif

笔者创建了一个叫Blog的EClass,通过Properties视图可以修改这个EClass的属性,通过右击Blog,可以添加新的child或者sibling。

其中EReference是一个指向其他EClass的链接,比如可以用来定义Blog类中包含的类成员变量,或者可以理解为数据库中的foreign key。

53ada82a86618179caa18f56f3ee9d92.gif

在Ecore创建完成后,新建一个genmodel (EMF Generator Model),在“New EMF Generator Model”这一步选择Ecore model

7743aa1496a3c836f69aceb7cc3bfba8.gif

选择刚才建立的csdn.ecore,然后点击Load

09a002e8678cf8d1c8750a9ab0b51385.gif

9ef1463a35f3278509e4a1da875e005f.gif

点击Finish后,genmodel生成完毕。

在Properties视图中可以配置genmodel,比如Base Package可以定义将生成的代码放到哪个路径底下。

6f3c0a7ef1ec1d3ae7a30fca63582734.gif

右击生成的genmodel,可以选择生成各种代码,其中“Generate Model Code”会生成模型类和其他相关Java类。

6bb9e329ebf65ce859e09e60590dfad8.gif

生成的Java代码分为3个包,model.csdn,model.csdn.impl,model.csdn.util。

model包里面主要有所有EClass的接口文件(所有接口均继承自EObject,因此所有的EClass都是EObject的子类),以及非常重要的Factory文件(用来创建EClass文件的实例,Factory类的eInstance.createXXX()方法是创建实例的唯一方法);

model.impl包里面主要是model包中接口文件的具体类;

model.util包里面有AdapterFactory。0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值