Class DiGraph<N,E>
- java.lang.Object
-
- com.google.javascript.jscomp.graph.Graph<N,E>
-
- com.google.javascript.jscomp.graph.DiGraph<N,E>
-
- Type Parameters:
N
- Value type that the graph node stores.E
- Value type that the graph edge stores.
- All Implemented Interfaces:
AdjacencyGraph<N,E>
- Direct Known Subclasses:
LinkedDirectedGraph
public abstract class DiGraph<N,E> extends Graph<N,E>
A generic directed graph.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
DiGraph.DiGraphEdge<N,E>
A generic directed graph edge.static interface
DiGraph.DiGraphNode<N,E>
A generic directed graph node.-
Nested classes/interfaces inherited from class com.google.javascript.jscomp.graph.Graph
Graph.GraphEdge<N,E>
-
-
Constructor Summary
Constructors Constructor Description DiGraph()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract DiGraph.DiGraphNode<N,E>
createNode(N nodeValue)
Gets a node from the graph given a value.abstract void
disconnectInDirection(N n1, N n2)
Disconnects all edges from n1 to n2.abstract java.util.List<? extends DiGraph.DiGraphNode<N,E>>
getDirectedPredNodes(DiGraph.DiGraphNode<N,E> n)
abstract java.util.List<? extends DiGraph.DiGraphNode<N,E>>
getDirectedPredNodes(N nodeValue)
abstract java.util.List<? extends DiGraph.DiGraphNode<N,E>>
getDirectedSuccNodes(DiGraph.DiGraphNode<N,E> n)
abstract java.util.List<? extends DiGraph.DiGraphNode<N,E>>
getDirectedSuccNodes(N nodeValue)
abstract java.util.List<? extends DiGraph.DiGraphEdge<N,E>>
getEdges()
Gets an immutable list of all edges.abstract java.util.List<? extends DiGraph.DiGraphEdge<N,E>>
getEdges(N n1, N n2)
Retrieves an edge from the graph.abstract java.util.List<? extends DiGraph.DiGraphEdge<N,E>>
getEdgesInDirection(N n1, N n2)
abstract java.util.List<? extends DiGraph.DiGraphEdge<N,E>>
getInEdges(N nodeValue)
Gets an immutable list of in edges of the given node.abstract DiGraph.DiGraphNode<N,E>
getNode(N nodeValue)
Gets a node from the graph given a value.abstract java.util.Collection<? extends DiGraph.DiGraphNode<N,E>>
getNodes()
Gets an immutable list of all nodes.abstract java.util.List<? extends DiGraph.DiGraphEdge<N,E>>
getOutEdges(N nodeValue)
Gets an immutable list of out edges of the given node.boolean
isConnected(N n1, E e, N n2)
Checks whether two nodes in the graph are connected by the given edge type.boolean
isConnected(N n1, N n2)
Checks whether two nodes in the graph are connected.abstract boolean
isConnectedInDirection(N n1, E edgeValue, N n2)
Checks whether two nodes in the graph are connected via a directed edge with the given value.abstract boolean
isConnectedInDirection(N n1, N n2)
Checks whether two nodes in the graph are connected via a directed edge.-
Methods inherited from class com.google.javascript.jscomp.graph.Graph
clearEdgeAnnotations, clearNodeAnnotations, connect, connectIfNotFound, disconnect, getFirstEdge, getNeighborNodes, getNodeCount, getNodeDegree, getWeight, hasNode, popEdgeAnnotations, popNodeAnnotations, pushEdgeAnnotations, pushNodeAnnotations
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.google.javascript.jscomp.graph.AdjacencyGraph
newSubGraph
-
-
-
-
Method Detail
-
createNode
public abstract DiGraph.DiGraphNode<N,E> createNode(N nodeValue)
Description copied from class:Graph
Gets a node from the graph given a value. New nodes are created if that value has not been assigned a graph node. Values equality are compared usingObject.equals
.- Specified by:
createNode
in classGraph<N,E>
- Parameters:
nodeValue
- The node's value.- Returns:
- The corresponding node in the graph.
-
getNodes
public abstract java.util.Collection<? extends DiGraph.DiGraphNode<N,E>> getNodes()
Description copied from class:Graph
Gets an immutable list of all nodes.
-
getNode
public abstract DiGraph.DiGraphNode<N,E> getNode(N nodeValue)
Description copied from interface:AdjacencyGraph
Gets a node from the graph given a value. Values equality are compared usingObject.equals
.- Parameters:
nodeValue
- The node's value.- Returns:
- The corresponding node in the graph, null if there value has no corresponding node.
-
getEdges
public abstract java.util.List<? extends DiGraph.DiGraphEdge<N,E>> getEdges()
Description copied from class:Graph
Gets an immutable list of all edges.
-
getEdges
public abstract java.util.List<? extends DiGraph.DiGraphEdge<N,E>> getEdges(N n1, N n2)
Description copied from class:Graph
Retrieves an edge from the graph.
-
getEdgesInDirection
public abstract java.util.List<? extends DiGraph.DiGraphEdge<N,E>> getEdgesInDirection(N n1, N n2)
-
getOutEdges
public abstract java.util.List<? extends DiGraph.DiGraphEdge<N,E>> getOutEdges(N nodeValue)
Gets an immutable list of out edges of the given node.
-
getInEdges
public abstract java.util.List<? extends DiGraph.DiGraphEdge<N,E>> getInEdges(N nodeValue)
Gets an immutable list of in edges of the given node.
-
getDirectedPredNodes
public abstract java.util.List<? extends DiGraph.DiGraphNode<N,E>> getDirectedPredNodes(DiGraph.DiGraphNode<N,E> n)
-
getDirectedPredNodes
public abstract java.util.List<? extends DiGraph.DiGraphNode<N,E>> getDirectedPredNodes(N nodeValue)
-
getDirectedSuccNodes
public abstract java.util.List<? extends DiGraph.DiGraphNode<N,E>> getDirectedSuccNodes(DiGraph.DiGraphNode<N,E> n)
-
getDirectedSuccNodes
public abstract java.util.List<? extends DiGraph.DiGraphNode<N,E>> getDirectedSuccNodes(N nodeValue)
-
disconnectInDirection
public abstract void disconnectInDirection(N n1, N n2)
Disconnects all edges from n1 to n2.- Parameters:
n1
- Source node.n2
- Destination node.
-
isConnectedInDirection
public abstract boolean isConnectedInDirection(N n1, N n2)
Checks whether two nodes in the graph are connected via a directed edge.- Parameters:
n1
- Node 1.n2
- Node 2.- Returns:
true
if the graph contains edge from n1 to n2.
-
isConnectedInDirection
public abstract boolean isConnectedInDirection(N n1, E edgeValue, N n2)
Checks whether two nodes in the graph are connected via a directed edge with the given value.- Parameters:
n1
- Node 1.edgeValue
- edge value tagn2
- Node 2.- Returns:
true
if the edge exists.
-
isConnected
public boolean isConnected(N n1, N n2)
Description copied from class:Graph
Checks whether two nodes in the graph are connected.- Specified by:
isConnected
in classGraph<N,E>
- Parameters:
n1
- Node 1.n2
- Node 2.- Returns:
true
if the two nodes are connected.
-
-