/** * Get a stream returning all the fact store dimensions. * * @param request A request which supplies grouping dimensions and filtering dimensions * @param query A query model which may have dimension column names * * @return a set of strings representing fact store column names */ public static Stream<Dimension> getDimensions(DataApiRequest request, DruidAggregationQuery<?> query) { return Stream.of( request.getDimensions().stream(), request.getApiFilters().keySet().stream(), query.getMetricDimensions().stream() ).flatMap(Function.identity()); }
/** * Constructor. * * @param dataApiRequest Api request containing the constraints information. * @param templateDruidQuery Query containing metric constraint information. */ public DataSourceConstraint(DataApiRequest dataApiRequest, DruidAggregationQuery<?> templateDruidQuery) { this.requestDimensions = Collections.unmodifiableSet(dataApiRequest.getDimensions()); this.filterDimensions = Collections.unmodifiableSet(dataApiRequest.getApiFilters().keySet()); this.metricDimensions = Collections.unmodifiableSet(templateDruidQuery.getMetricDimensions()); this.metricNames = Collections.unmodifiableSet(templateDruidQuery.getDependentFieldNames()); this.apiFilters = new ApiFilters(dataApiRequest.getApiFilters()); this.allDimensions = generateAllDimensions(); this.allDimensionNames = generateAllDimensionNames(); this.allColumnNames = generateAllColumnNames(); }