Class CycleDetector

java.lang.Object
org.codehaus.plexus.util.dag.CycleDetector

public class CycleDetector extends Object
Version:
$Id$
  • Field Details

    • NOT_VISITED

      private static final Integer NOT_VISITED
    • VISITING

      private static final Integer VISITING
    • VISITED

      private static final Integer VISITED
  • Constructor Details

    • CycleDetector

      public CycleDetector()
  • Method Details

    • hasCycle

      public static List<String> hasCycle(DAG graph)
    • introducesCycle

      public static List<String> introducesCycle(Vertex vertex, Map<Vertex,Integer> vertexStateMap)
      This method will be called when an edge leading to given vertex was added and we want to check if introduction of this edge has not resulted in apparition of cycle in the graph
      Parameters:
      vertex -
      vertexStateMap -
      Returns:
    • introducesCycle

      public static List<String> introducesCycle(Vertex vertex)
    • isNotVisited

      private static boolean isNotVisited(Vertex vertex, Map<Vertex,Integer> vertexStateMap)
      Parameters:
      vertex -
      vertexStateMap -
      Returns:
    • isVisiting

      private static boolean isVisiting(Vertex vertex, Map<Vertex,Integer> vertexStateMap)
      Parameters:
      vertex -
      vertexStateMap -
      Returns:
    • dfsVisit

      private static boolean dfsVisit(Vertex vertex, LinkedList<String> cycle, Map<Vertex,Integer> vertexStateMap)