class RangeCombiner {

    public List<Filter> getReducedFilters() {
        if (rangeMap.isEmpty()) {
            return filters;
        }

        List<Filter> result = new ArrayList<>(otherFilters);
        for (Expression ex : new ArrayList<Expression>(rangeMap.keySet())) {
            MultiRange<?> multiRange = rangeMap.get(ex);
            addFiltersToResults(result, multiRange.toFilter(ff, ex));
        }

        return result;
    }

    public  RangeCombiner(FilterFactory2 ff, FeatureType featureType, List<Filter> filters);

}