public DataLink getMainIncomingDataLink(ReceiverPort rp) { List<DataLink> incomingLinks = getIncomingDataLinks(rp); if (incomingLinks.isEmpty()) return null; if (incomingLinks.size() == 1) return incomingLinks.get(0); for (DataLink dl : incomingLinks) if (dl.getMergePosition() == 0) return dl; return null; }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; DataLink other = (DataLink) obj; if (getSendsTo() == null) { if (other.getSendsTo() != null) return false; } else if (!getSendsTo().equals(other.getSendsTo())) return false; if (getReceivesFrom() == null) { if (other.getReceivesFrom() != null) return false; } else if (!getReceivesFrom().equals(other.getReceivesFrom())) return false; if (getMergePosition() == null) { if (other.getMergePosition() != null) return false; } else if (!getMergePosition().equals(other.getMergePosition())) { return false; } return true; }
@Override public int compareTo(Object other) { if (getClass() != other.getClass()) { int classCompare = getClass().getCanonicalName().compareTo( other.getClass().getCanonicalName()); if (classCompare != 0) // Allow having say InputPorts and OutputPorts in the same sorted list return classCompare; } DataLink o1 = this; DataLink o2 = (DataLink) other; int senderCompare = portCompare(o1.getReceivesFrom(), o2.getReceivesFrom()); if (senderCompare != 0) return senderCompare; int receiverCompare = portCompare(o1.getSendsTo(), o2.getSendsTo()); if (receiverCompare != 0) return receiverCompare; // TODO Don't refer to impl from api? return NullSafeComparator.compareObjects(o1.getMergePosition(), o2.getMergePosition()); }
"{0}?{1}={2}&{3}={4}", DATALINK, FROM, receivesFrom, TO, sendsTo); if (dataLink.getMergePosition() != null) dataLinkUri += MessageFormat.format("&{0}={1}", MERGE_POSITION, dataLink.getMergePosition()); return wfUri.resolve(dataLinkUri); } else if (bean instanceof BlockingControlLink) {
@Override protected void cloneInto(WorkflowBean clone, Cloning cloning) { DataLink cloneLink = (DataLink) clone; cloneLink.setMergePosition(getMergePosition()); cloneLink.setReceivesFrom(cloning.cloneIfNotInCache(getReceivesFrom())); cloneLink.setSendsTo(cloning.cloneIfNotInCache(getSendsTo())); }
Integer mergePosition = bean.getMergePosition(); if (mergePosition != null && mergePosition < 0) listener.negativeValue(bean, "mergePosition", mergePosition);
link.setSendTo(makeResource(toUri)); if (dataLink.getMergePosition() != null) { MergePosition value = objectFactory.createDataLinkMergePosition(); value.setValue(dataLink .getMergePosition()); value.setDatatype(value.getDatatype()); link.setMergePosition(value);