com.phoenixst.plexus

Class ObservableGraphWrapper

public class ObservableGraphWrapper extends Object implements ObservableGraph

A wrapper around a Graph so that it can be watched for structural changes. Note: the Traverser method on Traversers created by this class will only work if the Traversers created by the wrapped Graph can tolerate having edges removed while the traversal is in progress.

Since: 1.0

Version: $Revision: 1.53 $

Author: Ray A. Conner

Constructor Summary
ObservableGraphWrapper(Graph delegate)
Creates a new ObservableGraphWrapper.
protected ObservableGraphWrapper()
This constructor, together with initialize, allows a subclass to initialize the internal state during deserialization.
Method Summary
Graph.EdgeaddEdge(Object object, Object tail, Object head, boolean isDirected)
voidaddGraphListener(GraphListener listener)
booleanaddNode(Object node)
CollectionadjacentNodes(Object node, Predicate traverserPredicate)
booleancontainsEdge(Graph.Edge edge)
booleancontainsNode(Object node)
intdegree(Object node)
intdegree(Object node, Predicate traverserPredicate)
Collectionedges(Predicate edgePredicate)
ObjectgetAdjacentNode(Object node, Predicate traverserPredicate)
protected GraphgetDelegate()
Provides accesss to the internal state so it can be manually serialized by a subclass's writeObject() method.
Graph.EdgegetEdge(Predicate edgePredicate)
Graph.EdgegetIncidentEdge(Object node, Predicate traverserPredicate)
ObjectgetNode(Predicate nodePredicate)
CollectionincidentEdges(Object node, Predicate traverserPredicate)
protected voidinitialize(Graph delegateGraph)
This method should only be called by subclasses during deserialization.
Collectionnodes(Predicate nodePredicate)
booleanremoveEdge(Graph.Edge edge)
voidremoveGraphListener(GraphListener listener)
protected voidremoveIncidentEdges(Object node)
booleanremoveNode(Object node)
StringtoString()
Traversertraverser(Object node, Predicate traverserPredicate)

Constructor Detail

ObservableGraphWrapper

public ObservableGraphWrapper(Graph delegate)
Creates a new ObservableGraphWrapper.

ObservableGraphWrapper

protected ObservableGraphWrapper()
This constructor, together with initialize, allows a subclass to initialize the internal state during deserialization.

Method Detail

addEdge

public Graph.Edge addEdge(Object object, Object tail, Object head, boolean isDirected)

addGraphListener

public void addGraphListener(GraphListener listener)

addNode

public boolean addNode(Object node)

adjacentNodes

public Collection adjacentNodes(Object node, Predicate traverserPredicate)

containsEdge

public boolean containsEdge(Graph.Edge edge)

containsNode

public boolean containsNode(Object node)

degree

public int degree(Object node)

degree

public int degree(Object node, Predicate traverserPredicate)

edges

public Collection edges(Predicate edgePredicate)

getAdjacentNode

public Object getAdjacentNode(Object node, Predicate traverserPredicate)

getDelegate

protected final Graph getDelegate()
Provides accesss to the internal state so it can be manually serialized by a subclass's writeObject() method.

getEdge

public Graph.Edge getEdge(Predicate edgePredicate)

getIncidentEdge

public Graph.Edge getIncidentEdge(Object node, Predicate traverserPredicate)

getNode

public Object getNode(Predicate nodePredicate)

incidentEdges

public Collection incidentEdges(Object node, Predicate traverserPredicate)

initialize

protected final void initialize(Graph delegateGraph)
This method should only be called by subclasses during deserialization.

nodes

public Collection nodes(Predicate nodePredicate)

removeEdge

public boolean removeEdge(Graph.Edge edge)

removeGraphListener

public void removeGraphListener(GraphListener listener)

removeIncidentEdges

protected void removeIncidentEdges(Object node)

removeNode

public boolean removeNode(Object node)

toString

public String toString()

traverser

public Traverser traverser(Object node, Predicate traverserPredicate)
See the Plexus project home, hosted by SourceForge.
Copyright B) 1994-2006, by Phoenix Software Technologists, Inc. and others. All Rights Reserved. Use is subject to license terms.