org.apache.lucene.queries.intervals

## Class IntervalFilter

- java.lang.Object
- - org.apache.lucene.search.DocIdSetIterator
  - - org.apache.lucene.queries.intervals.IntervalIterator
    - - org.apache.lucene.queries.intervals.IntervalFilter

    public abstract class IntervalFilter
    extends IntervalIterator

Wraps an `IntervalIterator` and passes through those intervals that match the `accept()` function

### Field Summary

Fields
`protected IntervalIterator` `in`

### Fields inherited from class org.apache.lucene.queries.intervals.IntervalIterator

`NO_MORE_INTERVALS`

### Fields inherited from class org.apache.lucene.search.DocIdSetIterator

`NO_MORE_DOCS`

### Constructor Summary

Constructors
Constructor and Description
`IntervalFilter(IntervalIterator in)` Create a new filter

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`protected abstract boolean` `accept()`
`int` `advance(int target)`
`long` `cost()`
`int` `docID()`
`int` `end()` The end of the current interval Returns -1 if `IntervalIterator.nextInterval()` has not yet been called and `IntervalIterator.NO_MORE_INTERVALS` once the iterator is exhausted.
`int` `gaps()` The number of gaps within the current interval Note that this returns the number of gaps between the immediate sub-intervals of this interval, and does not include the gaps inside those sub-intervals.
`float` `matchCost()` An indication of the average cost of iterating over all intervals in a document
`int` `nextDoc()`
`int` `nextInterval()` Advance the iterator to the next interval
`int` `start()` The start of the current interval Returns -1 if `IntervalIterator.nextInterval()` has not yet been called and `IntervalIterator.NO_MORE_INTERVALS` once the iterator is exhausted.

### Methods inherited from class org.apache.lucene.queries.intervals.IntervalIterator

`toString, width`

### Methods inherited from class org.apache.lucene.search.DocIdSetIterator

`all, empty, range, slowAdvance`

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

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

### Field Detail

#### in

    protected final IntervalIterator in

### Constructor Detail

#### IntervalFilter

    public IntervalFilter(IntervalIterator in)

Create a new filter

### Method Detail

#### docID

    public int docID()

Specified by:
  `docID` in class `DocIdSetIterator`

#### nextDoc

    public int nextDoc()
                throws IOException

Specified by:
  `nextDoc` in class `DocIdSetIterator`
Throws:
  `IOException`

#### advance

    public int advance(int target)
                throws IOException

Specified by:
  `advance` in class `DocIdSetIterator`
Throws:
  `IOException`

#### cost

    public long cost()

Specified by:
  `cost` in class `DocIdSetIterator`

#### start

    public int start()

Description copied from class: `IntervalIterator`
The start of the current interval Returns -1 if `IntervalIterator.nextInterval()` has not yet been called and `IntervalIterator.NO_MORE_INTERVALS` once the iterator is exhausted.

Specified by:
  `start` in class `IntervalIterator`

#### end

    public int end()

Description copied from class: `IntervalIterator`
The end of the current interval Returns -1 if `IntervalIterator.nextInterval()` has not yet been called and `IntervalIterator.NO_MORE_INTERVALS` once the iterator is exhausted.

Specified by:
  `end` in class `IntervalIterator`

#### gaps

    public int gaps()

Description copied from class: `IntervalIterator`
The number of gaps within the current interval Note that this returns the number of gaps between the immediate sub-intervals of this interval, and does not include the gaps inside those sub-intervals. Should not be called before `IntervalIterator.nextInterval()`, or after it has returned `IntervalIterator.NO_MORE_INTERVALS`

Specified by:
  `gaps` in class `IntervalIterator`

#### matchCost

    public float matchCost()

Description copied from class: `IntervalIterator`
An indication of the average cost of iterating over all intervals in a document

Specified by:
  `matchCost` in class `IntervalIterator`
See Also:
  `TwoPhaseIterator.matchCost()`

#### accept

    protected abstract boolean accept()

Returns:
  `true` if the wrapped iterator's interval should be passed on

#### nextInterval

    public final int nextInterval()
                           throws IOException

Description copied from class: `IntervalIterator`
Advance the iterator to the next interval

Specified by:
  `nextInterval` in class `IntervalIterator`
Returns:
  the start of the next interval, or `IntervalIterator.NO_MORE_INTERVALS` if there are no more intervals on the current document
Throws:
  `IOException`