public static <From, To> Sequence<To> map(Sequence<From> sequence, Function<? super From, ? extends To> fn) { return new MappedSequence<>(sequence, fn::apply); }
default <U> Sequence<U> map(Function<? super T, ? extends U> mapper) { return new MappedSequence<>(this, mapper); }
private Sequence<Row> finalizeSubqueryResults(Sequence<Row> subqueryResult, GroupByQuery subquery) { final Sequence<Row> finalizingResults; if (QueryContexts.isFinalize(subquery, false)) { finalizingResults = new MappedSequence<>( subqueryResult, makePreComputeManipulatorFn( subquery, MetricManipulatorFns.finalizing() )::apply ); } else { finalizingResults = subqueryResult; } return finalizingResults; }
@Test public void testSanity() throws Exception { Function<Integer, Integer> fn = new Function<Integer, Integer>() { @Override public Integer apply(Integer input) { return input + 2; } }; for (int i = 4; i < 5; ++i) { List<Integer> vals = new ArrayList<>(); for (int j = 0; j < i; ++j) { vals.add(j); } SequenceTestHelper.testAll( StringUtils.format("Run %,d: ", i), new MappedSequence<>(Sequences.simple(vals), fn), Lists.transform(vals, fn::apply) ); } } }
@Override public Sequence<SegmentAnalysis> doRun( QueryRunner<SegmentAnalysis> baseRunner, QueryPlus<SegmentAnalysis> queryPlus, Map<String, Object> context ) { SegmentMetadataQuery updatedQuery = ((SegmentMetadataQuery) queryPlus.getQuery()).withFinalizedAnalysisTypes(config); QueryPlus<SegmentAnalysis> updatedQueryPlus = queryPlus.withQuery(updatedQuery); return new MappedSequence<>( CombiningSequence.create( baseRunner.run(updatedQueryPlus, context), makeOrdering(updatedQuery), createMergeFn(updatedQuery) ), MERGE_TRANSFORM_FN::apply ); }
default <U> Sequence<U> map(Function<? super T, ? extends U> mapper) { return new MappedSequence<>(this, mapper); }
public static <From, To> Sequence<To> map(Sequence<From> sequence, Function<? super From, ? extends To> fn) { return new MappedSequence<>(sequence, fn::apply); }
@Override public Sequence<SegmentAnalysis> doRun( QueryRunner<SegmentAnalysis> baseRunner, QueryPlus<SegmentAnalysis> queryPlus, Map<String, Object> context ) { SegmentMetadataQuery updatedQuery = ((SegmentMetadataQuery) queryPlus.getQuery()).withFinalizedAnalysisTypes(config); QueryPlus<SegmentAnalysis> updatedQueryPlus = queryPlus.withQuery(updatedQuery); return new MappedSequence<>( CombiningSequence.create( baseRunner.run(updatedQueryPlus, context), makeOrdering(updatedQuery), createMergeFn(updatedQuery) ), MERGE_TRANSFORM_FN::apply ); }
finalizingResults = new MappedSequence<>( subqueryResult, makePreComputeManipulatorFn(