return mid;\r
}\r
final IndexEntry midEntry = sortedIndex.get(mid);\r
+ if (midEntry.word.equals("pre-print")) {\r
+ System.out.println();\r
+ }\r
\r
- final int comp = language.tokenComparator.compare(word, midEntry.word.toLowerCase());\r
+ final int comp = language.sortComparator.compare(word, midEntry.word.toLowerCase());\r
if (comp == 0) {\r
int result = mid;\r
- while (result > 0 && language.tokenComparator.compare(word, sortedIndex.get(result - 1).word.toLowerCase()) == 0) {\r
+ while (result > 0 && language.findComparator.compare(word, sortedIndex.get(result - 1).word.toLowerCase()) == 0) {\r
--result;\r
if (interrupted.get()) {\r
return result;\r
}\r
return result;\r
} else if (comp < 0) {\r
+// Log.d("THAD", "Upper bound: " + midEntry);\r
end = mid;\r
} else {\r
+// Log.d("THAD", "Lower bound: " + midEntry);\r
start = mid + 1;\r
}\r
}\r
return Math.min(sortedIndex.size() - 1, start);\r
}\r
+ \r
+ public int getPrevTokenRow(final int rowIndex) {\r
+ final IndexEntry indexEntry = getIndexEntryForRow(rowIndex);\r
+ final Row tokenRow = rows.get(indexEntry.startRow);\r
+ assert tokenRow.isToken();\r
+ final int prevTokenIndex = tokenRow.getIndex() - 1;\r
+ if (indexEntry.startRow == rowIndex && prevTokenIndex >= 0) {\r
+ return sortedIndex.get(prevTokenIndex).startRow;\r
+ }\r
+ return indexEntry.startRow;\r
+ }\r
+\r
+ public int getNextTokenRow(final int rowIndex) {\r
+ final IndexEntry indexEntry = getIndexEntryForRow(rowIndex);\r
+ final Row tokenRow = rows.get(indexEntry.startRow);\r
+ assert tokenRow.isToken();\r
+ final int nextTokenIndex = tokenRow.getIndex() + 1;\r
+ if (nextTokenIndex < sortedIndex.size()) {\r
+ return sortedIndex.get(nextTokenIndex).startRow;\r
+ }\r
+ return rows.size() - 1;\r
+ }\r
\r
public IndexEntry getIndexEntryForRow(final int rowIndex) {\r
// TODO: this kinda blows.\r
for (; r <= rowIndex; ++r) {\r
rows.get(r).indexEntry = indexEntry;\r
}\r
- assert false && rows.get(indexEntry.startRow).isToken();\r
+ assert rows.get(indexEntry.startRow).isToken();\r
return indexEntry;\r
}\r
}\r