You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2018/07/16 09:22:22 UTC

[08/15] incubator-taverna-language git commit: Split CWL parser and converter

Split CWL parser and converter


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/commit/881a4096
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/881a4096
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/881a4096

Branch: refs/heads/master
Commit: 881a409608e4fd8d6b820b8e9e54f1eb5e3c6d16
Parents: ee6b282
Author: Majdi Haouech <m....@criteo.com>
Authored: Mon Jun 11 16:51:06 2018 +0200
Committer: Majdi Haouech <m....@criteo.com>
Committed: Mon Jun 11 16:51:06 2018 +0200

----------------------------------------------------------------------
 .../apache/taverna/scufl2/cwl/CWLParser.java    |  81 +++++++++++++
 .../apache/taverna/scufl2/cwl/Converter.java    |  75 ++++++++++++
 .../org/apache/taverna/scufl2/cwl/Parser.java   | 114 -------------------
 3 files changed, 156 insertions(+), 114 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/881a4096/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java
new file mode 100644
index 0000000..a2007ad
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLParser.java
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.taverna.scufl2.cwl;
+
+import java.util.*;
+
+import org.apache.taverna.scufl2.api.core.Workflow;
+import org.apache.taverna.scufl2.api.core.Processor;
+
+import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
+import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
+import org.apache.taverna.scufl2.api.port.InputProcessorPort;
+import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class CWLParser {
+
+    private JsonNode cwlFile;
+    private YAMLHelper yamlHelper;
+
+    public CWLParser(JsonNode cwlFile) {
+        this.cwlFile = cwlFile;
+        this.yamlHelper = new YAMLHelper();
+    }
+
+    public Set<Step> parseSteps() {
+        return yamlHelper.processSteps(cwlFile);
+    }
+
+    public Set<PortDetail> parseInputs() {
+        Map<String, PortDetail> inputs = yamlHelper.processInputDetails(cwlFile);
+        Map<String, Integer> inputDepths = yamlHelper.processInputDepths(cwlFile);
+
+        if(inputs == null || inputDepths == null) {
+            return null;
+        }
+        Set<PortDetail> result = new HashSet<PortDetail>();
+        for(String id: inputs.keySet()) {
+            PortDetail port = inputs.get(id);
+            port.setId(id);
+            int depth = inputDepths.get(id);
+            port.setDepth(depth);
+            result.add(port);
+        }
+
+        return result;
+    }
+
+    public Set<PortDetail> parseOutputs() {
+        Map<String, PortDetail> inputs = yamlHelper.processOutputDetails(cwlFile);
+
+        if(inputs == null) {
+            return null;
+        }
+        Set<PortDetail> result = new HashSet<PortDetail>();
+        for(String id: inputs.keySet()) {
+            PortDetail port = inputs.get(id);
+            result.add(port);
+        }
+
+        return result;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/881a4096/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
new file mode 100644
index 0000000..8be949a
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Converter.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.taverna.scufl2.cwl;
+
+import java.util.*;
+
+import org.apache.taverna.scufl2.api.core.Workflow;
+import org.apache.taverna.scufl2.api.core.Processor;
+
+import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
+import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
+import org.apache.taverna.scufl2.api.port.InputProcessorPort;
+import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
+
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class Converter {
+
+    public Converter() {
+
+    }
+
+    public InputWorkflowPort convertInputWorkflowPort(PortDetail input) {
+        InputWorkflowPort port = new InputWorkflowPort();
+        port.setName(input.getId());
+        port.setDepth(input.getDepth());
+
+        return port;
+    }
+
+    public OutputWorkflowPort convertOutputWorkflowPort(PortDetail input) {
+        OutputWorkflowPort port = new OutputWorkflowPort();
+        port.setName(input.getId());
+
+        return port;
+    }
+
+    public Processor convertStepToProcessor(Step step) {
+        Processor processor = new Processor(null, step.getId());
+        // Convert input ports
+        Set<InputProcessorPort> processorInputs = new HashSet<>();
+        Set<StepInput> inputs = step.getInputs();
+        for(StepInput input: inputs) {
+            InputProcessorPort port = new InputProcessorPort(processor, input.getId());
+            processorInputs.add(port);
+        }
+        processor.setInputPorts(processorInputs);
+        // Convert output ports
+        Set<OutputProcessorPort> processorOutputs = new HashSet<>();
+        Set<StepOutput> outputs = step.getOutputs();
+        for(StepOutput output: outputs) {
+            OutputProcessorPort port = new OutputProcessorPort(processor, output.getId());
+            processorOutputs.add(port);
+        }
+        processor.setOutputPorts(processorOutputs);
+
+        return processor;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/881a4096/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Parser.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Parser.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Parser.java
deleted file mode 100644
index c0ef438..0000000
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/Parser.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.taverna.scufl2.cwl;
-
-import java.util.*;
-
-import org.apache.taverna.scufl2.api.core.Workflow;
-import org.apache.taverna.scufl2.api.core.Processor;
-
-import org.apache.taverna.scufl2.api.port.InputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import org.apache.taverna.scufl2.api.port.InputProcessorPort;
-import org.apache.taverna.scufl2.api.port.OutputProcessorPort;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-public class Parser {
-
-    private JsonNode cwlFile;
-    private YAMLHelper yamlHelper;
-    private Workflow workflow;
-
-    public Parser(JsonNode cwlFile) {
-        this.cwlFile = cwlFile;
-        this.yamlHelper = new YAMLHelper();
-        this.workflow = new Workflow();
-        this.workflow.setInputPorts(parseInputs());
-        this.workflow.setOutputPorts(parseOutputs());
-    }
-
-    public Workflow getWorkflow() {
-        return this.workflow;
-    }
-
-    public Set<Step> parseSteps() {
-        return yamlHelper.processSteps(cwlFile);
-    }
-
-    public Processor convertStepToProcessor(Step step) {
-        Processor processor = new Processor(null, step.getId());
-        // Convert input ports
-        Set<InputProcessorPort> processorInputs = new HashSet<>();
-        Set<StepInput> inputs = step.getInputs();
-        for(StepInput input: inputs) {
-            InputProcessorPort port = new InputProcessorPort(processor, input.getId());
-            processorInputs.add(port);
-        }
-        processor.setInputPorts(processorInputs);
-        // Convert output ports
-        Set<OutputProcessorPort> processorOutputs = new HashSet<>();
-        Set<StepOutput> outputs = step.getOutputs();
-        for(StepOutput output: outputs) {
-            OutputProcessorPort port = new OutputProcessorPort(processor, output.getId());
-            processorOutputs.add(port);
-        }
-        processor.setOutputPorts(processorOutputs);
-
-        return processor;
-    }
-
-    public Set<InputWorkflowPort> parseInputs() {
-        Map<String, PortDetail> inputs = yamlHelper.processInputDetails(cwlFile);
-        Map<String, Integer> inputDepths = yamlHelper.processInputDepths(cwlFile);
-
-        if(inputs == null || inputDepths == null) {
-            return null;
-        }
-        Set<InputWorkflowPort> result = new HashSet<InputWorkflowPort>();
-        for(String id: inputs.keySet()) {
-            PortDetail detail = inputs.get(id);
-            int depth = inputDepths.get(id);
-            InputWorkflowPort port = new InputWorkflowPort();
-            port.setName(id);
-            port.setDepth(depth);
-            result.add(port);
-        }
-
-        return result;
-    }
-
-    public Set<OutputWorkflowPort> parseOutputs() {
-        Map<String, PortDetail> inputs = yamlHelper.processOutputDetails(cwlFile);
-
-        if(inputs == null) {
-            return null;
-        }
-        Set<OutputWorkflowPort> result = new HashSet<OutputWorkflowPort>();
-        for(String id: inputs.keySet()) {
-            PortDetail detail = inputs.get(id);
-            OutputWorkflowPort port = new OutputWorkflowPort();
-            port.setName(id);
-            result.add(port);
-        }
-
-        return result;
-    }
-
-}