package alien4cloud.paas.wf; import alien4cloud.paas.wf.exception.BadWorkflowOperationException; import alien4cloud.paas.wf.exception.InconsistentWorkflowException; import alien4cloud.paas.wf.util.WorkflowUtils; public abstract class StandardWorflowBuilder extends AbstractWorkflowBuilder { @Override public void removeStep(Workflow wf, String stepId, boolean force) { AbstractStep step = wf.getSteps().get(stepId); if (step == null) { throw new InconsistentWorkflowException(String.format( "Inconsistent workflow: a step named '%s' can not be found while it's referenced else where ...", stepId)); } if (!force && WorkflowUtils.isStateStep(step)) { throw new BadWorkflowOperationException("State steps can not be removed from standard workflows"); } super.removeStep(wf, stepId, force); } @Override protected NodeActivityStep addActivityStep(Workflow wf, String nodeId, AbstractActivity activity) { if (activity instanceof SetStateActivity) { throw new BadWorkflowOperationException("State steps can not be added to standard workflows"); } return super.addActivityStep(wf, nodeId, activity); } }