@Override
public String endTask(CoreSession coreSession, NuxeoPrincipal principal, Task task, String comment,
String eventName, boolean isValidated) {
if (!canEndTask(principal, task)) {
throw new NuxeoException(String.format("User with id '%s' cannot end this task", principal.getName()));
}
String taskProviderId = task.getVariable(Task.TASK_PROVIDER_KEY);
if (taskProviderId == null) {
taskProviderId = DEFAULT_TASK_PROVIDER;
}
TaskProvider taskProvider = tasksProviders.get(taskProviderId);
if (taskProvider == null) {
throw new NuxeoException(String.format(
"No task provider registered, cannot end task. Please contribute at least the default task provider: %s.",
DEFAULT_TASK_PROVIDER));
}
return taskProvider.endTask(coreSession, principal, task, comment, eventName, isValidated);
}