Add name attribute to all Processes
- Override equals and hashCode for Step component
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java
index eca00fa..4270f46 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/CommandLineTool.java
@@ -46,6 +46,7 @@
private Map<String, OutputProcessorPort> processorOutputs = new HashMap<>();
public CommandLineTool(JsonNode node) {
+ this.name = "";
this.node = node;
this.cwlParser = new CWLParser(node);
this.parse();
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
index 6276278..c152b12 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Process.java
@@ -30,7 +30,7 @@
protected Set<InputPort> insideInputPorts = new HashSet<>();
protected Set<OutputPort> insideOutputPorts = new HashSet<>();
-
+ protected String name;
public abstract void parse();
@@ -66,4 +66,13 @@
this.insideOutputPorts = insideOutputPorts;
}
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
}
\ No newline at end of file
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java
index f51f48b..0adb161 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Reference.java
@@ -26,10 +26,12 @@
public Reference() {
source = "";
+ name = "";
}
public Reference(String src) {
this.source = src;
+ this.name = "";
}
public void parse() {
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java
index aab6b65..8ac65c2 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/Step.java
@@ -35,6 +35,7 @@
public Step() {
inputs = new HashSet<>();
outputs = new HashSet<>();
+ id = "";
}
public String getId() {
@@ -81,4 +82,18 @@
return "Step " + id + ": run = " + run;
}
+ @Override
+ public boolean equals(Object obj) {
+ if(this == obj) return true;
+ if(obj == null) return false;
+ if(this.getClass() != obj.getClass()) return false;
+
+ Step other = (Step) obj;
+ return other.id.equals(id) && other.run.getName().equals(run.getName()); // && other.inputs == inputs && other.outputs == outputs;
+ }
+
+ @Override
+ public int hashCode() {
+ return id.hashCode() * 13 + run.getName().hashCode() * 17;
+ }
}
\ No newline at end of file
diff --git a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
index 263455d..617aab6 100644
--- a/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
+++ b/taverna-scufl2-cwl/src/main/java/org/apache/taverna/scufl2/cwl/components/WorkflowProcess.java
@@ -57,8 +57,12 @@
private Converter converter = new Converter();
- public WorkflowProcess(InputStream stream) {
+ public WorkflowProcess() {
+ this.name = "";
+ }
+ public WorkflowProcess(InputStream stream) {
+ this();
Yaml reader = new Yaml();
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.valueToTree(reader.load(stream));
@@ -68,6 +72,7 @@
}
public WorkflowProcess(JsonNode node) {
+ this();
cwlParser = new CWLParser(node);
this.parse();
}