Package org.testng.internal
Class Graph<T>
- java.lang.Object
-
- org.testng.internal.Graph<T>
-
public class Graph<T> extends java.lang.ObjectSimple graph class to implement topological sort (used to sort methods based on what groups they depend on).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classGraph.Node<T>
-
Field Summary
Fields Modifier and Type Field Description private java.util.Comparator<Graph.Node<T>>comparatorprivate java.util.Map<T,Graph.Node<T>>m_independentNodesprivate java.util.Map<T,Graph.Node<T>>m_nodesprivate java.util.List<T>m_strictlySortedNodesprivate static booleanm_verbose
-
Constructor Summary
Constructors Constructor Description Graph(java.util.Comparator<Graph.Node<T>> comparator)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddNeighbor(T tm, T predecessor)voidaddNode(T tm)voidaddPredecessor(T tm, T predecessor)private voiddumpSortedNodes()private Graph.Node<T>findNode(T object)private Graph.Node<T>findNodeWithNoPredecessors(java.util.List<Graph.Node<T>> nodes)java.util.List<T>findPredecessors(T o)java.util.Set<T>getIndependentNodes()private java.util.Collection<Graph.Node<T>>getNodes()java.util.Set<T>getPredecessors(T node)java.util.List<T>getStrictlySortedNodes()private voidinitializeIndependentNodes()booleanisIndependent(T object)private static voidppp(java.lang.String s)private voidremoveFromNodes(java.util.List<Graph.Node<T>> nodes, Graph.Node<T> node)Remove a node from a list of nodes and update the list of predecessors for all the remaining nodes.voidtopologicalSort()java.lang.StringtoString()
-
-
-
Field Detail
-
m_verbose
private static boolean m_verbose
-
m_nodes
private java.util.Map<T,Graph.Node<T>> m_nodes
-
m_strictlySortedNodes
private java.util.List<T> m_strictlySortedNodes
-
comparator
private final java.util.Comparator<Graph.Node<T>> comparator
-
m_independentNodes
private java.util.Map<T,Graph.Node<T>> m_independentNodes
-
-
Constructor Detail
-
Graph
public Graph(java.util.Comparator<Graph.Node<T>> comparator)
-
-
Method Detail
-
addNode
public void addNode(T tm)
-
isIndependent
public boolean isIndependent(T object)
-
findNode
private Graph.Node<T> findNode(T object)
-
getNodes
private java.util.Collection<Graph.Node<T>> getNodes()
-
getIndependentNodes
public java.util.Set<T> getIndependentNodes()
- Returns:
- All the nodes that don't have any order with each other.
-
getStrictlySortedNodes
public java.util.List<T> getStrictlySortedNodes()
- Returns:
- All the nodes that have an order with each other, sorted in one of the valid sorts.
-
topologicalSort
public void topologicalSort()
-
initializeIndependentNodes
private void initializeIndependentNodes()
-
dumpSortedNodes
private void dumpSortedNodes()
-
removeFromNodes
private void removeFromNodes(java.util.List<Graph.Node<T>> nodes, Graph.Node<T> node)
Remove a node from a list of nodes and update the list of predecessors for all the remaining nodes.
-
ppp
private static void ppp(java.lang.String s)
-
findNodeWithNoPredecessors
private Graph.Node<T> findNodeWithNoPredecessors(java.util.List<Graph.Node<T>> nodes)
-
findPredecessors
public java.util.List<T> findPredecessors(T o)
- Parameters:
o- - The predecessor- Returns:
- A list of all the predecessors for o
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-