使用EMF建立模型并生成Java代码
2011-10-08 05:58
471 查看
接上文:/article/7869567.html
EMF实际上定义了2种meta model,分别称为Ecore和Genmodel。Ecore包含了模型的定义,我们在创建EMF模型的时候,也是通过新建和编辑Ecore文件来进行。Genmodel包含了自动生成Java代码(模型的POJO类)的信息,比如怎样生成POJO,生成的POJO放到哪里。当对Ecore进行修改时,Genmodel自动获得更新。
创建一个EMF项目(或者plugin项目也可),然后建立一个Ecore模型。
打开Properties视图,自行定义model的名称,namespace prefix,以及namespace url。
右键点击新建好的csdn模型,添加child。
child有5种支持类型。
EAnnotation是与Teneo结合,用作和hibernate以及数据库schema之间的mapping;
EClass是指模型里面的一个类;
EData Type代表数据的类型,比如int,float,或者java.util.Date
笔者创建了一个叫Blog的EClass,通过Properties视图可以修改这个EClass的属性,通过右击Blog,可以添加新的child或者sibling。
其中EReference是一个指向其他EClass的链接,比如可以用来定义Blog类中包含的类成员变量,或者可以理解为数据库中的foreign key。
在Ecore创建完成后,新建一个genmodel (EMF Generator Model),在“New EMF Generator Model”这一步选择Ecore model
选择刚才建立的csdn.ecore,然后点击Load
点击Finish后,genmodel生成完毕。
在Properties视图中可以配置genmodel,比如Base Package可以定义将生成的代码放到哪个路径底下。
右击生成的genmodel,可以选择生成各种代码,其中“Generate Model Code”会生成模型类和其他相关Java类。
生成的Java代码分为3个包,model.csdn,model.csdn.impl,model.csdn.util。
model包里面主要有所有EClass的接口文件(所有接口均继承自EObject,因此所有的EClass都是EObject的子类),以及非常重要的CsdnFactory文件(用来创建EClass文件的实例,Factory类的eInstance.createXXX()方法是创建实例的唯一方法),CsdnPackage文件(包含meta model每个class,每个class的每个feature,每个enum,每个data type的信息,注意这些信息是创建hibernate mapping文件的必备信息)
model.impl包里面主要是model包中接口文件的具体类;
model.util包里面有AdapterFactory。
<待续>
EMF实际上定义了2种meta model,分别称为Ecore和Genmodel。Ecore包含了模型的定义,我们在创建EMF模型的时候,也是通过新建和编辑Ecore文件来进行。Genmodel包含了自动生成Java代码(模型的POJO类)的信息,比如怎样生成POJO,生成的POJO放到哪里。当对Ecore进行修改时,Genmodel自动获得更新。
创建一个EMF项目(或者plugin项目也可),然后建立一个Ecore模型。
打开Properties视图,自行定义model的名称,namespace prefix,以及namespace url。
右键点击新建好的csdn模型,添加child。
child有5种支持类型。
EAnnotation是与Teneo结合,用作和hibernate以及数据库schema之间的mapping;
EClass是指模型里面的一个类;
EData Type代表数据的类型,比如int,float,或者java.util.Date
笔者创建了一个叫Blog的EClass,通过Properties视图可以修改这个EClass的属性,通过右击Blog,可以添加新的child或者sibling。
其中EReference是一个指向其他EClass的链接,比如可以用来定义Blog类中包含的类成员变量,或者可以理解为数据库中的foreign key。
在Ecore创建完成后,新建一个genmodel (EMF Generator Model),在“New EMF Generator Model”这一步选择Ecore model
选择刚才建立的csdn.ecore,然后点击Load
点击Finish后,genmodel生成完毕。
在Properties视图中可以配置genmodel,比如Base Package可以定义将生成的代码放到哪个路径底下。
右击生成的genmodel,可以选择生成各种代码,其中“Generate Model Code”会生成模型类和其他相关Java类。
生成的Java代码分为3个包,model.csdn,model.csdn.impl,model.csdn.util。
model包里面主要有所有EClass的接口文件(所有接口均继承自EObject,因此所有的EClass都是EObject的子类),以及非常重要的CsdnFactory文件(用来创建EClass文件的实例,Factory类的eInstance.createXXX()方法是创建实例的唯一方法),CsdnPackage文件(包含meta model每个class,每个class的每个feature,每个enum,每个data type的信息,注意这些信息是创建hibernate mapping文件的必备信息)
model.impl包里面主要是model包中接口文件的具体类;
model.util包里面有AdapterFactory。
<待续>
相关文章推荐
- GMF的Logic照猫画虎之二:使用emf生成模型代码
- 使用idea和wsdl生成java代码
- SpringBoot系列: 使用MyBatis maven插件自动生成java代码
- Java语言使用注解处理器生成代码——第二部分:注解处理器
- 使用cxf生成webservice java代码
- java使用JNI调用C++代码(vs2010生成dll文件)
- java GitHub Desktop 使用方法(建立Repository,publish,push ,commit,synchronization等, 同步代码更改,同步项目)
- 使用Axis插件来从WSDL文件生成代码时"An error occurred while completing process -java.lang.reflect.InvocationTargetException"的错误
- 使用axis2,根据WSDL生成java客户端代码
- Java使用Flying Saucer实现HTML代码生成PDF文档
- 利用CXF wsdl2java生成java代码以及使用Apache Axis 1.4 wsdl2java生成java代码
- CXF学习之旅(三) - 使用Maven根据WSDL生成生成Java代码
- Java语言使用注解处理器生成代码 —— 第一部分:注解类型
- Java使用wkhtmltox实现HTML代码生成PDF文档或者图片
- 使用ant批量将corba的idl文件生成java代码
- 使用Swagger生成JAVA Mock Server(Springboot)代码
- starUML建立模型及生成代码框架
- 03_Android NDK中C语言调用Java代码,javah的使用,javap的使用以及生成签名,Android.mk的编写,C代码的编写
- .net中使用Sandcastle(类似java中的jdoc)生成代码帮助文档
- 使用FreeMaker生成java代码