## org.apache.lucene.index
Interface TermPositions

All Superinterfaces:
  Closeable, TermDocs

All Known Implementing Classes:
  FilterIndexReader.FilterTermPositions, MultipleTermPositions

    public interface TermPositions

extends TermDocs

TermPositions provides an interface for enumerating the <document, frequency, <position>* > tuples for a term.

The document and frequency are the same as for a TermDocs. The positions portion lists the ordinal positions of each occurrence of a term in a document.

See Also:
  `IndexReader.termPositions()`

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 interface org.apache.lucene.index.TermDocs
`close, doc, freq, next, read, seek, seek, skipTo`

Method Detail

### nextPosition

    int nextPosition()
                     throws IOException

  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.

  Throws:
    `IOException`

### getPayloadLength

    int getPayloadLength()

  Returns the length of the payload at the current term position. This is invalid until `nextPosition()` is called for the first time.

  Returns:
    length of the current payload in number of bytes

### getPayload

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

  Returns the payload data at the current term position. This is invalid until `nextPosition()` is called for the first time. This method must not be called more than once after each call of `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.

  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

    boolean isPayloadAvailable()

  Checks if a payload can be loaded at this position.

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

  Returns:
    true if there is a payload available at this position that can be loaded