| 
Plexus v0.13.1 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.phoenixst.plexus.AbstractGraph
public abstract class AbstractGraph
This class provides a skeletal implementation of the
  Graph interface, to minimize the effort required to
  implement this interface.  Any concrete extension of this class
  must override the following methods to provide a full
  implemnetation:
  
Alternately, an extension may override one or more of the following methods (which normally defer to those listed above) if doing so admits a more efficient solution. In this case, the above methods should probably still be implemented correctly.
Any modifiable concrete extensions of this class must also implement:
addNode( node )
    addEdge( object, tail, head, isDirected )
    The documentation for each non-abstract method in this class describes its implementation in detail. Each of these methods may be overridden if the graph being implemented admits a more efficient implementation. Note that almost every method implementation here is written in terms of an iterator over the structure of this graph; these methods are all rather inefficient.
The programmer should generally provide a void (no argument) and
  Graph constructor, as per the recommendation in the
  Graph interface specification.
| Nested Class Summary | 
|---|
| Nested classes/interfaces inherited from interface com.phoenixst.plexus.Graph | 
|---|
Graph.Edge | 
| Constructor Summary | |
|---|---|
protected  | 
AbstractGraph()
Protected constructor, called implicitly by subclasses.  | 
| Method Summary | |
|---|---|
 Graph.Edge | 
addEdge(Object object,
        Object tail,
        Object head,
        boolean isDirected)
This implementation throws an UnsupportedOperationException. | 
 boolean | 
addNode(Object node)
This implementation throws an UnsupportedOperationException. | 
 Collection | 
adjacentNodes(Object node,
              org.apache.commons.collections.Predicate traverserPredicate)
This implementation returns a new AdjacentNodeCollection. | 
 boolean | 
containsEdge(Graph.Edge edge)
This implementation traverses over the edges in this graph incident on the tail of the specified edge,
  looking for it and returning true if found. | 
 boolean | 
containsNode(Object node)
This implementation iterates over the nodes in this graph looking for the specified element.  | 
 int | 
degree(Object node)
This implementation counts the number of elements accessed by this graph's traverser(
  node, null ) method, counting self-loops twice. | 
 int | 
degree(Object node,
       org.apache.commons.collections.Predicate traverserPredicate)
This implementation counts the number of elements accessed by this graph's traverser(
  node, traverserPredicate ) method, without counting
  self-loops twice. | 
protected abstract  Collection | 
edges()
Returns a Collection view of all the
  Graph.Edges in this Graph. | 
 Collection | 
edges(org.apache.commons.collections.Predicate edgePredicate)
This implementation delegates to edges(),
  except for when the specified edgePredicate is
  either FalsePredicate.INSTANCE or an instance of
  EqualPredicate. | 
 Object | 
getAdjacentNode(Object node,
                org.apache.commons.collections.Predicate traverserPredicate)
This implementation returns the other endpoint of the Edge returned by getIncidentEdge(Object,Predicate) if present, otherwise it
  returns null. | 
 Graph.Edge | 
getEdge(org.apache.commons.collections.Predicate edgePredicate)
This implementation returns the first Edge
  accessed by edges(Predicate) if present, otherwise it
  returns null. | 
 Graph.Edge | 
getIncidentEdge(Object node,
                org.apache.commons.collections.Predicate traverserPredicate)
This implementation returns the first Edge
  accessed by incidentEdges(Object,Predicate) if
  present, otherwise it returns null. | 
 Object | 
getNode(org.apache.commons.collections.Predicate nodePredicate)
This implementation returns the first node accessed by nodes(Predicate) if present, otherwise it returns
  null. | 
 Collection | 
incidentEdges(Object node,
              org.apache.commons.collections.Predicate traverserPredicate)
This implementation returns a new IncidentEdgeCollection. | 
protected abstract  Collection | 
nodes()
Returns a Collection view of all the nodes
  in this Graph. | 
 Collection | 
