SortedKeyValueIterator<Key,Value> buildIterator(SortedKeyValueIterator<Key,Value> systemIter, TCondition tc) throws IOException { ArrayByteSequence key = new ArrayByteSequence(tc.iterators); MergedIterConfig mic = mergedIterCache.get(key); if (mic == null) { IterConfig ic = compressedIters.decompress(tc.iterators); List<IterInfo> mergedIters = new ArrayList<>(tableIters.size() + ic.ssiList.size()); Map<String,Map<String,String>> mergedItersOpts = new HashMap<>( tableIterOpts.size() + ic.ssio.size()); IteratorUtil.mergeIteratorConfig(mergedIters, mergedItersOpts, tableIters, tableIterOpts, ic.ssiList, ic.ssio); mic = new MergedIterConfig(mergedIters, mergedItersOpts); mergedIterCache.put(key, mic); } return IteratorUtil.loadIterators(systemIter, mic.mergedIters, mic.mergedItersOpts, tie, true, context, classCache); }
IteratorUtil.mergeIteratorConfig(iterInfos, iterOpts, pic.getIterInfo(), pic.getOpts(), options.getSsiList(), options.getSsio());
SortedKeyValueIterator<Key,Value> buildIterator(SortedKeyValueIterator<Key,Value> systemIter, TCondition tc) throws IOException { ArrayByteSequence key = new ArrayByteSequence(tc.iterators); MergedIterConfig mic = mergedIterCache.get(key); if (mic == null) { IterConfig ic = compressedIters.decompress(tc.iterators); List<IterInfo> mergedIters = new ArrayList<>(tableIters.size() + ic.ssiList.size()); Map<String,Map<String,String>> mergedItersOpts = new HashMap<>( tableIterOpts.size() + ic.ssio.size()); IteratorUtil.mergeIteratorConfig(mergedIters, mergedItersOpts, tableIters, tableIterOpts, ic.ssiList, ic.ssio); mic = new MergedIterConfig(mergedIters, mergedItersOpts); mergedIterCache.put(key, mic); } return IteratorUtil.loadIterators(systemIter, mic.mergedIters, mic.mergedItersOpts, tie, true, context, classCache); }
IteratorUtil.mergeIteratorConfig(iterInfos, iterOpts, pic.getIterInfo(), pic.getOpts(), options.getSsiList(), options.getSsio());