

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object org.apache.myfaces.config.util.DirectedAcyclicGraphVerifier
public class DirectedAcyclicGraphVerifier
DirectedAcyclicGraphVerifier provides methods to verify that any set of vertices has no cycles. A Directed Acyclic Graph is a "graph" or set of vertices where all connections between each vertex goes in a particular direction and there are no cycles or loops. It is used to track dependencies and ansure that dependencies can be loaded and unloaded in the proper order.
Constructor Summary  

DirectedAcyclicGraphVerifier()

Method Summary  

static

findVertex(List<Vertex<T>> vertexList,
String name)


static

resetVertices(List<Vertex<T>> vertices)
Resets all the vertices so that the visitation flags and indegrees are reset to their start values. 

static

topologicalSort(List<Vertex<T>> vertices)
Sort a set of vertices so that no dependency is before its vertex. 

static

verify(List<Vertex<T>> vertices)
Verify a set of vertices and all their dependencies have no cycles. 

static

verify(Vertex<T> vertex)
Verify that a vertex and its set of dependencies have no cycles. 
Methods inherited from class java.lang.Object 

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
Constructor Detail 

public DirectedAcyclicGraphVerifier()
Method Detail 

public static <T> void verify(Vertex<T> vertex) throws CyclicDependencyException
vertex
 The vertex we want to test.
CyclicDependencyException
 if there is a cycle.public static <T> void verify(List<Vertex<T>> vertices) throws CyclicDependencyException
vertices
 The list of vertices we want to test.
CyclicDependencyException
 if there is a cycle.public static <T> void topologicalSort(List<Vertex<T>> vertices) throws CyclicDependencyException
Implementation Detail: This particular algorithm is a more efficient variation of the typical Topological Sort algorithm. It uses a Queue (Linked List) to ensure that each edge (connection between two vertices) or vertex is checked only once. The efficiency is O = (V + E).
vertices

CyclicDependencyException
public static <T> void resetVertices(List<Vertex<T>> vertices)
vertices
 public static <T> int findVertex(List<Vertex<T>> vertexList, String name)


PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 