Plexus v0.13.1

com.phoenixst.plexus.util
Class FilteredNodeIterator

java.lang.Object
  extended by com.phoenixst.collections.FilteredIterator
      extended by com.phoenixst.plexus.util.FilteredNodeIterator
All Implemented Interfaces:
Iterator

public class FilteredNodeIterator
extends FilteredIterator

A simple filtered node Iterator. Because this class must advance the underlying Iterator to function properly, implementing remove(java.lang.Object) may delegate to Graph.removeNode( node ) in some situations.

Since:
1.0
Version:
$Revision: 1.8 $
Author:
Ray A. Conner

Constructor Summary
FilteredNodeIterator(Graph graph, Iterator nodeIter, org.apache.commons.collections.Predicate nodePredicate)
          Creates a new FilteredNodeIterator which will have FilteredIterator.remove() delegate to Graph.removeNode( node ) if necessary.
FilteredNodeIterator(Iterator nodeIter, org.apache.commons.collections.Predicate nodePredicate)
          Creates a new FilteredNodeIterator which will throw an IllegalStateException if remove() is called after hasNext() without an intervening call to next().
 
Method Summary
protected  void remove(Object object)
          If the Graph specified in the constructor is not null, this implementation will delegate to Graph.removeNode( node ) (which may invalidate this Iterator).
 
Methods inherited from class com.phoenixst.collections.FilteredIterator
hasNext, next, remove
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FilteredNodeIterator

public FilteredNodeIterator(Iterator nodeIter,
                            org.apache.commons.collections.Predicate nodePredicate)
Creates a new FilteredNodeIterator which will throw an IllegalStateException if remove() is called after hasNext() without an intervening call to next().


FilteredNodeIterator

public FilteredNodeIterator(Graph graph,
                            Iterator nodeIter,
                            org.apache.commons.collections.Predicate nodePredicate)
Creates a new FilteredNodeIterator which will have FilteredIterator.remove() delegate to Graph.removeNode( node ) if necessary. Depending upon the Graph implementation, this may invalidate this Iterator.

Method Detail

remove

protected void remove(Object object)
If the Graph specified in the constructor is not null, this implementation will delegate to Graph.removeNode( node ) (which may invalidate this Iterator). If the Graph specified in the constructor is null, or if the other constructor is used, this implementation throws an IllegalStateException.

Description copied from class: FilteredIterator
This method is called by FilteredIterator.remove() if hasNext() was called after the last calls to both next() and remove() (if any) and remove() has not been called after the last call to next(). In other words, this method is called if the call sequence goes something like next(), hasNext(), remove(), which means the underlying Iterator has been advanced beyond the element to be removed. This provides an extension point for an implementation to correctly handle this case if it is capable of doing so.

This implementation throws an IllegalStateException.

Overrides:
remove in class FilteredIterator

Plexus v0.13.1

See the Plexus project home, hosted by SourceForge.
Copyright ? 1994-2006, by Phoenix Software Technologists, Inc. and others. All Rights Reserved. Use is subject to license terms.