in taverna-workflowmodel-api/src/main/java/org/apache/taverna/workflowmodel/utils/Tools.java [574:602]
public static TokenProcessingEntity getTokenProcessingEntityWithEventForwardingOutputPort(
EventForwardingOutputPort port, Dataflow workflow) {
// First check the workflow's inputs
for (DataflowInputPort input : workflow.getInputPorts())
if (input.getInternalOutputPort().equals(port))
return workflow;
// Check workflow's merges
for (Merge merge : workflow.getMerges())
if (merge.getOutputPort().equals(port))
return merge;
// Check workflow's processors
for (Processor processor : workflow.getProcessors()) {
for (OutputPort output : processor.getOutputPorts())
if (output.equals(port))
return processor;
// If processor contains a nested workflow - descend into it
if (containsNestedWorkflow(processor)) {
TokenProcessingEntity entity = getTokenProcessingEntityWithEventForwardingOutputPort(
port, getNestedWorkflow(processor));
if (entity != null)
return entity;
}
}
return null;
}