private ItemDelta<?, ?> deleteExtensionPropertyAndPrepareDelta(QName itemName, PrismPropertyDefinition definition, Collection<? extends PrismPropertyValue> values) throws SchemaException { ItemDelta delta = deltaFactory().property().create(ItemPath.create(TaskType.F_EXTENSION, itemName), definition); delta.addValuesToDelete(values); Collection<ItemDelta<?, ?>> modifications = new ArrayList<>(1); modifications.add(delta); ItemDeltaCollectionsUtil.applyTo(modifications, taskPrism); // i.e. here we apply changes only locally (in memory) return isPersistent() ? delta : null; }
itemDelta.resetValuesToDelete(); ((ItemDelta) itemDelta).addValuesToDelete(newValuesToDelete); anyRealChange = true;
@Override public ItemDelta<?,?> getSubDelta(ItemPath path) { if (path.isEmpty()) { return this; } Long id = null; if (path.startsWithId()) { id = path.firstToIdOrNull(); path = path.rest(); } ItemDefinition itemDefinition = getDefinition().findItemDefinition(path); if (itemDefinition == null) { throw new IllegalStateException("No definition of " + path + " in " + getDefinition()); } ItemDelta<?,?> itemDelta = itemDefinition.createEmptyDelta(getPath().append(path)); itemDelta.addValuesToAdd(findItemValues(id, path, getValuesToAdd())); itemDelta.addValuesToDelete(findItemValues(id, path, getValuesToDelete())); itemDelta.setValuesToReplace(findItemValues(id, path, getValuesToReplace())); if (itemDelta.isEmpty()) { return null; } return itemDelta; }
Collection<PrismValue> leftValuesToRemove = diffValues(currentLeftValues, valuesToLeave); if (leftValuesToRemove != null && !leftValuesToRemove.isEmpty()) { itemDelta.addValuesToDelete(leftValuesToRemove); return itemDelta; } else { itemDelta.addValuesToDelete(leftValuesToRemove);
itemDelta.addValuesToAdd(PrismValueCollectionsUtil.resetParentCollection(PrismValueCollectionsUtil.cloneCollection(item.getValues()))); } else if (propMod.getModificationType() == ModificationTypeType.DELETE) { itemDelta.addValuesToDelete(PrismValueCollectionsUtil.resetParentCollection(PrismValueCollectionsUtil.cloneCollection(item.getValues()))); } else if (propMod.getModificationType() == ModificationTypeType.REPLACE) { itemDelta.setValuesToReplace(PrismValueCollectionsUtil.resetParentCollection(PrismValueCollectionsUtil.cloneCollection(item.getValues())));
Item<IV,ID> item = partialValue.getItem(); itemDelta = item.createDelta(); itemDelta.addValuesToDelete(item.getClonedValues()); } else {