aggregator = new ReducerAggregator(new MultiExtractor(extractors));
}
Map map;
if (comparator != null || skip > 0 || limit >= 0) {
int laLimit = limit < 0 ? Integer.MAX_VALUE : limit + skip;
map = (Map) cache.aggregate(filter, new LimitAggregator(aggregator, laLimit, comparator != null, comparator, EntryComparator.CMP_VALUE));
} else {
map = (Map) cache.aggregate(filter, aggregator);
}
return new QueryResultImpl(map.values(), skip, limit);
}