EMF提供了两类三种方式来校验EMF模型。
1> EMF ECore规则校验
2> Live校验
3> Batch校验
· EMF校验代码
这里用到的代码可以在EMF提供的例子中查看到。Example->EMF Validation Framework Plug-ins->General Validation Example)
· EMF ECore规则校验
主要由org.eclipse.emf.ecore.util.EObjectValidator来完成,主要校验EFeature和EAttribute(EXTLibraryPackageImpl.initializePackageContents())
或者,通过EOperation/EAnnotation添加操作来实现自定义[1]的校验。
如果在Ecore中设置的属性,需要有特殊的考虑,可以通过实现自定义的EValidator来代替EMF默认的EObjectValidator。注册方式如下:
// Register package validator EValidator.Registry.INSTANCE.put (theEcorePackage, new EValidator.Descriptor() { public EValidator getEValidator() { return EcoreValidator.INSTANCE; } });
可以通过下面两种方式来注册:
1) 在初始化ModelPackage时实现: org.eclipse.emf.ecore.impl.EcorePackageImpl.init()
2) 通过StartUp扩展点来实现: org.eclipse.ui.startup [2]
· Batch模型校验 & Live实时校验 [3][4]
主要是通过扩展点来注册,实现AbstractModelConstraint(#validate)校验类,并把该类添加到扩展点的constraint节点上:
需要注意的是,constraintProvider的package的Uri需要和模型中的package-uri对应。如图所示:
参考文章:
[1] 八进制-模型的验证 http://www.cnblogs.com/bjzhanghao/archive/2006/08/09/472607.html
官方EMF Validation Overview http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.emf.doc%2Freferences%2Foverview%2FEMF.Validation.html
[2] EMF Validation Adapter http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.emf.validation.doc/tutorials/validationAdapterTutorial.html
[3] 使用 EMF Validation 框架来验证 EMF 模型 http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-emfvldt/index.html
Validator Service http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.emf.validation.doc/tutorials/validationAdapterTutorial.html
相关推荐
EMF开发框架的入门资源。GEF用来做Eclipse的插件开发,用来实现具体某些特定功能的编辑器。
java EMF,图形开发框架。也可用作eclipse的插件开发.
基于Eclipse的模型框架 它是Eclipse MDA(Model Driven Architecture)的一个重要组成部分 是Eclipse中许多项目的基础 e g GEF EMF可以将模型转换成高效的 正确的 和易于定制的Java代码
EMF读取XML
包含3个文件: 微软emf文件格式详解.pdf emf.hlp (Enhanced Metafiles in Win32) emfexplorer_src.zip
EMF 自学笔记
eclipse开发中EMF框架快速入门,很简单。。
矢量格式转换程序,基于JAVA实现的SVG转EMF的的示例代码,下载后导入到eclipse即可运行。
emf文件是windows的一种打印格式,该资源可以对emf文件进行文本提取和推送打印机打印以及转换成图像
emf转bmpemf
This is the API specification of the FreeHEP VectorGraphics package for converting emf to svg.
EMF图片转为JPG/PNG 需安装GraphicsMagick 提供实例代码
文件格式 EMF (Enhanced MetaFile) ——是在印刷工业中应用与Windows操作系统的文件格式。实际上EMF是原始WMF(Windows metafile)格式的32位版本。EMF格式的产生是为了解决WMF在印刷行业中的不足。EMF是设备独立性...
使用freehep将EMF转换为png,项目下载导入eclipse即可运行。
emf和wmf文件的互转,有源码,供大家学习,交流!
EMF和BMP文件格式的相互转换:BOOL CConvertEMFToBMP::ConvertBMPToEMF(const char*pszBMPFile,const char* pszEMFFile)
EMF(Eclipse建模框架)中文学习资料
eclipse插件, EMF api 文档,eclipse插件, EMF api 文档
\EMF,用于eclipse实现可视化 的插件
EMF图片转PNG图片