使用 EMF Validation 框架来验证 EMF 模型
2010-03-03 00:00:00 来源:WEB开发网核心提示: 查看原图(大图)约束的具体实现可以用 JAVA 或者 OCL 语言,用 JAVA 实现的您可以参考下面的图 2,使用 EMF Validation 框架来验证 EMF 模型(2),其约束都是 AbstractModelConstraint 的子类,它必须实现 validate() 方法,输入的通
查看原图(大图)
约束的具体实现可以用 JAVA 或者 OCL 语言,用 JAVA 实现的您可以参考下面的图 2,其约束都是 AbstractModelConstraint 的子类,它必须实现 validate() 方法。这个方法通过输入的验证上下文(IValidationContext)获取目标对象、触发的事件类型等信息,实现业务验证逻辑,并将验证结果通过状态信息(IStatus)报告给用户。
图 2. 约束抽象类和约束上下文等
验证上下文(Validation Context)
在上面的图 2 中,我们简单说明了约束和约束上下文之间的关系,约束上下文记录了当前验证操作的有关信息,包括验证的目标对象,触发实时验证的事件类型,模型变化值等。除了记录这些上下文信息外,validation context 还提供了一些提高验证效率的方法。例如方法 skipCurrentConstraintFor()可以用来指定一些的目标对象是“合格的”可以不执行某些验证方法,方法 get/putCurrentConstraintData() 可以用来缓存验证对象。
验证模式(Validation Modes)
EMF Validation Framework 提供两种验证模式:批量验证模式(Batch) 和实时验证模式(Live)。
批量验证模式可以对一个集合内的 EObjects 进行校验 , 通常由用户的动作触发,例如用户点击验证菜单项对整个模型进行验证。批量验证模式时,输入的通常是一个模型元素集合,输出的验证状态信息(IStatus)包括验证过程中所发现的所有问题 ,因此这个结果通常是多状态的。
Tags:使用 EMF Validation
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接