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

    java.lang.Object
      org.apache.hadoop.mapred.join.StreamBackedIterator<X>

All Implemented Interfaces:
  ResetableIterator<X>

    public class StreamBackedIterator<X extends Writable>

extends Object
implements ResetableIterator<X>

This class provides an implementation of ResetableIterator. This implementation uses a byte array to store elements added to it.

Nested Class Summary

Nested classes/interfaces inherited from interface org.apache.hadoop.mapred.join.ResetableIterator
`ResetableIterator.EMPTY<U extends Writable>`

Constructor Summary
`StreamBackedIterator()`

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

### StreamBackedIterator

    public StreamBackedIterator()

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