public class DAG
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable
Modifier and Type | Field and Description |
---|---|
private java.util.List<Vertex> |
vertexList
Conatin list of all vertices
|
private java.util.Map<java.lang.String,Vertex> |
vertexMap
Maps vertex's label to vertex
|
Constructor and Description |
---|
DAG() |
Modifier and Type | Method and Description |
---|---|
void |
addEdge(java.lang.String from,
java.lang.String to) |
void |
addEdge(Vertex from,
Vertex to) |
Vertex |
addVertex(java.lang.String label)
Adds vertex to DAG.
|
java.lang.Object |
clone() |
java.util.List<java.lang.String> |
getChildLabels(java.lang.String label) |
java.util.Set<java.lang.String> |
getLabels() |
java.util.List<java.lang.String> |
getParentLabels(java.lang.String label) |
java.util.List<java.lang.String> |
getSuccessorLabels(java.lang.String label)
Return the list of labels of successor in order decided by topological sort
|
Vertex |
getVertex(java.lang.String label) |
java.util.List<Vertex> |
getVertices() |
java.util.List<Vertex> |
getVerticies()
Deprecated.
instead use
getVertices() |
boolean |
hasEdge(java.lang.String label1,
java.lang.String label2) |
boolean |
isConnected(java.lang.String label)
Indicates if there is at least one edge leading to or from vertex of given label
|
void |
removeEdge(java.lang.String from,
java.lang.String to) |
void |
removeEdge(Vertex from,
Vertex to) |
private java.util.Map<java.lang.String,Vertex> vertexMap
private java.util.List<Vertex> vertexList
public java.util.List<Vertex> getVertices()
@Deprecated public java.util.List<Vertex> getVerticies()
getVertices()
public java.util.Set<java.lang.String> getLabels()
public Vertex addVertex(java.lang.String label)
label
- The label of the Vertexpublic void addEdge(java.lang.String from, java.lang.String to) throws CycleDetectedException
CycleDetectedException
public void addEdge(Vertex from, Vertex to) throws CycleDetectedException
CycleDetectedException
public void removeEdge(java.lang.String from, java.lang.String to)
public Vertex getVertex(java.lang.String label)
public boolean hasEdge(java.lang.String label1, java.lang.String label2)
public java.util.List<java.lang.String> getChildLabels(java.lang.String label)
label
- public java.util.List<java.lang.String> getParentLabels(java.lang.String label)
label
- public java.lang.Object clone() throws java.lang.CloneNotSupportedException
clone
in class java.lang.Object
java.lang.CloneNotSupportedException
Object.clone()
public boolean isConnected(java.lang.String label)
true if this vertex is connected with other vertex,false
otherwise
public java.util.List<java.lang.String> getSuccessorLabels(java.lang.String label)
label
- The label of the vertex whose predecessors are searched