@Override public int hashCode() { return getId().hashCode(); }
/** * Gets the element view for the given element. * * @param element the Element to find the ElementView for * @return an ElementView object, or null if the element doesn't exist in the view */ public ElementView getElementView(@Nonnull Element element) { Optional<ElementView> elementView = this.elementViews.stream().filter(ev -> ev.getId().equals(element.getId())).findFirst(); return elementView.orElse(null); }
/** * Removes all elements that have no relationships to other elements in this view. */ public void removeElementsWithNoRelationships() { Set<RelationshipView> relationships = getRelationships(); Set<String> elementIds = new HashSet<>(); relationships.forEach(rv -> elementIds.add(rv.getRelationship().getSourceId())); relationships.forEach(rv -> elementIds.add(rv.getRelationship().getDestinationId())); for (ElementView elementView : getElements()) { if (!elementIds.contains(elementView.getId())) { removeElement(elementView.getElement()); } } }
private void hydrateView(View view) { view.setViewSet(this); for (ElementView elementView : view.getElements()) { elementView.setElement(model.getElement(elementView.getId())); } for (RelationshipView relationshipView : view.getRelationships()) { relationshipView.setRelationship(model.getRelationship(relationshipView.getId())); } }