使用EMF Validation框架来验证EMF模型 - 编程入门网
ption>
<message>
The required feature ‘ name ’ of ‘ {} ’ must be set.
</message>
<target class="Library"/>
<target class="Writer"/>
<target class="Book"/>
</constraint>
</constraints>
</constraintProvider>
</extension>
第四步 将定义好的 Constraint 绑定到应用程序 到目前为止,我们已经定义了一个约束并且将它注册到验证服务。接下来我们需要把这个 约束绑定到应用程序,让应用程序知道它的存在。清单 5 介绍了如何通过定义一个 constraintBindings 的扩展点来实现。 清单 5. 定义一个 constraintBindings 的扩展点
可以看到,在进行约束绑定时我们首先要定义一个客户端上下文(client context),这 通过定义一个对象选择器(IClientSelector)来限定上下文所包含的模型对象集合。接下来 再定义用来检查这些模型对象数据的约束,也就是我们在前面所定义的用来检查图书馆对象 名称是否为空的约束。 使用EMF Validation框架来验证EMF模型(7)时间:2011-04-23 IBM 仇璐 杨晓峰第五步 通过 validation service 来调用 batch constraint 完成上面这些步骤后,我们可以通过验证服务来调用约束对模型进行验证,见清单 6 的 代码。 清单 6. 调用约束对模型进行验证
第六步 运行前面创建的 constraint 在 Eclipse 中点击 Run->Run.., 在弹出的窗口中创建并运行一个 Eclipse Application。在新的工作平台中新建一个项目,然后通过如图 7 所示的“New Library Model”向导创建一个图书馆模型。 图 7. 创建模型项目 使用EMF Validation框架来验证EMF模型(8)时间:2011-04-23 IBM 仇璐 杨晓峰为了验证之前定义的约束是否生效,创建如图 8 所示的图书馆模型,可以看到该模型只 定义了一个没有名称的图书馆对象: 图 8. 图书馆模型 如图 9 所示,选中 library 对象,点击右键,选择 validate 菜单项。 图 9. validate 操作 使用EMF Validation框架来验证EMF模型(9)时间:2011-04-23 IBM 仇璐 杨晓峰如图 10 所示,一个验证失败的警告框弹出,点击 Details,可以看到验证失败的原因是 图书馆的名字属性没有设置。 图 10. 验证结构提示 第七步 把 batch constraint 转变成 live constraint 我们可以把之前定义的 batch constraint 修改成 live constraint,这样当模型指定的 属性(值)发生变化时验证服务会收到相 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |