Package org.codehaus.plexus.util.dag
Class DAG
- java.lang.Object
-
- org.codehaus.plexus.util.dag.DAG
-
- All Implemented Interfaces:
Serializable,Cloneable
public class DAG extends Object implements Cloneable, Serializable
DAG = Directed Acyclic Graph- Author:
- Michal Maczka TODO this class should be renamed from DAG to Dag
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description DAG()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddEdge(String from, String to)voidaddEdge(Vertex from, Vertex to)VertexaddVertex(String label)Adds vertex to DAG.Objectclone()List<String>getChildLabels(String label)Set<String>getLabels()List<String>getParentLabels(String label)List<String>getSuccessorLabels(String label)Return the list of labels of successor in order decided by topological sortVertexgetVertex(String label)List<Vertex>getVertices()List<Vertex>getVerticies()Deprecated.instead usegetVertices()booleanhasEdge(String label1, String label2)booleanisConnected(String label)Indicates if there is at least one edge leading to or from vertex of given labelvoidremoveEdge(String from, String to)voidremoveEdge(Vertex from, Vertex to)
-
-
-
Method Detail
-
getVerticies
@Deprecated public List<Vertex> getVerticies()
Deprecated.instead usegetVertices()- Returns:
- the vertices
-
addVertex
public Vertex addVertex(String label)
Adds vertex to DAG. If vertex of given label already exist in DAG no vertex is added- Parameters:
label- The label of the Vertex- Returns:
- New vertex if vertex of given label was not present in the DAG or existing vertex if vertex of given label was already added to DAG
-
addEdge
public void addEdge(String from, String to) throws CycleDetectedException
- Throws:
CycleDetectedException
-
addEdge
public void addEdge(Vertex from, Vertex to) throws CycleDetectedException
- Throws:
CycleDetectedException
-
getChildLabels
public List<String> getChildLabels(String label)
- Parameters:
label- see name- Returns:
- the childs
-
getParentLabels
public List<String> getParentLabels(String label)
- Parameters:
label- see name- Returns:
- the parents
-
clone
public Object clone() throws CloneNotSupportedException
- Overrides:
clonein classObject- Throws:
CloneNotSupportedException- See Also:
Object.clone()
-
isConnected
public boolean isConnected(String label)
Indicates if there is at least one edge leading to or from vertex of given label- Parameters:
label- the label- Returns:
trueif this vertex is connected with other vertex,falseotherwise
-
getSuccessorLabels
public List<String> getSuccessorLabels(String label)
Return the list of labels of successor in order decided by topological sort- Parameters:
label- The label of the vertex whose predecessors are searched- Returns:
- The list of labels. Returned list contains also the label passed as parameter to this method. This label should always be the last item in the list.
-
-