|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object it.unimi.di.mg4j.search.IntervalIterators
public class IntervalIterators
A class providing static methods and objects that do useful things with interval iterators.
Nested Class Summary | |
---|---|
protected static class |
IntervalIterators.FakeIterator
An iterator used to instantiate singleton iterators such as TRUE and FALSE . |
Field Summary | |
---|---|
static IntervalIterator |
FALSE
A singleton empty interval iterator. |
static IntervalIterator |
TRUE
A singleton iterator representing maximum truth. |
Method Summary | |
---|---|
static ObjectSet<Interval> |
pour(IntervalIterator intervalIterator)
Returns a set containing the intervals enumerated by the specified interval iterators: iteration on the set is guarantee to return the intervals in the same order in which they were enumerated. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final IntervalIterator TRUE
This iterator is a placeholder for an iterator returning just Intervals.EMPTY_INTERVAL
.
The antichain formed by the empty interval is the top element of the lattice of antichains, and
thus represents the highest truth. Since, however, EMPTY_INTERVAL
is a singleton that slightly violates the Interval
invariants, an iterator actually
returning EMPTY_INTERVAL
would cause severe problems in all algorithms manipulating
intervals. Rather, TRUE
is treated separately and is never actually used in
an algorithm on interval antichains (also because, albeit it claims to have elements,
it will return null
on IntervalIterator.nextInterval()
).
A most natural appearance of TRUE
is due to negation: all documents satisfying
a negative query return TRUE
as interval iterator, as the query is true, but you don't know where.
Warning: Before 4.0, an IndexIterator
by convention would have returned TRUE
when DocumentIterator.intervalIterator(it.unimi.di.mg4j.index.Index)
was called with an argument that was not the key index.
Now it returns FALSE
.
public static final IntervalIterator FALSE
The main usefulness of this iterator is as a singleton: in some circumstances you have
to return an empty iterator, and since it is by definition stateless, it is a pity
to create a new object (the same considerations led to Collections.emptySet()
).
This iterator is used by document iterators as a placeholder
whenever DocumentIterator.intervalIterator(it.unimi.di.mg4j.index.Index)
is called
on an index for which there are not intervals. For instance, an IndexIterator
by convention returns FALSE
when DocumentIterator.intervalIterator(it.unimi.di.mg4j.index.Index)
is called with an argument that is not the key index.
Before 4.0, the same placeholder role was held by TRUE
instead.
Method Detail |
---|
public static ObjectSet<Interval> pour(IntervalIterator intervalIterator) throws IOException
intervalIterator
- an interval iterator.
intervalIterator
.
IOException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |