org.apache.lucene.search.suggest
Class SortedTermFreqIteratorWrapper

java.lang.Object
  extended by org.apache.lucene.search.suggest.SortedTermFreqIteratorWrapper
All Implemented Interfaces:
TermFreqIterator, BytesRefIterator

public class SortedTermFreqIteratorWrapper
extends Object
implements TermFreqIterator

This wrapper buffers incoming elements and makes sure they are sorted based on given comparator.

WARNING: This API is experimental and might change in incompatible ways in the next release.

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.lucene.search.spell.TermFreqIterator
TermFreqIterator.TermFreqIteratorWrapper
 
Field Summary
 
Fields inherited from interface org.apache.lucene.util.BytesRefIterator
EMPTY
 
Constructor Summary
SortedTermFreqIteratorWrapper(TermFreqIterator source, Comparator<BytesRef> comparator)
           
SortedTermFreqIteratorWrapper(TermFreqIterator source, Comparator<BytesRef> comparator, boolean compareRawBytes)
           
 
Method Summary
protected  long decode(BytesRef scratch, ByteArrayDataInput tmpInput)
           
protected  void encode(Sort.ByteSequencesWriter writer, ByteArrayDataOutput output, byte[] buffer, BytesRef spare, long weight)
           
 Comparator<BytesRef> getComparator()
          Return the BytesRef Comparator used to sort terms provided by the iterator.
 BytesRef next()
          Increments the iteration to the next BytesRef in the iterator.
 long weight()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SortedTermFreqIteratorWrapper

public SortedTermFreqIteratorWrapper(TermFreqIterator source,
                                     Comparator<BytesRef> comparator)
                              throws IOException
Throws:
IOException

SortedTermFreqIteratorWrapper

public SortedTermFreqIteratorWrapper(TermFreqIterator source,
                                     Comparator<BytesRef> comparator,
                                     boolean compareRawBytes)
                              throws IOException
Throws:
IOException
Method Detail

next

public BytesRef next()
              throws IOException
Description copied from interface: BytesRefIterator
Increments the iteration to the next BytesRef in the iterator. Returns the resulting BytesRef or null if the end of the iterator is reached. The returned BytesRef may be re-used across calls to next. After this method returns null, do not call it again: the results are undefined.

Specified by:
next in interface BytesRefIterator
Returns:
the next BytesRef in the iterator or null if the end of the iterator is reached.
Throws:
IOException

getComparator

public Comparator<BytesRef> getComparator()
Description copied from interface: BytesRefIterator
Return the BytesRef Comparator used to sort terms provided by the iterator. This may return null if there are no items or the iterator is not sorted. Callers may invoke this method many times, so it's best to cache a single instance & reuse it.

Specified by:
getComparator in interface BytesRefIterator

weight

public long weight()
Specified by:
weight in interface TermFreqIterator

encode

protected void encode(Sort.ByteSequencesWriter writer,
                      ByteArrayDataOutput output,
                      byte[] buffer,
                      BytesRef spare,
                      long weight)
               throws IOException
Throws:
IOException

decode

protected long decode(BytesRef scratch,
                      ByteArrayDataInput tmpInput)