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>
createDirectedGraphNode(N nodeValue)
abstract void
disconnectInDirection(N n1, N n2)
Disconnects all edges from n1 to n2.abstract java.util.List<DiGraph.DiGraphEdge<N,E>>
getDirectedGraphEdges(N n1, N n2)
abstract DiGraph.DiGraphNode<N,E>
getDirectedGraphNode(N nodeValue)
abstract java.lang.Iterable<DiGraph.DiGraphNode<N,E>>
getDirectedGraphNodes()
Gets an immutable iterable over all the nodes in the graph.abstract java.util.List<DiGraph.DiGraphNode<N,E>>
getDirectedPredNodes(DiGraph.DiGraphNode<N,E> n)
abstract java.util.List<DiGraph.DiGraphNode<N,E>>
getDirectedPredNodes(N nodeValue)
abstract java.util.List<DiGraph.DiGraphNode<N,E>>
getDirectedSuccNodes(DiGraph.DiGraphNode<N,E> n)
abstract java.util.List<DiGraph.DiGraphNode<N,E>>
getDirectedSuccNodes(N nodeValue)
abstract java.util.List<DiGraph.DiGraphEdge<N,E>>
getInEdges(N nodeValue)
Gets an immutable list of in edges of the given node.abstract java.util.List<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, createNode, disconnect, getEdges, getEdges, getFirstEdge, getNeighborNodes, getNeighborNodesIterator, getNodeDegree, getNodes, 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
getNode, newSubGraph
-
-
-
-
Method Detail
-
getDirectedGraphNodes
public abstract java.lang.Iterable<DiGraph.DiGraphNode<N,E>> getDirectedGraphNodes()
Gets an immutable iterable over all the nodes in the graph.
-
getOutEdges
public abstract java.util.List<DiGraph.DiGraphEdge<N,E>> getOutEdges(N nodeValue)
Gets an immutable list of out edges of the given node.
-
getInEdges
public abstract java.util.List<DiGraph.DiGraphEdge<N,E>> getInEdges(N nodeValue)
Gets an immutable list of in edges of the given node.
-
getDirectedPredNodes
public abstract java.util.List<DiGraph.DiGraphNode<N,E>> getDirectedPredNodes(DiGraph.DiGraphNode<N,E> n)
-
getDirectedSuccNodes
public abstract java.util.List<DiGraph.DiGraphNode<N,E>> getDirectedSuccNodes(DiGraph.DiGraphNode<N,E> n)
-
getDirectedPredNodes
public abstract java.util.List<DiGraph.DiGraphNode<N,E>> getDirectedPredNodes(N nodeValue)
-
getDirectedSuccNodes
public abstract java.util.List<DiGraph.DiGraphNode<N,E>> getDirectedSuccNodes(N nodeValue)
-
createDirectedGraphNode
public abstract DiGraph.DiGraphNode<N,E> createDirectedGraphNode(N nodeValue)
-
getDirectedGraphNode
public abstract DiGraph.DiGraphNode<N,E> getDirectedGraphNode(N nodeValue)
-
getDirectedGraphEdges
public abstract java.util.List<DiGraph.DiGraphEdge<N,E>> getDirectedGraphEdges(N n1, N n2)
-
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.
-
-