@Override public void close() { if ( ids != null ) { ids.close(); } } }
@Override protected boolean fetchNext() { return !closed && super.fetchNext(); }
@Override public void remove() { fromIterator.remove(); } }
@Test void simpleIterator() { // Given CountingResource resource = new CountingResource(); PrimitiveLongResourceIterator iterator = PrimitiveLongResourceCollections.iterator( resource, 1, 2, 3, 4 ); // Then assertContent( iterator, 1, 2, 3, 4 ); // When iterator.close(); // Then assertEquals( 1, resource.closeCount(), "exactly one call to close" ); }
@Override public RawIterator<Object[], ProcedureException> apply( Context ctx, Object[] input, ResourceTracker resourceTracker ) { return RawIterator.<Object[], ProcedureException>of( input ); } };
@Test void arrayOfItemsAsIterator() { // GIVEN long[] items = new long[] { 2, 5, 234 }; // WHEN LongIterator iterator = PrimitiveLongCollections.iterator( items ); // THEN assertItems( iterator, items ); }
@Override public boolean hasNext() { return idIterator.hasNext(); }
@Override public PrimitiveLongResourceIterator query( IndexQuery[] predicates ) { return PrimitiveLongResourceCollections.emptyIterator(); }
private void assertItems( LongIterator iterator, long... expectedItems ) { for ( long expectedItem : expectedItems ) { assertNextEquals( expectedItem, iterator ); } assertNoMoreItems( iterator ); } }
/** * If the given obj is AutoCloseable, then close it. * Any exceptions thrown from the close method will be wrapped in RuntimeExceptions. */ static void closeSafely( Object obj ) { closeSafely( obj, null ); }
/** * @return {@code true} if there is a next item to be returned from the next * call to {@link #next()}. */ @Override public boolean hasNext() throws EXCEPTION { return peek() != null; }
@Override protected boolean fetchNext() { return ++index < items.length && next( items[index] ); } };
public void enqueue( long value ) { values[tail] = value; tail = (tail + 1) & (values.length - 1); if ( tail == head ) { ensureCapacity(); } }
private PrimitiveLongArrayQueue createQueue() { return new PrimitiveLongArrayQueue(); } }
Rhs rhs( int... rhs ) { return new Rhs( lhs, rhs ); } }
Object[] expectRhs() { return new Object[] {new Input( lhs, rhs, rhs )}; } }
@Override public RawIterator<Object[], ProcedureException> apply( Context ctx, Object[] input, ResourceTracker resourceTracker ) { return RawIterator.<Object[], ProcedureException>of( input ); } };
@Override public void close() { iterator.close(); } }
@Override public boolean hasNext() { return iterator.hasNext(); }