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 SummaryNested Classes Modifier and Type Class Description static classDependencyResolver.NodeInfo<T>Info object for a node.
 - 
Constructor SummaryConstructors Constructor Description DependencyResolver()Create a new dependency resolver.
 - 
Method SummaryAll 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- 
nodesprotected java.util.Map<T,DependencyResolver.NodeInfo<T>> nodes The nodes with dependencies.
 - 
nodepsprotected java.util.Set<T> nodeps The set of empty nodes.
 
- 
 - 
Method Detail- 
addDependencypublic 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.
 
 - 
removeDependencypublic 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.
 
 - 
resolveDependenciespublic java.util.List<T> resolveDependencies(boolean keep) Resolve the DAG and deliver a valid order of nodes.- Returns:
- A valid list of nodes.
 
 - 
resolveDependenciesWithLevelpublic 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.
 
 - 
addNodepublic void addNode(T node) Add a node (without dependency).- Parameters:
- node- The node id.
 
 - 
clearpublic void clear() Clear the resolver.
 - 
getNodeInfoprotected DependencyResolver.NodeInfo<T> getNodeInfo(T node) Get the node info for the node id.- Parameters:
- node- The node id.
- Returns:
- The node info.
 
 - 
hasDependenciesprotected boolean hasDependencies(T node) Test if a node has dependencies.- Returns:
- True, if dependencies exist.
 
 - 
getNodespublic java.util.Map<T,DependencyResolver.NodeInfo<T>> getNodes() Get the nodes.- Returns:
- The nodes
 
 - 
setNodespublic void setNodes(java.util.Map<T,DependencyResolver.NodeInfo<T>> nodes) The nodes to set.- Parameters:
- nodes- The nodes to set
 
 - 
getNodepspublic java.util.Set<T> getNodeps() Get the nodeps.- Returns:
- The nodeps
 
 - 
setNodepspublic void setNodeps(java.util.Set<T> nodeps) The nodeps to set.- Parameters:
- nodeps- The nodeps to set
 
 - 
mainpublic static void main(java.lang.String[] args) The main for testing.
 
- 
 
-