@Override public boolean advanceNextPosition() { while (positionIterator == null || !positionIterator.hasNext()) { if (!pageAndPositionsIterator.hasNext()) { return false; } PageAndPositions pageAndPositions = pageAndPositionsIterator.next(); page = pageAndPositions.getUpdateRequest().getPage(); checkState(types.size() == page.getChannelCount()); positionIterator = pageAndPositions.getPositions().iterator(); } position = positionIterator.nextInt(); return true; }
@Override public boolean hasPrevious() { return iter.hasPrevious(); }
@Override public int nextIndex() { return iter.nextIndex(); }
@Test public void testSimpleListAccess() { IntList list = new IntIntervalList(1); assertFalse(list.isEmpty()); assertEquals(1, list.size()); assertEquals(0, list.getInt(0)); try { list.getInt(1); fail("getInt(1) should throw"); } catch (IndexOutOfBoundsException e) { /* no-op */ } IntListIterator iter = list.iterator(); assertTrue(iter.hasNext()); assertFalse(iter.hasPrevious()); assertEquals(0, iter.nextInt()); assertFalse(iter.hasNext()); assertTrue(iter.hasPrevious()); assertEquals(0, iter.previousInt()); }
@Override public boolean hasNext() { return valuesIt.hasNext(); }
@Override public String next() { return getValueForKey(valuesIt.nextInt()); } };
@Override public int indexOf(final int k) { final IntListIterator i = listIterator(); int e; while (i.hasNext()) { e = i.nextInt(); if (((k) == (e))) return i.previousIndex(); } return -1; } @Override
@Override public int lastIndexOf(final int k) { IntListIterator i = listIterator(size()); int e; while (i.hasPrevious()) { e = i.previousInt(); if (((k) == (e))) return i.nextIndex(); } return -1; } @Override
/** * {@inheritDoc} * * <p> * This is a trivial iterator-based implementation. It is expected that * implementations will override this method with a more optimized version. */ @Override public void removeElements(final int from, final int to) { ensureIndex(to); IntListIterator i = listIterator(from); int n = to - from; if (n < 0) throw new IllegalArgumentException("Start index (" + from + ") is greater than end index (" + to + ")"); while (n-- != 0) { i.nextInt(); i.remove(); } } /**
@Override public RatingMatrixEntry previous() { final int index = iter.previousInt(); return data.getEntry(index); }
@Override public int previousIndex() { return iter.previousIndex(); }
@Test public void testSimpleIntervalAccess() { IntList list = new IntIntervalList(42, 43); assertFalse(list.isEmpty()); assertEquals(1, list.size()); assertEquals(42, list.getInt(0)); try { list.getInt(1); fail("getInt(1) should throw"); } catch (IndexOutOfBoundsException e) { /* no-op */ } IntListIterator iter = list.iterator(); assertTrue(iter.hasNext()); assertFalse(iter.hasPrevious()); assertEquals(42, iter.nextInt()); assertFalse(iter.hasNext()); assertTrue(iter.hasPrevious()); assertEquals(42, iter.previousInt()); }
@Override public boolean hasNext() { return iter.hasNext(); }
@Override public RatingMatrixEntry next() { final int index = iter.nextInt(); return data.getEntry(index); }
@Override public int previousInt() { return i.previousInt(); } @Override
@Override public long previousIndex() { return i.previousIndex(); } }
@Override public void scheduleInitial(SourceScheduler scheduler) { checkState(!initialScheduled); initialScheduled = true; int driverGroupsScheduledPerTask = 0; while (driverGroups.hasNext()) { for (int i = 0; i < allNodes.size() && driverGroups.hasNext(); i++) { int driverGroupId = driverGroups.nextInt(); checkState(!bucketNodeMap.getAssignedNode(driverGroupId).isPresent()); bucketNodeMap.assignBucketToNode(driverGroupId, allNodes.get(i)); scheduler.startLifespan(Lifespan.driverGroup(driverGroupId), partitionHandles.get(driverGroupId)); } driverGroupsScheduledPerTask++; if (concurrentLifespansPerTask.isPresent() && driverGroupsScheduledPerTask == concurrentLifespansPerTask.getAsInt()) { break; } } if (!driverGroups.hasNext()) { scheduler.noMoreLifespans(); } }
@Override public boolean hasNext() { return i.hasNext(); } @Override
@Override public int nextInt() { return i.nextInt(); } @Override
@Override public int previousInt() { return i.previousInt(); } @Override