@Override protected void doEditAction(MergeImpl mergeImpl) throws EditException { Edits edits = new EditsImpl(); mergeInputPort = new MergeInputPortImpl(mergeImpl,sourcePort.getName()+"_tomerge",sinkPort.getDepth()); inLink = edits.createDatalink(sourcePort, mergeInputPort); connectInLinkEdit=edits.getConnectDatalinkEdit(inLink); if (mergeImpl.getOutputPort().getOutgoingLinks().size()==0) { outLink = edits.createDatalink(mergeImpl.getOutputPort(), sinkPort); connectOutLinkEdit=edits.getConnectDatalinkEdit(outLink); } else if (mergeImpl.getOutputPort().getOutgoingLinks().size()==1){ if (mergeImpl.getOutputPort().getOutgoingLinks().toArray(new Datalink[]{})[0].getSink() != sinkPort) { throw new EditException("Cannot add a different sinkPort to a Merge that already has one defined"); } } else { throw new EditException("The merge instance cannot have more that 1 outgoing Datalink"); } mergeImpl.addInputPort(mergeInputPort); connectInLinkEdit.doEdit(); if (connectOutLinkEdit!=null) connectOutLinkEdit.doEdit(); }
public void actionPerformed(ActionEvent e) { try { Set<? extends Datalink> datalinks = port.getInternalOutputPort().getOutgoingLinks(); if (datalinks.isEmpty()) { editManager.doDataflowEdit(dataflow, edits.getRemoveDataflowInputPortEdit(dataflow, port)); } else { List<Edit<?>> editList = new ArrayList<Edit<?>>(); for (Datalink datalink : datalinks) { editList.add(Tools.getDisconnectDatalinkAndRemovePortsEdit(datalink)); } editList.add(edits.getRemoveDataflowInputPortEdit(dataflow, port)); editManager.doDataflowEdit(dataflow, new CompoundEdit(editList)); } dataflowSelectionModel.removeSelection(port); } catch (EditException e1) { logger.debug("Delete workflow input port failed", e1); } }
private EventForwardingOutputPort findOutputPort(Processor processor, String name) { for (EventForwardingOutputPort outputPort : processor.getOutputPorts()) { if (outputPort.getName().equals(name)) { return outputPort; } } return null; }
for (Datalink dl : dip.getInternalOutputPort().getOutgoingLinks()) { if (dl instanceof DatalinkImpl) { DatalinkImpl dli = (DatalinkImpl) dl; int granularDepth = dl.getSource().getGranularDepth(); int resolvedDepth = dl.getResolvedDepth(); dopi.setDepths(resolvedDepth, granularDepth);
for (Datalink datalink : outputPort.getOutgoingLinks()) { EventHandlingInputPort sink = datalink.getSink(); if (sink instanceof ProcessorInputPort) {
private EventForwardingOutputPort findOutputPort(Processor processor, String name) { for (EventForwardingOutputPort outputPort : processor.getOutputPorts()) { if (outputPort.getName().equals(name)) { return outputPort; } } return null; }
for (Datalink dl : dip.getInternalOutputPort().getOutgoingLinks()) { if (dl instanceof DatalinkImpl) { DatalinkImpl dli = (DatalinkImpl) dl; int granularDepth = dl.getSource().getGranularDepth(); int resolvedDepth = dl.getResolvedDepth(); dopi.setDepths(resolvedDepth, granularDepth);
@Override protected void doEditAction(MergeImpl mergeImpl) throws EditException { Edits edits = new EditsImpl(); String name = Tools.getUniqueMergeInputPortName(mergeImpl, sourcePort.getName()+"To" + merge.getLocalName() + "_input", 0); mergeInputPort = new MergeInputPortImpl(mergeImpl,name,sinkPort.getDepth()); inLink = edits.createDatalink(sourcePort, mergeInputPort); connectInLinkEdit=edits.getConnectDatalinkEdit(inLink); if (mergeImpl.getOutputPort().getOutgoingLinks().size()==0) { outLink = edits.createDatalink(mergeImpl.getOutputPort(), sinkPort); connectOutLinkEdit=edits.getConnectDatalinkEdit(outLink); } else if (mergeImpl.getOutputPort().getOutgoingLinks().size()==1){ if (mergeImpl.getOutputPort().getOutgoingLinks().toArray(new Datalink[]{})[0].getSink() != sinkPort) { throw new EditException("Cannot add a different sinkPort to a Merge that already has one defined"); } } else { throw new EditException("The merge instance cannot have more that 1 outgoing Datalink"); } mergeImpl.addInputPort(mergeInputPort); connectInLinkEdit.doEdit(); if (connectOutLinkEdit!=null) connectOutLinkEdit.doEdit(); }
public void actionPerformed(ActionEvent e) { try { List<? extends MergeInputPort> inputPorts = merge.getInputPorts(); EventForwardingOutputPort outputPort = merge.getOutputPort(); List<Edit<?>> editList = new ArrayList<Edit<?>>(); for (MergeInputPort inputPort : inputPorts) { Datalink datalink = inputPort.getIncomingLink(); if (datalink != null) { editList.add(Tools.getDisconnectDatalinkAndRemovePortsEdit(datalink)); } } for (Datalink datalink : outputPort.getOutgoingLinks()) { editList.add(Tools.getDisconnectDatalinkAndRemovePortsEdit(datalink)); } if (editList.isEmpty()) { editManager.doDataflowEdit(dataflow, edits.getRemoveMergeEdit(dataflow, merge)); } else { editList.add(edits.getRemoveMergeEdit(dataflow, merge)); editManager.doDataflowEdit(dataflow, new CompoundEdit(editList)); } dataflowSelectionModel.removeSelection(merge); } catch (EditException e1) { logger.debug("Delete merge failed", e1); } }
@Override public String toString() { return "link("+resolvedDepth+")"+source.getName()+":"+sink.getName(); }
for (Datalink dl : dip.getInternalOutputPort().getOutgoingLinks()) { if (dl instanceof DatalinkImpl) { DatalinkImpl dli = (DatalinkImpl) dl; int granularDepth = dl.getSource().getGranularDepth(); int resolvedDepth = dl.getResolvedDepth(); dopi.setDepths(resolvedDepth, granularDepth);
@Override protected void doEditAction(MergeImpl mergeImpl) throws EditException { Edits edits = new EditsImpl(); String name = Tools.getUniqueMergeInputPortName(mergeImpl, sourcePort.getName()+"To" + merge.getLocalName() + "_input", 0); mergeInputPort = new MergeInputPortImpl(mergeImpl,name,sinkPort.getDepth()); inLink = edits.createDatalink(sourcePort, mergeInputPort); connectInLinkEdit=edits.getConnectDatalinkEdit(inLink); if (mergeImpl.getOutputPort().getOutgoingLinks().size()==0) { outLink = edits.createDatalink(mergeImpl.getOutputPort(), sinkPort); connectOutLinkEdit=edits.getConnectDatalinkEdit(outLink); } else if (mergeImpl.getOutputPort().getOutgoingLinks().size()==1){ if (mergeImpl.getOutputPort().getOutgoingLinks().toArray(new Datalink[]{})[0].getSink() != sinkPort) { throw new EditException("Cannot add a different sinkPort to a Merge that already has one defined"); } } else { throw new EditException("The merge instance cannot have more that 1 outgoing Datalink"); } mergeImpl.addInputPort(mergeInputPort); connectInLinkEdit.doEdit(); if (connectOutLinkEdit!=null) connectOutLinkEdit.doEdit(); }
Merge merge = (Merge) dataflowObject; if (sourceObject != null) { Set<? extends Datalink> outgoingLinks = merge.getOutputPort().getOutgoingLinks(); if (outgoingLinks.size() == 1) { Datalink datalink = outgoingLinks.iterator().next();
@Override public String toString() { return "link("+resolvedDepth+")"+source.getName()+":"+sink.getName(); }
Merge m = ((MergeInputPortImpl) link.getSink()).getMerge(); effectiveLink = (Datalink) m .getOutputPort().getOutgoingLinks().toArray()[0]; dataLinkSinkType = determineDatalinkType(effectiveLink.getSink()); Element portElement = new Element(PROCESSOR_PORT, T2_WORKFLOW_NAMESPACE); portElement.setText(link.getSource().getName()); source.addContent(portElement); } else if (dataLinkSourceType == DATALINK_TYPES.MERGE) { } else if (dataLinkSourceType == DATALINK_TYPES.DATAFLOW) { Element portElement = new Element(PORT, T2_WORKFLOW_NAMESPACE); portElement.setText(link.getSource().getName()); source.addContent(portElement);
@Test public void testDoEditAction() throws EditException { ConnectDatalinkEdit edit = new ConnectDatalinkEdit(datalink); assertEquals(0, datalink.getSource().getOutgoingLinks().size()); assertNull(datalink.getSink().getIncomingLink()); edit.doEditAction(datalink); assertEquals(1, datalink.getSource().getOutgoingLinks().size()); assertEquals(datalink, datalink.getSource().getOutgoingLinks() .iterator().next()); assertEquals(datalink, datalink.getSink().getIncomingLink()); }
@Override public String toString() { return "link("+resolvedDepth+")"+source.getName()+":"+sink.getName(); }