org.codehaus.plexus.util.dag
Class DAG

java.lang.Object
  extended byorg.codehaus.plexus.util.dag.DAG
All Implemented Interfaces:
java.lang.Cloneable

public class DAG
extends java.lang.Object
implements java.lang.Cloneable

DAG = Directed Acyclic Graph

Version:
$Id: DAG.java,v 1.3 2004/01/15 19:35:25 michal Exp $
Author:
Michal Maczka

Field Summary
private  java.util.List vertexList
          Conatin list of all verticies
private  java.util.Map vertexMap
          Maps vertex's label to vertex
 
Constructor Summary
DAG()
           
 
Method Summary
 void addEdge(java.lang.String from, java.lang.String to)
           
 Vertex addVertex(java.lang.String label)
          Adds vertex to DAG.
 java.lang.Object clone()
           
 java.util.List getChildLabels(java.lang.String label)
           
 java.util.Set getLabels()
           
 java.util.List getParentLabels(java.lang.String label)
           
 Vertex getVertex(java.lang.String label)
           
 java.util.List getVerticies()
           
 boolean hasEdge(java.lang.String label1, java.lang.String label2)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

vertexMap

private java.util.Map vertexMap
Maps vertex's label to vertex


vertexList

private java.util.List vertexList
Conatin list of all verticies

Constructor Detail

DAG

public DAG()
Method Detail

getVerticies

public java.util.List getVerticies()
Returns:

getLabels

public java.util.Set getLabels()

addVertex

public Vertex addVertex(java.lang.String label)
Adds vertex to DAG. If vertex of given label alredy exist in DAG no vertex is added

Parameters:
label - The lable of the Vertex
Returns:
New vertex if vertext of given label was not presenst in the DAG or exising vertex if vertex of given labale was alredy added to DAG

addEdge

public void addEdge(java.lang.String from,
                    java.lang.String to)

getVertex

public Vertex getVertex(java.lang.String label)

hasEdge

public boolean hasEdge(java.lang.String label1,
                       java.lang.String label2)

getChildLabels

public java.util.List getChildLabels(java.lang.String label)
Parameters:
label -
Returns:

getParentLabels

public java.util.List getParentLabels(java.lang.String label)
Parameters:
label -
Returns:

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Throws:
java.lang.CloneNotSupportedException
See Also:
Object.clone()