我们目前正在使用 EMF 验证向用户提供直接反馈,以防违反模型约束。
系统设置如下:
- 记录对模型所做的
EContentAdapter
所有修改 - A
CommandStackListener
在完成Command
. 这减少了执行的验证次数。EMFLiveValidator
被配置为也报告成功。 - 每个约束都
Notification
基于以下标准:- 它是对正在验证的实体内容的修改吗?
- 它是添加被验证实体的修改吗?
- 是否会以其他方式影响先前计算的验证结果的修改?
- A
ValidationListener
保留了所有约束失败的实体的列表。它使用新的 SUCCESS 或 FAILED ConstraintStatus 消息更新此列表。它还更新列表以删除不再包含在资源中的 FAILED 实体(因为它们已被删除)。
看来我自己实现了很多功能。是否没有标准的 API / 实现可用于执行以下操作?
- 跟踪验证状态
- 跟踪约束使用的属性;仅当这些属性之一发生更改时才重新验证。
- 与 JFace 数据绑定的
ComputedValue
工作方式相当。
- 与 JFace 数据绑定的
或者我实际上是在充分利用这个框架吗?如果我将使用 OCL 约束,那么系统是否能够检测到哪些更改会影响约束结果?