@Override public String getViewTitle() { return "Merge " + merge.getLocalName(); }
/** * Creates a MergeImpl instance. Merge names are generated as 'Merge0', * 'Merge1', 'Merge2', etc. The next merge to be added always gets the name * as the previous merge in the list with its index incremented by one. If a * merge is deleted, that is not taken into account when generating merges' * names. */ public Merge createMerge(Dataflow dataflow) { String mergeName; // Get all merges for a workflow List<? extends Merge> merges = (List<? extends Merge>) dataflow .getMerges(); if (merges.isEmpty()) { mergeName = "Merge0"; // the first merge to be added to the list } else { String lastMergeName = merges.get(merges.size() - 1).getLocalName(); // Get the index of the last Merge int lastMergeIndex = Integer.parseInt(lastMergeName.substring(5)); mergeName = "Merge" + String.valueOf((lastMergeIndex + 1)); } return new MergeImpl(mergeName); }
@Override public void refreshView() { mergeView = new JPanel(); mergeView.setLayout(new BoxLayout(mergeView, BoxLayout.PAGE_AXIS)); mergeView.setBorder(new EmptyBorder(5, 5, 5, 5)); mergeView.add(new JLabel("Merge: " + merge.getLocalName())); mergeView.add(Box.createRigidArea(new Dimension(0,5))); mergeView.add(new JLabel("Inputs: ")); for (MergeInputPort mergeInputPort : merge.getInputPorts()) { mergeView.add(new JLabel(mergeInputPort.getName())); } mergeView.add(Box.createRigidArea(new Dimension(0,5))); mergeView.add(new JLabel("Outputs: ")); mergeView.add(new JLabel(merge.getOutputPort().getName())); } }
/** * Creates a MergeImpl instance. Merge names are generated as 'Merge0', * 'Merge1', 'Merge2', etc. The next merge to be added always gets the name * as the previous merge in the list with its index incremented by one. If a * merge is deleted, that is not taken into account when generating merges' * names. */ public Merge createMerge(Dataflow dataflow) { String mergeName; // Get all merges for a workflow List<? extends Merge> merges = (List<? extends Merge>) dataflow .getMerges(); if (merges.isEmpty()) { mergeName = "Merge0"; // the first merge to be added to the list } else { String lastMergeName = merges.get(merges.size() - 1).getLocalName(); // Get the index of the last Merge int lastMergeIndex = Integer.parseInt(lastMergeName.substring(5)); mergeName = "Merge" + String.valueOf((lastMergeIndex + 1)); } return new MergeImpl(mergeName); }
/** * Adds a processor on the DataFlow. * * @param processor * the ProcessorImpl to be added to the Dataflow * @return * @throws NamingException * if a processor already exists with the same local name */ protected synchronized void addMerge(MergeImpl merge) throws NamingException { for (Merge existingMerge : merges.toArray(new Merge[] {})) { if (existingMerge.getLocalName().equals(merge.getLocalName())) throw new NamingException( "There already is a merge operation named:" + merge.getLocalName()); } merges.add(merge); }
/** * Adds a processor on the DataFlow. * * @param processor * the ProcessorImpl to be added to the Dataflow * @return * @throws NamingException * if a processor already exists with the same local name */ protected synchronized void addMerge(MergeImpl merge) throws NamingException { for (Merge existingMerge : merges.toArray(new Merge[] {})) { if (existingMerge.getLocalName().equals(merge.getLocalName())) throw new NamingException( "There already is a merge operation named:" + merge.getLocalName()); } merges.add(merge); }
/** * Adds a processor on the DataFlow. * * @param processor * the ProcessorImpl to be added to the Dataflow * @return * @throws NamingException * if a processor already exists with the same local name */ protected synchronized void addMerge(MergeImpl merge) throws NamingException { for (Merge existingMerge : merges.toArray(new Merge[] {})) { if (existingMerge.getLocalName().equals(merge.getLocalName())) throw new NamingException( "There already is a merge operation named:" + merge.getLocalName()); } merges.add(merge); }
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(); }
public static String findName(Port port) { if (port instanceof ProcessorPort) { String sourceProcessorName = ((ProcessorPort)port).getProcessor().getLocalName(); return sourceProcessorName + ":" + port.getName(); } else if (port instanceof MergePort) { String sourceMergeName = ((MergePort)port).getMerge().getLocalName(); return sourceMergeName + ":" + port.getName(); } else { return port.getName(); } } }
private String findName(Port port) { if (port instanceof ProcessorPort) { String sourceProcessorName = ((ProcessorPort)port).getProcessor().getLocalName(); return sourceProcessorName + ":" + port.getName(); } else if (port instanceof MergePort) { String sourceMergeName = ((MergePort)port).getMerge().getLocalName(); return sourceMergeName + ":" + port.getName(); } else { return port.getName(); } } }
if (entity != null){ html += "<tr><td>"+ (counter++) + ".</td><td>" + entity.getLocalName() + "." + sourcePort.getName() + " -> " + merge.getLocalName() + "</td></tr>"; html += "<tr><td>1.</td><td>" + merge.getLocalName() + " -> " + entity.getLocalName() + "." + targetPort.getName() + "</td></tr>";
merge, getUniqueMergeInputPortName(merge, incomingLink .getSource().getName() + "To" + merge.getLocalName() + "_input", counter++), incomingLink.getSink() .getDepth()); editList.add(edits.getAddMergeInputPortEdit(merge, + "To" + merge.getLocalName() + "_input", counter), sink.getDepth()); editList.add(edits.getAddMergeInputPortEdit(merge, mergeInputPort)); Datalink datalink = edits.createDatalink(source, mergeInputPort);
merge, getUniqueMergeInputPortName(merge, incomingLink .getSource().getName() + "To" + merge.getLocalName() + "_input", counter++), incomingLink.getSink().getDepth()); editList.add(edits.getAddMergeInputPortEdit(merge, + merge.getLocalName() + "_input", counter), sink .getDepth()); editList.add(edits.getAddMergeInputPortEdit(merge, mergeInputPort));
private GraphNode generateMergeNode(Merge merge, String prefix, int depth) { GraphNode node = createGraphNode(); node.setId(prefix + merge.getLocalName()); node.setLabel(""); node.setShape(getPortStyle().mergeShape());
@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(); }
String originalName = merge.getLocalName(); String mergeName = Tools.uniqueProcessorName(prefix + originalName, dataflow); + merge.getLocalName(), e);
renderer.setText(((Merge) userObject).getLocalName()); } else {