com.phoenixst.plexus

Class GraphWrapper

public class GraphWrapper extends Object implements ObservableGraph

A Graph which wraps another. If the wrapped graph does not implement ObservableGraph, then GraphWrapper and GraphWrapper with throw UnsupportedOperationExceptions. This class is intended to be extended.

Since: 1.0

Version: $Revision: 1.69 $

Author: Ray A. Conner

Constructor Summary
GraphWrapper(Graph delegate)
Creates a new GraphWrapper.
protected GraphWrapper()
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)
Adds the specified GraphListener which will be notified whenever this ObservableGraph's structure changes.
booleanaddNode(Object node)
CollectionadjacentNodes(Object node, Predicate traverserPredicate)
booleancontainsEdge(Graph.Edge edge)
booleancontainsNode(Object node)
protected GraphWrapper.EdgeWrappercreateEdge(Graph.Edge edge)
Creates a wrapped Graph.Edge.
intdegree(Object node)
intdegree(Object node, Predicate traverserPredicate)
Collectionedges(Predicate edgePredicate)
ObjectgetAdjacentNode(Object node, Predicate traverserPredicate)
This implementation returns the other endpoint of the Graph.Edge returned by getIncidentEdge if present, otherwise it returns null.
protected GraphgetDelegate()
Provides accesss to the internal state so it can be manually serialized by a subclass's writeObject() method.
Graph.EdgegetEdge(Predicate edgePredicate)
This implementation
Graph.EdgegetIncidentEdge(Object node, Predicate traverserPredicate)
This implementation
ObjectgetNode(Predicate nodePredicate)
This implementation
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)
Removes a previously added GraphListener.
booleanremoveNode(Object node)
Traversertraverser(Object node, Predicate traverserPredicate)
This implementation
protected ObjectunwrapEdgeObject(Object edgeObject)
Returns an unwrapped edge Object.
protected ObjectunwrapNode(Object node)
Returns an unwrapped node.
protected ObjectwrapEdgeObject(Object edgeObject)
Returns a wrapped edge Object.
protected PredicatewrapEdgePredicate(Predicate edgePredicate)
Returns a wrapped edge predicate, if necessary.
protected ObjectwrapNode(Object node)
Returns a wrapped node.
protected PredicatewrapNodePredicate(Predicate nodePredicate)
Returns a wrapped node predicate, if necessary.
protected TraverserwrapTraverser(Traverser traverser)
Returns a wrapped traverser.
protected PredicatewrapTraverserPredicate(Predicate traverserPredicate)
Returns a wrapped traverser predicate, if necessary.

Constructor Detail

GraphWrapper

public GraphWrapper(Graph delegate)
Creates a new GraphWrapper.

GraphWrapper

protected GraphWrapper()
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)
Adds the specified GraphListener which will be notified whenever this ObservableGraph's structure changes. If the wrapped graph does not implement ObservableGraph, then this method with throw an UnsupportedOperationException.

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)

createEdge

protected GraphWrapper.EdgeWrapper createEdge(Graph.Edge edge)
Creates a wrapped Graph.Edge.

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)
This implementation returns the other endpoint of the Graph.Edge returned by getIncidentEdge if present, otherwise it returns null.

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)
This implementation

getIncidentEdge

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

getNode

public Object getNode(Predicate nodePredicate)
This implementation

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)
Removes a previously added GraphListener. If the wrapped graph does not implement ObservableGraph, then this method with throw an UnsupportedOperationException.

removeNode

public boolean removeNode(Object node)

traverser

public Traverser traverser(Object node, Predicate traverserPredicate)
This implementation

unwrapEdgeObject

protected Object unwrapEdgeObject(Object edgeObject)
Returns an unwrapped edge Object.

unwrapNode

protected Object unwrapNode(Object node)
Returns an unwrapped node.

wrapEdgeObject

protected Object wrapEdgeObject(Object edgeObject)
Returns a wrapped edge Object.

wrapEdgePredicate

protected Predicate wrapEdgePredicate(Predicate edgePredicate)
Returns a wrapped edge predicate, if necessary.

wrapNode

protected Object wrapNode(Object node)
Returns a wrapped node.

wrapNodePredicate

protected Predicate wrapNodePredicate(Predicate nodePredicate)
Returns a wrapped node predicate, if necessary.

wrapTraverser

protected Traverser wrapTraverser(Traverser traverser)
Returns a wrapped traverser.

wrapTraverserPredicate

protected Predicate wrapTraverserPredicate(Predicate traverserPredicate)
Returns a wrapped traverser predicate, if necessary.
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.