您的位置: 汕尾资讯网 > 科技

胡长城-围绕EMF探索之Validation组件图

发布时间:2019-09-13 19:56:35

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代码的时候起到一定辅助作用。

孩子不爱吃饭的4大原因
小孩干咳嗽吃什么好的快一点
宝宝感冒
宝宝脸色发黄是什么原因
猜你会喜欢的
猜你会喜欢的