Interface ForeignEvaluatedClockworkPolicyRule

All Superinterfaces:
Cloneable, DebugDumpable, EvaluatedClockworkPolicyRule, com.evolveum.midpoint.repo.common.policy.EvaluatedPolicyRule, Serializable

public interface ForeignEvaluatedClockworkPolicyRule extends EvaluatedClockworkPolicyRule
A DirectlyEvaluatedClockworkPolicyRule that is attached to an assignment as a "foreign" rule, meaning that it was evaluated on the other side of a one-sided constraint and then attached to the assignment on which it was not originally evaluated. The primary (and currently probably the ony) reason for its existence is supporting exclusion constraints that are defined only on one side, but should be applied to both sides. See EvaluatedClockworkPolicyRule for details. Important things to consider for foreign rules: . All triggers, including those generated by exclusion constraints, are in the same form as they were triggered against their original assignments. It means that: .. EvaluatedExclusionRequirementTrigger.getThisAssignment() corresponds to EvaluatedClockworkPolicyRule.getOriginatingAssignment() .. EvaluatedExclusionTrigger.getConflictingAssignment() corresponds to getAssignmentOverride() + See also EvaluatedExclusionTrigger.getRealConflictingAssignment(EvaluatedAssignment). . Also note that not all triggers on the original policy rule are relevant to this (new i.e. overridden) assignment. For example, if a role `Coordinator` excludes all roles of type `Worker`, and has appropriate policy rule on it, then when you are assigning `Worker1` and `Worker2`, both get this policy rule (with 2 triggers) as a foreign rule. However, only one trigger is relevant for each of the `WorkerX` roles. Hence, use appropriate method to select relevant triggers, e.g. EvaluatedClockworkPolicyRule.getRelevantExclusionTriggers() or EvaluatedClockworkPolicyRule.getRelevantTriggersFilter().
See Also: