public Element datalinksToXML(List<? extends Datalink> links) throws SerializationException { Element result = new Element(DATALINKS, T2_WORKFLOW_NAMESPACE); for (Datalink link : links) { if (determineDatalinkType(link.getSource()) != DATALINK_TYPES.MERGE) { result.addContent(datalinkToXML(link)); } } return result; } }
public Element datalinksToXML(List<? extends Datalink> links) throws SerializationException { Element result = new Element(DATALINKS, T2_WORKFLOW_NAMESPACE); for (Datalink link : links) { if (determineDatalinkType(link.getSource()) != DATALINK_TYPES.MERGE) { result.addContent(datalinkToXML(link)); } } return result; } }
@Override public void refreshView() { datalinkView = new JPanel(); datalinkView.setBorder(new EmptyBorder(5,5,5,5)); JLabel datalinkName = new JLabel("Datalink: " + datalink.getSource().getName() + " -> " + datalink.getSink().getName()); datalinkView.add(datalinkName); }
public boolean isInputPortConnected(DataflowInputPort inputPort) { List<? extends Datalink> links = getLinks(); for (Datalink link : links) { if (link.getSource().equals(inputPort.getInternalOutputPort())) { return true; } } return false; }
public static Edit<?> getMoveDatalinkSinkEdit(Dataflow dataflow, Datalink datalink, EventHandlingInputPort sink, Edits edits) { List<Edit<?>> editList = new ArrayList<Edit<?>>(); editList.add(edits.getDisconnectDatalinkEdit(datalink)); if (datalink.getSink() instanceof ProcessorInputPort) { editList .add(getRemoveProcessorInputPortEdit((ProcessorInputPort) datalink .getSink(), edits)); } editList.add(getCreateAndConnectDatalinkEdit(dataflow, datalink .getSource(), sink, edits)); return new CompoundEdit(editList); }
public static Edit<?> getDisconnectDatalinkAndRemovePortsEdit( Datalink datalink, Edits edits) { List<Edit<?>> editList = new ArrayList<Edit<?>>(); editList.add(edits.getDisconnectDatalinkEdit(datalink)); if (datalink.getSource() instanceof ProcessorOutputPort) { ProcessorOutputPort processorOutputPort = (ProcessorOutputPort) datalink .getSource(); if (processorOutputPort.getOutgoingLinks().size() == 1) { editList .add(getRemoveProcessorOutputPortEdit(processorOutputPort, edits)); } } if (datalink.getSink() instanceof ProcessorInputPort) { editList .add(getRemoveProcessorInputPortEdit((ProcessorInputPort) datalink .getSink(), edits)); } return new CompoundEdit(editList); }
public static Edit<?> getDisconnectDatalinkAndRemovePortsEdit( Datalink datalink) { List<Edit<?>> editList = new ArrayList<Edit<?>>(); editList.add(edits.getDisconnectDatalinkEdit(datalink)); if (datalink.getSource() instanceof ProcessorOutputPort) { ProcessorOutputPort processorOutputPort = (ProcessorOutputPort) datalink .getSource(); if (processorOutputPort.getOutgoingLinks().size() == 1) { editList .add(getRemoveProcessorOutputPortEdit(processorOutputPort)); } } if (datalink.getSink() instanceof ProcessorInputPort) { editList .add(getRemoveProcessorInputPortEdit((ProcessorInputPort) datalink .getSink())); } return new CompoundEdit(editList); }
public static Edit<?> getMoveDatalinkSinkEdit(Dataflow dataflow, Datalink datalink, EventHandlingInputPort sink) { List<Edit<?>> editList = new ArrayList<Edit<?>>(); editList.add(edits.getDisconnectDatalinkEdit(datalink)); if (datalink.getSink() instanceof ProcessorInputPort) { editList .add(getRemoveProcessorInputPortEdit((ProcessorInputPort) datalink .getSink())); } editList.add(getCreateAndConnectDatalinkEdit(dataflow, datalink .getSource(), sink)); return new CompoundEdit(editList); }
@Override public String getViewTitle() { return "Data link: " + datalink.getSource().getName() + " -> " + datalink.getSink().getName(); }
public int compare(Datalink link1, Datalink link2) { // Text for link1 EventForwardingOutputPort source1 = link1.getSource(); String sourceName1 = findName(source1); EventHandlingInputPort sink1 = link1.getSink(); String sinkName1 = findName(sink1); String text1 = sourceName1 + " -> " + sinkName1; // Text for link2 EventForwardingOutputPort source2 = link2.getSource(); String sourceName2 = findName(source2); EventHandlingInputPort sink2 = link2.getSink(); String sinkName2 = findName(sink2); String text2 = sourceName2 + " -> " + sinkName2; return text1.compareToIgnoreCase(text2); }
public MergeConfigurationView(Merge merge){ super((Frame)null, "Merge Configuration", true); this.merge = merge; // Ordered list of merge's input ports inputPortsList = new ArrayList<MergeInputPort>(merge.getInputPorts()); // Generate labels for the input ports (label displays a link from a workflow entity // towards the merge's input port) labelListModel = new DefaultListModel(); String maxLabel = "Order of incoming links (entity.port -> merge):"+"Push"; for (MergeInputPort mergeInputPort : inputPortsList){ EventForwardingOutputPort sourcePort = mergeInputPort.getIncomingLink().getSource(); // Get the name TokenProcessingEntity (Processor or another Merge or Dataflow) and // its port that contains the source EventForwardingOutputPort Dataflow workflow = FileManager.getInstance().getCurrentDataflow(); TokenProcessingEntity entity = Tools.getTokenProcessingEntityWithEventForwardingOutputPort(sourcePort, workflow); if (entity != null){ String link = entity.getLocalName() + "." + sourcePort.getName() + " -> " + merge.getLocalName(); if (link.length() > maxLabel.length()) maxLabel = link; labelListModel.addElement(link); } } initComponents(); }
for (Datalink dl : d.getLinks()) { if (dl.getSink().equals(mip)) { reports.addAll(checkSource(dl, dl.getSource(), d, o, aip, sinkMimeSet));
Port source = dl.getSource(); Set<VisitReport> subReports = checkSource(dl, source, d, (Activity) o, aip, sinkMimeSet); for (VisitReport vr : subReports) {
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(); }
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(); }
for (Datalink dl : d.getLinks()) { if (dl.getSink().equals(mip)) { reports.addAll(checkSource(dl.getSource(), d, o, aip));
private void considerNearestUpstream(TokenProcessingEntity investigate) { if (investigate instanceof Processor) for (Condition condition : ((Processor) investigate) .getPreconditionList()) considerInclusion(condition.getControl()); for (EventHandlingInputPort inputPort : investigate.getInputPorts()) { Datalink incomingLink = inputPort.getIncomingLink(); if (incomingLink == null) continue; EventForwardingOutputPort source = incomingLink.getSource(); if (source instanceof ProcessorOutputPort) considerInclusion(((ProcessorOutputPort) source).getProcessor()); else if (source instanceof MergeOutputPort) considerInclusion(((MergeOutputPort) source).getMerge()); else { // Ignore } } }
@Test public void redo() throws Exception { Edit<Merge> theEdit = new ConnectMergedDatalinkEdit(merge,sourcePort,sinkPort); theEdit.doEdit(); theEdit.undo(); theEdit.doEdit(); assertEquals(1,merge.getInputPorts().size()); assertTrue(merge.getInputPorts().get(0) instanceof MergeInputPort); assertSame(sourcePort,merge.getInputPorts().get(0).getIncomingLink().getSource()); assertEquals(1,merge.getOutputPort().getOutgoingLinks().size()); assertSame(sinkPort,merge.getOutputPort().getOutgoingLinks().toArray(new Datalink[]{})[0].getSink()); assertEquals(1,sourcePort.getOutgoingLinks().size()); assertTrue(sourcePort.getOutgoingLinks().toArray(new Datalink[]{})[0].getSink() instanceof MergeInputPort); assertTrue(sinkPort.getIncomingLink().getSource() instanceof MergeOutputPort); assertSame(merge.getInputPorts().get(0),sourcePort.getOutgoingLinks().toArray(new Datalink[]{})[0].getSink()); assertSame(sinkPort.getIncomingLink().getSource(),merge.getOutputPort()); }
EventForwardingOutputPort sourcePort = mergeInputPort.getIncomingLink().getSource();
assertTrue(merge.getInputPorts().get(0) instanceof MergeInputPort); assertEquals("source_port_tomerge",merge.getInputPorts().get(0).getName()); assertSame(sourcePort,merge.getInputPorts().get(0).getIncomingLink().getSource()); assertTrue(sinkPort.getIncomingLink().getSource() instanceof MergeOutputPort); assertSame(sinkPort.getIncomingLink().getSource(),merge.getOutputPort()); assertTrue(merge.getInputPorts().get(1) instanceof MergeInputPort); assertEquals("source_port2_tomerge",merge.getInputPorts().get(1).getName()); assertSame(sourcePort2,merge.getInputPorts().get(1).getIncomingLink().getSource());