@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(); }
@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(); }
@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(); }