private void checkRangeTarget(Task task, OperationResult result) throws ExpressionEvaluationException, ObjectNotFoundException, SchemaException, CommunicationException, ConfigurationException, SecurityViolationException { QName name = outputPath.lastName(); if (originalTargetValues == null) { throw new IllegalStateException("Couldn't check range for mapping in " + contextDescription + ", as original target values are not known."); } ValueSetDefinitionType rangetSetDefType = mappingType.getTarget().getSet(); ValueSetDefinition setDef = new ValueSetDefinition(rangetSetDefType, name, "range of "+name.getLocalPart()+" in "+getMappingContextDescription(), task, result); setDef.init(expressionFactory); setDef.setAdditionalVariables(variables); for (V originalValue : originalTargetValues) { if (!setDef.contains(originalValue)) { continue; } addToMinusIfNecessary(originalValue); } }
public <IV extends PrismValue> boolean contains(IV pval) throws SchemaException, ExpressionEvaluationException, ObjectNotFoundException, CommunicationException, ConfigurationException, SecurityViolationException { return evalCondition(pval.getRealValue()); }
ValueSetDefinition setDef = new ValueSetDefinition(domainSetType, name, "domain of "+name.getLocalPart()+" in "+getMappingContextDescription(), task, result); setDef.init(expressionFactory); setDef.setAdditionalVariables(variables); try { itemOld.filterValues(val -> setDef.containsTunnel(val)); itemNew.filterValues(val -> setDef.containsTunnel(val)); delta.filterValues(val -> setDef.containsTunnel(val));
/** * Same as contains, but wraps exceptions in TunnelException. */ public <IV extends PrismValue> boolean containsTunnel(IV pval) { try { return contains(pval); } catch (SchemaException | ExpressionEvaluationException | ObjectNotFoundException | CommunicationException | ConfigurationException | SecurityViolationException e) { throw new TunnelException(e); } }