private void transferMerge(List<Edit<?>> editList, Map<Object, Object> oldNewMapping, Dataflow nestedDataflow, Merge merge) throws EditException { editList.add(edits.getRemoveMergeEdit(currentDataflow, merge)); Merge newMerge = edits.createMerge(nestedDataflow); edits.getAddMergeEdit(nestedDataflow, newMerge).doEdit(); oldNewMapping.put(merge, newMerge); for (MergeInputPort mip : merge.getInputPorts()) { MergeInputPort newMip = edits.createMergeInputPort(newMerge, mip.getName(), mip.getDepth()); edits.getAddMergeInputPortEdit(newMerge, newMip).doEdit(); oldNewMapping.put(mip, newMip); } oldNewMapping.put(merge.getOutputPort(), newMerge.getOutputPort()); }
} else { merge = edits.createMerge(dataflow); editList.add(edits.getAddMergeEdit(dataflow, merge)); editList.add(edits.getDisconnectDatalinkEdit(incomingLink)); MergeInputPort mergeInputPort = edits.createMergeInputPort(
} else { merge = edits.createMerge(dataflow); editList.add(edits.getAddMergeEdit(dataflow, merge)); editList.add(edits.getDisconnectDatalinkEdit(incomingLink)); MergeInputPort mergeInputPort = edits.createMergeInputPort(
private void addMergedDatalink(EventForwardingOutputPort sourcePort, EventHandlingInputPort sinkPort, Dataflow targetDataflow) throws EditException, WorkflowTranslationException { Merge merge = null; if (sinkPort.getIncomingLink() == null) { merge = edits.createMerge(targetDataflow); // Add to the dataflow edits.getAddMergeEdit(targetDataflow, merge).doEdit(); } else { if (sinkPort.getIncomingLink().getSource() instanceof MergeOutputPort) { merge = ((MergeOutputPort) sinkPort.getIncomingLink() .getSource()).getMerge(); } else { // FIXME: what to do when a Taverna 1 workflow has 2 inputs to a // single port that isn't a merge?? For now throw an exception throw new WorkflowTranslationException( "Unable to translate a workflow that has multiple un-merged inputs to a single port."); } } edits.getConnectMergedDatalinkEdit(merge, sourcePort, sinkPort) .doEdit(); }
if (sinkPort.getIncomingLink() == null) { merge = edits.createMerge(dataflow); edits.getAddMergeEdit(dataflow, merge).doEdit(); } else { if (sinkPort.getIncomingLink().getSource() instanceof MergeOutputPort) {
if (sinkPort.getIncomingLink() == null) { merge = edits.createMerge(dataflow); edits.getAddMergeEdit(dataflow, merge).doEdit(); } else { if (sinkPort.getIncomingLink().getSource() instanceof MergeOutputPort) {
private void addMergedDatalink(EventForwardingOutputPort sourcePort, EventHandlingInputPort sinkPort, Dataflow targetFlow) throws EditException, WorkflowTranslationException { Merge merge = null; if (sinkPort.getIncomingLink() == null) { merge = edits.createMerge(sinkPort); // Add to the dataflow edits.getAddMergeEdit(targetFlow, merge).doEdit(); } else { if (sinkPort.getIncomingLink().getSource() instanceof MergeOutputPort) { merge = ((MergeOutputPort) sinkPort.getIncomingLink() .getSource()).getMerge(); } else { // FIXME: what to do when a Taverna 1 workflow has 2 inputs to a // single port that isn't a merge?? For now throw an exception throw new WorkflowTranslationException( "Unable to translate a workflow that has multiple un-merged inputs to a single port."); } } edits.getConnectMergedDatalinkEdit(merge, sourcePort, sinkPort) .doEdit(); }
+ merge.getLocalName(), e); compoundEdit.add(edits.getAddMergeEdit(dataflow, merge));