public class DependencyResolver<T>
extends java.lang.Object
| Modifier and Type | Class and Description | 
|---|---|
| static class  | DependencyResolver.NodeInfo<T>Info object for a node. | 
| Modifier and Type | Field and Description | 
|---|---|
| protected java.util.Set<T> | nodepsThe set of empty nodes. | 
| protected java.util.Map<T,DependencyResolver.NodeInfo<T>> | nodesThe nodes with dependencies. | 
| Constructor and Description | 
|---|
| DependencyResolver()Create a new dependency resolver. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addDependency(T a,
             T b)Add a dependency that a depends on b. | 
| void | addNode(T node)Add a node (without dependency). | 
| void | clear()Clear the resolver. | 
| protected DependencyResolver.NodeInfo<T> | getNodeInfo(T node)Get the node info for the node id. | 
| java.util.Set<T> | getNodeps()Get the nodeps. | 
| java.util.Map<T,DependencyResolver.NodeInfo<T>> | getNodes()Get the nodes. | 
| protected boolean | hasDependencies(T node)Test if a node has dependencies. | 
| static void | main(java.lang.String[] args)The main for testing. | 
| void | removeDependency(T a,
                T b)Remove a dependency that a depends on b. | 
| java.util.List<T> | resolveDependencies(boolean keep)Resolve the DAG and deliver a valid order of nodes. | 
| void | setNodeps(java.util.Set<T> nodeps)The nodeps to set. | 
| void | setNodes(java.util.Map<T,DependencyResolver.NodeInfo<T>> nodes)The nodes to set. | 
protected java.util.Map<T,DependencyResolver.NodeInfo<T>> nodes
protected java.util.Set<T> nodeps
public void addDependency(T a, T b)
a - Then source node.b - The node the source depends on.public void removeDependency(T a, T b)
a - Then source node.b - The node the source depends on.public java.util.List<T> resolveDependencies(boolean keep)
public void addNode(T node)
node - The node id.public void clear()
protected DependencyResolver.NodeInfo<T> getNodeInfo(T node)
node - The node id.protected boolean hasDependencies(T node)
public java.util.Map<T,DependencyResolver.NodeInfo<T>> getNodes()
public void setNodes(java.util.Map<T,DependencyResolver.NodeInfo<T>> nodes)
nodes - The nodes to setpublic java.util.Set<T> getNodeps()
public void setNodeps(java.util.Set<T> nodeps)
nodeps - The nodeps to setpublic static void main(java.lang.String[] args)