public static <K, InputT, AccumT, OutputT>
AppliedCombineFn<K, InputT, AccumT, OutputT> withAccumulatorCoder(
GlobalCombineFn<? super InputT, AccumT, OutputT> fn,
Coder<AccumT> accumCoder,
Iterable<PCollectionView<?>> sideInputViews,
KvCoder<K, InputT> kvCoder,
WindowingStrategy<?, ?> windowingStrategy) {
@SuppressWarnings("unchecked")
GlobalCombineFn<InputT, AccumT, OutputT> clonedFn =
(GlobalCombineFn<InputT, AccumT, OutputT>) SerializableUtils.clone(fn);
return create(clonedFn, accumCoder, sideInputViews, kvCoder, windowingStrategy);
}