启用EMF的自动生成UUID功能

简介:

缺省条件下,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的时候这个链接里的方法应该比较方便)

本文转自博客园八进制的博客,原文链接:启用EMF的自动生成UUID功能,如需转载请自行联系原博主。

相关文章
|
2月前
|
缓存 小程序 Android开发
mPaaS问题之iOS调用插件的时候提示没有配置mpaas. Config文件如何解决
mPaaS配置是指在mPaaS平台上对移动应用进行的各项设置,以支持应用的定制化和优化运行;本合集将提供mPaaS配置的操作指南和最佳实践,助力开发者高效管理和调整移动应用的设置。
60 1
|
3月前
|
API
QT中使用 WinExec API 参数不支持中文路径的解决办法
在QT中使用WinExec时,发现如果调用外部程序,如果路径或者参数含有中文路径,可能导致无法打开应用程序或者无法使用参数,解决办法,下面是简单的解决办法
151 0
|
5月前
|
iOS开发 MacOS Windows
Mac 去除自动生成.DS_Store文件
Mac 去除自动生成.DS_Store文件
74 0
|
8月前
IDEA如何自定义文件类型并自动生成默认代码
IDEA如何自定义文件类型并自动生成默认代码
126 0
|
11月前
Magisk模块:Prop修改工具
Magisk模块:Prop修改工具
806 0
|
前端开发 编译器 Swift
检测.a或.framework是否支持bitcode
检测.a或.framework是否支持bitcode
220 0
|
JavaScript Java Android开发
Win10系统下eclipse的基本配置 编码格式 classpath原理 import工作机制
eclipse是用来编译java文件的一个软件 国内也有汉化版,我也不知道该怎么上传……忘了从哪里搞来了 不过用了一段时间就还原原来的配置了因为网上的教程之类的方法都是英文版的 为了和网上的配套我也就用回了英文原版。
1931 0
EMF介绍系列(六、自定义命令)
EMF生成的应用程序里,用户的发出的每一条命令都是可以撤销(Undo)的,例如修改了产品的价格,按一下撤销按钮就能恢复原来的价格,当然还可 以通过重做(Redo)再回到新的价格。为了实现这个功能,应用程序里维护了一个用于存放命令的类似栈的数据结构(CommandStack),每一条执 行过的命令都被存放在那里,需要撤销时取出最近一条命令进行撤销。
1392 0