private <V extends PrismValue> ItemDelta<?, ?> addExtensionItemAndPrepareDeltaCommon(ItemDelta delta, Collection<V> values) throws SchemaException { // these values should have no parent, otherwise the following will fail delta.addValuesToAdd(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; }
public static <V extends PrismValue, D extends ItemDefinition> ItemDelta<V, D> createAddDeltaFor(Item<V, D> item) { ItemDelta<V, D> rv = item.createDelta(item.getPath()); rv.addValuesToAdd(item.getClonedValues()); return rv; }
private ItemDelta<?, ?> addExtensionPropertyAndPrepareDelta(QName itemName, PrismPropertyDefinition definition, Collection<? extends PrismPropertyValue> values) throws SchemaException { ItemDelta delta = deltaFactory().property().create(ItemPath.create(TaskType.F_EXTENSION, itemName), definition); delta.addValuesToAdd(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; }
public <IV extends PrismValue,ID extends ItemDefinition, I extends Item<IV,ID>,DD extends ItemDelta<IV,ID>> DD findItemDelta(ItemPath propertyPath, Class<DD> deltaType, Class<I> itemType, boolean strict) { if (changeType == ChangeType.ADD) { I item = objectToAdd.findItem(propertyPath, itemType); if (item == null) { return null; } DD itemDelta = createEmptyDelta(propertyPath, item.getDefinition(), deltaType, item.getClass()); itemDelta.addValuesToAdd(item.getClonedValues()); return itemDelta; } else if (changeType == ChangeType.MODIFY) { return findModification(propertyPath, deltaType, strict); } else { return null; } }
itemDelta.addValuesToAdd(item.getClonedValues()); Collection<PartiallyResolvedDelta<IV,ID>> deltas = new ArrayList<>(1); deltas.add(new PartiallyResolvedDelta<>(itemDelta, partialValue.getResidualPath()));
private <D extends ItemDelta> D findModification(ItemPath propertyPath, Class<D> deltaType, boolean strict) { if (isModify()) { return ItemDeltaCollectionsUtil.findItemDelta(modifications, propertyPath, deltaType, strict); } else if (isAdd()) { Item<PrismValue, ItemDefinition> item = getObjectToAdd().findItem(propertyPath); if (item == null) { return null; } D itemDelta = (D) item.createDelta(); itemDelta.addValuesToAdd(item.getClonedValues()); return itemDelta; } else { return null; } }
@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; }
itemDelta.addValuesToAdd(PrismValueCollectionsUtil.resetParentCollection(PrismValueCollectionsUtil.cloneCollection(item.getValues()))); } else if (propMod.getModificationType() == ModificationTypeType.DELETE) { itemDelta.addValuesToDelete(PrismValueCollectionsUtil.resetParentCollection(PrismValueCollectionsUtil.cloneCollection(item.getValues())));
Item<IV,ID> item = partialValue.getItem(); itemDelta = item.createDelta(); itemDelta.addValuesToAdd(item.getClonedValues()); } else {
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)); for (ItemValueWithOrigin<?,?> zeroSetIvwo: zeroSet) { itemDelta.addValuesToAdd(LensUtil.cloneAndApplyMetadata(zeroSetIvwo.getItemValue(), isAssignment, zeroSetIvwo.getMapping()));
itemDelta.addValuesToAdd(otherItem.getClonedValues()); if (!itemDelta.isEmpty()) { ((Collection)deltas).add(itemDelta);
Collection<PrismValue> valuesToTake = getValuesToTake(objectLeft, objectRight, SIDE_RIGHT, itemRight, rightStrategy, valueExpression, task, result); itemDelta.addValuesToAdd(valuesToTake); return itemDelta;
itemDelta.addValuesToAdd(PrismValueCollectionsUtil.cloneCollection(pvalues));
outputFocusItemDelta.addValuesToAdd(shouldBeItem.getClonedValues());