Package jadex.core.impl
Class DependencyResolver<T>
java.lang.Object
jadex.core.impl.DependencyResolver<T>
The dependency resolver can be used to find a valid
execution order of elements with dependencies.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
Info object for a node. -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new dependency resolver.DependencyResolver
(Map<T, DependencyResolver.NodeInfo<T>> nodes, Set<T> nodeps) Create a new dependency resolver. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addDependency
(T a, T b) Add a dependency that a depends on b.void
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.Get the nodeps.getNodes()
Get the nodes.protected boolean
hasDependencies
(T node) Test if a node has dependencies.static void
The main for testing.void
removeDependency
(T a, T b) Remove a dependency that a depends on b.resolveDependencies
(boolean keep) Resolve the DAG and deliver a valid order of nodes.Resolve the DAG and deliver a valid order of nodes with sets of nodes for same levels.void
The nodeps to set.void
setNodes
(Map<T, DependencyResolver.NodeInfo<T>> nodes) The nodes to set.
-
Field Details
-
nodes
The nodes with dependencies. -
nodeps
The set of empty nodes.
-
-
Constructor Details
-
DependencyResolver
public DependencyResolver()Create a new dependency resolver. -
DependencyResolver
Create a new dependency resolver.
-
-
Method Details
-
addDependency
Add a dependency that a depends on b.- Parameters:
a
- Then source node.b
- The node the source depends on.
-
removeDependency
Remove a dependency that a depends on b.- Parameters:
a
- Then source node.b
- The node the source depends on.
-
resolveDependencies
Resolve the DAG and deliver a valid order of nodes.- Returns:
- A valid list of nodes.
-
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
Add a node (without dependency).- Parameters:
node
- The node id.
-
clear
public void clear()Clear the resolver. -
getNodeInfo
Get the node info for the node id.- Parameters:
node
- The node id.- Returns:
- The node info.
-
hasDependencies
Test if a node has dependencies.- Returns:
- True, if dependencies exist.
-
getNodes
Get the nodes.- Returns:
- The nodes
-
setNodes
The nodes to set.- Parameters:
nodes
- The nodes to set
-
getNodeps
Get the nodeps.- Returns:
- The nodeps
-
setNodeps
The nodeps to set.- Parameters:
nodeps
- The nodeps to set
-
main
The main for testing.
-