Package org.apache.lucene.search

# Class FilterMatchesIterator

java.lang.Object
org.apache.lucene.search.FilterMatchesIterator

All Implemented Interfaces:
  `MatchesIterator`

public abstract class FilterMatchesIterator extends Object implements MatchesIterator
A MatchesIterator that delegates all calls to another MatchesIterator

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final MatchesIterator`
  `in`
  The delegate

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `FilterMatchesIterator(MatchesIterator in)`
  Create a new FilterMatchesIterator

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `endOffset()`
  The ending offset of the current match, or `-1` if offsets are not available
  `int`
  `endPosition()`
  The end position of the current match, or `-1` if positions are not available
  `Query`
  `getQuery()`
  Returns the Query causing the current match
  `MatchesIterator`
  `getSubMatches()`
  Returns a MatchesIterator that iterates over the positions and offsets of individual terms within the current match
  `boolean`
  `next()`
  Advance the iterator to the next match position
  `int`
  `startOffset()`
  The starting offset of the current match, or `-1` if offsets are not available
  `int`
  `startPosition()`
  The start position of the current match, or `-1` if positions are not available

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

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

- ## Field Details

  - ### in

    protected final MatchesIterator in
    The delegate

- ## Constructor Details

  - ### FilterMatchesIterator

    protected FilterMatchesIterator(MatchesIterator in)
    Create a new FilterMatchesIterator
    Parameters:
      `in` - the delegate

- ## Method Details

  - ### next

    public boolean next() throws IOException
    Description copied from interface: `MatchesIterator`
    Advance the iterator to the next match position
    Specified by:
      `next` in interface `MatchesIterator`
    Returns:
      `true` if matches have not been exhausted
    Throws:
      `IOException`

  - ### startPosition

    public int startPosition()
    Description copied from interface: `MatchesIterator`
    The start position of the current match, or `-1` if positions are not available

    Should only be called after `MatchesIterator.next()` has returned `true`

    Specified by:
      `startPosition` in interface `MatchesIterator`

  - ### endPosition

    public int endPosition()
    Description copied from interface: `MatchesIterator`
    The end position of the current match, or `-1` if positions are not available

    Should only be called after `MatchesIterator.next()` has returned `true`

    Specified by:
      `endPosition` in interface `MatchesIterator`

  - ### startOffset

    public int startOffset() throws IOException
    Description copied from interface: `MatchesIterator`
    The starting offset of the current match, or `-1` if offsets are not available

    Should only be called after `MatchesIterator.next()` has returned `true`

    Specified by:
      `startOffset` in interface `MatchesIterator`
    Throws:
      `IOException`

  - ### endOffset

    public int endOffset() throws IOException
    Description copied from interface: `MatchesIterator`
    The ending offset of the current match, or `-1` if offsets are not available

    Should only be called after `MatchesIterator.next()` has returned `true`

    Specified by:
      `endOffset` in interface `MatchesIterator`
    Throws:
      `IOException`

  - ### getSubMatches

    public MatchesIterator getSubMatches() throws IOException
    Description copied from interface: `MatchesIterator`
    Returns a MatchesIterator that iterates over the positions and offsets of individual terms within the current match

    Returns `null` if there are no submatches (ie the current iterator is at the leaf level)

    Should only be called after `MatchesIterator.next()` has returned `true`

    Specified by:
      `getSubMatches` in interface `MatchesIterator`
    Throws:
      `IOException`

  - ### getQuery

    public Query getQuery()
    Description copied from interface: `MatchesIterator`
    Returns the Query causing the current match

    If this `MatchesIterator` has been returned from a `MatchesIterator.getSubMatches()` call, then returns a `TermQuery` equivalent to the current match

    Should only be called after `MatchesIterator.next()` has returned `true`

    Specified by:
      `getQuery` in interface `MatchesIterator`