org.apache.lucene.search.suggest

## Class BufferedInputIterator

- java.lang.Object
- - org.apache.lucene.search.suggest.BufferedInputIterator

All Implemented Interfaces:
  InputIterator, BytesRefIterator

Direct Known Subclasses:
  UnsortedInputIterator

    public class BufferedInputIterator
    extends Object
    implements InputIterator

This wrapper buffers incoming elements.

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.apache.lucene.search.suggest.InputIterator

`InputIterator.InputIteratorWrapper`

### Field Summary

Fields
`protected List<Set<BytesRef>>` `contextSets` buffered context set entries
`protected int` `curPos` current buffer position
`protected BytesRefArray` `entries` buffered term entries
`protected long[]` `freqs` buffered weights, parallel with `entries`
`protected BytesRefArray` `payloads` buffered payload entries

### Fields inherited from interface org.apache.lucene.search.suggest.InputIterator

`EMPTY`

### Constructor Summary

Constructors
Constructor and Description
`BufferedInputIterator(InputIterator source)` Creates a new iterator, buffering entries from the specified iterator

### Method Summary

All Methods Instance Methods Concrete Methods
`Set<BytesRef>` `contexts()` A term's contexts context can be used to filter suggestions.
`boolean` `hasContexts()` Returns true if the iterator has contexts
`boolean` `hasPayloads()` Returns true if the iterator has payloads
`BytesRef` `next()`
`BytesRef` `payload()` An arbitrary byte[] to record per suggestion.
`long` `weight()` A term's weight, higher numbers mean better suggestions.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### entries

    protected BytesRefArray entries

buffered term entries

#### payloads

    protected BytesRefArray payloads

buffered payload entries

#### contextSets

    protected List<Set<BytesRef>> contextSets

buffered context set entries

#### curPos

    protected int curPos

current buffer position

#### freqs

    protected long[] freqs

buffered weights, parallel with `entries`

### Constructor Detail

#### BufferedInputIterator

    public BufferedInputIterator(InputIterator source)
                          throws IOException

Creates a new iterator, buffering entries from the specified iterator

Throws:
  `IOException`

### Method Detail

#### weight

    public long weight()

Description copied from interface: `InputIterator`
A term's weight, higher numbers mean better suggestions.

Specified by:
  `weight` in interface `InputIterator`

#### next

    public BytesRef next()
                  throws IOException

Specified by:
  `next` in interface `BytesRefIterator`
Throws:
  `IOException`

#### payload

    public BytesRef payload()

Description copied from interface: `InputIterator`
An arbitrary byte[] to record per suggestion. See `Lookup.LookupResult.payload` to retrieve the payload for each suggestion.

Specified by:
  `payload` in interface `InputIterator`

#### hasPayloads

    public boolean hasPayloads()

Description copied from interface: `InputIterator`
Returns true if the iterator has payloads

Specified by:
  `hasPayloads` in interface `InputIterator`

#### contexts

    public Set<BytesRef> contexts()

Description copied from interface: `InputIterator`
A term's contexts context can be used to filter suggestions. May return null, if suggest entries do not have any context

Specified by:
  `contexts` in interface `InputIterator`

#### hasContexts

    public boolean hasContexts()

Description copied from interface: `InputIterator`
Returns true if the iterator has contexts

Specified by:
  `hasContexts` in interface `InputIterator`