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
`protected MatchesIterator` `in` The delegate

### Constructor Summary

Constructors
`protected` `FilterMatchesIterator(MatchesIterator in)` Create a new FilterMatchesIterator

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `endOffset()` The ending offset of the current match, or `-1` if offsets are not available Should only be called after `MatchesIterator.next()` has returned `true`
`int` `endPosition()` The end position of the current match Should only be called after `MatchesIterator.next()` has returned `true`
`Query` `getQuery()` 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`
`MatchesIterator` `getSubMatches()` 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`
`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 Should only be called after `MatchesIterator.next()` has returned `true`
`int` `startPosition()` The start position of the current match Should only be called after `MatchesIterator.next()` has returned `true`

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

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

### Field Detail

#### in

    protected final MatchesIterator in

The delegate

### Constructor Detail

#### FilterMatchesIterator

    protected FilterMatchesIterator(MatchesIterator in)

Create a new FilterMatchesIterator

Parameters:
  `in` - the delegate

### Method Detail

#### 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 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 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`