private ComputationResult compute(@NotNull List<EvaluatedPolicyRule> rulesToRecord, @NotNull List<String> existingPolicySituation, @NotNull List<EvaluatedPolicyRuleType> existingTriggeredPolicyRule) { ComputationResult cr = new ComputationResult(); for (EvaluatedPolicyRule rule : rulesToRecord) { cr.newPolicySituations.add(rule.getPolicySituation()); RecordPolicyActionType recordAction = rule.getEnabledAction(RecordPolicyActionType.class); if (recordAction.getPolicyRules() != TriggeredPolicyRulesStorageStrategyType.NONE) { PolicyRuleExternalizationOptions externalizationOptions = new PolicyRuleExternalizationOptions( recordAction.getPolicyRules(), false, true); rule.addToEvaluatedPolicyRuleTypes(cr.newTriggeredRules, externalizationOptions, null, prismContext); } } cr.oldPolicySituations.addAll(existingPolicySituation); cr.oldTriggeredRules.addAll(existingTriggeredPolicyRule); cr.situationsNeedUpdate = !Objects.equals(cr.oldPolicySituations, cr.newPolicySituations); cr.rulesNeedUpdate = !Objects.equals(cr.oldTriggeredRules, cr.newTriggeredRules); // hope hashCode is computed well return cr; }
policyRule.addToEvaluatedPolicyRuleTypes(evalCtx.rules, new PolicyRuleExternalizationOptions(FULL, true, true), t -> enforceAll || t.isEnforcementOverride(), prismContext);
@Override public EvaluatedSituationTriggerType toEvaluatedPolicyRuleTriggerType(PolicyRuleExternalizationOptions options, PrismContext prismContext) { EvaluatedSituationTriggerType rv = new EvaluatedSituationTriggerType(); fillCommonContent(rv); if (!options.isRespectFinalFlag() || !isFinal()) { sourceRules.forEach(r -> r.addToEvaluatedPolicyRuleTypes(rv.getSourceRule(), options, null, prismContext)); } return rv; } }
firstFragment.policyRule.addToEvaluatedPolicyRuleTypes(rules, new PolicyRuleExternalizationOptions(FULL, false, true), null, ctx.prismContext); for (EvaluatedPolicyRuleType rule : rules) {
sourceRule.addToEvaluatedPolicyRuleTypes(rules, options, null, prismContext);