edu.uci.ics.jung.graph
Class ObservableGraph<V,E>

java.lang.Object
  extended by edu.uci.ics.jung.graph.GraphDecorator<V,E>
      extended by edu.uci.ics.jung.graph.ObservableGraph<V,E>
All Implemented Interfaces:
Graph<V,E>, Hypergraph<V,E>

public class ObservableGraph<V,E>
extends GraphDecorator<V,E>

A decorator class for graphs which generates events

Author:
Joshua O'Madadhain

Field Summary
 
Fields inherited from class edu.uci.ics.jung.graph.GraphDecorator
delegate
 
Constructor Summary
ObservableGraph(Graph<V,E> delegate)
          Creates a new instance based on the provided delegate.
 
Method Summary
 boolean addEdge(E edge, Collection<? extends V> vertices)
          Adds edge to this graph.
 boolean addEdge(E e, V v1, V v2)
          Adds edge e to this graph such that it connects vertex v1 to v2.
 boolean addEdge(E e, V v1, V v2, EdgeType edgeType)
          Adds edge e to this graph such that it connects vertex v1 to v2.
 void addGraphEventListener(GraphEventListener<V,E> l)
          Adds l as a listener to this graph.
 boolean addVertex(V vertex)
          Adds vertex to this graph.
protected  void fireGraphEvent(GraphEvent<V,E> evt)
           
 boolean removeEdge(E edge)
          Removes edge from this graph.
 void removeGraphEventListener(GraphEventListener<V,E> l)
          Removes l as a listener to this graph.
 boolean removeVertex(V vertex)
          Removes vertex from this graph.
 
Methods inherited from class edu.uci.ics.jung.graph.GraphDecorator
addEdge, containsEdge, containsVertex, degree, findEdge, findEdgeSet, getDefaultEdgeType, getDest, getEdgeCount, getEdgeCount, getEdges, getEdges, getEdgeType, getEndpoints, getIncidentCount, getIncidentEdges, getIncidentVertices, getInEdges, getNeighborCount, getNeighbors, getOpposite, getOutEdges, getPredecessorCount, getPredecessors, getSource, getSuccessorCount, getSuccessors, getVertexCount, getVertices, inDegree, isDest, isIncident, isNeighbor, isPredecessor, isSource, isSuccessor, outDegree
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ObservableGraph

public ObservableGraph(Graph<V,E> delegate)
Creates a new instance based on the provided delegate.

Method Detail

addGraphEventListener

public void addGraphEventListener(GraphEventListener<V,E> l)
Adds l as a listener to this graph.


removeGraphEventListener

public void removeGraphEventListener(GraphEventListener<V,E> l)
Removes l as a listener to this graph.


fireGraphEvent

protected void fireGraphEvent(GraphEvent<V,E> evt)

addEdge

public boolean addEdge(E edge,
                       Collection<? extends V> vertices)
Description copied from interface: Hypergraph
Adds edge to this graph. Fails under the following circumstances:

Specified by:
addEdge in interface Hypergraph<V,E>
Overrides:
addEdge in class GraphDecorator<V,E>
Returns:
true if the add is successful, and false otherwise
See Also:
Hypergraph.addEdge(java.lang.Object, java.util.Collection)

addEdge

public boolean addEdge(E e,
                       V v1,
                       V v2,
                       EdgeType edgeType)
Description copied from interface: Graph
Adds edge e to this graph such that it connects vertex v1 to v2. Equivalent to addEdge(e, new Pair(v1, v2)). If this graph does not contain v1, v2, or both, implementations may choose to either silently add the vertices to the graph or throw an IllegalArgumentException. If edgeType is not legal for this graph, this method will throw IllegalArgumentException. See Hypergraph.addEdge() for a listing of possible reasons for failure.

Specified by:
addEdge in interface Graph<V,E>
Overrides:
addEdge in class GraphDecorator<V,E>
Parameters:
e - the edge to be added
v1 - the first vertex to be connected
v2 - the second vertex to be connected
edgeType - the type to be assigned to the edge
Returns:
true if the add is successful, false otherwise
See Also:
Graph.addEdge(java.lang.Object, java.lang.Object, java.lang.Object, edu.uci.ics.jung.graph.util.EdgeType)

addEdge

public boolean addEdge(E e,
                       V v1,
                       V v2)
Description copied from interface: Graph
Adds edge e to this graph such that it connects vertex v1 to v2. Equivalent to addEdge(e, new Pair(v1, v2)). If this graph does not contain v1, v2, or both, implementations may choose to either silently add the vertices to the graph or throw an IllegalArgumentException. If this graph assigns edge types to its edges, the edge type of e will be the default for this graph. See Hypergraph.addEdge() for a listing of possible reasons for failure.

Specified by:
addEdge in interface Graph<V,E>
Overrides:
addEdge in class GraphDecorator<V,E>
Parameters:
e - the edge to be added
v1 - the first vertex to be connected
v2 - the second vertex to be connected
Returns:
true if the add is successful, false otherwise
See Also:
Graph.addEdge(java.lang.Object, java.lang.Object, java.lang.Object)

addVertex

public boolean addVertex(V vertex)
Description copied from interface: Hypergraph
Adds vertex to this graph. Fails if vertex is null or already in the graph.

Specified by:
addVertex in interface Hypergraph<V,E>
Overrides:
addVertex in class GraphDecorator<V,E>
Parameters:
vertex - the vertex to add
Returns:
true if the add is successful, and false otherwise
See Also:
Hypergraph.addVertex(java.lang.Object)

removeEdge

public boolean removeEdge(E edge)
Description copied from interface: Hypergraph
Removes edge from this graph. Fails if edge is null, or is otherwise not an element of this graph.

Specified by:
removeEdge in interface Hypergraph<V,E>
Overrides:
removeEdge in class GraphDecorator<V,E>
Parameters:
edge - the edge to remove
Returns:
true if the removal is successful, false otherwise
See Also:
Hypergraph.removeEdge(java.lang.Object)

removeVertex

public boolean removeVertex(V vertex)
Description copied from interface: Hypergraph
Removes vertex from this graph. As a side effect, removes any edges e incident to vertex if the removal of vertex would cause e to be incident to an illegal number of vertices. (Thus, for example, incident hyperedges are not removed, but incident edges--which must be connected to a vertex at both endpoints--are removed.)

Fails under the following circumstances:

Specified by:
removeVertex in interface Hypergraph<V,E>
Overrides:
removeVertex in class GraphDecorator<V,E>
Parameters:
vertex - the vertex to remove
Returns:
true if the removal is successful, false otherwise
See Also:
Hypergraph.removeVertex(java.lang.Object)


Copyright © 2009. All Rights Reserved.