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 2016/05/26 13:43:42 UTC
[46/50] incubator-taverna-language git commit: Some kind of POJOs for
CWL Draft 4 (2016-05-20)
Some kind of POJOs for CWL Draft 4 (2016-05-20)
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/52bb54ed
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/tree/52bb54ed
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/diff/52bb54ed
Branch: refs/heads/cwl
Commit: 52bb54ede32b73454c60a6e6dde4e44da85582a9
Parents: f9e46e0
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Fri May 20 18:06:46 2016 +0200
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Fri May 20 18:06:46 2016 +0200
----------------------------------------------------------------------
taverna-scufl2-cwl/pom.xml | 71 +++++++++-----------
.../org/apache/taverna/scufl2/cwl/CWLInput.java | 14 ----
.../apache/taverna/scufl2/cwl/CWLOutput.java | 20 ------
.../taverna/scufl2/cwl/CWLRequirement.java | 5 --
.../org/apache/taverna/scufl2/cwl/CWLStep.java | 5 --
.../apache/taverna/scufl2/cwl/CWLWorkflow.java | 22 ------
.../apache/taverna/scufl2/cwl/CwlReader.java | 1 +
.../cwl/workflow/CWLCommandLineBinding.java | 11 +++
.../cwl/workflow/CWLCommandOutputBinding.java | 9 +++
.../scufl2/cwl/workflow/CWLDirectory.java | 12 ++++
.../scufl2/cwl/workflow/CWLExpressionTool.java | 32 +++++++++
.../taverna/scufl2/cwl/workflow/CWLFile.java | 18 +++++
.../CWLInlineJavascriptRequirement.java | 11 +++
.../cwl/workflow/CWLInputArraySchema.java | 19 ++++++
.../scufl2/cwl/workflow/CWLInputEnumSchema.java | 23 +++++++
.../scufl2/cwl/workflow/CWLInputParameter.java | 34 ++++++++++
.../cwl/workflow/CWLInputRecordField.java | 10 +++
.../cwl/workflow/CWLInputRecordSchema.java | 18 +++++
.../scufl2/cwl/workflow/CWLLinkMergeMethod.java | 6 ++
.../CWLMultipleInputFeatureRequirement.java | 8 +++
.../taverna/scufl2/cwl/workflow/CWLOutput.java | 20 ++++++
.../cwl/workflow/CWLOutputArraySchema.java | 18 +++++
.../cwl/workflow/CWLOutputEnumSchema.java | 17 +++++
.../scufl2/cwl/workflow/CWLOutputParameter.java | 22 ++++++
.../cwl/workflow/CWLOutputRecordField.java | 15 +++++
.../cwl/workflow/CWLOutputRecordSchema.java | 15 +++++
.../scufl2/cwl/workflow/CWLRequirement.java | 8 +++
.../workflow/CWLScatterFeatureRequirement.java | 10 +++
.../scufl2/cwl/workflow/CWLScatterMethod.java | 7 ++
.../taverna/scufl2/cwl/workflow/CWLSchema.java | 5 ++
.../cwl/workflow/CWLSchemaDefRequirement.java | 8 +++
.../CWLStepInputExpressionRequirement.java | 8 +++
.../CWLSubworkflowFeatureRequirement.java | 8 +++
.../taverna/scufl2/cwl/workflow/CWLType.java | 22 ++++++
.../scufl2/cwl/workflow/CWLVersions.java | 20 ++++++
.../scufl2/cwl/workflow/CWLWorkflow.java | 27 ++++++++
.../workflow/CWLWorkflowOutputParameter.java | 31 +++++++++
.../scufl2/cwl/workflow/CWLWorkflowStep.java | 32 +++++++++
.../cwl/workflow/CWLWorkflowStepInput.java | 28 ++++++++
.../cwl/workflow/CWLWorkflowStepOutput.java | 8 +++
.../taverna/scufl2/cwl/TestCwlReader.java | 7 +-
.../src/test/resources/ex1/revsort.cwl | 8 +--
42 files changed, 583 insertions(+), 110 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/pom.xml b/taverna-scufl2-cwl/pom.xml
index 656b950..e939a18 100644
--- a/taverna-scufl2-cwl/pom.xml
+++ b/taverna-scufl2-cwl/pom.xml
@@ -1,42 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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
+<!-- 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. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.taverna.language</groupId>
+ <artifactId>apache-taverna-language</artifactId>
+ <version>0.15.2-incubating-SNAPSHOT</version>
+ </parent>
+ <artifactId>taverna-scufl2-cwl</artifactId>
+ <name>Apache Taverna Scufl 2 CWL read/write</name>
+ <description> Common Workflow Language (CWL) support</description>
+ <dependencies>
+ <dependency>
+ <groupId>${project.parent.groupId}</groupId>
+ <artifactId>taverna-scufl2-api</artifactId>
+ <version>${project.parent.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.dataformat</groupId>
+ <artifactId>jackson-dataformat-yaml</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
- http://www.apache.org/licenses/LICENSE-2.0
+ </dependencies>
- 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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.taverna.language</groupId>
- <artifactId>taverna-language</artifactId>
- <version>0.15.0-incubating-SNAPSHOT</version>
- </parent>
- <artifactId>taverna-scufl2-cwl</artifactId>
- <name>Apache Taverna Scufl 2 CWL read/write</name>
- <description> Common Workflow Language (CWL) support</description>
- <dependencies>
- <dependency>
- <groupId>${project.parent.groupId}</groupId>
- <artifactId>taverna-scufl2-api</artifactId>
- <version>${project.parent.version}</version>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.dataformat</groupId>
- <artifactId>jackson-dataformat-yaml</artifactId>
- <version>${jackson.version}</version>
- </dependency>
-
- </dependencies>
-
</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLInput.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLInput.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLInput.java
deleted file mode 100644
index bcde2aa..0000000
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLInput.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.apache.taverna.scufl2.cwl;
-
-import java.util.Map;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class CWLInput {
- public String id;
- public String description;
- @JsonProperty(value="default")
- public String defaultValue;
- public String type;
- public Map<String,String> inputBinding;
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLOutput.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLOutput.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLOutput.java
deleted file mode 100644
index 1bbbc46..0000000
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLOutput.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.apache.taverna.scufl2.cwl;
-
-import java.util.List;
-import java.util.Map;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class CWLOutput {
- public String id;
- public String type;
- public String label;
- public String description;
- public boolean streamable;
- public String linkMerge;
- @JsonProperty(value="default")
- public String defaultValue;
-
- public String source;
- public Map<String,String> outputBinding;
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLRequirement.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLRequirement.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLRequirement.java
deleted file mode 100644
index f5b6b85..0000000
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLRequirement.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.apache.taverna.scufl2.cwl;
-
-public class CWLRequirement {
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLStep.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLStep.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLStep.java
deleted file mode 100644
index eddd40c..0000000
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLStep.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.apache.taverna.scufl2.cwl;
-
-public class CWLStep {
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLWorkflow.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLWorkflow.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLWorkflow.java
deleted file mode 100644
index 8b0b43b..0000000
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CWLWorkflow.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.apache.taverna.scufl2.cwl;
-
-import java.util.List;
-import java.util.Map;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class CWLWorkflow {
-
- public String id;
- @JsonProperty(value="class")
- public String klass;
- public String description;
- public List<CWLInput> inputs;
- public List<CWLOutput> outputs;
- public List<Map<String,String>> requirements;
- public List<CWLStep> steps;
- public String baseCommand;
- public String stdout;
-
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CwlReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CwlReader.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CwlReader.java
index 31b2e6d..8d41ccd 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CwlReader.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/CwlReader.java
@@ -17,6 +17,7 @@ import org.apache.taverna.scufl2.api.core.Workflow;
import org.apache.taverna.scufl2.api.io.ReaderException;
import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
import org.apache.taverna.scufl2.api.io.WorkflowBundleReader;
+import org.apache.taverna.scufl2.cwl.workflow.CWLWorkflow;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLCommandLineBinding.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLCommandLineBinding.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLCommandLineBinding.java
new file mode 100644
index 0000000..33fbba3
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLCommandLineBinding.java
@@ -0,0 +1,11 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+public class CWLCommandLineBinding {
+ Boolean loadContents;
+ Integer position;
+ String prefix;
+ Boolean separate;
+ String itemSeparator;
+ String valueFrom;
+ Boolean shellQuote;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLCommandOutputBinding.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLCommandOutputBinding.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLCommandOutputBinding.java
new file mode 100644
index 0000000..2376243
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLCommandOutputBinding.java
@@ -0,0 +1,9 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+public class CWLCommandOutputBinding {
+ List<String> glob;
+ Boolean loadContents;
+ String outputEval;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLDirectory.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLDirectory.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLDirectory.java
new file mode 100644
index 0000000..e76e9c7
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLDirectory.java
@@ -0,0 +1,12 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLDirectory {
+ private static final String DIRECTORY = "Directory";
+ @JsonProperty(value="class", defaultValue=DIRECTORY, required=true)
+ public String klass = DIRECTORY;
+ @JsonProperty(required=true)
+ String path;
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLExpressionTool.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLExpressionTool.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLExpressionTool.java
new file mode 100644
index 0000000..bedbaff
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLExpressionTool.java
@@ -0,0 +1,32 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class CWLExpressionTool {
+ @JsonProperty(required=true)
+ public List<CWLInputParameter> inputs;
+
+ @JsonProperty(required=true)
+ public List<CWLOutputParameter> outputs;
+
+ @JsonProperty(value="class", required=true)
+ public String klass;
+
+ @JsonProperty(required=true)
+ public String expression;
+
+ public String id;
+
+ public List<JsonNode> requirements;
+
+ public List<JsonNode> hints;
+
+ public String label;
+ public String description;
+
+ public String cwlVersion;
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLFile.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLFile.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLFile.java
new file mode 100644
index 0000000..b2b0784
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLFile.java
@@ -0,0 +1,18 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLFile {
+ private static final String FILE = "File";
+ @JsonProperty(value="class", defaultValue=FILE, required=true)
+ public String klass = FILE;
+ @JsonProperty(required=true)
+ String path;
+ String checksum;
+ Long size;
+ List<CWLFile> secondaryFiles;
+ String format;
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInlineJavascriptRequirement.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInlineJavascriptRequirement.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInlineJavascriptRequirement.java
new file mode 100644
index 0000000..e25efd9
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInlineJavascriptRequirement.java
@@ -0,0 +1,11 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLInlineJavascriptRequirement extends CWLRequirement {
+ @JsonProperty("class")
+ public String klass;
+ List<String> expressionLib;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputArraySchema.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputArraySchema.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputArraySchema.java
new file mode 100644
index 0000000..8aa684a
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputArraySchema.java
@@ -0,0 +1,19 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class CWLInputArraySchema {
+ @JsonProperty(required=true, defaultValue="array")
+ public String type = "array";
+
+ List<JsonNode> types;
+
+ List<String> secondaryFiles;
+ List<String> format;
+ Boolean streamable;
+ CWLCommandLineBinding inputBinding;
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputEnumSchema.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputEnumSchema.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputEnumSchema.java
new file mode 100644
index 0000000..6d23393
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputEnumSchema.java
@@ -0,0 +1,23 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLInputEnumSchema {
+
+ @JsonProperty(defaultValue="enum", required=true)
+ public String type = "enum";
+
+ @JsonProperty(required=true)
+ public List<String> symbols;
+
+ public List<String> secondaryFiles;
+
+ public List<String> format;
+
+ public Boolean streamable;
+
+ public CWLCommandLineBinding inputBinding;
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputParameter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputParameter.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputParameter.java
new file mode 100644
index 0000000..9fb5586
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputParameter.java
@@ -0,0 +1,34 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.Arrays;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class CWLInputParameter {
+
+ @JsonProperty(required=true)
+ public String id;
+
+ public List<String> secondaryFiles;
+
+ public List<String> format;
+
+ public Boolean streamable;
+
+ public List<String> type;
+
+ public void setType(String type) {
+ this.type = Arrays.asList(type);
+ }
+
+ public String label;
+
+ public String description;
+
+ public CWLCommandLineBinding inputBinding;
+
+ @JsonProperty("default")
+ public JsonNode defaultValue;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputRecordField.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputRecordField.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputRecordField.java
new file mode 100644
index 0000000..553b841
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputRecordField.java
@@ -0,0 +1,10 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+public class CWLInputRecordField {
+ String name;
+ List<String> type;
+ String doc;
+ CWLCommandLineBinding inputBinding;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputRecordSchema.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputRecordSchema.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputRecordSchema.java
new file mode 100644
index 0000000..ca0d81d
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLInputRecordSchema.java
@@ -0,0 +1,18 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLInputRecordSchema {
+ @JsonProperty(required=true, defaultValue="record")
+ public String type="record";
+
+ public List<CWLInputRecordField> fields;
+
+ public List<String> secondaryFiles;
+
+ public List<String> format;
+
+ public Boolean streamable;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLLinkMergeMethod.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLLinkMergeMethod.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLLinkMergeMethod.java
new file mode 100644
index 0000000..07e49d9
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLLinkMergeMethod.java
@@ -0,0 +1,6 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+public enum CWLLinkMergeMethod {
+ merge_nested,
+ merge_flattened
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLMultipleInputFeatureRequirement.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLMultipleInputFeatureRequirement.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLMultipleInputFeatureRequirement.java
new file mode 100644
index 0000000..3f1272d
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLMultipleInputFeatureRequirement.java
@@ -0,0 +1,8 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLMultipleInputFeatureRequirement extends CWLRequirement {
+ @JsonProperty(value="class", required=true)
+ public String klass;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutput.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutput.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutput.java
new file mode 100644
index 0000000..d687adf
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutput.java
@@ -0,0 +1,20 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLOutput {
+ public String id;
+ public String type;
+ public String label;
+ public String description;
+ public boolean streamable;
+ public String linkMerge;
+ @JsonProperty(value="default")
+ public String defaultValue;
+
+ public String source;
+ public Map<String,String> outputBinding;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputArraySchema.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputArraySchema.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputArraySchema.java
new file mode 100644
index 0000000..edaa1d7
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputArraySchema.java
@@ -0,0 +1,18 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLOutputArraySchema {
+ @JsonProperty(required = true, defaultValue = "array")
+ public String type = "array";
+
+ @JsonProperty(required=true)
+ List<String> items;
+ List<String> secondaryFiles;
+ List<String> format;
+ Boolean streamable;
+ CWLCommandOutputBinding outputBinding;
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputEnumSchema.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputEnumSchema.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputEnumSchema.java
new file mode 100644
index 0000000..5d4f5d5
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputEnumSchema.java
@@ -0,0 +1,17 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLOutputEnumSchema {
+ @JsonProperty(required=true, defaultValue="enum")
+ public String type = "enum";
+
+ List<String> symbols;
+ List<String> secondaryFiles;
+ List<String> format;
+ Boolean streamable;
+ CWLCommandOutputBinding outputBinding;
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputParameter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputParameter.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputParameter.java
new file mode 100644
index 0000000..7613650
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputParameter.java
@@ -0,0 +1,22 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+public class CWLOutputParameter {
+
+ public String id;
+
+ public List<String> secondaryFiles;
+
+ public List<String> format;
+
+ public Boolean streamable;
+
+ public List<String> type;
+
+ public String label;
+
+ public CWLCommandLineBinding outputBinding;
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputRecordField.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputRecordField.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputRecordField.java
new file mode 100644
index 0000000..50c56fd
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputRecordField.java
@@ -0,0 +1,15 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLOutputRecordField {
+ @JsonProperty(required=true)
+ String name;
+ @JsonProperty(required=true)
+ List<String> type;
+ String doc;
+ CWLCommandOutputBinding outputBinding;
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputRecordSchema.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputRecordSchema.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputRecordSchema.java
new file mode 100644
index 0000000..0cb0a3a
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLOutputRecordSchema.java
@@ -0,0 +1,15 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLOutputRecordSchema {
+ @JsonProperty(required=true, defaultValue="record")
+ public String type="record";
+
+ List<CWLOutputRecordField> fields;
+ List<String> secondaryFiles;
+ List<String> format;
+ boolean streamable;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLRequirement.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLRequirement.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLRequirement.java
new file mode 100644
index 0000000..ead5f1f
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLRequirement.java
@@ -0,0 +1,8 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLRequirement {
+ @JsonProperty("class")
+ public String klass;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLScatterFeatureRequirement.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLScatterFeatureRequirement.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLScatterFeatureRequirement.java
new file mode 100644
index 0000000..aa4db88
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLScatterFeatureRequirement.java
@@ -0,0 +1,10 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLScatterFeatureRequirement extends CWLRequirement {
+
+ @JsonProperty(value="class", required=true)
+ public String klass;
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLScatterMethod.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLScatterMethod.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLScatterMethod.java
new file mode 100644
index 0000000..53c86ec
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLScatterMethod.java
@@ -0,0 +1,7 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+public enum CWLScatterMethod {
+ dotproduct,
+ nested_crossproduct,
+ flat_crossproduct;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLSchema.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLSchema.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLSchema.java
new file mode 100644
index 0000000..1374b32
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLSchema.java
@@ -0,0 +1,5 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+public interface CWLSchema {
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLSchemaDefRequirement.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLSchemaDefRequirement.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLSchemaDefRequirement.java
new file mode 100644
index 0000000..c905810
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLSchemaDefRequirement.java
@@ -0,0 +1,8 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+public class CWLSchemaDefRequirement extends CWLRequirement {
+ public String klass;
+ public List<CWLSchema> types;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLStepInputExpressionRequirement.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLStepInputExpressionRequirement.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLStepInputExpressionRequirement.java
new file mode 100644
index 0000000..26a9302
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLStepInputExpressionRequirement.java
@@ -0,0 +1,8 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLStepInputExpressionRequirement extends CWLRequirement {
+ @JsonProperty(value="class", required=true)
+ public String klass;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLSubworkflowFeatureRequirement.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLSubworkflowFeatureRequirement.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLSubworkflowFeatureRequirement.java
new file mode 100644
index 0000000..746f3ce
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLSubworkflowFeatureRequirement.java
@@ -0,0 +1,8 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLSubworkflowFeatureRequirement extends CWLRequirement {
+ @JsonProperty(value="class", required=true)
+ public String klass;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLType.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLType.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLType.java
new file mode 100644
index 0000000..793171b
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLType.java
@@ -0,0 +1,22 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+public enum CWLType {
+ Null("null"),
+ Boolean("boolean"),
+ Int("int"),
+ Long("long"),
+ Float("float"),
+ Double("double"),
+ string("string"),
+ File("File");
+
+ public final String name;
+
+ CWLType(String name){
+ this.name = name;
+ }
+ public String toString() {
+ return name;
+ };
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLVersions.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLVersions.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLVersions.java
new file mode 100644
index 0000000..2ea5c87
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLVersions.java
@@ -0,0 +1,20 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+public enum CWLVersions {
+ draft2("draft-2"),
+ draft3Dev1("draft-3.dev1"),
+ draft3Dev2("draft-3.dev2"),
+ draft3Dev3("draft-3.dev3"),
+ draft3Dev4("draft-3.dev4"),
+ draft3Dev5("draft-3.dev5"),
+ draft4Dev1("draft-4.dev1"),
+ draft4("draft-4"),
+ ;
+
+
+ public final String name;
+
+ CWLVersions(String name) {
+ this.name = name;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflow.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflow.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflow.java
new file mode 100644
index 0000000..c05c251
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflow.java
@@ -0,0 +1,27 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class CWLWorkflow {
+
+ @JsonProperty(required=true)
+ public List<CWLInputParameter> inputs;
+ @JsonProperty(required=true)
+ public List<CWLWorkflowOutputParameter> outputs;
+ @JsonProperty(value="class", required=true)
+ public String klass;
+ @JsonProperty(required=true)
+ public List<CWLWorkflowStep> steps;
+ public String id;
+ public List<JsonNode> requirements;
+ public List<JsonNode> hints;
+
+ public String label;
+ public String description;
+ public String cwlVersion;
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowOutputParameter.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowOutputParameter.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowOutputParameter.java
new file mode 100644
index 0000000..1330fc8
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowOutputParameter.java
@@ -0,0 +1,31 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.Arrays;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLWorkflowOutputParameter {
+ @JsonProperty(required=true)
+ public String id;
+ public List<String> secondaryFiles;
+ public List<String> format;
+ public boolean streamable;
+
+ public List<String> type;
+
+ public void setType(String type) {
+ this.type = Arrays.asList(type);
+ }
+
+ public String label;
+ public String description;
+ public CWLCommandOutputBinding outputBinding;
+ public List<String> source;
+
+ public void setSource(String source) {
+ this.source = Arrays.asList(source);
+ }
+
+ public CWLLinkMergeMethod linkMerge;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowStep.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowStep.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowStep.java
new file mode 100644
index 0000000..a23d658
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowStep.java
@@ -0,0 +1,32 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class CWLWorkflowStep {
+
+ @JsonProperty(required=true)
+ public String id;
+
+ @JsonProperty(required=true)
+ public List<CWLWorkflowStepInput> in;
+
+ @JsonProperty(required=true)
+ public List<JsonNode> out;
+
+ @JsonProperty(required=true)
+ public JsonNode run;
+
+ public List<CWLRequirement> requirements;
+
+ public List<JsonNode> hints;
+
+ public String label;
+ public String description;
+ public List<String> scatter;
+ public CWLScatterMethod scatterMethod;
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowStepInput.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowStepInput.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowStepInput.java
new file mode 100644
index 0000000..791f79c
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowStepInput.java
@@ -0,0 +1,28 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import java.util.Arrays;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.JsonNode;
+
+public class CWLWorkflowStepInput {
+
+ @JsonProperty(required=true)
+ public String id;
+
+ public List<String> source;
+
+ public void setSource(String source) {
+ this.source = Arrays.asList(source);
+ }
+
+ @JsonProperty(defaultValue="merge_nested")
+ public CWLLinkMergeMethod linkMerge;
+
+ @JsonProperty("value")
+ public JsonNode defaultValue;
+ public String valueFrom;
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowStepOutput.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowStepOutput.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowStepOutput.java
new file mode 100644
index 0000000..6861db0
--- /dev/null
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/workflow/CWLWorkflowStepOutput.java
@@ -0,0 +1,8 @@
+package org.apache.taverna.scufl2.cwl.workflow;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class CWLWorkflowStepOutput {
+ @JsonProperty(required=true)
+ String id;
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestCwlReader.java
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestCwlReader.java b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestCwlReader.java
index a72123f..bd384c5 100644
--- a/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestCwlReader.java
+++ b/taverna-scufl2-cwl/src/test/java/org/apache/taverna/scufl2/cwl/TestCwlReader.java
@@ -4,6 +4,9 @@ import static org.junit.Assert.*;
import java.net.URL;
+import org.apache.taverna.scufl2.api.container.WorkflowBundle;
+import org.apache.taverna.scufl2.api.io.WorkflowBundleIO;
+import org.apache.taverna.scufl2.cwl.CwlReader;
import org.junit.Test;
public class TestCwlReader {
@@ -11,7 +14,7 @@ public class TestCwlReader {
public void parseEx1() throws Exception {
URL revsort = getClass().getResource("/ex1/revsort.cwl");
CwlReader reader = new CwlReader();
- reader.readBundle(revsort);
-
+ WorkflowBundle b = reader.readBundle(revsort);
+ new WorkflowBundleIO().writeBundle(b, System.out, "text/vnd.taverna.scufl2.structure");
}
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-language/blob/52bb54ed/taverna-scufl2-cwl/src/test/resources/ex1/revsort.cwl
----------------------------------------------------------------------
diff --git a/taverna-scufl2-cwl/src/test/resources/ex1/revsort.cwl b/taverna-scufl2-cwl/src/test/resources/ex1/revsort.cwl
index bcdfd1b..b4339d1 100644
--- a/taverna-scufl2-cwl/src/test/resources/ex1/revsort.cwl
+++ b/taverna-scufl2-cwl/src/test/resources/ex1/revsort.cwl
@@ -50,16 +50,16 @@ outputs:
# parameter "#reversed" from the first step to the input parameter of the
# tool "sorttool.cwl#input".
steps:
- - inputs:
+ - in:
- { id: "#rev.input", source: "#input" }
- outputs:
+ out:
- { id: "#rev.output" }
run: { import: revtool.cwl }
- - inputs:
+ - in:
- { id: "#sorted.input", source: "#rev.output" }
- { id: "#sorted.reverse", source: "#reverse_sort" }
- outputs:
+ out:
- { id: "#sorted.output" }
run: { import: sorttool.cwl }
\ No newline at end of file