围绕EMF探索(4)之Validation组件图

来源:互联网 发布:4k视频剪辑软件 编辑:程序博客网 时间:2024/05/16 04:41


前索引:围绕EMF探索(1)之存储和查询
前索引:围绕EMF探索(2)之再探查询组件
前索引:围绕EMF探索(3)之初探OCL

围绕EMF探索(4)之Validation组件图

       EMF Validation Framework
提供了对EMF eObjects的校验框架。这种校验框架支持两个层面的:第一个层面可以对一个集合内的eObjects进行校验,第二个层面可以时时地对对象内的属性(值)变更进行校验。

       这几天利用有限的空余时间在钻研EMF Validation Framework。原以为Validation会比较简单(使用Validation倒是比较简单),其实却不然。为了弄清楚Validation内部实现类及构架机制,着实耗费了不少时间。

       EMF的Validation Framework使用是很比较简单的,最简单的方式可以通过扩展org.eclipse.emf.validation.constraintProviders扩展点,通过构造特定的AbstractModelConstraint实现类来对eObjects进行校验。但EMF Validation Framework的结构是非常复杂的,这也是由于Validation试图提供更加复杂全面的检验框架:
(1)       提供对Batch Validator和Live Validator的支持
(2)       提供对多种声明Constraint的方式支持,目前支持Java类的方式,就是前面提到的通过实现用户自己的AbstractModelConstraint类;支持EMF Constraint和灵活的OCL Constraint方式。
(3)       提供了较为简单的Validation Adaptor方式进行校验
(4)       试图提供一个Validation Client Context来规避不必要的Constraint
(5)       提供了便于管理和维护的Validation Service类
 
       在eclipse所提供的帮助站点上,提供了对Validation Framework的简要介绍,以及简单的Examples。
       http://help.eclipse.org/help32/topic/org.eclipse.emf.validation.doc/tutorials/validationTutorial.html
       但是这个tutorial并没有对EMF Validation进行太深入地介绍,仅仅只是介绍了比较浅显的“How to use it”,而没有深入的介绍Validation的构架、对象逻辑等等。
 
       为了便于理解EMF Validation,将主要的Component Diagram绘制如下。这个组件图要抽象了很多,其实里面的组件有些是相当的复杂的。比如Constraint Parser和Model Constraint。
 

       时间不早了,有关组件的详细解释先不写了,留着下篇吧。不过这个组件图应该可以帮助大家在阅读Validation代码的时候起到一定辅助作用。

原创粉丝点击