com.jeffpalm.util
Class AbstractIterator

java.lang.Object
  extended by com.jeffpalm.util.AbstractIterator

public abstract class AbstractIterator
extends java.lang.Object

This makes it easy to define type-safe iterators. Simply define an inner interface called Iterator, then implement it with a static inner class that extends this class and implements the interface, then add a factory method called iterator(java.util.Iterator). Here's an example: public class Outer { public interface Iterator { Outer next(); boolean hasNext(); } public final static Iterator iterator(java.util.Iterator it) { return new IteratorImpl(it); } private final static class IteratorImpl extends com.jeffpalm.util.AbstractIterator implements Iterator { private IteratorImpl(java.util.Iterator it) { super(it); } public Outer next() { return (Outer)it.next(); } } }
There you go... enjoy!

Since:
Thu Jul 17 13:46:08 2003
Author:
Jeff Palm

Field Summary
protected  java.util.Iterator it
          The underlying Iterator.
 
Constructor Summary
AbstractIterator(java.util.Iterator it)
          Sets the underlying iterator.
 
Method Summary
 boolean hasNext()
          Same as java.util.Iterator.hasNext().
static void main(java.lang.String[] args)
          For generating one.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

it

protected final java.util.Iterator it
The underlying Iterator.

Constructor Detail

AbstractIterator

public AbstractIterator(java.util.Iterator it)
Sets the underlying iterator.

Method Detail

hasNext

public final boolean hasNext()
Same as java.util.Iterator.hasNext().


main

public static void main(java.lang.String[] args)
For generating one.