EMF查询框架主要由 org.eclipse.emf.query 这个plugin提供,创建并执行一个EMF查询,大概分为如下几步:
1,创建查询数据源;
2,构造EObjectCondition查询条件;
3,使用EMF查询框架提供的SELECT对象和UPDATE对象编写查询和更新语句;
4,执行语句得到查询或更新结果;
5,对执行结果进行检测,确保执行过程中没有发生异常。
EMF提供了两套Query对象,SELECT和UPDATE,分别用于模型的查询操作和更新操作。
SELECT对象的类图关系如下:
类似SQL语句的from和where从句,SELECT对象的构建需要FROM和WHERE两个对象,分别代表查询范围和查询约束条件(EObjectCondition)。
除了这两个对象之外,SELECT对象还可能包含下参数信息:
maximumResultSize:设置查询的最大返回值;
cancellable:查询是否可撤销,默认值为true;
progressMonitor:查询监听器。
构建EMF SELECT查询代码大致如下:
其中FROM对象的构造参数可以是单一的EObject对象,也可以是Collection集合,还可能是IEObjectSource对象实例。
较为复杂的是WHERE对象的构建,或者说是其构造参数EObjectCondition约束条件的构建。
EMF查询框架预定义很多查询条件类继承至EObjectCondition,然而熟练的使用这些类并不容易,
还有一种方法是通过OCL约束表达式构造 BooleanOCLCondition 对象,如果熟练OCL语法,用此种方式相对比较容易。
但也有不足,就是OCL的解析速度相对较慢。
构造参数中,还可以不指定约束的上下文(即第3个构造参数为null),这样任何EMF实体如果含有category属性都会在该实体类上执行
"self.category <> BookCategory::Mystery implies self.pages < 200"约束检测。
当查询条件比较多的时候,可以通过EMF的核心查询框架将多个查询条件进行组合:
UPDATE对象继承至SELECT对象,除此之外还是用了SET对象进行赋值操作:
构建EMF UPDATE操作代码也与SELECT类似,只是要在构造参数中添加SET对象来为实体赋值:
分享到:
相关推荐
EMF 自学笔记
使用迷宫以及emf文件的生成加载技术制作的迷宫,其实就是根据http://www.comprg.com.cn/detail.asp?hw_id=7061上的说明做出来的工程。 程序中迷宫中的小人可以自由移动,胜利或失败之后还会有绚丽的提示。
EMF学习完整教程,EMF: Eclipse Modeling Framework Second Edition
文件格式 EMF (Enhanced MetaFile) ——是在印刷工业中应用与Windows操作系统的文件格式。实际上EMF是原始WMF(Windows metafile)格式的32位版本。EMF格式的产生是为了解决WMF在印刷行业中的不足。EMF是设备独立性...
emf文件是windows的一种打印格式,该资源可以对emf文件进行文本提取和推送打印机打印以及转换成图像
EMF读取XML
包含3个文件: 微软emf文件格式详解.pdf emf.hlp (Enhanced Metafiles in Win32) emfexplorer_src.zip
emf和wmf文件的互转,有源码,供大家学习,交流!
矢量格式转换程序,基于JAVA实现的SVG转EMF的的示例代码,下载后导入到eclipse即可运行。
EMF图片转为JPG/PNG 需安装GraphicsMagick 提供实例代码
emf转bmpemf
This is the API specification of the FreeHEP VectorGraphics package for converting emf to svg.
基于Eclipse的模型框架 它是Eclipse MDA(Model Driven Architecture)的一个重要组成部分 是Eclipse中许多项目的基础 e g GEF EMF可以将模型转换成高效的 正确的 和易于定制的Java代码
使用freehep将EMF转换为png,项目下载导入eclipse即可运行。
EMF-IncQuery-附加组件模型查询框架。 该存储库中的所有代码都可以在Eclipse Public License v1.0下获得: :
EMF和BMP文件格式的相互转换:BOOL CConvertEMFToBMP::ConvertBMPToEMF(const char*pszBMPFile,const char* pszEMFFile)
eclipse插件, EMF api 文档,eclipse插件, EMF api 文档
微软的EMF specification,研究EMF文件格式必读。
EMF图片转PNG图片
\EMF,用于eclipse实现可视化 的插件