Package org.jgrapht.graph.builder
Class AbstractGraphBuilder<V,E,G extends Graph<V,E>,B extends AbstractGraphBuilder<V,E,G,B>>
 java.lang.Object

 org.jgrapht.graph.builder.AbstractGraphBuilder<V,E,G,B>

 Type Parameters:
V
 the graph vertex typeE
 the graph edge typeG
 type of the resulting graphB
 type of this builder
 Direct Known Subclasses:
GraphBuilder
public abstract class AbstractGraphBuilder<V,E,G extends Graph<V,E>,B extends AbstractGraphBuilder<V,E,G,B>> extends Object
Base class for builders ofGraph
 Author:
 Andrew Chen


Constructor Summary
Constructors Constructor Description AbstractGraphBuilder(G baseGraph)
Creates a builder based onbaseGraph
.

Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description B
addEdge(V source, V target)
Adds an edge to the graph being built.B
addEdge(V source, V target, double weight)
Adds an weighted edge to the graph being built.B
addEdge(V source, V target, E edge)
Adds the specified edge to the graph being built.B
addEdge(V source, V target, E edge, double weight)
Adds the specified weighted edge to the graph being built.B
addEdgeChain(V first, V second, V... rest)
Adds a chain of edges to the graph being built.B
addGraph(Graph<? extends V,? extends E> sourceGraph)
Adds all the vertices and all the edges of thesourceGraph
to the graph being built.B
addVertex(V vertex)
Addsvertex
to the graph being built.B
addVertices(V... vertices)
Adds each vertex ofvertices
to the graph being built.G
build()
Build the graph.Graph<V,E>
buildAsUnmodifiable()
Build an unmodifiable version graph.B
removeEdge(E edge)
Removes the specified edge from the graph.B
removeEdge(V source, V target)
Removes an edge going from source vertex to target vertex from the graph being built, if such vertices and such edge exist in the graph.B
removeVertex(V vertex)
Removesvertex
from the graph being built, if such vertex exist in graph.B
removeVertices(V... vertices)
Removes each vertex ofvertices
from the graph being built, if such vertices exist in graph.protected abstract B
self()



Constructor Detail

AbstractGraphBuilder
public AbstractGraphBuilder(G baseGraph)
Creates a builder based onbaseGraph
.baseGraph
must be mutable. Parameters:
baseGraph
 the graph object to base building on


Method Detail

self
protected abstract B self()
 Returns:
 the
this
object.

addVertex
public B addVertex(V vertex)
Addsvertex
to the graph being built. Parameters:
vertex
 the vertex to add Returns:
 this builder object
 See Also:
Graph.addVertex(Object)

addVertices
@SafeVarargs public final B addVertices(V... vertices)
Adds each vertex ofvertices
to the graph being built. Parameters:
vertices
 the vertices to add Returns:
 this builder object
 See Also:
addVertex(Object)

addEdge
public B addEdge(V source, V target)
Adds an edge to the graph being built. The source and target vertices are added to the graph, if not already included. Parameters:
source
 source vertex of the edge.target
 target vertex of the edge. Returns:
 this builder object
 See Also:
Graphs.addEdgeWithVertices(Graph, Object, Object)

addEdge
public B addEdge(V source, V target, E edge)
Adds the specified edge to the graph being built. The source and target vertices are added to the graph, if not already included. Parameters:
source
 source vertex of the edge.target
 target vertex of the edge.edge
 edge to be added to this graph. Returns:
 this builder object
 See Also:
Graph.addEdge(Object, Object, Object)

addEdgeChain
@SafeVarargs public final B addEdgeChain(V first, V second, V... rest)
Adds a chain of edges to the graph being built. The vertices are added to the graph, if not already included. Parameters:
first
 the first vertexsecond
 the second vertexrest
 the remaining vertices Returns:
 this builder object
 See Also:
addEdge(Object, Object)

addGraph
public B addGraph(Graph<? extends V,? extends E> sourceGraph)
Adds all the vertices and all the edges of thesourceGraph
to the graph being built. Parameters:
sourceGraph
 the source graph Returns:
 this builder object
 See Also:
Graphs.addGraph(Graph, Graph)

removeVertex
public B removeVertex(V vertex)
Removesvertex
from the graph being built, if such vertex exist in graph. Parameters:
vertex
 the vertex to remove Returns:
 this builder object
 See Also:
Graph.removeVertex(Object)

removeVertices
@SafeVarargs public final B removeVertices(V... vertices)
Removes each vertex ofvertices
from the graph being built, if such vertices exist in graph. Parameters:
vertices
 the vertices to remove Returns:
 this builder object
 See Also:
removeVertex(Object)

removeEdge
public B removeEdge(V source, V target)
Removes an edge going from source vertex to target vertex from the graph being built, if such vertices and such edge exist in the graph. Parameters:
source
 source vertex of the edge.target
 target vertex of the edge. Returns:
 this builder object
 See Also:
Graph.removeVertex(Object)

removeEdge
public B removeEdge(E edge)
Removes the specified edge from the graph. Removes the specified edge from this graph if it is present. Parameters:
edge
 edge to be removed from this graph, if present. Returns:
 this builder object
 See Also:
Graph.removeEdge(Object)

addEdge
public B addEdge(V source, V target, double weight)
Adds an weighted edge to the graph being built. The source and target vertices are added to the graph, if not already included. Parameters:
source
 source vertex of the edge.target
 target vertex of the edge.weight
 weight of the edge. Returns:
 this builder object
 See Also:
Graphs.addEdgeWithVertices(Graph, Object, Object, double)

addEdge
public B addEdge(V source, V target, E edge, double weight)
Adds the specified weighted edge to the graph being built. The source and target vertices are added to the graph, if not already included. Parameters:
source
 source vertex of the edge.target
 target vertex of the edge.edge
 edge to be added to this graph.weight
 weight of the edge. Returns:
 this builder object
 See Also:
Graph.addEdge(Object, Object, Object)
,Graph.setEdgeWeight(Object, double)

build
public G build()
Build the graph. Calling any method (including this method) on this builder object after calling this method is undefined behaviour. Returns:
 the built graph.

