使用EMF Validation框架来验证EMF模型 - 编程入门网
ot;, "Validation Failed", results);
}
实时验证模式则用来实时地对对象内的属性(值)变更进行校验。和批量验证模式不同的 是,它的输入是属性(值)变更的通知消息,清单 2 就是实时验证模式的代码示例。 清单 2. 实时验证模式的代码示例
约束绑定(Constraint Binding) 定义了这么多的约束,具体的应用又是如何选择约束来完成任务呢?约束绑定就是设计来 完成这个任务的 ,通过 org.eclipse.emf.validation.constraintBindings扩展点,应用可 以明确出它拥有的对象,绑定到它所需要的约束。这样验证操作就能够确保对象符合了相应 的约束了。在下面的章节将会详细介绍如何进行约束绑定。 使用 EMF Validation Framework 来“保护”library 模型 EMF Validation 是一个非常容易使用的框架,本节将通过一个简单的例子来说明如何使 用 EMF Validation Framework 来保护您的模型。简单起见,我们使用 Java 编程语言来定 义模型约束。 第一步 准备 Library 模型 为了容易理解,我们就使用 EMF 相关文章中最常见的 Library 样例作为被保护的模型, 如图 3 所示,Library 模型很简单,仅仅包含三个类:Library, Writer, Book,以及一个 BookCategory 枚举类型。 图 3. Library 模型 使用EMF Validation框架来验证EMF模型(4)时间:2011-04-23 IBM 仇璐 杨晓峰我们在 Eclipse 中创建一个 Java 项目,在"New Java Project"向导中,将工程的名称 设置为 test.emf.validation,并选择分离源代码目录和输出目录。在新建好的 test.emf.validation 项目中建立一个新的 model 目录,并将 library.ecore 文件保存到 这个目录中。 为了生成模型的 Java 实现,我们首先需要利用 EMF 提供的向导将 .ecore 模型转化为 .genmodel 模型。这可以通过如图 4 所示的"New EMF Generator Model"向导来进行。 图 4. 使用新建向导生成 Library.genmodel 模型 我们将 Library.genmodel 生成到 model 目录下,并双击其进行编辑。如图 5 所示,在 .genmodel 的编辑器中,我们选择 Library 包,并修改其"Base Package"属性为 emf.model 。这个属性会影响生成的 Java 代码的包名称。 图 5. 修改 Library 模型的 Base Package 属性 使用EMF Validation框架来验证EMF模型(5)时间:2011-04-23 IBM 仇璐 杨晓峰接下来,我们就可以生成 Library 模型的 Java 实现了。如图 6 所示,在 Library 包 上单击右键,并在弹出菜单中选择 Generate Model Code 项,在 test.emf.validation 项 目中生成 Library 的 Java 实现。 图 6. 生成 Library 模型的 Java 实现 同样地,选择 Generate Edit Code 菜单项和 Generate Editor Code 菜单项可以生成 Library 模型的编辑器代码。在进行完迄今为止的这些步骤之后,我们可以开始编写代码来 利用 EMF Validation Framework“保护”Library 模型了。 第二步 定义 batch constraint 前面提到过,用 JAVA 实现的约束都需要扩展 AbstractModelConstrain,实现 validate() 方法。在清单 3 的代码中,我们定义了一个 constraint 用来验证图书馆,书 籍,作者三者的名字都不能为空,这个方法通过输入的验证上下文(IValidationContext) 获取目标对象, |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |