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;
- }
-
-}