private void init(Digraph digraph) { vertexRankMap = new HashMap(digraph.order()); IndegreeTopologicalSort traversal = new IndegreeTopologicalSort(digraph); while (traversal.hasNext()) { Object vertex = traversal.next(); int rank = -1; for (ArcIterator i = digraph.incomingIterator(vertex); i.hasNext(); ) { i.next(); Object predecessor = i.getOrigin(); int predRank = intValue(predecessor); if (predRank < 0) throw new ArithmeticException("Ranking failed."); rank = Math.max(rank, predRank); } rank++; assignRank(vertex, rank); } }
public Object next() { boolean progress = true; while (hasNext()) { if (!current.hasNext()) { if (!progress) break; progress = false; current = vertices.listIterator(); } Object vertex = current.next(); InDegree indegree = (InDegree)inDegrees.get(vertex); if (indegree.value == 0) { removeVertex(vertex); current.remove(); return vertex; } } return null; }
tables = new ArrayList(tableCount); sequencesByTable = new HashMap(tableCount); Algorithm sorter = new IndegreeTopologicalSort(graph); List sortedVertices = new ArrayList(graph.order()); while (sorter.hasNext())
IndegreeTopologicalSort sorter = new IndegreeTopologicalSort( pkDependencyGraph); while (sorter.hasNext()) indexedDbEntities.put(sorter.next(), new Integer(index++)); Digraph contractedDigraph = new MapDigraph(MapDigraph.HASHMAP_FACTORY); contractor.contract(contractedDigraph, CollectionFactory.ARRAYLIST_FACTORY); IndegreeTopologicalSort sorter = new IndegreeTopologicalSort( contractedDigraph); while (sorter.hasNext()) { Collection component = (Collection) sorter.next(); for (Iterator i = component.iterator(); i.hasNext();) indexedDbEntities.put(i.next(), new Integer(index++));
IndegreeTopologicalSort sorter = new IndegreeTopologicalSort( pkDependencyGraph); while (sorter.hasNext()) indexedDbEntities.put(sorter.next(), new Integer(index++)); Digraph contractedDigraph = new MapDigraph(MapDigraph.HASHMAP_FACTORY); contractor.contract(contractedDigraph, CollectionFactory.ARRAYLIST_FACTORY); IndegreeTopologicalSort sorter = new IndegreeTopologicalSort( contractedDigraph); while (sorter.hasNext()) { Collection component = (Collection) sorter.next(); for (Iterator i = component.iterator(); i.hasNext();) indexedDbEntities.put(i.next(), new Integer(index++));
contractedReferentialDigraph, CollectionFactory.ARRAYLIST_FACTORY); IndegreeTopologicalSort sorter = new IndegreeTopologicalSort( contractedReferentialDigraph); components = new HashMap(contractedReferentialDigraph.order()); int componentIndex = 0; while (sorter.hasNext()) { Collection component = (Collection) sorter.next(); ComponentRecord rec = new ComponentRecord(componentIndex++, component); for (Iterator i = component.iterator(); i.hasNext();) {
contractedReferentialDigraph, CollectionFactory.ARRAYLIST_FACTORY); IndegreeTopologicalSort sorter = new IndegreeTopologicalSort( contractedReferentialDigraph); components = new HashMap(contractedReferentialDigraph.order()); int componentIndex = 0; while (sorter.hasNext()) { Collection component = (Collection) sorter.next(); ComponentRecord rec = new ComponentRecord(componentIndex++, component); for (Iterator i = component.iterator(); i.hasNext();) {
new IndegreeTopologicalSort(subgraphOrderingGraph); Map indexMap = new HashMap(); int sortIndex = 0; while (sorter.hasNext()) { indexMap.put(sorter.next(), new Integer(sortIndex++));
IndegreeTopologicalSort sorter = new IndegreeTopologicalSort( objectDependencyGraph); while (sorter.hasNext()) { DataObject o = (DataObject) sorter.next(); if (o == null) throw new CayenneRuntimeException("Sorting objects for "
IndegreeTopologicalSort sorter = new IndegreeTopologicalSort( objectDependencyGraph); while (sorter.hasNext()) { DataObject o = (DataObject) sorter.next(); if (o == null) throw new CayenneRuntimeException("Sorting objects for "