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.Objectprivate java.lang.String getName(T t)
public java.lang.String toDot()
public ListMultiMap<T,DynamicGraph.Edge<T>> getEdges()