@SuppressWarnings("unchecked") private boolean next() throws IOException { boolean hasMoreElements; if ((currLeftIterator == null || !currLeftIterator.hasNext()) && (currRightIterator == null || !currRightIterator.hasNext())) { hasMoreElements = nextGroups(outerJoinType); if (hasMoreElements) { if (outerJoinType != OuterJoinType.LEFT) { currLeftIterator = new ListIteratorWrapper(currLeftSubset.iterator()); } leftReturn = (IN1) currLeftIterator.next(); if (outerJoinType != OuterJoinType.RIGHT) { currRightIterator = new ListIteratorWrapper(currRightSubset.iterator()); } rightReturn = (IN2) currRightIterator.next(); return true; } else { //no more elements return false; } } else if (currLeftIterator.hasNext() && !currRightIterator.hasNext()) { leftReturn = (IN1) currLeftIterator.next(); currRightIterator.reset(); rightReturn = (IN2) currRightIterator.next(); return true; } else { rightReturn = (IN2) currRightIterator.next(); return true; } }
public void testReset() { ResettableIterator it = (ResettableIterator) makeObject(); assertEquals(true, it.hasNext()); assertEquals(testValue, it.next()); assertEquals(false, it.hasNext()); it.reset(); assertEquals(true, it.hasNext()); assertEquals(testValue, it.next()); assertEquals(false, it.hasNext()); it.reset(); it.reset(); assertEquals(true, it.hasNext()); }
public void testReset() { ResettableIterator it = (ResettableIterator) makeObject(); assertEquals(true, it.hasNext()); assertEquals(testValue, it.next()); assertEquals(false, it.hasNext()); it.reset(); assertEquals(true, it.hasNext()); assertEquals(testValue, it.next()); assertEquals(false, it.hasNext()); it.reset(); it.reset(); assertEquals(true, it.hasNext()); }
/** * Test empty iterator */ public void testEmptyIterator() { assertSame(EmptyIterator.INSTANCE, IteratorUtils.EMPTY_ITERATOR); assertSame(EmptyIterator.RESETTABLE_INSTANCE, IteratorUtils.EMPTY_ITERATOR); assertEquals(true, IteratorUtils.EMPTY_ITERATOR instanceof Iterator); assertEquals(true, IteratorUtils.EMPTY_ITERATOR instanceof ResettableIterator); assertEquals(false, IteratorUtils.EMPTY_ITERATOR instanceof OrderedIterator); assertEquals(false, (Object) IteratorUtils.EMPTY_ITERATOR instanceof ListIterator); assertEquals(false, (Object) IteratorUtils.EMPTY_ITERATOR instanceof MapIterator); assertEquals(false, IteratorUtils.EMPTY_ITERATOR.hasNext()); IteratorUtils.EMPTY_ITERATOR.reset(); assertSame(IteratorUtils.EMPTY_ITERATOR, IteratorUtils.EMPTY_ITERATOR); assertSame(IteratorUtils.EMPTY_ITERATOR, IteratorUtils.emptyIterator()); try { IteratorUtils.EMPTY_ITERATOR.next(); fail(); } catch (NoSuchElementException ex) {} try { IteratorUtils.EMPTY_ITERATOR.remove(); fail(); } catch (IllegalStateException ex) {} }
public boolean hasNext() { return IteratorUtils.EMPTY_ITERATOR.hasNext(); } public Object next() {
@SuppressWarnings("unchecked") private boolean next() throws IOException { boolean hasMoreElements; if ((currLeftIterator == null || !currLeftIterator.hasNext()) && (currRightIterator == null || !currRightIterator.hasNext())) { hasMoreElements = nextGroups(outerJoinType); if (hasMoreElements) { if (outerJoinType != OuterJoinType.LEFT) { currLeftIterator = new ListIteratorWrapper(currLeftSubset.iterator()); } leftReturn = (IN1) currLeftIterator.next(); if (outerJoinType != OuterJoinType.RIGHT) { currRightIterator = new ListIteratorWrapper(currRightSubset.iterator()); } rightReturn = (IN2) currRightIterator.next(); return true; } else { //no more elements return false; } } else if (currLeftIterator.hasNext() && !currRightIterator.hasNext()) { leftReturn = (IN1) currLeftIterator.next(); currRightIterator.reset(); rightReturn = (IN2) currRightIterator.next(); return true; } else { rightReturn = (IN2) currRightIterator.next(); return true; } }
@SuppressWarnings("unchecked") private boolean next() throws IOException { boolean hasMoreElements; if ((currLeftIterator == null || !currLeftIterator.hasNext()) && (currRightIterator == null || !currRightIterator.hasNext())) { hasMoreElements = nextGroups(outerJoinType); if (hasMoreElements) { if (outerJoinType != OuterJoinType.LEFT) { currLeftIterator = new ListIteratorWrapper(currLeftSubset.iterator()); } leftReturn = (IN1) currLeftIterator.next(); if (outerJoinType != OuterJoinType.RIGHT) { currRightIterator = new ListIteratorWrapper(currRightSubset.iterator()); } rightReturn = (IN2) currRightIterator.next(); return true; } else { //no more elements return false; } } else if (currLeftIterator.hasNext() && !currRightIterator.hasNext()) { leftReturn = (IN1) currLeftIterator.next(); currRightIterator.reset(); rightReturn = (IN2) currRightIterator.next(); return true; } else { rightReturn = (IN2) currRightIterator.next(); return true; } }