@Override
public AsynchronousOperationReturnValue<Collection<PropertyModificationOperation>> modifyObject(
ResourceObjectIdentification identification,
PrismObject<ShadowType> shadow,
Collection<Operation> changes,
ConnectorOperationOptions options,
StateReporter reporter, OperationResult parentResult)
throws ObjectNotFoundException, CommunicationException, GenericFrameworkException,
SchemaException, SecurityViolationException, ObjectAlreadyExistsException, ConfigurationException {
OperationResult result = parentResult.createSubresult(OPERATION_MODIFY);
InternalMonitor.recordConnectorOperation("modify");
InternalMonitor.recordConnectorModification("modify");
String ticketIdentifier = null;
try {
ticketIdentifier = createTicketModify(identification.getObjectClassDefinition(), shadow, identification.getAllIdentifiers(), reporter.getResourceOid(), changes, result);
} catch (ObjectNotFoundException | CommunicationException | GenericFrameworkException | SchemaException |
ObjectAlreadyExistsException | ConfigurationException | RuntimeException | Error e) {
result.recordFatalError(e);
throw e;
}
result.recordInProgress();
result.setAsynchronousOperationReference(ticketIdentifier);
AsynchronousOperationReturnValue<Collection<PropertyModificationOperation>> ret = new AsynchronousOperationReturnValue<>();
ret.setOperationType(PendingOperationTypeType.MANUAL);
ret.setOperationResult(result);
return ret;
}