public class DynamicGraph<T>
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
(package private) static class |
DynamicGraph.Edge<T> |
static class |
DynamicGraph.Status |
Modifier and Type | Field and Description |
---|---|
private ListMultiMap<T,DynamicGraph.Edge<T>> |
m_allEdges |
private ListMultiMap<T,DynamicGraph.Edge<T>> |
m_edges |
private java.util.Collection<T> |
m_nodesFinished |
private java.util.Collection<T> |
m_nodesReady |
private java.util.Collection<T> |
m_nodesRunning |
Constructor and Description |
---|
DynamicGraph() |
Modifier and Type | Method and Description |
---|---|
void |
addEdge(int weight,
T from,
java.lang.Iterable<T> tos)
Add an edge between two nodes.
|
void |
addEdge(int weight,
T from,
T... tos)
Add an edge between two nodes.
|
void |
addEdge(int weight,
T from,
T to) |
private void |
addEdges(java.util.List<DynamicGraph.Edge<T>> edges) |
boolean |
addNode(T node)
Add a node to the graph.
|
ListMultiMap<T,DynamicGraph.Edge<T>> |
getEdges() |
java.util.List<T> |
getFreeNodes() |
private int |
getLowestEdgePriority(java.util.Collection<T> nodes) |
private java.lang.String |
getName(T t) |
private static <T> DynamicGraph.Edge<T> |
getNode(ListMultiMap<T,DynamicGraph.Edge<T>> edges,
DynamicGraph.Edge<T> edge) |
int |
getNodeCount() |
int |
getNodeCountWithStatus(DynamicGraph.Status status) |
private java.util.Collection<? extends T> |
getUnfinishedNodes(T node) |
private static <T> boolean |
hasAllEdgesWithLevel(java.util.List<DynamicGraph.Edge<T>> edges,
int level) |
void |
setStatus(java.util.Collection<T> nodes,
DynamicGraph.Status status)
Set the status for a set of nodes.
|
void |
setStatus(T node,
DynamicGraph.Status status)
Set the status for a node.
|
java.lang.String |
toDot() |
java.lang.String |
toString() |
private final java.util.Collection<T> m_nodesReady
private final java.util.Collection<T> m_nodesRunning
private final java.util.Collection<T> m_nodesFinished
private final ListMultiMap<T,DynamicGraph.Edge<T>> m_edges
private final ListMultiMap<T,DynamicGraph.Edge<T>> m_allEdges
public boolean addNode(T node)
public void addEdge(int weight, T from, T to)
weight
- - Represents one of TestRunner.PriorityWeight
ordinals indicating
the weightage of a particular node in the graphfrom
- - Represents the edge that depends on another edge.to
- - Represents the edge on which another edge depends upon.public void addEdge(int weight, T from, java.lang.Iterable<T> tos)
private void addEdges(java.util.List<DynamicGraph.Edge<T>> edges)
private static <T> DynamicGraph.Edge<T> getNode(ListMultiMap<T,DynamicGraph.Edge<T>> edges, DynamicGraph.Edge<T> edge)
public java.util.List<T> getFreeNodes()
private int getLowestEdgePriority(java.util.Collection<T> nodes)
private static <T> boolean hasAllEdgesWithLevel(java.util.List<DynamicGraph.Edge<T>> edges, int level)
private java.util.Collection<? extends T> getUnfinishedNodes(T node)
public void setStatus(java.util.Collection<T> nodes, DynamicGraph.Status status)
public void setStatus(T node, DynamicGraph.Status status)
public int getNodeCount()
public int getNodeCountWithStatus(DynamicGraph.Status status)
public java.lang.String toString()
toString
in class java.lang.Object
private java.lang.String getName(T t)
public java.lang.String toDot()
public ListMultiMap<T,DynamicGraph.Edge<T>> getEdges()