uncommited stuff

This commit is contained in:
HWienhold 2024-01-14 06:01:29 +01:00
parent 65e6c72008
commit 555d1dfff5
5 changed files with 59 additions and 12 deletions

View File

@ -1,14 +1,22 @@
package com.indu.taskservice.model;
import lombok.AllArgsConstructor;
import com.indu.taskservice.service.AbortService;
import io.netty.util.internal.shaded.org.jctools.queues.MessagePassingQueue.Consumer;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@Getter
@AllArgsConstructor
@RequiredArgsConstructor
public enum AbortAction {
ABORT_WORKFLOW("abort_workflow"),
STEP_BACK("step_back"),
RESTART_WORKFLOW("restart_workflow");
private final String value;
public Consumer<Task> doAction() {
AbortService service = new AbortService();
return task -> service.handleAbortAction(this,task);
}
}

View File

@ -1,5 +0,0 @@
package com.indu.taskservice.model;
public class Action {
}

View File

@ -41,7 +41,6 @@ public class Task {
private String parentId;
private TaskTemplate template;

View File

@ -0,0 +1,40 @@
package com.indu.taskservice.service;
import com.indu.taskservice.model.AbortAction;
import com.indu.taskservice.model.Task;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@NoArgsConstructor
@Slf4j
public class AbortService {
public void handleAbortAction(AbortAction action, Task task) {
if(action.equals(AbortAction.ABORT_WORKFLOW)) {
abortWorkflow(task);
} else if (action.equals(AbortAction.RESTART_WORKFLOW)) {
cloneWorkflow(task);
} else if ( action.equals(AbortAction.STEP_BACK) ) {
stepBack(task);
} else {
log.error("Found unknown Abott Action {}. Dont know what todo" , action);
}
}
private void stepBack(Task task) {
// TODO Auto-generated method stub
}
private void cloneWorkflow(Task task) {
// what todo when its top flow? -> need as well copy costructor
}
private void abortWorkflow(Task task) {
// TODO Auto-generated method stub -> how to not trigger follow up abort stuff?
}
}

View File

@ -83,7 +83,7 @@ public class TaskFlowService {
setState(task, state);
}
public void setState(Task task, TaskState state) {
private void setState(Task task, TaskState state) {
if (TaskState.DONE.equals(state)) {
setDone(task);
} else if (TaskState.READY.equals(state)) {
@ -93,10 +93,16 @@ public class TaskFlowService {
} else if (TaskState.ABORT.equals(state)) {
setAbort(task);
} else {
throw new StateTransitionNotAllowedException("WAITING?");
//WAITING?
deactivate(task);
}
}
private void deactivate(Task task) {
// TODO Auto-generated method stub
}
private void setAbort(Task task) {
runAbortAction(task);
}
@ -141,7 +147,6 @@ public class TaskFlowService {
private void setInProgress(Task task) {
task.setState(TaskState.IN_PROGRESS);
repository.save(task);
}
public void setDone(Task task) {
@ -157,7 +162,7 @@ public class TaskFlowService {
public void setReady(Task task) {
if (task.getTemplate().isCheckPreviousBeforeActivate()
&& !task.getPreviousTask().getState().equals(TaskState.DONE)) {
throw new StateTransitionNotAllowedException("Cannot set state to DONE for " + task.getTemplate().getName()
throw new StateTransitionNotAllowedException("Cannot set state to Ready for " + task.getTemplate().getName()
+ " bc bf task " + task.getPreviousTask().getTemplate().getName() + " has state "
+ task.getPreviousTask().getState().name());
}