in beam-collector/src/main/java/com/google/collector/aggregation/Aggregate.java [48:66]
public void processElement(ProcessContext ctx) {
KV<Long, Iterable<SecurityReport>> element = ctx.element();
if (element == null) {
return;
}
Iterable<SecurityReport> reports = element.getValue();
if (reports == null || !reports.iterator().hasNext()) {
return;
}
SecurityReport.Builder aggregate = reports.iterator().next().toBuilder();
AtomicLong count = new AtomicLong();
reports.iterator().forEachRemaining(r -> count.addAndGet(r.getReportCount()));
aggregate.setReportCount(count.get());
ctx.output(aggregate.build());
}