private TimeAndDimsIterator makeMergedTimeAndDimsIterator( final List<IndexableAdapter> indexes, final List<String> mergedDimensions, final List<String> mergedMetrics, final Function<List<TransformableRowIterator>, TimeAndDimsIterator> rowMergerFn, final Map<String, DimensionHandler> handlers, final List<DimensionMergerV9> mergers ) { List<TransformableRowIterator> perIndexRowIterators = Lists.newArrayListWithCapacity(indexes.size()); for (int i = 0; i < indexes.size(); ++i) { final IndexableAdapter adapter = indexes.get(i); TransformableRowIterator target = adapter.getRows(); if (!mergedDimensions.equals(adapter.getDimensionNames()) || !mergedMetrics.equals(adapter.getMetricNames())) { target = makeRowIteratorWithReorderedColumns( mergedDimensions, mergedMetrics, handlers, adapter, target ); } perIndexRowIterators.add(IndexMerger.toMergedIndexRowIterator(target, i, mergers)); } return rowMergerFn.apply(perIndexRowIterators); }
private TimeAndDimsIterator makeMergedTimeAndDimsIterator( final List<IndexableAdapter> indexes, final List<String> mergedDimensions, final List<String> mergedMetrics, final Function<List<TransformableRowIterator>, TimeAndDimsIterator> rowMergerFn, final Map<String, DimensionHandler> handlers, final List<DimensionMergerV9> mergers ) { List<TransformableRowIterator> perIndexRowIterators = Lists.newArrayListWithCapacity(indexes.size()); for (int i = 0; i < indexes.size(); ++i) { final IndexableAdapter adapter = indexes.get(i); TransformableRowIterator target = adapter.getRows(); if (!mergedDimensions.equals(adapter.getDimensionNames()) || !mergedMetrics.equals(adapter.getMetricNames())) { target = makeRowIteratorWithReorderedColumns( mergedDimensions, mergedMetrics, handlers, adapter, target ); } perIndexRowIterators.add(IndexMerger.toMergedIndexRowIterator(target, i, mergers)); } return rowMergerFn.apply(perIndexRowIterators); }