unity.util
Class DGraph

java.lang.Object
  extended by unity.util.DGraph

public class DGraph
extends java.lang.Object


Nested Class Summary
 class DGraph.Edge
           
 class DGraph.MinQueue
           
 class DGraph.Node
           
 
Field Summary
static int MAX_VAL
           
static int MIN_VAL
           
 
Constructor Summary
DGraph()
           
 
Method Summary
 boolean addEdge(java.lang.String fromNodeLabel, java.lang.String toNodeLabel, int weight)
           
 boolean addEdge(java.lang.String fromNodeLabel, java.lang.String toNodeLabel, java.lang.String edgeLabel, int weight)
           
 boolean addEdge(java.lang.String from, java.lang.String to, java.lang.String label, int w, java.lang.Object join)
           
 boolean addNode(java.lang.String label, int weight)
           
 boolean addNode(java.lang.String label, int weight, java.lang.Object ob)
           
 void clearAllMarkers()
           
 void clearAllVisited()
           
 java.lang.Object clone()
           
 DGraph computeMST(java.lang.String root)
           
 java.util.ArrayList computeMSTKruskal(java.util.ArrayList tableNames, java.util.ArrayList edgeList)
           
 java.util.ArrayList computeMSTPrim(java.lang.String root)
           
 void Dijkstra(java.lang.String nodeLabel)
           
 DGraph.Edge findMaxInEdge(java.lang.String node)
           
 DGraph.Edge getEdge(java.lang.String edgeLabel)
           
 DGraph.Edge getEdge(java.lang.String toNodeLabel, java.lang.String edgeLabel)
           
 DGraph.Edge getEdgeByNodes(java.lang.String toNodeLabel, java.lang.String fromNodeLabel)
           
 java.util.ArrayList getEdgeList()
           
 java.util.ArrayList getIncomingEdges(java.lang.String nodeLabel)
           
 java.util.ArrayList getJoinPath(java.util.ArrayList tableNames, java.util.ArrayList specifiedJoins)
          Create completely connected graph of vertices in the semantic query with edge weights as path distances.
 DGraph.Node getNode(java.lang.String nodeLabel)
           
 java.util.TreeMap getNodeList()
           
 java.util.ArrayList getNodeMap()
           
 java.util.ArrayList getNodes()
           
 java.util.ArrayList getOutgoingEdges(java.lang.String nodeLabel)
           
 java.util.ArrayList getPath(java.lang.String s, java.lang.String v, DGraph d)
           
 int getTotalWeight()
           
 int getWeight(java.lang.String nodeLabel)
           
 boolean hasCycle()
           
 boolean isEdge(java.lang.String edgeLabel)
           
 boolean isEdgeByNodes(java.lang.String fromNode, java.lang.String toNode)
           
 boolean isFKeyInPKey(AnnotatedSourceKey pkey, AnnotatedSourceForeignKey fkey)
           
 int numNodes()
           
 void print()
           
 void printPath(int s, int v, DGraph.Edge[] paths)
           
 void quicksort(java.util.ArrayList a, int p, int r)
           
 void removeAllEdges()
           
 void removeEdge(java.lang.String edgeLabel)
           
 void removeEdgeByNodes(java.lang.String fromNodeLabel, java.lang.String toNodeLabel)
           
 void removeIncomingEdges(java.lang.String node)
           
 void removeNode(java.lang.String nodeLabel)
           
 void setNodeMap(java.util.ArrayList nodes)
           
 void shortestAllVertices()
           
 void storePathData(java.lang.String startLabel)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX_VAL

public static final int MAX_VAL
See Also:
Constant Field Values

MIN_VAL

public static final int MIN_VAL
See Also:
Constant Field Values
Constructor Detail

DGraph

public DGraph()
Method Detail

getNodeMap

public java.util.ArrayList getNodeMap()

setNodeMap

public void setNodeMap(java.util.ArrayList nodes)

addNode

public boolean addNode(java.lang.String label,
                       int weight)

addNode

public boolean addNode(java.lang.String label,
                       int weight,
                       java.lang.Object ob)

getNode

public DGraph.Node getNode(java.lang.String nodeLabel)

getWeight

public int getWeight(java.lang.String nodeLabel)

numNodes

public int numNodes()

removeNode

public void removeNode(java.lang.String nodeLabel)

getNodes

public java.util.ArrayList getNodes()

getNodeList

public java.util.TreeMap getNodeList()

addEdge

public boolean addEdge(java.lang.String from,
                       java.lang.String to,
                       java.lang.String label,
                       int w,
                       java.lang.Object join)

addEdge

public boolean addEdge(java.lang.String fromNodeLabel,
                       java.lang.String toNodeLabel,
                       java.lang.String edgeLabel,
                       int weight)

addEdge

public boolean addEdge(java.lang.String fromNodeLabel,
                       java.lang.String toNodeLabel,
                       int weight)

getEdge

public DGraph.Edge getEdge(java.lang.String edgeLabel)

getTotalWeight

public int getTotalWeight()

getEdge

public DGraph.Edge getEdge(java.lang.String toNodeLabel,
                           java.lang.String edgeLabel)

getEdgeByNodes

public DGraph.Edge getEdgeByNodes(java.lang.String toNodeLabel,
                                  java.lang.String fromNodeLabel)

removeEdge

public void removeEdge(java.lang.String edgeLabel)

removeEdgeByNodes

public void removeEdgeByNodes(java.lang.String fromNodeLabel,
                              java.lang.String toNodeLabel)

isEdgeByNodes

public boolean isEdgeByNodes(java.lang.String fromNode,
                             java.lang.String toNode)

isEdge

public boolean isEdge(java.lang.String edgeLabel)

getIncomingEdges

public java.util.ArrayList getIncomingEdges(java.lang.String nodeLabel)

getOutgoingEdges

public java.util.ArrayList getOutgoingEdges(java.lang.String nodeLabel)

removeIncomingEdges

public void removeIncomingEdges(java.lang.String node)

findMaxInEdge

public DGraph.Edge findMaxInEdge(java.lang.String node)

getEdgeList

public java.util.ArrayList getEdgeList()

removeAllEdges

public void removeAllEdges()

hasCycle

public boolean hasCycle()

clone

public java.lang.Object clone()
Overrides:
clone in class java.lang.Object

shortestAllVertices

public void shortestAllVertices()

Dijkstra

public void Dijkstra(java.lang.String nodeLabel)

isFKeyInPKey

public boolean isFKeyInPKey(AnnotatedSourceKey pkey,
                            AnnotatedSourceForeignKey fkey)

storePathData

public void storePathData(java.lang.String startLabel)

getPath

public java.util.ArrayList getPath(java.lang.String s,
                                   java.lang.String v,
                                   DGraph d)

printPath

public void printPath(int s,
                      int v,
                      DGraph.Edge[] paths)

getJoinPath

public java.util.ArrayList getJoinPath(java.util.ArrayList tableNames,
                                       java.util.ArrayList specifiedJoins)
Create completely connected graph of vertices in the semantic query with edge weights as path distances.


computeMSTKruskal

public java.util.ArrayList computeMSTKruskal(java.util.ArrayList tableNames,
                                             java.util.ArrayList edgeList)

computeMSTPrim

public java.util.ArrayList computeMSTPrim(java.lang.String root)

computeMST

public DGraph computeMST(java.lang.String root)

print

public void print()

clearAllMarkers

public void clearAllMarkers()

clearAllVisited

public void clearAllVisited()

quicksort

public void quicksort(java.util.ArrayList a,
                      int p,
                      int r)