| java.lang.Object org.apache.openjpa.lib.graph.DepthFirstAnalysis
DepthFirstAnalysis | public class DepthFirstAnalysis (Code) | | Performs a depth-first analysis of a given
Graph , caching
information about the graph's nodes and edges. See the DFS algorithm
in the book 'Introduction to Algorithms' by Cormen, Leiserson, and
Rivest. The algorithm has been modified to group sibling nodes without
connections together during the topological sort.
author: Abe White since: 1.0.0 |
Method Summary | |
public Collection | getEdges(int type) Return all edges of the given type. | public int | getFinishedTime(Object node) Return the logical time that the given node was finished in
the graph walk, or -1 if the node is not part of the graph. | public List | getSortedNodes() Return the nodes in topologically-sorted order. | public boolean | hasNoCycles() Test, if the analysis didn't find cycles. | public void | setNodeComparator(Comparator comp) Set the comparator that should be used for ordering groups of nodes
with the same dependencies. |
DepthFirstAnalysis | public DepthFirstAnalysis(Graph graph)(Code) | | Constructor. Performs the analysis on the given graph and caches
the resulting information.
|
getFinishedTime | public int getFinishedTime(Object node)(Code) | | Return the logical time that the given node was finished in
the graph walk, or -1 if the node is not part of the graph.
|
getSortedNodes | public List getSortedNodes()(Code) | | Return the nodes in topologically-sorted order. This is often used
to order dependencies. If each graph edge (u, v) represents a
dependency of v on u, then this method will return the nodes in the
order that they should be evaluated to satisfy all dependencies. Of
course, if the graph is cyclic (has back edges), then no such ordering
is possible, though this method will still return the correct order
as if edges creating the cycles did not exist.
|
hasNoCycles | public boolean hasNoCycles()(Code) | | Test, if the analysis didn't find cycles.
|
setNodeComparator | public void setNodeComparator(Comparator comp)(Code) | | Set the comparator that should be used for ordering groups of nodes
with the same dependencies.
|
|
|