Package org.testng.internal
Class Graph<T>
- java.lang.Object
-
- org.testng.internal.Graph<T>
-
public class Graph<T> extends java.lang.Object
Simple 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 class
Graph.Node<T>
-
Field Summary
Fields Modifier and Type Field Description private java.util.Comparator<Graph.Node<T>>
comparator
private java.util.Map<T,Graph.Node<T>>
m_independentNodes
private java.util.Map<T,Graph.Node<T>>
m_nodes
private java.util.List<T>
m_strictlySortedNodes
private static boolean
m_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 void
addNeighbor(T tm, T predecessor)
void
addNode(T tm)
void
addPredecessor(T tm, T predecessor)
private void
dumpSortedNodes()
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()
java.util.Set<T>
getNeighbors(T t)
private java.util.Collection<Graph.Node<T>>
getNodes()
java.util.Collection<T>
getNodeValues()
java.util.Set<T>
getPredecessors(T node)
java.util.List<T>
getStrictlySortedNodes()
private void
initializeIndependentNodes()
boolean
isIndependent(T object)
private static void
ppp(java.lang.String s)
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.void
topologicalSort()
java.lang.String
toString()
-
-
-
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()
-
getNodeValues
public java.util.Collection<T> getNodeValues()
-
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
-- Returns:
- A list of all the predecessors for o
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-