Package edu.uci.ics.jung.graph
Class ObservableGraph<V,E>
- java.lang.Object
-
- edu.uci.ics.jung.graph.GraphDecorator<V,E>
-
- edu.uci.ics.jung.graph.ObservableGraph<V,E>
-
- All Implemented Interfaces:
Graph<V,E>,Hypergraph<V,E>,java.io.Serializable
public class ObservableGraph<V,E> extends GraphDecorator<V,E>
A decorator class for graphs which generates events- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class edu.uci.ics.jung.graph.GraphDecorator
delegate
-
-
Constructor Summary
Constructors Constructor Description ObservableGraph(Graph<V,E> delegate)Creates a new instance based on the provideddelegate.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddEdge(E edge, java.util.Collection<? extends V> vertices)Addsedgeto this graph.booleanaddEdge(E e, V v1, V v2)Adds edgeeto this graph such that it connects vertexv1tov2.booleanaddEdge(E e, V v1, V v2, EdgeType edgeType)Adds edgeeto this graph such that it connects vertexv1tov2.voidaddGraphEventListener(GraphEventListener<V,E> l)Addslas a listener to this graph.booleanaddVertex(V vertex)Addsvertexto this graph.protected voidfireGraphEvent(GraphEvent<V,E> evt)booleanremoveEdge(E edge)Removesedgefrom this graph.voidremoveGraphEventListener(GraphEventListener<V,E> l)Removeslas a listener to this graph.booleanremoveVertex(V vertex)Removesvertexfrom 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
-
-
-
-
Method Detail
-
addGraphEventListener
public void addGraphEventListener(GraphEventListener<V,E> l)
Addslas a listener to this graph.
-
removeGraphEventListener
public void removeGraphEventListener(GraphEventListener<V,E> l)
Removeslas a listener to this graph.
-
fireGraphEvent
protected void fireGraphEvent(GraphEvent<V,E> evt)
-
addEdge
public boolean addEdge(E edge, java.util.Collection<? extends V> vertices)
Description copied from interface:HypergraphAddsedgeto this graph. Fails under the following circumstances:edgeis already an element of the graph eitheredgeorverticesisnullverticeshas the wrong number of vertices for the graph typeverticesare already connected by another edge in this graph, and this graph does not accept parallel edges- Specified by:
addEdgein interfaceHypergraph<V,E>- Overrides:
addEdgein classGraphDecorator<V,E>- Returns:
trueif the add is successful, andfalseotherwise- 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:GraphAdds edgeeto this graph such that it connects vertexv1tov2. Equivalent toaddEdge(e, new Pair. If this graph does not contain(v1, v2)) v1,v2, or both, implementations may choose to either silently add the vertices to the graph or throw anIllegalArgumentException. IfedgeTypeis not legal for this graph, this method will throwIllegalArgumentException. SeeHypergraph.addEdge()for a listing of possible reasons for failure.- Specified by:
addEdgein interfaceGraph<V,E>- Overrides:
addEdgein classGraphDecorator<V,E>- Parameters:
e- the edge to be addedv1- the first vertex to be connectedv2- the second vertex to be connectededgeType- the type to be assigned to the edge- Returns:
trueif the add is successful,falseotherwise- 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:GraphAdds edgeeto this graph such that it connects vertexv1tov2. Equivalent toaddEdge(e, new Pair. If this graph does not contain(v1, v2)) v1,v2, or both, implementations may choose to either silently add the vertices to the graph or throw anIllegalArgumentException. If this graph assigns edge types to its edges, the edge type ofewill be the default for this graph. SeeHypergraph.addEdge()for a listing of possible reasons for failure.- Specified by:
addEdgein interfaceGraph<V,E>- Overrides:
addEdgein classGraphDecorator<V,E>- Parameters:
e- the edge to be addedv1- the first vertex to be connectedv2- the second vertex to be connected- Returns:
trueif the add is successful,falseotherwise- See Also:
Graph.addEdge(java.lang.Object, java.lang.Object, java.lang.Object)
-
addVertex
public boolean addVertex(V vertex)
Description copied from interface:HypergraphAddsvertexto this graph. Fails ifvertexis null or already in the graph.- Specified by:
addVertexin interfaceHypergraph<V,E>- Overrides:
addVertexin classGraphDecorator<V,E>- Parameters:
vertex- the vertex to add- Returns:
trueif the add is successful, andfalseotherwise- See Also:
Hypergraph.addVertex(java.lang.Object)
-
removeEdge
public boolean removeEdge(E edge)
Description copied from interface:HypergraphRemovesedgefrom this graph. Fails ifedgeis null, or is otherwise not an element of this graph.- Specified by:
removeEdgein interfaceHypergraph<V,E>- Overrides:
removeEdgein classGraphDecorator<V,E>- Parameters:
edge- the edge to remove- Returns:
trueif the removal is successful,falseotherwise- See Also:
Hypergraph.removeEdge(java.lang.Object)
-
removeVertex
public boolean removeVertex(V vertex)
Description copied from interface:HypergraphRemovesvertexfrom this graph. As a side effect, removes any edgeseincident tovertexif the removal ofvertexwould causeeto 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:
vertexis not an element of this graphvertexisnull- Specified by:
removeVertexin interfaceHypergraph<V,E>- Overrides:
removeVertexin classGraphDecorator<V,E>- Parameters:
vertex- the vertex to remove- Returns:
trueif the removal is successful,falseotherwise- See Also:
Hypergraph.removeVertex(java.lang.Object)
-
-