Add createDefaultIterationStrategyStack()
diff --git a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
index 3782580..c7d4b11 100644
--- a/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
+++ b/taverna-scufl2-api/src/main/java/org/apache/taverna/scufl2/api/common/Scufl2Tools.java
@@ -43,6 +43,9 @@
import org.apache.taverna.scufl2.api.core.DataLink;
import org.apache.taverna.scufl2.api.core.Processor;
import org.apache.taverna.scufl2.api.core.Workflow;
+import org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct;
+import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack;
+import org.apache.taverna.scufl2.api.iterationstrategy.PortNode;
import org.apache.taverna.scufl2.api.port.ActivityPort;
import org.apache.taverna.scufl2.api.port.InputActivityPort;
import org.apache.taverna.scufl2.api.port.InputPort;
@@ -863,4 +866,16 @@
}
return procs;
}
+
+ public void createDefaultIterationStrategyStack(Processor p) {
+ p.setIterationStrategyStack(new IterationStrategyStack());
+ CrossProduct crossProduct = new CrossProduct();
+ for (InputProcessorPort in : p.getInputPorts()) {
+ // As this is a NamedSet the above will always be in
+ // the same alphabetical order
+ // FIXME: What about different Locales?
+ crossProduct.add(new PortNode(crossProduct, in));
+ }
+ p.getIterationStrategyStack().add(crossProduct);
+ }
}