package alien4cloud.paas.wf;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.collections4.CollectionUtils;
import alien4cloud.paas.wf.validation.AbstractWorkflowError;
@Getter
@Setter
public class Workflow {
public static final String INSTALL_WF = "install";
public static final String UNINSTALL_WF = "uninstall";
private String name;
private String description;
private boolean isStandard;
private Set<String> hosts = new HashSet<String>();
private List<AbstractWorkflowError> errors;
/**
* FIXME: Here we use a {@link LinkedHashMap} just to pass cfy3 provider generation plueprint tests !
*/
private Map<String, AbstractStep> steps = new LinkedHashMap<String, AbstractStep>();
public <S extends AbstractStep> S addStep(S step) {
steps.put(step.getName(), step);
return step;
}
public void clearErrors() {
errors = new ArrayList<AbstractWorkflowError>();
}
public boolean hasErrors() {
return CollectionUtils.isNotEmpty(errors);
}
public void addErrors(List<AbstractWorkflowError> errorsToAdd) {
if (errors == null) {
errors = new ArrayList<AbstractWorkflowError>(errorsToAdd);
} else {
errors.addAll(errorsToAdd);
}
}
}