it.unimi.di.mg4j.search
Class DifferenceDocumentIterator.DifferenceIntervalIterator

java.lang.Object
  extended by it.unimi.di.mg4j.search.DifferenceDocumentIterator.DifferenceIntervalIterator
All Implemented Interfaces:
IntervalIterator
Enclosing class:
DifferenceDocumentIterator

protected class DifferenceDocumentIterator.DifferenceIntervalIterator
extends Object
implements IntervalIterator


Constructor Summary
protected DifferenceDocumentIterator.DifferenceIntervalIterator(Index index)
           
 
Method Summary
 int extent()
          Returns an approximation of a lower bound for the length of an interval returned by this iterator.
 void intervalTerms(IntSet terms)
          Provides the set of terms that span the current interval.
 Interval nextInterval()
          Returns the next interval provided by this interval iterator, or null if no more intervals are available.
 IntervalIterator reset()
          Resets the internal state of this iterator for a new document.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DifferenceDocumentIterator.DifferenceIntervalIterator

protected DifferenceDocumentIterator.DifferenceIntervalIterator(Index index)
Method Detail

reset

public IntervalIterator reset()
                       throws IOException
Description copied from interface: IntervalIterator
Resets the internal state of this iterator for a new document.

To reduce object creation, interval iterators are usually created in a lazy fashion by document iterator when they are needed. However, this implies that every time the document iterator is moved, some internal state of the interval iterator must be reset (e.g., because on the new document some of the component interval iterators are now IntervalIterators.TRUE). The semantics of this method is largely implementation dependent, with the important exception that the return value must be IntervalIterators.FALSE if the first call to IntervalIterator.nextInterval() will return null.

Specified by:
reset in interface IntervalIterator
Returns:
IntervalIterators.FALSE if this interval iterator will return null at the first call to IntervalIterator.nextInterval(); this interval iterator, otherwise.
Throws:
IOException

intervalTerms

public void intervalTerms(IntSet terms)
Description copied from interface: IntervalIterator
Provides the set of terms that span the current interval.

For each interval returned by MG4J, there is a set of terms that caused the interval to be returned. The terms appear inside the interval, and certainly at its extremes.

Note that the results of this method must be taken with a grain of salt: there might be different sets of terms causing the current interval, and only one will be returned.

Specified by:
intervalTerms in interface IntervalIterator
Parameters:
terms - a set of integers that will be filled with the terms spanning the current interval.

nextInterval

public Interval nextInterval()
                      throws IOException
Description copied from interface: IntervalIterator
Returns the next interval provided by this interval iterator, or null if no more intervals are available.

Specified by:
nextInterval in interface IntervalIterator
Returns:
the next interval, or null if no more intervals are available.
Throws:
IOException

extent

public int extent()
Description copied from interface: IntervalIterator
Returns an approximation of a lower bound for the length of an interval returned by this iterator.

Specified by:
extent in interface IntervalIterator
Returns:
an approximation of a lower bound for the length of an interval.

toString

public String toString()
Overrides:
toString in class Object