}
}
LinkedList<Object> outputValues = new LinkedList<Object>();
LinkedList<String> outputKeywords = new LinkedList<String>();
for (Node outputNode : outoutNodes) {
OutputNode node = (OutputNode) outputNode;
List<DataPort> inputPorts = node.getInputPorts();
for (DataPort dataPort : inputPorts) {
Object val = InterpreterUtil.findInputFromPort(dataPort,
this.invokerMap);
;
if (null == val) {
throw new WorkFlowInterpreterException(
"Unable to find output for the node:"
+ node.getID());
}
// Some node not yet updated
if (node.getGUI().getBodyColor() != NodeState.FINISHED.color) {
if (actOnProvenance) {
try {
if (val instanceof String) {
this.configuration
.getJcrComponentRegistry()
.getRegistry()
.saveWorkflowExecutionOutput(
this.topic, node.getName(),
val.toString());
} else if (val instanceof org.xmlpull.v1.builder.XmlElement) {
this.configuration
.getJcrComponentRegistry()
.getRegistry()
.saveWorkflowExecutionOutput(
this.topic,
node.getName(),
XMLUtil.xmlElementToString((org.xmlpull.v1.builder.XmlElement) val));
}
} catch (RegistryException e) {
e.printStackTrace(); // To change body of catch
// statement use File |
// Settings | File
// Templates.
}
}
if (val instanceof XmlElement) {
((OutputNode) node).setDescription(XMLUtil
.xmlElementToString((XmlElement) val));
} else {
((OutputNode) node).setDescription(val.toString());
}
node.getGUI().setBodyColor(NodeState.FINISHED.color);
}
}
}
this.notifier.sendingPartialResults(outputValues.toArray(),