public static Set<Vertex> collapseVertices(Set<Vertex> vertices, CollapsibleCriteria[] criteria) { final Set<Vertex> retval = new HashSet<>(); final Set<Vertex> verticesToProcess = new HashSet<>(vertices); // Replace all vertices by its collapsed representation for (CollapsibleCriteria collapsibleCriteria : criteria) { if (collapsibleCriteria.isCollapsed()) { final Set<VertexRef> verticesRepresentedByCollapsible = collapsibleCriteria.getVertices().stream() .filter(vertices::contains) .collect(Collectors.toSet()); verticesToProcess.removeAll(verticesRepresentedByCollapsible); retval.add(collapsibleCriteria.getCollapsedRepresentation()); } } // Not all vertices may be represented by a collapsed version - either their criteria is not collapsed // or it is a pure vertex - therefore those are added afterwards retval.addAll(verticesToProcess); verticesToProcess.clear(); return retval; }
public static Set<Vertex> collapseVertices(Set<Vertex> vertices, CollapsibleCriteria[] criteria) { final Set<Vertex> retval = new HashSet<>(); final Set<Vertex> verticesToProcess = new HashSet<>(vertices); // Replace all vertices by its collapsed representation for (CollapsibleCriteria collapsibleCriteria : criteria) { if (collapsibleCriteria.isCollapsed()) { final Set<VertexRef> verticesRepresentedByCollapsible = collapsibleCriteria.getVertices().stream() .filter(vertices::contains) .collect(Collectors.toSet()); verticesToProcess.removeAll(verticesRepresentedByCollapsible); retval.add(collapsibleCriteria.getCollapsedRepresentation()); } } // Not all vertices may be represented by a collapsed version - either their criteria is not collapsed // or it is a pure vertex - therefore those are added afterwards retval.addAll(verticesToProcess); verticesToProcess.clear(); return retval; }
public static Map<VertexRef,Set<Vertex>> getMapOfVerticesToCollapsedVertices(CollapsibleCriteria[] criteria) { // Make a map of all of the vertices to their new collapsed representations Map<VertexRef,Set<Vertex>> vertexToCollapsedVertices = new TreeMap<VertexRef,Set<Vertex>>(new RefComparator()); for (CollapsibleCriteria criterium : criteria) { Set<VertexRef> criteriaVertices = criterium.getVertices(); if (criteriaVertices.size() > 0) { Vertex collapsedVertex = criterium.getCollapsedRepresentation(); for (VertexRef criteriaVertex : criteriaVertices) { Set<Vertex> collapsedVertices = vertexToCollapsedVertices.get(criteriaVertex); if (collapsedVertices == null) { collapsedVertices = new HashSet<Vertex>(); vertexToCollapsedVertices.put(criteriaVertex, collapsedVertices); } collapsedVertices.add(collapsedVertex); } } } return vertexToCollapsedVertices; }
public static Map<VertexRef,Set<Vertex>> getMapOfVerticesToCollapsedVertices(CollapsibleCriteria[] criteria) { // Make a map of all of the vertices to their new collapsed representations Map<VertexRef,Set<Vertex>> vertexToCollapsedVertices = new TreeMap<VertexRef,Set<Vertex>>(new RefComparator()); for (CollapsibleCriteria criterium : criteria) { Set<VertexRef> criteriaVertices = criterium.getVertices(); if (criteriaVertices.size() > 0) { Vertex collapsedVertex = criterium.getCollapsedRepresentation(); for (VertexRef criteriaVertex : criteriaVertices) { Set<Vertex> collapsedVertices = vertexToCollapsedVertices.get(criteriaVertex); if (collapsedVertices == null) { collapsedVertices = new HashSet<Vertex>(); vertexToCollapsedVertices.put(criteriaVertex, collapsedVertices); } collapsedVertices.add(collapsedVertex); } } } return vertexToCollapsedVertices; }
public static Map<VertexRef,Set<Vertex>> getMapOfVerticesToCollapsedVertices(CollapsibleCriteria[] criteria) { // Make a map of all of the vertices to their new collapsed representations Map<VertexRef,Set<Vertex>> vertexToCollapsedVertices = new TreeMap<VertexRef,Set<Vertex>>(new RefComparator()); for (CollapsibleCriteria criterium : criteria) { Set<VertexRef> criteriaVertices = criterium.getVertices(); if (criteriaVertices.size() > 0) { Vertex collapsedVertex = criterium.getCollapsedRepresentation(); for (VertexRef criteriaVertex : criteriaVertices) { Set<Vertex> collapsedVertices = vertexToCollapsedVertices.get(criteriaVertex); if (collapsedVertices == null) { collapsedVertices = new HashSet<Vertex>(); vertexToCollapsedVertices.put(criteriaVertex, collapsedVertices); } collapsedVertices.add(collapsedVertex); } } } return vertexToCollapsedVertices; }
@Override public List<Vertex> getChildren(VertexRef group, Criteria... criteria) { for (CollapsibleCriteria criterium : getCollapsedCriteria(criteria)) { if (new RefComparator().compare(criterium.getCollapsedRepresentation(), group) == 0) { return getVertices(criterium.getVertices()); } } return Collections.emptyList(); }
@Override public boolean containsVertexId(VertexRef id, Criteria... criteria) { for (CollapsibleCriteria criterium : getCollapsedCriteria(criteria)) { Vertex collapsed = criterium.getCollapsedRepresentation(); if (new RefComparator().compare(collapsed, id) == 0) { return true; } } return m_delegate.containsVertexId(id, criteria); }
@Override public boolean containsVertexId(VertexRef id, Criteria... criteria) { for (CollapsibleCriteria criterium : getCollapsedCriteria(criteria)) { Vertex collapsed = criterium.getCollapsedRepresentation(); if (new RefComparator().compare(collapsed, id) == 0) { return true; } } return m_delegate.containsVertexId(id, criteria); }
@Override public Vertex getVertex(VertexRef reference, Criteria... criteria) { for (CollapsibleCriteria criterium : getCollapsedCriteria(criteria)) { Vertex collapsed = criterium.getCollapsedRepresentation(); if (new RefComparator().compare(collapsed, reference) == 0) { return collapsed; } } return m_delegate.getVertex(reference, criteria); }
@Override public List<Vertex> getChildren(VertexRef group, Criteria... criteria) { for (CollapsibleCriteria criterium : getCollapsedCriteria(criteria)) { if (new RefComparator().compare(criterium.getCollapsedRepresentation(), group) == 0) { return getVertices(criterium.getVertices()); } } return Collections.emptyList(); }
@Override public List<Vertex> getChildren(VertexRef group, Criteria... criteria) { for (CollapsibleCriteria criterium : getCollapsedCriteria(criteria)) { if (new RefComparator().compare(criterium.getCollapsedRepresentation(), group) == 0) { return getVertices(criterium.getVertices()); } } return Collections.emptyList(); }
@Override public Vertex getVertex(VertexRef reference, Criteria... criteria) { for (CollapsibleCriteria criterium : getCollapsedCriteria(criteria)) { Vertex collapsed = criterium.getCollapsedRepresentation(); if (new RefComparator().compare(collapsed, reference) == 0) { return collapsed; } } return m_delegate.getVertex(reference, criteria); }
@Override public Vertex getVertex(VertexRef reference, Criteria... criteria) { for (CollapsibleCriteria criterium : getCollapsedCriteria(criteria)) { Vertex collapsed = criterium.getCollapsedRepresentation(); if (new RefComparator().compare(collapsed, reference) == 0) { return collapsed; } } return m_delegate.getVertex(reference, criteria); }
@Override public boolean containsVertexId(VertexRef id, Criteria... criteria) { for (CollapsibleCriteria criterium : getCollapsedCriteria(criteria)) { Vertex collapsed = criterium.getCollapsedRepresentation(); if (new RefComparator().compare(collapsed, id) == 0) { return true; } } return m_delegate.containsVertexId(id, criteria); }