MultipleArcTransition<TaskImpl, TaskEvent, TaskStateInternal> {
@Override
public TaskStateInternal transition(TaskImpl task, TaskEvent taskEvent) {
if (taskEvent instanceof TaskEventRecoverTask) {
TaskEventRecoverTask taskEventRecoverTask =
(TaskEventRecoverTask) taskEvent;
if (taskEventRecoverTask.getDesiredState() != null
&& !taskEventRecoverTask.recoverData()) {
// TODO recover attempts if desired state is given?
// History may not have all data.
switch (taskEventRecoverTask.getDesiredState()) {
case SUCCEEDED:
return TaskStateInternal.SUCCEEDED;
case FAILED:
return TaskStateInternal.FAILED;
case KILLED: