/** * Constructor. * * @param requestDimensions Dimensions contained in request * @param filterDimensions Filtered dimensions * @param metricDimensions Metric related dimensions * @param metricNames Names of metrics * @param apiFilters Map of dimension to its set of API filters */ protected DataSourceConstraint( @NotNull Set<Dimension> requestDimensions, @NotNull Set<Dimension> filterDimensions, @NotNull Set<Dimension> metricDimensions, @NotNull Set<String> metricNames, @NotNull ApiFilters apiFilters ) { this.requestDimensions = Collections.unmodifiableSet(requestDimensions); this.filterDimensions = Collections.unmodifiableSet(filterDimensions); this.metricDimensions = Collections.unmodifiableSet(metricDimensions); this.metricNames = Collections.unmodifiableSet(metricNames); this.allDimensions = generateAllDimensions(); this.allDimensionNames = generateAllDimensionNames(); this.allColumnNames = generateAllColumnNames(); this.apiFilters = apiFilters; }
/** * 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(); }