@Override
public <AH extends AssignmentHolderType> EvaluatedPolicyRuleTrigger evaluate(JAXBElement<PolicySituationPolicyConstraintType> constraint,
PolicyRuleEvaluationContext<AH> rctx, OperationResult result)
throws SchemaException, ExpressionEvaluationException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException {
if (rctx instanceof AssignmentPolicyRuleEvaluationContext && !((AssignmentPolicyRuleEvaluationContext) rctx).isDirect) {
return null;
}
PolicySituationPolicyConstraintType situationConstraint = constraint.getValue();
Collection<EvaluatedPolicyRule> sourceRules =
selectTriggeredRules(rctx, situationConstraint.getSituation());
if (sourceRules.isEmpty()) {
return null;
}
return new EvaluatedSituationTrigger(situationConstraint,
createMessage(sourceRules, constraint, rctx, result),
createShortMessage(sourceRules, constraint, rctx, result),
sourceRules);
}