private boolean hasValue(Item<V,D> existingUserItem, V newValue) { if (existingUserItem == null) { return false; } if (valueMatcher != null && newValue instanceof PrismPropertyValue) { return valueMatcher.hasRealValue((PrismProperty)existingUserItem, (PrismPropertyValue)newValue); } else { return existingUserItem.contains(newValue, EquivalenceStrategy.IGNORE_METADATA, comparator); } }
private static boolean subtractFromObject(@NotNull PrismObject<?> object, @NotNull ItemPath itemPath, @NotNull PrismValue value, boolean dryRun) { Item<PrismValue, ItemDefinition> item = object.findItem(itemPath); if (item == null) { return false; } if (dryRun) { return item.contains(value); } else { return item.remove(value); } }
for (V valueToAdd : valuesToAdd) { if (!item.contains(valueToAdd, strategy)) {
assertNotNull("Deleted item " + itemMod.getParentPath() + "/" + itemMod.getElementName() + " not found in focus", property); for (Object valueToDelete : itemMod.getValuesToDelete()) { if (!property.contains((PrismValue) valueToDelete, EquivalenceStrategy.REAL_VALUE)) { display("Deleted value " + valueToDelete + " is not in focus item " + itemMod.getParentPath() + "/" + itemMod.getElementName()); display("Deleted value", valueToDelete);
if (itemNew == null || !itemNew.contains(valueFromZeroSet, EquivalenceStrategy.REAL_VALUE)) { LOGGER.trace("Reconciliation will add value {} for item {}. Existing item: {}", valueFromZeroSet, itemPath, itemNew); itemDelta.addValuesToAdd(LensUtil.cloneAndApplyMetadata(valueFromZeroSet, isAssignment, mapping));