public static <T> Sequence<T> simple(final Iterable<T> iterable) { return new BaseSequence<>( new BaseSequence.IteratorMaker<T, Iterator<T>>() { @Override public Iterator<T> make() { return iterable.iterator(); } @Override public void cleanup(Iterator<T> iterFromMake) { } } ); }
@Override public <OutType> Yielder<OutType> toYielder(OutType initValue, YieldingAccumulator<OutType, T> accumulator) { final IterType iterator = maker.make(); try { return makeYielder(initValue, accumulator, iterator); } catch (Throwable t) { try { maker.cleanup(iterator); } catch (Exception e) { t.addSuppressed(e); } throw t; } }
public static Sequence<Row> getRowsFromGrouper(GroupByQuery query, List<String> subtotalSpec, Supplier<Grouper> grouper) { return new BaseSequence<>( new BaseSequence.IteratorMaker<Row, CloseableGrouperIterator<RowBasedKey, Row>>() { @Override public CloseableGrouperIterator<RowBasedKey, Row> make() { return RowBasedGrouperHelper.makeGrouperIterator( grouper.get(), query, subtotalSpec, () -> {} ); } @Override public void cleanup(CloseableGrouperIterator<RowBasedKey, Row> iterFromMake) { iterFromMake.close(); } } ); } }
@Override public <OutType> Yielder<OutType> toYielder(OutType initValue, YieldingAccumulator<OutType, T> accumulator) { final IterType iterator = maker.make(); try { return makeYielder(initValue, accumulator, iterator); } catch (Throwable t) { try { maker.cleanup(iterator); } catch (Exception e) { t.addSuppressed(e); } throw t; } }
for (Pair<Interval, byte[]> cachedResultPair : cachedResults) { final byte[] cachedResult = cachedResultPair.rhs; Sequence<Object> cachedSequence = new BaseSequence<>( new BaseSequence.IteratorMaker<Object, Iterator<Object>>()
return new BaseSequence<>( new BaseSequence.IteratorMaker<Result<DataSourceMetadataResultValue>, Iterator<Result<DataSourceMetadataResultValue>>>()
new BaseSequence<Integer, Iterator<Integer>>( new BaseSequence.IteratorMaker<Integer, Iterator<Integer>>() new BaseSequence<Integer, Iterator<Integer>>( new BaseSequence.IteratorMaker<Integer, Iterator<Integer>>() new BaseSequence<Integer, Iterator<Integer>>( new BaseSequence.IteratorMaker<Integer, Iterator<Integer>>()
return new BaseSequence<>( new BaseSequence.IteratorMaker<Result<TimeBoundaryResultValue>, Iterator<Result<TimeBoundaryResultValue>>>()
null .map(cursor -> new BaseSequence<>( new BaseSequence.IteratorMaker<ScanResultValue, Iterator<ScanResultValue>>()
Sequence<Integer> seq = new BaseSequence<>( new BaseSequence.IteratorMaker<Integer, Iterator<Integer>>()
@Override public Sequence<ScanResultValue> run( final QueryPlus<ScanResultValue> queryPlus, final Map<String, Object> responseContext ) { // Ensure "legacy" is a non-null value, such that all other nodes this query is forwarded to will treat it // the same way, even if they have different default legacy values. final ScanQuery scanQuery = ((ScanQuery) queryPlus.getQuery()).withNonNullLegacy(scanQueryConfig); final QueryPlus<ScanResultValue> queryPlusWithNonNullLegacy = queryPlus.withQuery(scanQuery); if (scanQuery.getLimit() == Long.MAX_VALUE) { return runner.run(queryPlusWithNonNullLegacy, responseContext); } return new BaseSequence<>( new BaseSequence.IteratorMaker<ScanResultValue, ScanQueryLimitRowIterator>() { @Override public ScanQueryLimitRowIterator make() { return new ScanQueryLimitRowIterator(runner, queryPlusWithNonNullLegacy, responseContext); } @Override public void cleanup(ScanQueryLimitRowIterator iterFromMake) { CloseQuietly.close(iterFromMake); } } ); } };
new BaseSequence<>( new BaseSequence.IteratorMaker<Sequence<Integer>, Iterator<Sequence<Integer>>>()
@Test public void testClosingOfSequenceSequenceWhenExceptionThrown() { final AtomicInteger closedCount = new AtomicInteger(0); final Sequence<Integer> seq = Sequences.concat( new BaseSequence<>( new BaseSequence.IteratorMaker<Sequence<Integer>, Iterator<Sequence<Integer>>>() { @Override public Iterator<Sequence<Integer>> make() { return Arrays.asList( Sequences.simple(Arrays.asList(1, 2, 3, 4)), new UnsupportedSequence() ).iterator(); } @Override public void cleanup(Iterator<Sequence<Integer>> iterFromMake) { closedCount.incrementAndGet(); } } ) ); SequenceTestHelper.testClosed(closedCount, seq); }
final Ordering ordering = query.getResultOrdering(); final QueryPlus<T> threadSafeQueryPlus = queryPlus.withoutThreadUnsafeState(); return new BaseSequence<T, Iterator<T>>( new BaseSequence.IteratorMaker<T, Iterator<T>>()
Sequence<T> retVal = new BaseSequence<>( new BaseSequence.IteratorMaker<T, JsonParserIterator<T>>()
new BaseSequence<>( new BaseSequence.IteratorMaker<T, Iterator<T>>()
cursor -> new BaseSequence<>( new BaseSequence.IteratorMaker<Row, GroupByEngineIterator<?>>()
final long timeoutAt = System.currentTimeMillis() + queryTimeout; return new BaseSequence<>( new BaseSequence.IteratorMaker<Row, CloseableGrouperIterator<RowBasedKey, Row>>()
final Enumerable enumerable = theRel.bind(dataContext); final Enumerator enumerator = enumerable.enumerator(); return Sequences.withBaggage(new BaseSequence<>( new BaseSequence.IteratorMaker<Object[], EnumeratorIterator<Object[]>>()
public static <T> Sequence<T> simple(final Iterable<T> iterable) { return new BaseSequence<>( new BaseSequence.IteratorMaker<T, Iterator<T>>() { @Override public Iterator<T> make() { return iterable.iterator(); } @Override public void cleanup(Iterator<T> iterFromMake) { } } ); }