org.apache.hadoop.mapred.join
Class ArrayListBackedIterator<X extends Writable>

java.lang.Object
  extended by org.apache.hadoop.mapred.join.ArrayListBackedIterator<X>
All Implemented Interfaces:
ResetableIterator<X>

public class ArrayListBackedIterator<X extends Writable>
extends Object
implements ResetableIterator<X>

This class provides an implementation of ResetableIterator. The implementation uses an ArrayList to store elements added to it, replaying them as requested. Prefer StreamBackedIterator.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.hadoop.mapred.join.ResetableIterator
ResetableIterator.EMPTY<U extends Writable>
 
Constructor Summary
ArrayListBackedIterator()
           
ArrayListBackedIterator(ArrayList<X> data)
           
 
Method Summary
 void add(X item)
          Add an element to the collection of elements to iterate over.
 void clear()
          Close datasources, but do not release internal resources.
 void close()
          Close datasources and release resources.
 boolean hasNext()
          True if a call to next may return a value.
 boolean next(X val)
          Assign next value to actual.
 boolean replay(X val)
          Assign last value returned to actual.
 void reset()
          Set iterator to return to the start of its range.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ArrayListBackedIterator

public ArrayListBackedIterator()

ArrayListBackedIterator

public ArrayListBackedIterator(ArrayList<X> data)
Method Detail

hasNext

public boolean hasNext()
Description copied from interface: ResetableIterator
True if a call to next may return a value. This is permitted false positives, but not false negatives.

Specified by:
hasNext in interface ResetableIterator<X extends Writable>

next

public boolean next(X val)
             throws IOException
Description copied from interface: ResetableIterator
Assign next value to actual. It is required that elements added to a ResetableIterator be returned in the same order after a call to ResetableIterator.reset() (FIFO). Note that a call to this may fail for nested joins (i.e. more elements available, but none satisfying the constraints of the join)

Specified by:
next in interface ResetableIterator<X extends Writable>
Throws:
IOException

replay

public boolean replay(X val)
               throws IOException
Description copied from interface: ResetableIterator
Assign last value returned to actual.

Specified by:
replay in interface ResetableIterator<X extends Writable>
Throws:
IOException

reset

public void reset()
Description copied from interface: ResetableIterator
Set iterator to return to the start of its range. Must be called after calling ResetableIterator.add(T) to avoid a ConcurrentModificationException.

Specified by:
reset in interface ResetableIterator<X extends Writable>

add

public void add(X item)
         throws IOException
Description copied from interface: ResetableIterator
Add an element to the collection of elements to iterate over.

Specified by:
add in interface ResetableIterator<X extends Writable>
Throws:
IOException

close

public void close()
           throws IOException
Description copied from interface: ResetableIterator
Close datasources and release resources. Calling methods on the iterator after calling close has undefined behavior.

Specified by:
close in interface ResetableIterator<X extends Writable>
Throws:
IOException

clear

public void clear()
Description copied from interface: ResetableIterator
Close datasources, but do not release internal resources. Calling this method should permit the object to be reused with a different datasource.

Specified by:
clear in interface ResetableIterator<X extends Writable>


Copyright © 2009 The Apache Software Foundation