X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.api.slc%2Fsrc%2Forg%2Fargeo%2Fapi%2Fslc%2Fexecution%2FRealizedFlow.java;fp=org.argeo.api.slc%2Fsrc%2Forg%2Fargeo%2Fapi%2Fslc%2Fexecution%2FRealizedFlow.java;h=202a1a422b814064a5cf1a19d6bd62a7c4a24ce8;hb=09c9e5093fe1353aaac344ac8a8caf2e1dcc0778;hp=0000000000000000000000000000000000000000;hpb=8ff996a3380166be2ae9cf0ef0fa22c58e11746a;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.api.slc/src/org/argeo/api/slc/execution/RealizedFlow.java b/org.argeo.api.slc/src/org/argeo/api/slc/execution/RealizedFlow.java new file mode 100644 index 000000000..202a1a422 --- /dev/null +++ b/org.argeo.api.slc/src/org/argeo/api/slc/execution/RealizedFlow.java @@ -0,0 +1,71 @@ +package org.argeo.api.slc.execution; + +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; + +import org.argeo.api.slc.DefaultNameVersion; +import org.argeo.api.slc.NameVersion; + +/** A fully configured execution flow, ready to be executed. */ +public class RealizedFlow implements Serializable { + private static final long serialVersionUID = 1L; + + private String moduleName; + private String moduleVersion; + private ExecutionFlowDescriptor flowDescriptor; + + public String getModuleName() { + return moduleName; + } + + public void setModuleName(String moduleName) { + this.moduleName = moduleName; + } + + public NameVersion getModuleNameVersion() { + return new DefaultNameVersion(getModuleName(), getModuleVersion()); + } + + public String getModuleVersion() { + return moduleVersion; + } + + public void setModuleVersion(String moduleVersion) { + this.moduleVersion = moduleVersion; + } + + public ExecutionFlowDescriptor getFlowDescriptor() { + return flowDescriptor; + } + + public void setFlowDescriptor(ExecutionFlowDescriptor flowDescriptor) { + this.flowDescriptor = flowDescriptor; + } + + /** Create a simple realized flow */ + public static RealizedFlow create(String module, String version, + String flowName, Map args) { + final RealizedFlow realizedFlow = new RealizedFlow(); + realizedFlow.setModuleName(module); + // TODO deal with version + if (version == null) + version = "0.0.0"; + realizedFlow.setModuleVersion(version); + ExecutionFlowDescriptor efd = new ExecutionFlowDescriptor(); + efd.setName(flowName); + + // arguments + if (args != null && args.size() > 0) { + Map values = new HashMap(); + for (String key : args.keySet()) { + String value = args.get(key); + values.put(key, value); + } + efd.setValues(values); + } + + realizedFlow.setFlowDescriptor(efd); + return realizedFlow; + } +}