Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jgrapht.alg
Class ConnectivityInspector<V,E>

    java.lang.Object
      org.jgrapht.alg.ConnectivityInspector<V,E>

All Implemented Interfaces:
  java.util.EventListener, GraphListener<V,E>, VertexSetListener<V>

    public class ConnectivityInspector<V,E>

extends java.lang.Object
implements GraphListener<V,E>

Allows obtaining various connectivity aspects of a graph. The inspected graph is specified at construction time and cannot be modified. Currently, the inspector supports connected components for an undirected graph and weakly connected components for a directed graph. To find strongly connected components, use `StrongConnectivityInspector` instead.

The inspector methods work in a lazy fashion: no computation is performed unless immediately necessary. Computation are done once and results and cached within this class for future need.

The inspector is also a `GraphListener`. If added as a listener to the inspected graph, the inspector will amend internal cached results instead of recomputing them. It is efficient when a few modifications are applied to a large graph. If many modifications are expected it will not be efficient due to added overhead on graph update operations. If inspector is added as listener to a graph other than the one it inspects, results are undefined.

Since:
  Aug 6, 2003
Author:
  Barak Naveh, John V. Sichi

Constructor Summary
`ConnectivityInspector(DirectedGraph<V,E> g)` Creates a connectivity inspector for the specified directed graph.
`ConnectivityInspector(UndirectedGraph<V,E> g)` Creates a connectivity inspector for the specified undirected graph.

Method Summary
`java.util.Set<V>` | `connectedSetOf(V vertex)` Returns a set of all vertices that are in the maximally connected component together with the specified vertex.
`java.util.List<java.util.Set<V>>` | `connectedSets()` Returns a list of `Set` s, where each set contains all vertices that are in the same maximally connected component.
`void` | `edgeAdded(GraphEdgeChangeEvent<V,E> e)` Notifies that an edge has been added to the graph.
`void` | `edgeRemoved(GraphEdgeChangeEvent<V,E> e)` Notifies that an edge has been removed from the graph.
`boolean` | `isGraphConnected()` Test if the inspected graph is connected.
`boolean` | `pathExists(V sourceVertex, V targetVertex)` Tests if there is a path from the specified source vertex to the specified target vertices.
`void` | `vertexAdded(GraphVertexChangeEvent<V> e)` Notifies that a vertex has been added to the graph.
`void` | `vertexRemoved(GraphVertexChangeEvent<V> e)` Notifies that a vertex has been removed from the graph.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ConnectivityInspector

    public ConnectivityInspector(UndirectedGraph<V,E> g)

  Creates a connectivity inspector for the specified undirected graph.

  Parameters:
    `g` - the graph for which a connectivity inspector to be created.

### ConnectivityInspector

    public ConnectivityInspector(DirectedGraph<V,E> g)

  Creates a connectivity inspector for the specified directed graph.

  Parameters:
    `g` - the graph for which a connectivity inspector to be created.

Method Detail

### isGraphConnected

    public boolean isGraphConnected()

  Test if the inspected graph is connected. An empty graph is not considered connected.

  Returns:
    `true` if and only if inspected graph is connected.

### connectedSetOf

    public java.util.Set<V> connectedSetOf(V vertex)

  Returns a set of all vertices that are in the maximally connected component together with the specified vertex. For more on maximally connected component, see http://www.nist.gov/dads/HTML/maximallyConnectedComponent.html.

  Parameters:
    `vertex` - the vertex for which the connected set to be returned.
  Returns:
    a set of all vertices that are in the maximally connected component together with the specified vertex.

### connectedSets

    public java.util.List<java.util.Set<V>> connectedSets()

  Returns a list of `Set` s, where each set contains all vertices that are in the same maximally connected component. All graph vertices occur in exactly one set. For more on maximally connected component, see http://www.nist.gov/dads/HTML/maximallyConnectedComponent.html.

  Returns:
    Returns a list of `Set` s, where each set contains all vertices that are in the same maximally connected component.

### edgeAdded

    public void edgeAdded(GraphEdgeChangeEvent<V,E> e)

  Description copied from interface: `GraphListener`
  Notifies that an edge has been added to the graph.

  Specified by:
    `edgeAdded` in interface `GraphListener<V,E>`
  Parameters:
    `e` - the edge event.
  See Also:
    `GraphListener.edgeAdded(GraphEdgeChangeEvent)`

### edgeRemoved

    public void edgeRemoved(GraphEdgeChangeEvent<V,E> e)

  Description copied from interface: `GraphListener`
  Notifies that an edge has been removed from the graph.

  Specified by:
    `edgeRemoved` in interface `GraphListener<V,E>`
  Parameters:
    `e` - the edge event.
  See Also:
    `GraphListener.edgeRemoved(GraphEdgeChangeEvent)`

### pathExists

    public boolean pathExists(V sourceVertex,
                              V targetVertex)

  Tests if there is a path from the specified source vertex to the specified target vertices. For a directed graph, direction is ignored for this interpretation of path.

  Note: Future versions of this method might not ignore edge directions for directed graphs.

  Parameters:
    `sourceVertex` - one end of the path.
    `targetVertex` - another end of the path.
  Returns:
    `true` if and only if there is a path from the source vertex to the target vertex.

### vertexAdded

    public void vertexAdded(GraphVertexChangeEvent<V> e)

  Description copied from interface: `VertexSetListener`
  Notifies that a vertex has been added to the graph.

  Specified by:
    `vertexAdded` in interface `VertexSetListener<V>`
  Parameters:
    `e` - the vertex event.
  See Also:
    `VertexSetListener.vertexAdded(GraphVertexChangeEvent)`

### vertexRemoved

    public void vertexRemoved(GraphVertexChangeEvent<V> e)

  Description copied from interface: `VertexSetListener`
  Notifies that a vertex has been removed from the graph.

  Specified by:
    `vertexRemoved` in interface `VertexSetListener<V>`
  Parameters:
    `e` - the vertex event.
  See Also:
    `VertexSetListener.vertexRemoved(GraphVertexChangeEvent)`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD