private void cancelAliquotHandlingSteps() { for (WorkflowStep aliquotHandlingStep : aliquotHandlingSteps) { aliquotHandlingStep.cancelInput(); } }
private boolean hasInput(WorkflowStep step) { return step.getProgressStep() != null; }
@Override public void accept(WorkflowStep visitor) { visitor.processInput(this); } }
default void processInput(SkipProgressStep step) { throwUnexpectedInput(); }
@Override public WorkflowStepPrompt getStep(int stepNumber) { switch (stepNumber) { case 0: return stockStep.getPrompt(); case 1: return qcStep.getPrompt(); case 2: return stockBoxStep.getPrompt(); case 3: return stockBoxPositionStep.getPrompt(); case 4: return aliquotStep.getPrompt(); case 5: return aliquotBoxStep.getPrompt(); default: return aliquotHandlingSteps.get(asAliquotIndex(stepNumber)).getPrompt(); } }
default void processInput(PositiveDoubleProgressStep step) { throwUnexpectedInput(); }
default void processInput(PoolProgressStep step) { throwUnexpectedInput(); }
@Override public void accept(WorkflowStep visitor) { visitor.processInput(this); } }
private boolean hasInput(WorkflowStep step) { return step != null && step.getProgressStep() != null; }
@Override public void cancelInput() { if (aliquotHandlingSteps.stream().anyMatch(this::hasInput)) { getLastCompletedAliquotHandlingStep().cancelInput(); } else if (hasInput(aliquotBoxStep)) { aliquotBoxStep.cancelInput(); } else if (hasInput(aliquotStep)) { aliquotStep.cancelInput(); } else if (hasInput(stockBoxPositionStep)) { stockBoxPositionStep.cancelInput(); } else if (hasInput(stockBoxStep)) { stockBoxStep.cancelInput(); } else if (hasInput(qcStep)) { qcStep.cancelInput(); } else if (hasInput(stockStep)) { stockStep.cancelInput(); } }
default void processInput(IntegerProgressStep step) { throwUnexpectedInput(); }
@Override public void accept(WorkflowStep visitor) { visitor.processInput(this); } }
@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; }
default void processInput(BoxProgressStep step) { throwUnexpectedInput(); }
@Override public void accept(WorkflowStep visitor) { visitor.processInput(this); } }
default void processInput(BoxPositionProgressStep step) { throwUnexpectedInput(); }
@Override public void accept(WorkflowStep visitor) { visitor.processInput(this); } }
default void processInput(SequencingContainerModelProgressStep step) { throwUnexpectedInput(); }
@Override public void accept(WorkflowStep visitor) { visitor.processInput(this); }