package org.molgenis.compute.commandline; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.molgenis.compute.design.ComputeParameter; import org.molgenis.compute.design.ComputeProtocol; import org.molgenis.compute.design.WorkflowElement; import org.molgenis.compute.runtime.ComputeTask; import org.molgenis.util.Tuple; public class ComputeBundle { // all parameters needed to describe a workflow private Map<String, ComputeParameter> computeParameters = new LinkedHashMap<String, ComputeParameter>(); private List<ComputeProtocol> computeProtocols = new ArrayList<ComputeProtocol>(); private List<WorkflowElement> workflowElements = new ArrayList<WorkflowElement>(); // parameters specific to this analysis run private List<Tuple> userParameters = new ArrayList<Tuple>(); // worksheet for this analysis // This is a combination of userParameters (from worksheet.txt) // and computeParameters (parameters.txt) private List<Tuple> worksheet; // generated result of jobs private List<ComputeTask> computeTasks = new ArrayList<ComputeTask>(); public List<ComputeParameter> getComputeParameters() { return new ArrayList<ComputeParameter>(computeParameters.values()); } public void setComputeParameters(List<ComputeParameter> computeParameters) { this.computeParameters.clear(); for (ComputeParameter cp : computeParameters) { this.computeParameters.put(cp.getName(), cp); } } public ComputeParameter getComputeParameter(String name) { return this.computeParameters.get(name); } public List<ComputeProtocol> getComputeProtocols() { return computeProtocols; } public void addComputeParameter(ComputeParameter cp) { this.computeParameters.put(cp.getName(), cp); } public void setComputeProtocols(List<ComputeProtocol> computeProtocols) { this.computeProtocols = computeProtocols; } public List<WorkflowElement> getWorkflowElements() { return workflowElements; } public void setWorkflowElements(List<WorkflowElement> workflowElements) { this.workflowElements = workflowElements; } public List<Tuple> getUserParameters() { return userParameters; } public void setUserParameters(List<Tuple> userParameters) { this.userParameters = userParameters; } public List<ComputeTask> getComputeTasks() { return computeTasks; } public void setComputeTasks(List<ComputeTask> ComputeTasks) { this.computeTasks = ComputeTasks; } public void setWorksheet(List<Tuple> worksheet) { this.worksheet = worksheet; } public List<Tuple> getWorksheet() { return worksheet; } public void prettyPrint() { System.out.println("ComputeParameter:"); for (ComputeParameter f : this.getComputeParameters()) { System.out.println(f); } System.out.println("UserParameter:"); for (Tuple f : this.getUserParameters()) { System.out.println(f); } System.out.println("WorkflowElement:"); for (WorkflowElement f : this.getWorkflowElements()) { System.out.println(f); } System.out.println("Protocol"); for (ComputeProtocol f : this.getComputeProtocols()) { System.out.println(f); } } }