4

我们目前正在使用 EMF 验证向用户提供直接反馈,以防违反模型约束。

系统设置如下:

  • 记录对模型所做的EContentAdapter所有修改
  • ACommandStackListener在完成Command. 这减少了执行的验证次数。EMFLiveValidator被配置为也报告成功。
  • 每个约束都Notification基于以下标准:
    • 它是对正在验证的实体内容的修改吗?
    • 它是添加被验证实体的修改吗?
    • 是否会以其他方式影响先前计算的验证结果的修改?
  • AValidationListener保留了所有约束失败的实体的列表。它使用新的 SUCCESS 或 FAILED ConstraintStatus 消息更新此列表。它还更新列表以删除不再包含在资源中的 FAILED 实体(因为它们已被删除)。

看来我自己实现了很多功能。是否没有标准的 API / 实现可用于执行以下操作?

  • 跟踪验证状态
  • 跟踪约束使用的属性;仅当这些属性之一发生更改时才重新验证。
    • 与 JFace 数据绑定的ComputedValue工作方式相当。

或者我实际上是在充分利用这个框架吗?如果我将使用 OCL 约束,那么系统是否能够检测到哪些更改会影响约束结果?

4

0 回答 0