in taverna-scufl2-t2flow/src/main/java/org/apache/taverna/scufl2/translator/t2flow/T2FlowParser.java [588:634]
protected void parseActivityOutputMap(
org.apache.taverna.scufl2.xml.t2flow.jaxb.Map outputMap)
throws ReaderException {
for (Mapping mapping : outputMap.getMap()) {
String fromActivityOutput = mapping.getFrom();
String toProcessorOutput = mapping.getTo();
ProcessorOutputPortBinding processorOutputPortBinding = new ProcessorOutputPortBinding();
OutputProcessorPort outputProcessorPort = findNamed(parserState
.get().getCurrentProcessor().getOutputPorts(),
toProcessorOutput);
if (outputProcessorPort == null) {
String message = "Invalid output port binding, "
+ "unknown processor port: " + fromActivityOutput
+ "->" + toProcessorOutput + " in "
+ parserState.get().getCurrentProcessor();
if (isStrict())
throw new ReaderException(message);
logger.warning(message);
continue;
}
OutputActivityPort outputActivityPort = parserState.get()
.getCurrentActivity().getOutputPorts()
.getByName(fromActivityOutput);
if (outputActivityPort == null) {
outputActivityPort = new OutputActivityPort();
outputActivityPort.setName(fromActivityOutput);
outputActivityPort.setParent(parserState.get()
.getCurrentActivity());
parserState.get().getCurrentActivity().getOutputPorts()
.add(outputActivityPort);
}
if (outputActivityPort.getDepth() == null)
outputActivityPort.setDepth(outputProcessorPort.getDepth());
if (outputActivityPort.getGranularDepth() == null)
outputActivityPort.setGranularDepth(outputProcessorPort
.getGranularDepth());
processorOutputPortBinding.setBoundActivityPort(outputActivityPort);
processorOutputPortBinding
.setBoundProcessorPort(outputProcessorPort);
parserState.get().getCurrentProcessorBinding()
.getOutputPortBindings().add(processorOutputPortBinding);
}
}