Package org.jgrapht.graph
Class AbstractGraph<V,E>
- java.lang.Object
-
- org.jgrapht.graph.AbstractGraph<V,E>
-
- All Implemented Interfaces:
Graph<V,E>
- Direct Known Subclasses:
AbstractBaseGraph,GraphDelegator,GraphUnion,MaskSubgraph,Subgraph
public abstract class AbstractGraph<V,E> extends java.lang.Object implements Graph<V,E>
A skeletal implementation of the Graph interface, to minimize the effort required to implement graph interfaces. This implementation is applicable to both: directed graphs and undirected graphs.- Author:
- Barak Naveh
- See Also:
Graph,DirectedGraph,UndirectedGraph
-
-
Constructor Summary
Constructors Constructor Description AbstractGraph()Construct a new empty graph object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected booleanassertVertexExist(V v)Ensures that the specified vertex exists in this graph, or else throws exception.booleancontainsEdge(V sourceVertex, V targetVertex)Returns true if and only if this graph contains an edge going from the source vertex to the target vertex.protected booleanremoveAllEdges(E[] edges)Removes all the edges in this graph that are also contained in the specified edge array.booleanremoveAllEdges(java.util.Collection<? extends E> edges)Removes all the edges in this graph that are also contained in the specified edge collection.java.util.Set<E>removeAllEdges(V sourceVertex, V targetVertex)Removes all the edges going from the specified source vertex to the specified target vertex, and returns a set of all removed edges.booleanremoveAllVertices(java.util.Collection<? extends V> vertices)Removes all the vertices in this graph that are also contained in the specified vertex collection.java.lang.StringtoString()Returns a string of the parenthesized pair (V, E) representing this G=(V,E) graph.protected java.lang.StringtoStringFromSets(java.util.Collection<? extends V> vertexSet, java.util.Collection<? extends E> edgeSet, boolean directed)Helper for subclass implementations of toString( ).-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.jgrapht.Graph
addEdge, addEdge, addVertex, containsEdge, containsVertex, edgeSet, edgesOf, getAllEdges, getEdge, getEdgeFactory, getEdgeSource, getEdgeTarget, getEdgeWeight, removeEdge, removeEdge, removeVertex, vertexSet
-
-
-
-
Method Detail
-
containsEdge
public boolean containsEdge(V sourceVertex, V targetVertex)
Description copied from interface:GraphReturns true if and only if this graph contains an edge going from the source vertex to the target vertex. In undirected graphs the same result is obtained when source and target are inverted. If any of the specified vertices does not exist in the graph, or if isnull, returnsfalse.- Specified by:
containsEdgein interfaceGraph<V,E>- Parameters:
sourceVertex- source vertex of the edge.targetVertex- target vertex of the edge.- Returns:
- true if this graph contains the specified edge.
- See Also:
Graph.containsEdge(Object, Object)
-
removeAllEdges
public boolean removeAllEdges(java.util.Collection<? extends E> edges)
Description copied from interface:GraphRemoves all the edges in this graph that are also contained in the specified edge collection. After this call returns, this graph will contain no edges in common with the specified edges. This method will invoke theGraph.removeEdge(Object)method.- Specified by:
removeAllEdgesin interfaceGraph<V,E>- Parameters:
edges- edges to be removed from this graph.- Returns:
- true if this graph changed as a result of the call
- See Also:
Graph.removeAllEdges(Collection)
-
removeAllEdges
public java.util.Set<E> removeAllEdges(V sourceVertex, V targetVertex)
Description copied from interface:GraphRemoves all the edges going from the specified source vertex to the specified target vertex, and returns a set of all removed edges. Returnsnullif any of the specified vertices does not exist in the graph. If both vertices exist but no edge is found, returns an empty set. This method will either invoke theGraph.removeEdge(Object)method, or theGraph.removeEdge(Object, Object)method.- Specified by:
removeAllEdgesin interfaceGraph<V,E>- Parameters:
sourceVertex- source vertex of the edge.targetVertex- target vertex of the edge.- Returns:
- the removed edges, or
nullif no either vertex not part of graph - See Also:
Graph.removeAllEdges(Object, Object)
-
removeAllVertices
public boolean removeAllVertices(java.util.Collection<? extends V> vertices)
Description copied from interface:GraphRemoves all the vertices in this graph that are also contained in the specified vertex collection. After this call returns, this graph will contain no vertices in common with the specified vertices. This method will invoke theGraph.removeVertex(Object)method.- Specified by:
removeAllVerticesin interfaceGraph<V,E>- Parameters:
vertices- vertices to be removed from this graph.- Returns:
- true if this graph changed as a result of the call
- See Also:
Graph.removeAllVertices(Collection)
-
toString
public java.lang.String toString()
Returns a string of the parenthesized pair (V, E) representing this G=(V,E) graph. 'V' is the string representation of the vertex set, and 'E' is the string representation of the edge set.- Overrides:
toStringin classjava.lang.Object- Returns:
- a string representation of this graph.
-
assertVertexExist
protected boolean assertVertexExist(V v)
Ensures that the specified vertex exists in this graph, or else throws exception.- Parameters:
v- vertex- Returns:
trueif this assertion holds.- Throws:
java.lang.NullPointerException- if specified vertex isnull.java.lang.IllegalArgumentException- if specified vertex does not exist in this graph.
-
removeAllEdges
protected boolean removeAllEdges(E[] edges)
Removes all the edges in this graph that are also contained in the specified edge array. After this call returns, this graph will contain no edges in common with the specified edges. This method will invoke theGraph.removeEdge(Object)method.- Parameters:
edges- edges to be removed from this graph.- Returns:
- true if this graph changed as a result of the call.
- See Also:
Graph.removeEdge(Object),Graph.containsEdge(Object)
-
toStringFromSets
protected java.lang.String toStringFromSets(java.util.Collection<? extends V> vertexSet, java.util.Collection<? extends E> edgeSet, boolean directed)
Helper for subclass implementations of toString( ).- Parameters:
vertexSet- the vertex set V to be printededgeSet- the edge set E to be printeddirected- true to use parens for each edge (representing directed); false to use curly braces (representing undirected)- Returns:
- a string representation of (V,E)
-
-