使用 EMF Validation 框架来验证 EMF 模型
2010-03-03 00:00:00 来源:WEB开发网第四步 将定义好的 Constraint 绑定到应用程序
到目前为止,我们已经定义了一个约束并且将它注册到验证服务。接下来我们需要把这个约束绑定到应用程序,让应用程序知道它的存在。清单 5 介绍了如何通过定义一个 constraintBindings 的扩展点来实现。
清单 5. 定义一个 constraintBindings 的扩展点
<extension
point="org.eclipse.emf.validation.constraintBindings">
<clientContext
default="false"
id="emf.validation.example.libraryContext">
<selector class="emf.model.library.validation.constraints.ValidationDelegateClientSelector"/>
</clientContext>
<binding
context="emf.validation.example.libraryContext"
category="emf.validation.example.library"/>
</extension>
可以看到,在进行约束绑定时我们首先要定义一个客户端上下文(client context),这通过定义一个对象选择器(IClientSelector)来限定上下文所包含的模型对象集合。接下来再定义用来检查这些模型对象数据的约束,也就是我们在前面所定义的用来检查图书馆对象名称是否为空的约束。
第五步 通过 validation service 来调用 batch constraint
完成上面这些步骤后,我们可以通过验证服务来调用约束对模型进行验证,见清单 6 的代码。
清单 6. 调用约束对模型进行验证
IBatchValidator validator = (IBatchValidator)ModelValidationService.getInstance()
.newValidator(EvaluationMode.BATCH);
validator.setIncludeLiveConstraints(true);
IStatus status = validator.validate(selectedEObjects);
Tags:使用 EMF Validation
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接