nodes(org.apache.commons.collections.Predicate nodePredicate)
This implementation delegates to nodes(),
  except for when the specified nodePredicate is
  either FalsePredicate.INSTANCE or an instance of
  EqualPredicate. | 
 boolean | 
removeEdge(Graph.Edge edge)
This implementation traverses over the edges in this graph incident on the tail of the specified edge. | 
 boolean | 
removeNode(Object node)
This implementation iterates over the nodes in this graph looking for the specified element.  | 
protected abstract  Traverser | 
traverser(Object node)
Returns an unfiltered Traverser over those
  Graph.Edges incident to the specified node. | 
 Traverser | 
traverser(Object node,
          org.apache.commons.collections.Predicate traverserPredicate)
This implementation delegates to traverser( node ), except for when the specified
  traverserPredicate is either FalsePredicate.INSTANCE or an instance of EqualsTraverserPredicate. | 
| Methods inherited from class java.lang.Object | 
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
|---|
protected AbstractGraph()
| Method Detail | 
|---|
protected abstract Collection nodes()
Collection view of all the nodes
  in this Graph.  This method is only called
  by nodes( Predicate ).
protected abstract Collection edges()
Collection view of all the
  Graph.Edges in this Graph.
  This method is only called by edges( Predicate ).
protected abstract Traverser traverser(Object node)
Traverser over those
  Graph.Edges incident to the specified node.
  This method is only called by traverser( node, Predicate ).
public boolean addNode(Object node)
UnsupportedOperationException.
addNode in interface Graphnode - the node to be added to this Graph.
true if this Graph changed
  as a result of the call, false if this
  Graph already contains the specified node.public boolean removeNode(Object node)
Iterator.remove() operation.
  Note that this implementation will throw an
  UnsupportedOperationException if the iterator
  returned by this graph's nodes( null ).iterator()
  method does not implement the remove method and
  this graph contains the specified node.
removeNode in interface Graphnode - the node to be removed from this
  Graph.
true if this Graph contained
  node.public boolean containsNode(Object node)
containsNode in interface Graphnode - the node whose presence in this Graph
  is to be tested.
true if this Graph contains
  the specified node.
public Graph.Edge addEdge(Object object,
                          Object tail,
                          Object head,
                          boolean isDirected)
UnsupportedOperationException.
addEdge in interface Graphobject - the user-defined object to be contained in the
  new edge.tail - the first endpoint of the new edge.head - the second endpoint of the new edge.isDirected - whether the new edge is directed.
Graph.Edge if this
  Graph changed as a result of the call,
  null if this Graph does not allow
  duplicate edges and already contains the specified edge.public boolean removeEdge(Graph.Edge edge)
edge.  If
  it finds the element, it removes the element using using the
  Iterator.remove() operation.
  Note that this implementation will throw an
  UnsupportedOperationException if the traverser
  returned by this graph's traverser( node, predicate ) method does not implement the
  removeEdge method and this graph contains the
  specified edge.
removeEdge in interface Graphedge - the Graph.Edge to be removed from
  this Graph.
true if this Graph contained
  the specified Graph.Edge.public boolean containsEdge(Graph.Edge edge)
edge,
  looking for it and returning true if found.
containsEdge in interface Graphedge - the Graph.Edge whose presence in this
  Graph is to be tested.
true if this Graph contains
  the specified Graph.Edge.public int degree(Object node)
traverser(
  node, null ) method, counting self-loops twice.
degree in interface Graphnode - return the degree of this node.
node.
public int degree(Object node,
                  org.apache.commons.collections.Predicate traverserPredicate)
traverser(
  node, traverserPredicate ) method, without counting
  self-loops twice.
degree in interface Graphnode - return the degree of this node for which the
  specified predicate is satisfied.traverserPredicate - the predicate which the counted
  Graph.Edges must satisfy.
