} else { if (this.leftGroupedIterator.nextKey()) { this.pairComparator.setReference(leftGroupedIterator.getValues().getCurrent()); firstEmpty = false; this.currRightSubset = this.rightGroupedIterator.getValues(); this.matchStatus = MatchStatus.FIRST_EMPTY; return true; } else if (!firstEmpty && secondEmpty) { this.currLeftSubset = this.leftGroupedIterator.getValues(); this.currRightSubset = Collections.singleton(null); this.matchStatus = MatchStatus.SECOND_EMPTY; final int comp = this.pairComparator.compareToReference(rightGroupedIterator.getValues().getCurrent()); this.currLeftSubset = this.leftGroupedIterator.getValues(); this.currRightSubset = this.rightGroupedIterator.getValues(); this.matchStatus = MatchStatus.NONE_REMAINED; } else if (0 < comp) { this.currLeftSubset = this.leftGroupedIterator.getValues(); this.currRightSubset = Collections.singleton(null); this.matchStatus = MatchStatus.SECOND_REMAINED; this.currRightSubset = this.rightGroupedIterator.getValues(); this.matchStatus = MatchStatus.FIRST_REMAINED;
this.pairComparator.setReference(iterator1.getValues().getCurrent()); firstEmpty = false; this.secondReturn = this.iterator2.getValues(); this.matchStatus = MatchStatus.FIRST_EMPTY; return true; this.firstReturn = this.iterator1.getValues(); this.secondReturn = Collections.emptySet(); this.matchStatus = MatchStatus.SECOND_EMPTY; final int comp = this.pairComparator.compareToReference(iterator2.getValues().getCurrent()); this.firstReturn = this.iterator1.getValues(); this.secondReturn = this.iterator2.getValues(); this.matchStatus = MatchStatus.NONE_REMAINED; this.firstReturn = this.iterator1.getValues(); this.secondReturn = Collections.emptySet(); this.matchStatus = MatchStatus.SECOND_REMAINED; this.secondReturn = this.iterator2.getValues(); this.matchStatus = MatchStatus.FIRST_REMAINED;
function.reduce(keyedIterator.getValues(), collector);
function.combine(keyedIterator.getValues(), collector);
} else { if (this.leftGroupedIterator.nextKey()) { this.pairComparator.setReference(leftGroupedIterator.getValues().getCurrent()); firstEmpty = false; this.currRightSubset = this.rightGroupedIterator.getValues(); this.matchStatus = MatchStatus.FIRST_EMPTY; return true; } else if (!firstEmpty && secondEmpty) { this.currLeftSubset = this.leftGroupedIterator.getValues(); this.currRightSubset = Collections.singleton(null); this.matchStatus = MatchStatus.SECOND_EMPTY; final int comp = this.pairComparator.compareToReference(rightGroupedIterator.getValues().getCurrent()); this.currLeftSubset = this.leftGroupedIterator.getValues(); this.currRightSubset = this.rightGroupedIterator.getValues(); this.matchStatus = MatchStatus.NONE_REMAINED; } else if (0 < comp) { this.currLeftSubset = this.leftGroupedIterator.getValues(); this.currRightSubset = Collections.singleton(null); this.matchStatus = MatchStatus.SECOND_REMAINED; this.currRightSubset = this.rightGroupedIterator.getValues(); this.matchStatus = MatchStatus.FIRST_REMAINED;
this.pairComparator.setReference(iterator1.getValues().getCurrent()); firstEmpty = false; this.secondReturn = this.iterator2.getValues(); this.matchStatus = MatchStatus.FIRST_EMPTY; return true; this.firstReturn = this.iterator1.getValues(); this.secondReturn = Collections.emptySet(); this.matchStatus = MatchStatus.SECOND_EMPTY; final int comp = this.pairComparator.compareToReference(iterator2.getValues().getCurrent()); this.firstReturn = this.iterator1.getValues(); this.secondReturn = this.iterator2.getValues(); this.matchStatus = MatchStatus.NONE_REMAINED; this.firstReturn = this.iterator1.getValues(); this.secondReturn = Collections.emptySet(); this.matchStatus = MatchStatus.SECOND_REMAINED; this.secondReturn = this.iterator2.getValues(); this.matchStatus = MatchStatus.FIRST_REMAINED;
this.pairComparator.setReference(iterator1.getValues().getCurrent()); firstEmpty = false; this.secondReturn = this.iterator2.getValues(); this.matchStatus = MatchStatus.FIRST_EMPTY; return true; this.firstReturn = this.iterator1.getValues(); this.secondReturn = Collections.emptySet(); this.matchStatus = MatchStatus.SECOND_EMPTY; final int comp = this.pairComparator.compareToReference(iterator2.getValues().getCurrent()); this.firstReturn = this.iterator1.getValues(); this.secondReturn = this.iterator2.getValues(); this.matchStatus = MatchStatus.NONE_REMAINED; this.firstReturn = this.iterator1.getValues(); this.secondReturn = Collections.emptySet(); this.matchStatus = MatchStatus.SECOND_REMAINED; this.secondReturn = this.iterator2.getValues(); this.matchStatus = MatchStatus.FIRST_REMAINED;
} else { if (this.leftGroupedIterator.nextKey()) { this.pairComparator.setReference(leftGroupedIterator.getValues().getCurrent()); firstEmpty = false; this.currRightSubset = this.rightGroupedIterator.getValues(); this.matchStatus = MatchStatus.FIRST_EMPTY; return true; } else if (!firstEmpty && secondEmpty) { this.currLeftSubset = this.leftGroupedIterator.getValues(); this.currRightSubset = Collections.singleton(null); this.matchStatus = MatchStatus.SECOND_EMPTY; final int comp = this.pairComparator.compareToReference(rightGroupedIterator.getValues().getCurrent()); this.currLeftSubset = this.leftGroupedIterator.getValues(); this.currRightSubset = this.rightGroupedIterator.getValues(); this.matchStatus = MatchStatus.NONE_REMAINED; } else if (0 < comp) { this.currLeftSubset = this.leftGroupedIterator.getValues(); this.currRightSubset = Collections.singleton(null); this.matchStatus = MatchStatus.SECOND_REMAINED; this.currRightSubset = this.rightGroupedIterator.getValues(); this.matchStatus = MatchStatus.FIRST_REMAINED;
function.reduce(keyedIterator.getValues(), collector);
function.reduce(keyedIterator.getValues(), collector);
function.combine(keyedIterator.getValues(), collector);
function.combine(keyedIterator.getValues(), collector);