@Override public SelectorFilter withDimension(Dimension dimension) { return new SelectorFilter(dimension, value, getExtractionFunction()); }
/** * Get a new instance of this filter with the given value. * * @param extractionFn Extraction function to be applied on dimension * * @return a new instance of this filter with the given value */ public SelectorFilter withExtractionFn(ExtractionFunction extractionFn) { return new SelectorFilter(getDimension(), value, extractionFn); }
/** * Get a new instance of this filter with the given value. * * @param value Value of the new filter. * * @return a new instance of this filter with the given value */ public SelectorFilter withValue(String value) { return new SelectorFilter(getDimension(), value, getExtractionFunction()); }
/** * Evaluates an Infilter filter. * * @param inFilter An inFilter to be evaluated. * @param builder The RelBuilder used to build queries with Calcite. * @param apiToFieldMapper A function to get the aliased aggregation's name from the metric name. * * @return a RexNode containing an equivalent filter to the one given. */ public RexNode evaluate(InFilter inFilter, RelBuilder builder, ApiToFieldMapper apiToFieldMapper) { Dimension dimension = inFilter.getDimension(); OrFilter orFilterOfSelectors = new OrFilter( inFilter.getValues() .stream() .map(value -> new SelectorFilter(dimension, value)) .collect(Collectors.toList()) ); return dispatcher.invoke(orFilterOfSelectors); }
Function<DimensionRow, Filter> filterBuilder = row -> new SelectorFilter( dimension, row.get(dimension.getKey())