Package org.onlab.graph
Class AbstractGraphPathSearch<V extends Vertex,E extends Edge<V>>
- java.lang.Object
-
- org.onlab.graph.AbstractGraphPathSearch<V,E>
-
- Type Parameters:
V
- vertex typeE
- edge type
- All Implemented Interfaces:
GraphPathSearch<V,E>
- Direct Known Subclasses:
BellmanFordGraphSearch
,BreadthFirstSearch
,DepthFirstSearch
,DijkstraGraphSearch
,KShortestPathsSearch
,SrlgGraphSearch
public abstract class AbstractGraphPathSearch<V extends Vertex,E extends Edge<V>> extends java.lang.Object implements GraphPathSearch<V,E>
Basis for various graph path search algorithm implementations.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
AbstractGraphPathSearch.DefaultResult
Default path search result that uses the DefaultPath to convey paths in a graph.-
Nested classes/interfaces inherited from interface org.onlab.graph.GraphPathSearch
GraphPathSearch.Result<V extends Vertex,E extends Edge<V>>
-
-
Field Summary
-
Fields inherited from interface org.onlab.graph.GraphPathSearch
ALL_PATHS
-
-
Constructor Summary
Constructors Constructor Description AbstractGraphPathSearch()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
checkArguments(Graph<V,E> graph, V src, V dst)
Checks the specified path search arguments for validity.protected abstract GraphPathSearch.Result<V,E>
internalSearch(Graph<V,E> graph, V src, V dst, EdgeWeigher<V,E> weigher, int maxPaths)
GraphPathSearch.Result<V,E>
search(Graph<V,E> graph, V src, V dst, EdgeWeigher<V,E> weigher, int maxPaths)
Searches the specified graph for paths between vertices.
-
-
-
Method Detail
-
checkArguments
protected void checkArguments(Graph<V,E> graph, V src, V dst)
Checks the specified path search arguments for validity.- Parameters:
graph
- graph; must not be nullsrc
- source vertex; must not be null and belong to graphdst
- optional target vertex; must belong to graph
-
search
public GraphPathSearch.Result<V,E> search(Graph<V,E> graph, V src, V dst, EdgeWeigher<V,E> weigher, int maxPaths)
Description copied from interface:GraphPathSearch
Searches the specified graph for paths between vertices.- Specified by:
search
in interfaceGraphPathSearch<V extends Vertex,E extends Edge<V>>
- Parameters:
graph
- graph to be searchedsrc
- optional source vertexdst
- optional destination vertex; if null paths to all vertex destinations will be searchedweigher
- optional edge-weigher; if null,DefaultEdgeWeigher
will be used (assigns equal weights to all links)maxPaths
- limit on number of paths;GraphPathSearch.ALL_PATHS
if no limit- Returns:
- search results
-
-