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