package alien4cloud.paas.wf.validation; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Component; import alien4cloud.paas.wf.Workflow; import alien4cloud.paas.wf.WorkflowsBuilderService.TopologyContext; @Component public class WorkflowValidator { private List<Rule> rules; public WorkflowValidator() { super(); rules = new ArrayList<Rule>(); rules.add(new CycleDetection()); rules.add(new StateSequenceValidation()); rules.add(new NodeValidation()); } public int validate(TopologyContext topologyContext, Workflow workflow) { workflow.clearErrors(); int errorCount = 0; for (Rule rule : rules) { List<AbstractWorkflowError> errors = rule.validate(topologyContext, workflow); if (errors != null) { workflow.addErrors(errors); errorCount += errors.size(); } } return errorCount; } }