## org.apache.lucene.index
Class FilterIndexReader.FilterTermPositions

    java.lang.Object
      org.apache.lucene.index.FilterIndexReader.FilterTermDocs
          org.apache.lucene.index.FilterIndexReader.FilterTermPositions

All Implemented Interfaces:
  Closeable, TermDocs, TermPositions

Enclosing class:
  FilterIndexReader

    public static class FilterIndexReader.FilterTermPositions

extends FilterIndexReader.FilterTermDocs
implements TermPositions

Base class for filtering `TermPositions` implementations.

Field Summary

Fields inherited from class org.apache.lucene.index.FilterIndexReader.FilterTermDocs
`in`

Constructor Summary
`FilterIndexReader.FilterTermPositions(TermPositions in)`

Method Summary
`byte[]` `getPayload(byte[] data, int offset)` Returns the payload data at the current term position.
`int` `getPayloadLength()` Returns the length of the payload at the current term position.
`boolean` `isPayloadAvailable()` Checks if a payload can be loaded at this position.
`int` `nextPosition()` Returns next position in the current document.

Methods inherited from class org.apache.lucene.index.FilterIndexReader.FilterTermDocs
`close, doc, freq, next, read, seek, seek, skipTo`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.lucene.index.TermDocs
`close, doc, freq, next, read, seek, seek, skipTo`

Constructor Detail

### FilterIndexReader.FilterTermPositions

    public FilterIndexReader.FilterTermPositions(TermPositions in)

Method Detail

### nextPosition

    public int nextPosition()
                     throws IOException

  Description copied from interface: `TermPositions`
  Returns next position in the current document. It is an error to call this more than `TermDocs.freq()` times without calling `TermDocs.next()`

  This is invalid until `TermDocs.next()` is called for the first time.

  Specified by:
    `nextPosition` in interface `TermPositions`
  Throws:
    `IOException`

### getPayloadLength

    public int getPayloadLength()

  Description copied from interface: `TermPositions`
  Returns the length of the payload at the current term position. This is invalid until `TermPositions.nextPosition()` is called for the first time.

  Specified by:
    `getPayloadLength` in interface `TermPositions`
  Returns:
    length of the current payload in number of bytes

### getPayload

    public byte[] getPayload(byte[] data,
                             int offset)
                      throws IOException

  Description copied from interface: `TermPositions`
  Returns the payload data at the current term position. This is invalid until `TermPositions.nextPosition()` is called for the first time. This method must not be called more than once after each call of `TermPositions.nextPosition()`. However, payloads are loaded lazily, so if the payload data for the current position is not needed, this method may not be called at all for performance reasons.

  Specified by:
    `getPayload` in interface `TermPositions`
  Parameters:
    `data` - the array into which the data of this payload is to be stored, if it is big enough; otherwise, a new byte[] array is allocated for this purpose.
    `offset` - the offset in the array into which the data of this payload is to be stored.
  Returns:
    a byte[] array containing the data of this payload
  Throws:
    `IOException`

### isPayloadAvailable

    public boolean isPayloadAvailable()

  Description copied from interface: `TermPositions`
  Checks if a payload can be loaded at this position.

  Payloads can only be loaded once per call to `TermPositions.nextPosition()`.

  Specified by:
    `isPayloadAvailable` in interface `TermPositions`
  Returns:
    true if there is a payload available at this position that can be loaded