public class DynamicGraph<T>
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
DynamicGraph.Status |
Modifier and Type | Field and Description |
---|---|
private static boolean |
DEBUG |
private ListMultiMap<T,T> |
m_dependedUpon |
private ListMultiMap<T,T> |
m_dependingOn |
private java.util.Comparator<? super T> |
m_nodeComparator |
private java.util.List<T> |
m_nodesFinished |
private java.util.List<T> |
m_nodesReady |
private java.util.List<T> |
m_nodesRunning |
Constructor and Description |
---|
DynamicGraph() |
Modifier and Type | Method and Description |
---|---|
void |
addEdge(T from,
T... tos)
Add an edge between two nodes.
|
void |
addNode(T node)
Add a node to the graph.
|
ListMultiMap<T,T> |
getEdges() |
java.util.List<T> |
getFreeNodes() |
private java.lang.String |
getName(T t) |
int |
getNodeCount() |
int |
getNodeCountWithStatus(DynamicGraph.Status status) |
private java.util.Collection<? extends T> |
getUnfinishedNodes(java.util.List<T> nodes) |
private static void |
ppp(java.lang.String string) |
private void |
removeNode(T node) |
void |
setComparator(java.util.Comparator<? super T> c)
Define a comparator for the nodes of this graph, which will be used
to order the free nodes when they are asked.
|
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 static final boolean DEBUG
private java.util.List<T> m_nodesReady
private java.util.List<T> m_nodesRunning
private java.util.List<T> m_nodesFinished
private java.util.Comparator<? super T> m_nodeComparator
private ListMultiMap<T,T> m_dependedUpon
private ListMultiMap<T,T> m_dependingOn
public void setComparator(java.util.Comparator<? super T> c)
public void addNode(T node)
public java.util.List<T> getFreeNodes()
private java.util.Collection<? extends T> getUnfinishedNodes(java.util.List<T> nodes)
public void setStatus(java.util.Collection<T> nodes, DynamicGraph.Status status)
public void setStatus(T node, DynamicGraph.Status status)
private void removeNode(T node)
public int getNodeCount()
public int getNodeCountWithStatus(DynamicGraph.Status status)
private static void ppp(java.lang.String string)
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,T> getEdges()