Package 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
    Modifier and Type | Field | Description
    --- | --- | ---
    `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 | Description
    --- | ---
    `BufferedInputIterator​(InputIterator source)` | Creates a new iterator, buffering entries from the specified iterator

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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`