public class BlurResultPeekableIteratorComparator implements Comparator<PeekableIterator<BlurResult, BlurException>> {
@Override
public int compare(PeekableIterator<BlurResult, BlurException> o1, PeekableIterator<BlurResult, BlurException> o2) {
BlurResult result1 = o1.peek();
BlurResult result2 = o2.peek();
if (result1 == null && result2 == null) {
return 0;
} else if (result1 == null) {
return 1;
} else if (result2 == null) {
return -1;
}
List<SortFieldResult> sortFields1 = result1.getSortFieldResults();
List<SortFieldResult> sortFields2 = result2.getSortFieldResults();
if (sortFields1 != null && sortFields2 != null) {
// Then we need to do a sort merge
int size1 = sortFields1.size();
int size2 = sortFields2.size();
if (size1 != size2) {