private void addRelationships(Element element) { Set<Element> elements = getElements().stream().map(ElementView::getElement).collect(Collectors.toSet()); // add relationships where the destination exists in the view already for (Relationship relationship : element.getRelationships()) { if (elements.contains(relationship.getDestination())) { this.relationshipViews.add(new RelationshipView(relationship)); } } // add relationships where the source exists in the view already for (Element e : elements) { for (Relationship r : e.getRelationships()) { if (r.getDestination().equals(element)) { this.relationshipViews.add(new RelationshipView(r)); } } } }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Relationship that = (Relationship) o; if (!getDescription().equals(that.getDescription())) return false; if (!getDestination().equals(that.getDestination())) return false; if (!getSource().equals(that.getSource())) return false; return true; }
public RelationshipView add(Relationship relationship) { if (relationship != null) { if (isElementInView(relationship.getSource()) && isElementInView(relationship.getDestination())) { RelationshipView relationshipView = new RelationshipView(relationship); relationshipViews.add(relationshipView); return relationshipView; } } return null; }