private void setChangeDetails(Progress progress) throws IOException { User user = authorizationManager.getCurrentUser(); Date now = new Date(); if (progress.getId() == Progress.UNSAVED_ID) { progress.setUser(user); if (progress.getCreationTime() == null) { progress.setCreationTime(now); } if (progress.getLastModified() == null) { progress.setLastModified(now); } } else { progress.setLastModified(now); } }
@Override public Workflow loadWorkflow(long id) throws IOException { Progress progress = progressStore.get(id); if (progress == null) return null; authorizationManager.throwIfNotOwner(progress.getUser()); return progress.getWorkflowName().createWorkflow(progress); }
public static WorkflowStateDto asDto(@Nonnull Workflow from) { WorkflowStateDto dto = new WorkflowStateDto(); dto.setName(from.getProgress().getWorkflowName().getDescription()); dto.setWorkflowId(from.getProgress().getId()); dto.setLog(from.getLog()); dto.setComplete(from.isComplete()); dto.setLastModified(formatDateTime(from.getProgress().getLastModified())); if (from.isComplete()) { dto.setMessage(from.getConfirmMessage()); } else { dto.setStepNumber(from.getNextStepNumber()); WorkflowStepPrompt prompt = from.getStep(dto.getStepNumber()); dto.setMessage(prompt.getMessage()); dto.setInputTypes(prompt.getInputTypes()); } return dto; }
@Override public Progress save(Progress progress) { if (progress.getId() == Progress.UNSAVED_ID) { currentSession().save(progress); } else { currentSession().update(progress); } if (progress.getSteps() != null) { for (ProgressStep step : progress.getSteps()) { currentSession().saveOrUpdate(step); } } return progress; }
private void validateProgress(Progress progress) { if (progress == null) throw new IllegalArgumentException("Progress is null"); if (progress.getWorkflowName() != getWorkflowName()) throw new IllegalArgumentException("Invalid WorkflowName"); }
@Override public final Progress getProgress() { List<WorkflowStep> steps = getCompletedSteps(); IntStream.range(0, steps.size()).forEach(i -> steps.get(i).getProgressStep().setStepNumber(i)); progress.setSteps(steps.stream().map(WorkflowStep::getProgressStep).peek(step -> step.setProgress(progress)).collect(Collectors.toList())); return progress; }
public static WorkflowStateDto asDto(@Nonnull Workflow from, int stepNumber) { WorkflowStateDto dto = new WorkflowStateDto(); dto.setName(from.getProgress().getWorkflowName().getDescription()); dto.setWorkflowId(from.getProgress().getId()); dto.setLog(from.getLog()); dto.setComplete(from.isComplete()); dto.setLastModified(formatDateTime(from.getProgress().getLastModified())); if (stepNumber >= from.getLog().size()) { if (from.isComplete()) { dto.setMessage(from.getConfirmMessage()); } else { dto.setStepNumber(from.getNextStepNumber()); } } else { dto.setStepNumber(stepNumber); } if (dto.getStepNumber() != null) { WorkflowStepPrompt prompt = from.getStep(stepNumber); dto.setMessage(prompt.getMessage()); dto.setInputTypes(prompt.getInputTypes()); } return dto; }
@Override public void delete(Progress progress) { progress.getSteps().forEach(this::delete); currentSession().delete(progress); }
@Override public List<Workflow> listUserWorkflows() throws IOException { return progressStore.listByUserId(authorizationManager.getCurrentUser().getUserId()).stream() .map(progress -> progress.getWorkflowName().createWorkflow(progress)).collect(Collectors.toList()); }
@Override public Progress get(long id) { Progress progress = (Progress) currentSession().get(ProgressImpl.class, id); if (progress != null) { currentSession().evict(progress); for (ProgressStep step : progress.getSteps()) { currentSession().evict(step); } } return progress; }