Interface ForeignEvaluatedClockworkPolicyRule
- All Superinterfaces:
Cloneable,DebugDumpable,EvaluatedClockworkPolicyRule,EvaluatedPolicyRule,Serializable
- All Known Implementing Classes:
ForeignEvaluatedClockworkPolicyRuleImpl
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().-
Field Summary
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING -
Method Summary
Modifier and TypeMethodDescription@NotNull EvaluatedAssignmentTheEvaluatedAssignmentthis rule was "transplanted" to.Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDump, debugDumpLazily, debugDumpLazilyMethods inherited from interface com.evolveum.midpoint.model.api.context.EvaluatedClockworkPolicyRule
getAssignmentOverrideShortDump, getEvaluatedAssignment, getOriginatingAssignment, getRelevantExclusionTriggers, getRelevantTriggersFilter, isEvaluated, isGlobal, isTriggered, toShortStringMethods inherited from interface com.evolveum.midpoint.repo.common.policy.EvaluatedPolicyRule
containsEnabledAction, containsEnabledAction, extractMessages, extractShortMessages, getActions, getActivityPath, getAllEventMarksOids, getAllTriggers, getAllTriggers, getCount, getEnabledAction, getEnabledActions, getEnabledActions, getName, getOrder, getPolicyConstraints, getPolicyMarkRef, getPolicyRuleBean, getPolicyRuleConfigItem, getPolicySituation, getPolicyThreshold, getRawActions, getRuleIdentifier, getRuleOrigin, getTriggers, hasSituationConstraint, hasThreshold, isContainedIn, isOverThreshold, setCount, toEvaluatedPolicyRuleBeans, trigger, trigger
-
Method Details
-
getAssignmentOverride
TheEvaluatedAssignmentthis rule was "transplanted" to. Always present.- Specified by:
getAssignmentOverridein interfaceEvaluatedClockworkPolicyRule
-