`
何足道
  • 浏览: 33253 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

使用EMF建立模型并生成Java代码

emf 
阅读更多

接上文:http://blog.csdn.net/qinjienj/article/details/6851112

 

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代码生成Merge

    这些模型可以被用来自动生成功能丰富的Java代码,从而减少了手动编写代码的工作量。EMF通过XMI(eXtensible Metadata Interchange)格式来存储模型,这使得模型可以跨工具和平台交换。 在“Merge”这个上下文中,...

    一种CIM模型的Java代码生成方法.pdf

    本文对IEC 61970标准定义的CIM模型进行了介绍,对EMF进行了简单的说明,对CIM模型转换为EMF模型并生成Java代码进行了详细的说明,并给出了在进行CIM模型和CIM XML使用过程中的建议,为CIM模型的落地化实用提供了参考...

    java开发工具EMF插件

    2. **代码生成**:一旦模型定义完成,EMF可以自动生成Java类,这些类与模型一一对应,提供了丰富的API供开发者进行操作。此外,还可以生成XML序列化代码,使模型能够在持久化存储和传输中使用。 3. **模型操作**:...

    EMF开发过程整合资料

    3. **生成代码(Code Generation)**:EMF可以根据元模型自动生成Java类和其他语言的代码,这些代码提供了对模型实例的访问和操作接口。 4. **序列化(Serialization)**:EMF支持将模型实例序列化为XML格式,方便...

    emf eclipse

    1. "使用 EMF 进行元建模:生成具体、可重用的 Java 代码片段" 这篇文档可能详细讲解了如何使用EMF的代码生成功能,将元模型转换为可执行的Java代码,实现模型到代码的映射,提高代码的标准化和可维护性。...

    java EMF,图形开发框架。也可用作eclipse的插件开发

    ANTLR能生成Java、C#、Python等多种语言的解析器和词法分析器,与EMF结合时,可以用于解析DSL或自定义语法,将输入的文本转换为EMF模型,进一步增强EMF的灵活性和扩展性。 在Eclipse插件开发中,EMF扮演了关键角色...

    java源码结构-genModelAddon:EMF插件,用于生成源结构,以将模型生成的代码与覆盖的代码分开

    在使用EMF进行模型驱动开发时,模型会自动生成相应的Java源代码,这些代码通常包含数据结构和基本操作。然而,当开发者需要对生成的代码进行扩展或定制时,往往需要在生成的代码基础上添加额外的功能。`...

    emf-runtime,eclipse modeling framework

    这个环境使得开发者能够在应用程序中使用EMF模型,而无需关心底层实现的复杂性。 描述中提到的"eclipse plugin 最新 emf-runtime 版本2.10.1"表明这是一个针对Eclipse IDE的插件,用于支持EMF 2.10.1版本的开发工作...

    emf教程入门和插件

    EMF的一大优点是它可以自动生成Java代码,这些代码对应于你用Ecore定义的模型。这减少了手动编写重复代码的工作,提高了开发效率。 5. **运行时环境** EMF提供了运行时环境(EMF Runtime),使得模型可以在应用...

    EMF XSD SDK

    3. **Code Generation**:EMF XSD SDK可以根据XSD文件自动生成Java代码,这些代码可以直接用于解析和生成XML文档。 4. **Validation**:SDK提供了XSD验证机制,确保XML实例文档符合指定的XSD模式,有助于确保数据的...

    使用EMF开发基于模型的Eclipse插件

    Eclipse Modeling Framework (EMF)是Eclipse 的一个基于Java语言的模型构建框架,它通过提供通用 的模型框架和自动代码生成工具,极大地简化了基于结 构化模型的Eclipse插件或者应用程序的开发

    EMF.rar_emf

    - **代码生成与逆向工程(Code Generation & Reverse Engineering)**:从元模型生成Java代码,反之亦可将Java代码逆向工程为元模型。 3. **EMF的使用场景** - **软件建模**:EMF广泛应用于UML(统一建模语言)和...

    Eclipse开发使用GEF和EMF(IBM 红皮书)中英文对照版

    4. EMF模型的生成与使用:讲解如何定义XML Schema,由EMF自动生成Java类,以及如何在代码中操作这些模型对象。 5. 数据持久化:介绍如何利用EMF的持久化服务将模型数据保存和加载到文件中。 6. 插件开发:讲解如何在...

    EMF读取XML

    - 一旦模型创建完成,EMF会生成Java代码,这些代码提供了对模型实例的访问和操作。 3. **XML绑定(XMI和XSD)** - XMI(XML Metadata Interchange)是EMF默认的数据交换格式,用于将Ecore模型转换为XML。 - XSD...

    emf-sdo-xsd-SDK-2.3.1

    在这个SDK中,你可以找到工具和库,帮助开发者将XSD文件转换为EMF模型,然后利用这个模型生成Java代码,这样就能在程序中方便地处理XML数据。 该SDK的使用主要包括以下几个关键知识点: 1. **元模型创建**:使用...

    Java组件emf sdo runtime 2.2.0.rar

    EMF是基于模型的软件开发框架,它提供了生成Java代码、运行时库和XML序列化的能力,常用于构建复杂的、数据驱动的应用程序。而SDO则是一种数据访问API,旨在提供对各种数据源的统一访问。 在Java编程中,EMF允许...

    emf-runtime-2.7.2

    2. **代码生成**:基于元模型,EMF可以自动生成Java类和其他相关代码,这些代码可以直接在应用程序中使用。 3. **持久化**:EMF支持模型的持久化,可以将模型数据存储为XML文件或其他格式。 4. **模型转换**:EMF...

    eclipse插件开发EMF api 文档

    5. **代码生成**:EMF可以自动生成Java代码,基于元模型创建对应的Java类。`GeneratorModel`和`Acceleo`是常用的代码生成工具,它们能极大地提高开发效率。 6. **事件和监听器**:EMF提供了事件机制,通过注册监听...

Global site tag (gtag.js) - Google Analytics