Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2128,20 +2128,34 @@ public int compareTo(MutationGroupContainer o) {
private static class OutputReceiverForFinishBundle
implements OutputReceiver<Iterable<MutationGroup>> {

private final FinishBundleContext c;

OutputReceiverForFinishBundle(FinishBundleContext c) {
this.c = c;
}

@Override
public void output(Iterable<MutationGroup> output) {
outputWithTimestamp(output, Instant.now());
private final OutputBuilderSupplier outputBuilderSupplier;
private final DoFn<MutationGroup, Iterable<MutationGroup>>.FinishBundleContext context;

OutputReceiverForFinishBundle(FinishBundleContext context) {
this.context = context;
this.outputBuilderSupplier =
new OutputBuilderSupplier() {
@Override
public <OutputT> WindowedValues.Builder<OutputT> builder(OutputT value) {
return WindowedValues.<OutputT>builder()
.setValue(value)
.setTimestamp(Instant.now())
.setPaneInfo(PaneInfo.NO_FIRING)
.setWindow(GlobalWindow.INSTANCE);
}
};
}

@Override
public void outputWithTimestamp(Iterable<MutationGroup> output, Instant timestamp) {
c.output(output, timestamp, GlobalWindow.INSTANCE);
public OutputBuilder<Iterable<MutationGroup>> builder(Iterable<MutationGroup> value) {
return outputBuilderSupplier
.builder(value)
.setReceiver(
wv -> {
for (BoundedWindow window : wv.getWindows()) {
context.output(wv.getValue(), wv.getTimestamp(), window);
}
});
}
}
}
Expand Down
Loading