@Override public AccumT addInputs(K key, Iterable<InputT> inputs, OldDoFn<?, ?>.ProcessContext c) { CombineWithContext.Context combineContext = CombineContextFactory.createFromProcessContext(c); AccumT accum = keyedCombineFnWithContext.createAccumulator(key, combineContext); for (InputT input : inputs) { accum = keyedCombineFnWithContext.addInput(key, accum, input, combineContext); } return accum; }
@Override public AccumT createAccumulator( K key, PipelineOptions options, SideInputReader sideInputReader, Collection<? extends BoundedWindow> windows) { return keyedCombineFnWithContext.createAccumulator( key, CombineContextFactory.createFromComponents( options, sideInputReader, Iterables.getOnlyElement(windows))); }
@Override public OutputT apply(K key, Iterable<? extends InputT> inputs, OldDoFn<?, ?>.ProcessContext c) { return keyedCombineFnWithContext.apply( key, inputs, CombineContextFactory.createFromProcessContext(c)); }
@Override public AccumT compact(K key, AccumT accumulator, OldDoFn<?, ?>.ProcessContext c) { return keyedCombineFnWithContext.compact( key, accumulator, CombineContextFactory.createFromProcessContext(c)); }
@Override public AccumT mergeAccumulators( K key, Iterable<AccumT> accumulators, OldDoFn<?, ?>.ProcessContext c) { return keyedCombineFnWithContext.mergeAccumulators( key, accumulators, CombineContextFactory.createFromProcessContext(c)); }
@Override public AccumT addInput( K key, AccumT accumulator, InputT value, OldDoFn<?, ?>.ProcessContext c) { return keyedCombineFnWithContext.addInput( key, accumulator, value, CombineContextFactory.createFromProcessContext(c)); }