@Override protected BufferAggregator[] makeDimValAggregateStore(PooledTopNParams params) { return makeBufferAggregators(params.getCursor(), query.getAggregatorSpecs()); }
@Override public TopNQuery withOverriddenContext(Map<String, Object> contextOverrides) { return new TopNQueryBuilder(this).context(computeOverriddenContext(getContext(), contextOverrides)).build(); }
@Override public TopNQueryMetrics makeMetrics(TopNQuery query) { TopNQueryMetrics queryMetrics = queryMetricsFactory.makeMetrics(); queryMetrics.query(query); return queryMetrics; }
@Override public Query<Result<TopNResultValue>> optimizeForSegment(PerSegmentQueryOptimizationContext optimizationContext) { return new TopNQueryBuilder(this).aggregators(optimizeAggs(optimizationContext)).build(); }
@Override public TopNQuery withQuerySegmentSpec(QuerySegmentSpec querySegmentSpec) { return new TopNQueryBuilder(this).intervals(querySegmentSpec).build(); }
public TopNQueryBuilder metric(String s) { return metric(new NumericTopNMetricSpec(s)); }
@Override protected int[] makeDimValSelector(PooledTopNParams params, int numProcessed, int numToProcess) { final TopNMetricSpecBuilder<int[]> arrayProvider = params.getArrayProvider(); if (!query.getDimensionSpec().preservesOrdering()) { return arrayProvider.build(); } arrayProvider.ignoreFirstN(numProcessed); arrayProvider.keepOnlyN(numToProcess); return query.getTopNMetricSpec().configureOptimizer(arrayProvider).build(); }
@Override public <T> TopNMetricSpecBuilder<T> configureOptimizer(TopNMetricSpecBuilder<T> builder) { if (!canBeOptimizedUnordered()) { return builder; } return delegate.configureOptimizer(builder); }
@Override public TopNQueryMetrics makeMetrics() { return new DefaultTopNQueryMetrics(jsonMapper); } }
@Override public <T> TopNMetricSpecBuilder<T> configureOptimizer(TopNMetricSpecBuilder<T> builder) { builder.skipTo(previousStop); builder.ignoreAfterThreshold(); return builder; }
@Override public TopNParams makeInitParams( final ColumnSelectorPlus<TopNColumnSelectorStrategy> selectorPlus, final Cursor cursor ) { return new TopNParams( selectorPlus, cursor, Integer.MAX_VALUE ); }
@Override public TopNResultBuilder getResultBuilder( DateTime timestamp, DimensionSpec dimSpec, int threshold, Comparator comparator, List<AggregatorFactory> aggFactories, List<PostAggregator> postAggs ) { return new TopNNumericResultBuilder(timestamp, dimSpec, metric, threshold, comparator, aggFactories, postAggs); }
@Override public String toString() { return "AlphaNumericTopNMetricSpec{" + "previousStop='" + getPreviousStop() + '\'' + '}'; } }
@Override public void initTopNAlgorithmSelector(TopNAlgorithmSelector selector) { selector.setAggregateTopNMetricFirst(true); }
@Override public void initTopNAlgorithmSelector(TopNAlgorithmSelector selector) { selector.setAggregateAllMetrics(true); }
@Override public void initTopNAlgorithmSelector(TopNAlgorithmSelector selector) { delegate.initTopNAlgorithmSelector(selector); }
@Override public boolean canBeOptimizedUnordered() { return delegate.canBeOptimizedUnordered(); }
@SuppressWarnings("unused") // Supposedly called by Caliper public void timeMerge(int nReps) { for (int i = 0; i < nReps; i++) { fn.apply(result1, result2); } }
@Override public TopNParams makeInitParams(ColumnSelectorPlus selectorPlus, Cursor cursor) { return new TopNParams(selectorPlus, cursor, Integer.MAX_VALUE); }