public Set<InfoVertex<T, C>> connectedSetOf(InfoVertex<T, C> vertex) { Set<InfoVertex<T, C>> connectedSet = vertexToConnectedSet.get(vertex); if (connectedSet == null) { connectedSet = new HashSet<InfoVertex<T, C>>(); final BreadthFirstIterator<InfoVertex<T, C>, DependencyEdge> i = new BreadthFirstIterator<InfoVertex<T, C>, DependencyEdge>( graph, vertex); while (i.hasNext()) { connectedSet.add(i.next()); } vertexToConnectedSet.put(vertex, connectedSet); } return connectedSet; }
public Set<InfoVertex<T, C>> connectedSetOf(InfoVertex<T, C> vertex) { Set<InfoVertex<T, C>> connectedSet = vertexToConnectedSet.get(vertex); if (connectedSet == null) { connectedSet = new HashSet<InfoVertex<T, C>>(); final BreadthFirstIterator<InfoVertex<T, C>, DependencyEdge> i = new BreadthFirstIterator<InfoVertex<T, C>, DependencyEdge>( graph, vertex); while (i.hasNext()) { connectedSet.add(i.next()); } vertexToConnectedSet.put(vertex, connectedSet); } return connectedSet; }
/** * */ @Override public Set<Equivalences<T>> getSuper(Equivalences<T> v) { Set<Equivalences<T>> result = new LinkedHashSet<>(); BreadthFirstIterator<Equivalences<T>, DefaultEdge> iterator = new BreadthFirstIterator<Equivalences<T>, DefaultEdge>(dag, v); while (iterator.hasNext()) { Equivalences<T> parent = iterator.next(); result.add(parent); } return Collections.unmodifiableSet(result); }
/** * */ @Override public Set<Equivalences<T>> getSuper(Equivalences<T> v) { Set<Equivalences<T>> result = new LinkedHashSet<>(); BreadthFirstIterator<Equivalences<T>, DefaultEdge> iterator = new BreadthFirstIterator<Equivalences<T>, DefaultEdge>(dag, v); while (iterator.hasNext()) { Equivalences<T> parent = iterator.next(); result.add(parent); } return Collections.unmodifiableSet(result); }
private void bfs(Graph<V, E> graph, V root, List<List<V>> levels) { BreadthFirstIterator<V, E> bfs = new BreadthFirstIterator<>(graph, root); while (bfs.hasNext()) { V u = bfs.next(); if (levels.size() < bfs.getDepth(u) + 1) { levels.add(new ArrayList<>()); } levels.get(bfs.getDepth(u)).add(u); } }
private V computeFarthestVertex(BreadthFirstIterator<V, E> bfs) { V farthest = null; int dist = Integer.MIN_VALUE; while (bfs.hasNext()) { V v = bfs.next(); int depth = bfs.getDepth(v); if (dist < depth) { farthest = v; dist = depth; } } return farthest; }
/** * Returns a set of all vertices that are in the maximally connected component together with the * specified vertex. For more on maximally connected component, see * <a href="http://www.nist.gov/dads/HTML/maximallyConnectedComponent.html"> * http://www.nist.gov/dads/HTML/maximallyConnectedComponent.html</a>. * * @param vertex the vertex for which the connected set to be returned. * * @return a set of all vertices that are in the maximally connected component together with the * specified vertex. */ public Set<V> connectedSetOf(V vertex) { Set<V> connectedSet = vertexToConnectedSet.get(vertex); if (connectedSet == null) { connectedSet = new HashSet<>(); BreadthFirstIterator<V, E> i = new BreadthFirstIterator<>(graph, vertex); while (i.hasNext()) { connectedSet.add(i.next()); } vertexToConnectedSet.put(vertex, connectedSet); } return connectedSet; }
/** * */ @Override public Set<Equivalences<T>> getSub(Equivalences<T> v) { Set<Equivalences<T>> result = cacheSub.get(v); if (result == null) { result = new LinkedHashSet<>(); BreadthFirstIterator<Equivalences<T>, DefaultEdge> iterator = new BreadthFirstIterator<Equivalences<T>, DefaultEdge>( new EdgeReversedGraph<>(dag), v); while (iterator.hasNext()) { Equivalences<T> child = iterator.next(); result.add(child); } result = Collections.unmodifiableSet(result); cacheSub.put(v, result); } return result; }
/** * */ @Override public Set<Equivalences<T>> getSub(Equivalences<T> v) { Set<Equivalences<T>> result = cacheSub.get(v); if (result == null) { result = new LinkedHashSet<>(); BreadthFirstIterator<Equivalences<T>, DefaultEdge> iterator = new BreadthFirstIterator<Equivalences<T>, DefaultEdge>( new EdgeReversedGraph<>(dag), v); while (iterator.hasNext()) { Equivalences<T> child = iterator.next(); result.add(child); } result = Collections.unmodifiableSet(result); cacheSub.put(v, result); } return result; }
public Set<String> getSubclasses(String className) { String classNameWithDots = ResourceList.getClassNameFromResourcePath(className); if (subclassCache.containsKey(classNameWithDots)) return subclassCache.get(classNameWithDots); if (!inheritanceGraph.containsVertex(classNameWithDots)) { LoggingUtils.logWarnAtMostOnce(logger, "Class not in inheritance graph: " + classNameWithDots); return new LinkedHashSet<>(); } // TreeSet so that classes are sorted by name and thus deterministic across platforms Set<String> result = new TreeSet<String>(); BreadthFirstIterator<String, DefaultEdge> bfi = new BreadthFirstIterator<String, DefaultEdge>( inheritanceGraph, classNameWithDots); while (bfi.hasNext()) { result.add(bfi.next()); } subclassCache.put(classNameWithDots, result); return result; }
i.addTraversalListener( new MyTraversalListener() ); while ( i.hasNext() )
i.addTraversalListener( new MyTraversalListener() ); while ( i.hasNext() )
/** * */ @Override public Set<T> getSubRepresentatives(T v) { Equivalences<T> eq = vertexIndex.get(v); if (eq == null) return Collections.singleton(v); Set<T> result = cacheSubRep.get(eq.getRepresentative()); if (result == null) { result = new LinkedHashSet<T>(); BreadthFirstIterator<Equivalences<T>, DefaultEdge> iterator = new BreadthFirstIterator<Equivalences<T>, DefaultEdge>( new EdgeReversedGraph<>(dag), eq); while (iterator.hasNext()) { Equivalences<T> child = iterator.next(); result.add(child.getRepresentative()); } result = Collections.unmodifiableSet(result); cacheSubRep.put(eq.getRepresentative(), result); } return result; }
private List<Set<V>> lazyFindConnectedSets() { if (connectedSets == null) { connectedSets = new ArrayList<>(); Set<V> vertexSet = graph.vertexSet(); if (!vertexSet.isEmpty()) { BreadthFirstIterator<V, E> i = new BreadthFirstIterator<>(graph); i.addTraversalListener(new MyTraversalListener()); while (i.hasNext()) { i.next(); } } } return connectedSets; }
/** * */ @Override public Set<T> getSubRepresentatives(T v) { Equivalences<T> eq = vertexIndex.get(v); if (eq == null) return Collections.singleton(v); Set<T> result = cacheSubRep.get(eq.getRepresentative()); if (result == null) { result = new LinkedHashSet<T>(); BreadthFirstIterator<Equivalences<T>, DefaultEdge> iterator = new BreadthFirstIterator<Equivalences<T>, DefaultEdge>( new EdgeReversedGraph<>(dag), eq); while (iterator.hasNext()) { Equivalences<T> child = iterator.next(); result.add(child.getRepresentative()); } result = Collections.unmodifiableSet(result); cacheSubRep.put(eq.getRepresentative(), result); } return result; }
while (i.hasNext()) { i.next(); reachableNodes ++;
public List<String> getOrderedSuperclasses(String className) { String classNameWithDots = ResourceList.getClassNameFromResourcePath(className); if (!inheritanceGraph.containsVertex(classNameWithDots)) { LoggingUtils.logWarnAtMostOnce(logger, "Class not in inheritance graph: " + classNameWithDots); return new LinkedList<>(); } EdgeReversedGraph<String, DefaultEdge> reverseGraph = new EdgeReversedGraph<String, DefaultEdge>( inheritanceGraph); List<String> orderedList = new LinkedList<>(); BreadthFirstIterator<String, DefaultEdge> bfi = new BreadthFirstIterator<String, DefaultEdge>( reverseGraph, classNameWithDots); while (bfi.hasNext()) { orderedList.add(bfi.next()); } return orderedList; }
public Set<String> getSuperclasses(String className) { String classNameWithDots = ResourceList.getClassNameFromResourcePath(className); if (!inheritanceGraph.containsVertex(classNameWithDots)) { LoggingUtils.logWarnAtMostOnce(logger, "Class not in inheritance graph: " + classNameWithDots); return new LinkedHashSet<>(); } EdgeReversedGraph<String, DefaultEdge> reverseGraph = new EdgeReversedGraph<String, DefaultEdge>( inheritanceGraph); // TreeSet so that classes are sorted by name and thus deterministic across platforms Set<String> result = new TreeSet<>(); BreadthFirstIterator<String, DefaultEdge> bfi = new BreadthFirstIterator<String, DefaultEdge>( reverseGraph, classNameWithDots); while (bfi.hasNext()) { result.add(bfi.next()); } return result; }
new ConnectedComponentTraversalListener(illGraph, ccHandlers); bfi.addTraversalListener(listener); while (bfi.hasNext()){ LocalId localId = bfi.next();