原文:http://www.cnblogs.com/bjzhanghao/archive/2008/07/24/1250873.html
缺省条件下,EMF不会为每个对象维护一个唯一的id,这在一些情况下不太方便,例如要在web环境下编辑一个EMF模型实例,通常需要在URL里
传递对象的id以便确定目标。
有两种方式解决这类问题。第一种是在模型里给每个对象增加一个id属性,并维护使其保持唯一,例如在XXXFactory的createXXX()
方法里为这个属性赋值。另一种方式是借助EMF的功能。其实EMF的XMIResource维护了一个id与对象的映射表,并且会为每个新创建的对象自动
赋值,只要稍微设置一下就可以启用这个功能,具体的方法如下。
1. 在xxx.genmodel里选中package节点,在属性视图里把Resource Type属性的值设置为XMI。
2. 重新生成代码,EMF生成的代码里会比原来多出XXXResourceImpl.java文件。
3. 在XXXResourceImpl.java里,覆盖useUUIDs()方法,让其返回true(缺省返回的是false)。
4. 重新生成代码。(删除以前的Manifest.MF和plugin.xml文件以便这两个文件能得到更新)
这样,如果用文本方式查看新创建的模型实例文件,会发现每个对象都多出一个xmi:id属性,如
xmi:id="_gitpslkoEd2PdI7FPnuunA"。要在程序里使用这个id,只需要用resource.getId(eobject)
即可得到,其中resource可以通过eobject.eResource()很方便的获得。
参考链接:
How
To Enable UUID In EMF Generated Model To Get Copy&Paste Working
(这
个链接里的方法太麻烦了,但功效一样。)
Eclipse
GMF - Enabling UUIDs in Semantic model - The Simplest Way
(用GMF的时候这个
链接里的方法应该比较方便)
分享到:
相关推荐
这些模型可以被用来自动生成功能丰富的Java代码,从而减少了手动编写代码的工作量。EMF通过XMI(eXtensible Metadata Interchange)格式来存储模型,这使得模型可以跨工具和平台交换。 在“Merge”这个上下文中,...
要为EMF模型启用UUID,你需要进行以下步骤: 1. **定义模型元素的UUID属性**: 在你的EMF模型(.ecore文件)中,为需要拥有UUID的类添加一个新的属性,例如`uuid`。在Ecore建模工具中,你可以通过右键点击类并选择...
Eclipse_EMF_JET_自动代码生成技术入门
3. **Code Generation**:EMF XSD SDK可以根据XSD文件自动生成Java代码,这些代码可以直接用于解析和生成XML文档。 4. **Validation**:SDK提供了XSD验证机制,确保XML实例文档符合指定的XSD模式,有助于确保数据的...
- **自动生成代码**:基于定义的模型,EMF能够自动生成相应的Java代码,从而大大减轻了开发者的负担。 - **高级编辑器支持**:EMF还支持图形化编辑器,帮助开发者更直观地操作模型数据。 **1.1.3 文档和资源** EMF...
EMF的核心功能包括:模型定义、代码生成、模型编辑、模型验证、模型转换、序列化和反序列化。通过EMF,开发者可以创建高度可定制的领域特定语言(DSLs)和图形用户界面(GUIs),从而极大地提高了开发效率和软件质量...
1. "使用 EMF 进行元建模:生成具体、可重用的 Java 代码片段" 这篇文档可能详细讲解了如何使用EMF的代码生成功能,将元模型转换为可执行的Java代码,实现模型到代码的映射,提高代码的标准化和可维护性。...
- 可以通过Eclipse的EMF插件自动生成Ecore模型,或者手动编写.xmi文件来定义模型。 - 一旦模型创建完成,EMF会生成Java代码,这些代码提供了对模型实例的访问和操作。 3. **XML绑定(XMI和XSD)** - XMI(XML ...
2. **代码生成**:一旦模型定义完成,EMF可以自动生成Java类,这些类与模型一一对应,提供了丰富的API供开发者进行操作。此外,还可以生成XML序列化代码,使模型能够在持久化存储和传输中使用。 3. **模型操作**:...
它可能包含示例代码,帮助开发者理解和使用EMF API,以便在Win32环境中生成或处理EMF图像。 **emfexplorer_src.zip**:这是一份源代码压缩包,很可能包含了一个EMF文件浏览器或分析工具的源代码。通过分析和运行这...
电磁场漏洞 代沟模式工具 EMF Loophole 是一个与EMF 代码生成挂钩的工具,可帮助您实现代沟模式。 这种模式是关于将生成的代码和手写的代码分离到两个单独的类中... 然后,选择适合您的“ EMF漏洞”功能并单击“ Finis
2. **代码生成**:基于元模型,EMF可以自动生成Java类和其他相关代码,这些代码可以直接在应用程序中使用。 3. **持久化**:EMF支持模型的持久化,可以将模型数据存储为XML文件或其他格式。 4. **模型转换**:EMF...
- **模型的实现**: 定义了 EMF 模型后,可以通过 EMF 的代码生成工具自动生成相应的 Java 类。这些类实现了 EMF 的接口,使得模型可以被持久化到文件系统或者数据库中,并且支持模型之间的关联和引用。 - **数据存储...
4. EMF模型的生成与使用:讲解如何定义XML Schema,由EMF自动生成Java类,以及如何在代码中操作这些模型对象。 5. 数据持久化:介绍如何利用EMF的持久化服务将模型数据保存和加载到文件中。 6. 插件开发:讲解如何在...
2. **EMF代码生成**:学习如何利用EMF自动生成Java代码,包括数据模型的访问层、持久化层和业务逻辑层,以及如何在实际项目中集成这些代码。 3. **数据持久化**:了解EMF如何支持XML和其他形式的持久化,包括使用...
EMF的一大优点是它可以自动生成Java代码,这些代码对应于你用Ecore定义的模型。这减少了手动编写重复代码的工作,提高了开发效率。 5. **运行时环境** EMF提供了运行时环境(EMF Runtime),使得模型可以在应用...
EMF是一个Java框架,其核心功能是代码生成,旨在帮助开发者基于结构化模型快速构建工具和其他应用程序。无论你是对面向对象建模有深厚理解的开发者,还是对此不太熟悉的新手,EMF都能以较低的学习成本提供高效、准确...