Package org.codehaus.plexus.util.dag
Class CycleDetector
- java.lang.Object
-
- org.codehaus.plexus.util.dag.CycleDetector
-
public class CycleDetector extends java.lang.Object- Version:
- $Id$
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.IntegerNOT_VISITEDprivate static java.lang.IntegerVISITEDprivate static java.lang.IntegerVISITING
-
Constructor Summary
Constructors Constructor Description CycleDetector()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static booleandfsVisit(Vertex vertex, java.util.LinkedList<java.lang.String> cycle, java.util.Map<Vertex,java.lang.Integer> vertexStateMap)static java.util.List<java.lang.String>hasCycle(DAG graph)static java.util.List<java.lang.String>introducesCycle(Vertex vertex)static java.util.List<java.lang.String>introducesCycle(Vertex vertex, java.util.Map<Vertex,java.lang.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 graphprivate static booleanisNotVisited(Vertex vertex, java.util.Map<Vertex,java.lang.Integer> vertexStateMap)private static booleanisVisiting(Vertex vertex, java.util.Map<Vertex,java.lang.Integer> vertexStateMap)
-
-
-
Method Detail
-
hasCycle
public static java.util.List<java.lang.String> hasCycle(DAG graph)
-
introducesCycle
public static java.util.List<java.lang.String> introducesCycle(Vertex vertex, java.util.Map<Vertex,java.lang.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 java.util.List<java.lang.String> introducesCycle(Vertex vertex)
-
isNotVisited
private static boolean isNotVisited(Vertex vertex, java.util.Map<Vertex,java.lang.Integer> vertexStateMap)
- Parameters:
vertex-vertexStateMap-- Returns:
-
isVisiting
private static boolean isVisiting(Vertex vertex, java.util.Map<Vertex,java.lang.Integer> vertexStateMap)
- Parameters:
vertex-vertexStateMap-- Returns:
-
-