public void recordModifyResult(
ProvisioningContext ctx,
PrismObject<ShadowType> oldRepoShadow,
Collection<? extends ItemDelta> requestedModifications,
ProvisioningOperationState<AsynchronousOperationReturnValue<Collection<PropertyDelta<PrismPropertyValue>>>> opState,
XMLGregorianCalendar now,
OperationResult parentResult)
throws SchemaException, ObjectNotFoundException, ConfigurationException, CommunicationException, ExpressionEvaluationException, EncryptionException {
ObjectDelta<ShadowType> requestDelta = opState.getRepoShadow().createModifyDelta();
requestDelta.addModifications(ItemDeltaCollectionsUtil.cloneCollection(requestedModifications));
List<ItemDelta> internalShadowModifications = computeInternalShadowModifications(ctx, opState, requestDelta);
List<ItemDelta> modifications;
if (opState.isCompleted()) {
modifications = MiscUtil.join(requestedModifications, (List)internalShadowModifications);
} else {
modifications = internalShadowModifications;
}
addModifyMetadataDeltas(opState.getRepoShadow(), modifications);
LOGGER.trace("Updating repository {} after MODIFY operation {}, {} repository shadow modifications", oldRepoShadow, opState, requestedModifications.size());
modifyShadowAttributes(ctx, oldRepoShadow, modifications, parentResult);
}