相反证据实现

当插入、修改或除去证据时,将调用挂钩点,缺省情况下会触发相反证据处理程序功能。 这个新的证据挂钩点称为 GlobalEvidenceHook,可在 curam.core.sl.infrastructure.impl 包中找到。GlobalEvidenceHook 接口允许在证据操作完成后进行定制操作。

GlobalEvidenceHook 接口

GlobalEvidenceHook 接口包含以下方法:

postInsertEvidence,在证据插入后调用,接受以下两种参数:

postModifyEvidence,在证据修改后调用,接受以下两种参数:

postRemoveEvidence,在证据除去后调用,接受以下两种参数:

postDiscardPendingUpdate,在放弃证据暂挂更新后调用,接受以下两种参数:

postDiscardPendingRemove,在放弃证据暂挂除去后调用,接受以下两种参数:

相反证据处理程序

GlobalEvidenceHook 的缺省实现会调用相反证据处理程序功能。相反证据处理程序负责处理所有公共相反证据。它会查找相反证据,然后在找到后对相反证据执行与原始证据相同的更改。如果找不到相反证据,并且已插入原始证据,那么它将插入相应的相反证据。由于相反证据处理程序是相反证据处理的核心,所以当前不可对其进行直接定制,但如有必要可通过 GlobalEvidenceHook 方式进行定制。

相反证据转换接口

ReciprocalEvidenceConversion 接口负责相反证据和原始证据的比较、参与者检索以及根据原始证据创建新的或修改后的相反证据。为制定定制相反证据,必须提供 ReciprocalEvidenceConversion 接口实现。如果处理程序不了解内部证据结构和转换接口实现,那么此时就需要主定制点。可在 curam.core.sl.infrastructure.impl 包中找到 ReciprocalEvidenceConversion 接口,此接口包含以下方法:

下节演示了如何实现相反证据。