#include "LCTermEnum.h" #include "LCTerm.h" /** Abstract class for enumerating terms.
Term enumerations are always ordered by Term.compareTo(). Each term in the enumeration is greater than all that precede it. */ @implementation LCTermEnumerator /** Increments the enumeration to the next element. True if one exists.*/ - (BOOL) hasNextTerm { return NO; } /** Returns the current Term in the enumeration.*/ - (LCTerm *) term { return nil; } /** Returns the docFreq of the current Term in the enumeration.*/ - (long) documentFrequency { return -1; } /** Closes the enumeration to further activity, freeing resources. */ - (void) close { } // Term Vector support /** Skips terms to the first beyond the current whose value is * greater or equal to target.
Returns true iff there is such * an entry.
Behaves as if written:
* public boolean skipTo(Term target) { * do { * if (!hasNextTerm()) * return false; * } while (target > term()); * return true; * } ** Some implementations are considerably more efficient than that. */ - (BOOL) skipTo: (LCTerm *) target { do { if (![self hasNextTerm]) return NO; } while ([target compare: [self term]] == NSOrderedDescending); // } while (target.compareTo(term()) > 0); return YES; } @end