org.progeeks.graph
Class MapGraph

java.lang.Object
  extended by com.phoenixst.plexus.AbstractGraph
      extended by org.progeeks.graph.MapGraph
All Implemented Interfaces:
com.phoenixst.plexus.Graph

public class MapGraph
extends com.phoenixst.plexus.AbstractGraph

Wraps a Map object to provide a Graph view. This is not just a pass-through wrapper since the semantics of maps are slightly different than that of a graph. Edges require that nodes already exist in the graph and therefore, disconnected nodes are kept in a separate structure until connected. They also go back to this structure if the edges are removed.

Version:
$Revision: 1.5 $
Author:
Paul Speed

Nested Class Summary
 
Nested classes/interfaces inherited from interface com.phoenixst.plexus.Graph
com.phoenixst.plexus.Graph.Edge
 
Constructor Summary
MapGraph(java.util.Map map)
           
MapGraph(java.util.Map map, java.lang.Object edge, boolean fullyConnect)
          Creates a Graph view of the specified map.
 
Method Summary
 com.phoenixst.plexus.Graph.Edge addEdge(java.lang.Object o, java.lang.Object tail, java.lang.Object head, boolean isDirected)
           
 boolean addNode(java.lang.Object node)
           
 boolean containsNode(java.lang.Object node)
           
protected  java.util.Collection edges()
           
protected  com.phoenixst.plexus.Traverser fullTraverser(java.lang.Object node)
           
protected  java.util.Collection nodes()
           
protected  com.phoenixst.plexus.Traverser quickTraverser(java.lang.Object node)
           
 boolean removeEdge(com.phoenixst.plexus.Graph.Edge edge)
           
 boolean removeNode(java.lang.Object node)
           
protected  com.phoenixst.plexus.Traverser traverser(java.lang.Object node)
           
 
Methods inherited from class com.phoenixst.plexus.AbstractGraph
adjacentNodes, containsEdge, degree, degree, edges, getAdjacentNode, getEdge, getIncidentEdge, getNode, incidentEdges, nodes, traverser
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MapGraph

public MapGraph(java.util.Map map)

MapGraph

public MapGraph(java.util.Map map,
                java.lang.Object edge,
                boolean fullyConnect)
Creates a Graph view of the specified map.

Parameters:
map - The Map object for which to provide a view.
edge - The edge object to use as the user edge object.
fullyConnect - When true, keys that are also values will be included in traversals.
Method Detail

nodes

protected java.util.Collection nodes()
Specified by:
nodes in class com.phoenixst.plexus.AbstractGraph

edges

protected java.util.Collection edges()
Specified by:
edges in class com.phoenixst.plexus.AbstractGraph

traverser

protected com.phoenixst.plexus.Traverser traverser(java.lang.Object node)
Specified by:
traverser in class com.phoenixst.plexus.AbstractGraph

containsNode

public boolean containsNode(java.lang.Object node)
Specified by:
containsNode in interface com.phoenixst.plexus.Graph
Overrides:
containsNode in class com.phoenixst.plexus.AbstractGraph

addNode

public boolean addNode(java.lang.Object node)
Specified by:
addNode in interface com.phoenixst.plexus.Graph
Overrides:
addNode in class com.phoenixst.plexus.AbstractGraph

removeNode

public boolean removeNode(java.lang.Object node)
Specified by:
removeNode in interface com.phoenixst.plexus.Graph
Overrides:
removeNode in class com.phoenixst.plexus.AbstractGraph

addEdge

public com.phoenixst.plexus.Graph.Edge addEdge(java.lang.Object o,
                                               java.lang.Object tail,
                                               java.lang.Object head,
                                               boolean isDirected)
Specified by:
addEdge in interface com.phoenixst.plexus.Graph
Overrides:
addEdge in class com.phoenixst.plexus.AbstractGraph

removeEdge

public boolean removeEdge(com.phoenixst.plexus.Graph.Edge edge)
Specified by:
removeEdge in interface com.phoenixst.plexus.Graph
Overrides:
removeEdge in class com.phoenixst.plexus.AbstractGraph

fullTraverser

protected com.phoenixst.plexus.Traverser fullTraverser(java.lang.Object node)

quickTraverser

protected com.phoenixst.plexus.Traverser quickTraverser(java.lang.Object node)


Copyright © 2002-2003 Paul Speed. All Rights Reserved.