Package jadex.bridge.component
Class DependencyResolver<T>
- java.lang.Object
-
- jadex.bridge.component.DependencyResolver<T>
-
public class DependencyResolver<T> extends java.lang.ObjectThe dependency resolver can be used to find a valid execution order of elements with dependencies.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDependencyResolver.NodeInfo<T>Info object for a node.
-
Constructor Summary
Constructors Constructor Description DependencyResolver()Create a new dependency resolver.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddDependency(T a, T b)Add a dependency that a depends on b.voidaddNode(T node)Add a node (without dependency).voidclear()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 booleanhasDependencies(T node)Test if a node has dependencies.static voidmain(java.lang.String[] args)The main for testing.voidremoveDependency(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.java.util.List<java.util.Set<T>>resolveDependenciesWithLevel()Resolve the DAG and deliver a valid order of nodes with sets of nodes for same levels.voidsetNodeps(java.util.Set<T> nodeps)The nodeps to set.voidsetNodes(java.util.Map<T,DependencyResolver.NodeInfo<T>> nodes)The nodes to set.
-
-
-
Field Detail
-
nodes
protected java.util.Map<T,DependencyResolver.NodeInfo<T>> nodes
The nodes with dependencies.
-
nodeps
protected java.util.Set<T> nodeps
The set of empty nodes.
-
-
Method Detail
-
addDependency
public void addDependency(T a, T b)
Add a dependency that a depends on b.- Parameters:
a- Then source node.b- The node the source depends on.
-
removeDependency
public void removeDependency(T a, T b)
Remove a dependency that a depends on b.- Parameters:
a- Then source node.b- The node the source depends on.
-
resolveDependencies
public java.util.List<T> resolveDependencies(boolean keep)
Resolve the DAG and deliver a valid order of nodes.- Returns:
- A valid list of nodes.
-
resolveDependenciesWithLevel
public java.util.List<java.util.Set<T>> resolveDependenciesWithLevel()
Resolve the DAG and deliver a valid order of nodes with sets of nodes for same levels.- Returns:
- A valid list of set of nodes.
-
addNode
public void addNode(T node)
Add a node (without dependency).- Parameters:
node- The node id.
-
clear
public void clear()
Clear the resolver.
-
getNodeInfo
protected DependencyResolver.NodeInfo<T> getNodeInfo(T node)
Get the node info for the node id.- Parameters:
node- The node id.- Returns:
- The node info.
-
hasDependencies
protected boolean hasDependencies(T node)
Test if a node has dependencies.- Returns:
- True, if dependencies exist.
-
getNodes
public java.util.Map<T,DependencyResolver.NodeInfo<T>> getNodes()
Get the nodes.- Returns:
- The nodes
-
setNodes
public void setNodes(java.util.Map<T,DependencyResolver.NodeInfo<T>> nodes)
The nodes to set.- Parameters:
nodes- The nodes to set
-
getNodeps
public java.util.Set<T> getNodeps()
Get the nodeps.- Returns:
- The nodeps
-
setNodeps
public void setNodeps(java.util.Set<T> nodeps)
The nodeps to set.- Parameters:
nodeps- The nodeps to set
-
main
public static void main(java.lang.String[] args)
The main for testing.
-
-