|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object it.unimi.di.mg4j.search.AbstractDocumentIterator it.unimi.di.mg4j.search.AbstractIntervalDocumentIterator it.unimi.di.mg4j.search.AbstractCompositeDocumentIterator it.unimi.di.mg4j.search.AbstractUnionDocumentIterator
public abstract class AbstractUnionDocumentIterator
A document iterator computing the union of the documents returned by a number of document iterators.
This class provides a mechanism that makes accessible the set of component document iterators that are positioned on the current document.
Nested Class Summary | |
---|---|
protected static class |
AbstractUnionDocumentIterator.IntHeapSemiIndirectPriorityQueue
|
Nested classes/interfaces inherited from class it.unimi.di.mg4j.search.AbstractCompositeDocumentIterator |
---|
AbstractCompositeDocumentIterator.AbstractCompositeIndexIntervalIterator, AbstractCompositeDocumentIterator.AbstractCompositeIntervalIterator |
Field Summary | |
---|---|
int[] |
front
The AbstractUnionDocumentIterator.IntHeapSemiIndirectPriorityQueue.front(int[]) of queue , if frontSize is not 0. |
protected int |
frontSize
The number of valid entries in front , or 0 if the front has not been computed for the current document. |
protected AbstractUnionDocumentIterator.IntHeapSemiIndirectPriorityQueue |
queue
A heap-based semi-indirect priority queue used to keep track of the currently scanned integers. |
protected int[] |
refArray
The reference array used for the queue. |
Fields inherited from class it.unimi.di.mg4j.search.AbstractCompositeDocumentIterator |
---|
documentIterator, indexIterator, indexIteratorsWithoutPositions, n |
Fields inherited from class it.unimi.di.mg4j.search.AbstractIntervalDocumentIterator |
---|
currentIterators, indices, intervalIterators, soleIndex, soleIntervalIterator, unmodifiableCurrentIterators |
Fields inherited from class it.unimi.di.mg4j.search.AbstractDocumentIterator |
---|
curr, weight |
Fields inherited from interface it.unimi.di.mg4j.search.DocumentIterator |
---|
END_OF_LIST |
Constructor Summary | |
---|---|
protected |
AbstractUnionDocumentIterator(DocumentIterator... documentIterator)
|
Method Summary | ||
---|---|---|
|
acceptOnTruePaths(DocumentIteratorVisitor<T> visitor)
Invokes acceptOnTruePaths(DocumentIteratorVisitor) only on component
iterators positioned on the current document. |
|
int |
computeFront()
Forces computation of the current front, returning the number of indices it contains. |
|
Reference2ReferenceMap<Index,IntervalIterator> |
intervalIterators()
Returns an unmodifiable map from indices to interval iterators. |
|
int |
nextDocument()
Returns the next document provided by this document iterator, or DocumentIterator.END_OF_LIST if no more documents are available. |
|
int |
skipTo(int n)
Skips all documents smaller than n . |
Methods inherited from class it.unimi.di.mg4j.search.AbstractCompositeDocumentIterator |
---|
accept, dispose, toString |
Methods inherited from class it.unimi.di.mg4j.search.AbstractIntervalDocumentIterator |
---|
allIndexIterators, getIntervalIterator, indices, indices |
Methods inherited from class it.unimi.di.mg4j.search.AbstractDocumentIterator |
---|
document, ensureOnADocument, mayHaveNext, weight, weight |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface it.unimi.di.mg4j.search.DocumentIterator |
---|
document, indices, intervalIterator, intervalIterator, mayHaveNext, weight, weight |
Field Detail |
---|
protected final AbstractUnionDocumentIterator.IntHeapSemiIndirectPriorityQueue queue
public final int[] front
AbstractUnionDocumentIterator.IntHeapSemiIndirectPriorityQueue.front(int[])
of queue
, if frontSize
is not 0.
protected final int[] refArray
protected int frontSize
front
, or 0 if the front has not been computed for the current document.
Constructor Detail |
---|
protected AbstractUnionDocumentIterator(DocumentIterator... documentIterator) throws IOException
IOException
Method Detail |
---|
public int skipTo(int n) throws IOException
DocumentIterator
n
.
Define the current document k
associated with this document iterator
as follows:
DocumentIterator.nextDocument()
and this method have never been called;
DocumentIterator.END_OF_LIST
, if a call to this method or to
DocumentIterator.nextDocument()
returned DocumentIterator.END_OF_LIST
;
DocumentIterator.nextDocument()
or this method, otherwise.
If k
is larger than or equal to n
, then
this method does nothing and returns k
. Otherwise, a
call to this method is equivalent to
while( ( k = nextDocument() ) < n ); return k;
Thus, when a result k
≠ DocumentIterator.END_OF_LIST
is returned, the state of this iterator
will be exactly the same as after a call to DocumentIterator.nextDocument()
that returned k
.
In particular, the first document larger than or equal to n
(when returned
by this method) will not be returned by the next call to
DocumentIterator.nextDocument()
.
n
- a document pointer.
n
if available, DocumentIterator.END_OF_LIST
otherwise.
IOException
public int nextDocument() throws IOException
DocumentIterator
DocumentIterator.END_OF_LIST
if no more documents are available.
DocumentIterator.END_OF_LIST
if no more documents are available.
IOException
public int computeFront()
After a call to this method,
the first elements of front
contain
the indices of the component document iterators
that are positioned on the current document. If the front has already been
computed for the current document, this method has no side effects.
front
).public Reference2ReferenceMap<Index,IntervalIterator> intervalIterators() throws IOException
DocumentIterator
After a call to DocumentIterator.nextDocument()
, this map
can be used to retrieve the intervals in the current document. An invocation of Map.get(java.lang.Object)
on this map with argument index
yields the same result as
intervalIterator(index)
.
IOException
DocumentIterator.intervalIterator(Index)
public <T> T acceptOnTruePaths(DocumentIteratorVisitor<T> visitor) throws IOException
acceptOnTruePaths(DocumentIteratorVisitor)
only on component
iterators positioned on the current document.
acceptOnTruePaths
in interface DocumentIterator
acceptOnTruePaths
in class AbstractCompositeDocumentIterator
visitor
- a visitor.
IOException
DocumentIterator.accept(DocumentIteratorVisitor)
,
CounterCollectionVisitor
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |