/** * Rewrites the underlying aggregation builders into their primitive * form. If the builder did not change the identity reference must be * returned otherwise the builder will be rewritten infinitely. */ public Builder rewrite(QueryRewriteContext context) throws IOException { boolean changed = false; Builder newBuilder = new Builder(); for (AggregationBuilder builder : aggregationBuilders) { AggregationBuilder result = AggregationBuilder.rewriteAggregation(builder, context); if (result != builder) { changed = true; } newBuilder.addAggregator(result); } if (changed) { for (PipelineAggregationBuilder builder : pipelineAggregatorBuilders) { newBuilder.addPipelineAggregator(builder); } return newBuilder; } else { return this; } } }
/** * Rewrites the underlying aggregation builders into their primitive * form. If the builder did not change the identity reference must be * returned otherwise the builder will be rewritten infinitely. */ public Builder rewrite(QueryRewriteContext context) throws IOException { boolean changed = false; Builder newBuilder = new Builder(); for (AggregationBuilder builder : aggregationBuilders) { AggregationBuilder result = AggregationBuilder.rewriteAggregation(builder, context); if (result != builder) { changed = true; } newBuilder.addAggregator(result); } if (changed) { for (PipelineAggregationBuilder builder : pipelineAggregatorBuilders) { newBuilder.addPipelineAggregator(builder); } return newBuilder; } else { return this; } } }
/** * Rewrites the underlying aggregation builders into their primitive * form. If the builder did not change the identity reference must be * returned otherwise the builder will be rewritten infinitely. */ public Builder rewrite(QueryRewriteContext context) throws IOException { boolean changed = false; Builder newBuilder = new Builder(); for (AggregationBuilder builder : aggregationBuilders) { AggregationBuilder result = AggregationBuilder.rewriteAggregation(builder, context); if (result != builder) { changed = true; } newBuilder.addAggregator(result); } if (changed) { for (PipelineAggregationBuilder builder : pipelineAggregatorBuilders) { newBuilder.addPipelineAggregator(builder); } return newBuilder; } else { return this; } } }