Class DependencyResolver<T>

java.lang.Object
jadex.core.impl.DependencyResolver<T>

public class DependencyResolver<T> extends Object
The dependency resolver can be used to find a valid execution order of elements with dependencies.
  • Field Details

  • Constructor Details

    • DependencyResolver

      public DependencyResolver()
      Create a new dependency resolver.
    • DependencyResolver

      public DependencyResolver(Map<T,DependencyResolver.NodeInfo<T>> nodes, Set<T> nodeps)
      Create a new dependency resolver.
  • Method Details

    • 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 List<T> resolveDependencies(boolean keep)
      Resolve the DAG and deliver a valid order of nodes.
      Returns:
      A valid list of nodes.
    • resolveDependenciesWithLevel

      public List<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 Map<T,DependencyResolver.NodeInfo<T>> getNodes()
      Get the nodes.
      Returns:
      The nodes
    • setNodes

      public void setNodes(Map<T,DependencyResolver.NodeInfo<T>> nodes)
      The nodes to set.
      Parameters:
      nodes - The nodes to set
    • getNodeps

      public Set<T> getNodeps()
      Get the nodeps.
      Returns:
      The nodeps
    • setNodeps

      public void setNodeps(Set<T> nodeps)
      The nodeps to set.
      Parameters:
      nodeps - The nodeps to set
    • main

      public static void main(String[] args)
      The main for testing.