node for which the
  specified predicate is satisfied.public Collection nodes(org.apache.commons.collections.Predicate nodePredicate)
nodes(),
  except for when the specified nodePredicate is
  either FalsePredicate.INSTANCE or an instance of
  EqualPredicate.  These two cases are optimized.
nodes in interface GraphnodePredicate - the predicate which the returned nodes
  must satisfy.
Graph that satisfy
  the specified predicate.public Collection edges(org.apache.commons.collections.Predicate edgePredicate)
edges(),
  except for when the specified edgePredicate is
  either FalsePredicate.INSTANCE or an instance of
  EqualPredicate.  These two cases are optimized.
edges in interface GraphedgePredicate - the predicate which the returned
  Graph.Edges must satisfy.
Graph.Edges from this
  Graph that satisfy the specified
  predicate.
public Collection adjacentNodes(Object node,
                                org.apache.commons.collections.Predicate traverserPredicate)
AdjacentNodeCollection.
adjacentNodes in interface Graphnode - return the nodes adjacent to this node for which
  the specified predicate is satisfied.traverserPredicate - the predicate which the returned
  nodes and the traversed Graph.Edges must satisfy.
node
  for which the specified predicate is satisfied.
public Collection incidentEdges(Object node,
                                org.apache.commons.collections.Predicate traverserPredicate)
IncidentEdgeCollection.
incidentEdges in interface Graphnode - return the Graph.Edges incident on
  this node for which the specified predicate is satisfied.traverserPredicate - the predicate which the returned
  Graph.Edges must satisfy.
Graph.Edges incident on the specified
  node for which the specified predicate is
  satisfied.public Object getNode(org.apache.commons.collections.Predicate nodePredicate)
nodes(Predicate) if present, otherwise it returns
  null.
getNode in interface GraphnodePredicate - the predicate which the returned node
  must satisfy.
Graph that satisfies the
  specified predicate, or null if no
  such node exists.public Graph.Edge getEdge(org.apache.commons.collections.Predicate edgePredicate)
Edge
  accessed by edges(Predicate) if present, otherwise it
  returns null.
getEdge in interface GraphedgePredicate - the predicate which the returned
  Graph.Edge must satisfy.
Graph.Edge from this Graph
  that satisfies the specified predicate, or
  null if no such Graph.Edge exists.
public Object getAdjacentNode(Object node,
                              org.apache.commons.collections.Predicate traverserPredicate)
Edge returned by getIncidentEdge(Object,Predicate) if present, otherwise it
  returns null.
getAdjacentNode in interface Graphnode - traverse to a node adjacent to this node for which
  the specified predicate is satisfied.traverserPredicate - the predicate which the returned
  node and the traversed Graph.Edge must satisfy.
node for
  which the specified predicate is satisfied.
public Graph.Edge getIncidentEdge(Object node,
                                  org.apache.commons.collections.Predicate traverserPredicate)
Edge
  accessed by incidentEdges(Object,Predicate) if
  present, otherwise it returns null.
getIncidentEdge in interface Graphnode - traverse to a Graph.Edge incident on
  this node for which the specified predicate is satisfied.traverserPredicate - the predicate which the returned
  Graph.Edge must satisfy.
Graph.Edge incident on the specified
  node for which the specified predicate is
  satisfied.
public Traverser traverser(Object node,
                           org.apache.commons.collections.Predicate traverserPredicate)
traverser( node ), except for when the specified
  traverserPredicate is either FalsePredicate.INSTANCE or an instance of EqualsTraverserPredicate.  These two cases are optimized.
traverser in interface Graphnode - traverse over all nodes adjacent to this node for
  which the specified predicate is satisfied.traverserPredicate - the predicate which the returned
  nodes and their traversed Graph.Edges must
  satisfy.
Traverser from node to all
  adjacent nodes for which the specified predicate is satisfied.
  | 
Plexus v0.13.1 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||