Parse step outputs from the yaml file

- The yaml parser used didn't support output inputs parsing
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
index f745386..76652ea 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/YAMLHelper.java
@@ -125,9 +125,12 @@
                 Process run = ProcessFactory.createProcess(runNode);
                 run.parse();  // Recursively parse nested process
                 Set<InputPort> inputs = processStepInput(stepNode.get(INPUTS));
+                Set<OutputPort> outputs = processStepOutput(stepNode.get(OUTPUTS));
                 step.setId(id);
                 step.setRun(run);
                 step.setInputs(inputs);
+                step.setOutputs(outputs);
+
                 result.add(step);
             }
         } else if(steps.isObject()) {
@@ -145,8 +148,10 @@
                     step.setRun(run);
                 }
                 Set<InputPort> inputs = processStepInput(value.get(INPUTS));
+                Set<OutputPort> outputs = processStepOutput(value.get(OUTPUTS));
                 step.setId(id);
                 step.setInputs(inputs);
+                step.setOutputs(outputs);
 
                 result.add(step);
             }
@@ -183,6 +188,32 @@
         return result;
     }
 
+    private Set<OutputPort> processStepOutput(JsonNode outputs) {
+        Set<OutputPort> result = new HashSet<>();
+        if(outputs == null) {
+            return result;
+        }
+        if (outputs.isArray()) {
+
+            for (JsonNode output : outputs) {
+                String id = output.get(ID).asText();
+
+                result.add(new OutputPort(id));
+            }
+        } else if (outputs.isObject()) {
+            Iterator<Entry<String, JsonNode>> iterator = outputs.fields();
+            while (iterator.hasNext()) {
+                Entry<String, JsonNode> entry = iterator.next();
+
+                String id = entry.getKey();
+
+                result.add(new OutputPort(id));
+            }
+        }
+
+        return result;
+    }
+
     /**
      * This method will go through CWL tool input or out puts and figure outs
      * their IDs and the respective depths