欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

EMF校验框架

程序员文章站 2022-04-18 15:21:40
...

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节点上:
EMF校验框架
            
    
    博客分类: eclipse_V3.7emf EMFValidator 

 

需要注意的是,constraintProvider的package的Uri需要和模型中的package-uri对应。如图所示:
EMF校验框架
            
    
    博客分类: eclipse_V3.7emf EMFValidator 
 

参考文章:

[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

[4] Live校验 http://cutesunshineriver.iteye.com/blog/1186298

  • EMF校验框架
            
    
    博客分类: eclipse_V3.7emf EMFValidator 
  • 大小: 27.2 KB
  • EMF校验框架
            
    
    博客分类: eclipse_V3.7emf EMFValidator 
  • 大小: 42.9 KB
相关标签: EMF Validator