@Override
    public void consumeEntries(final Predicate<RefStoreEntry> filter,
                               final Predicate<RefStoreEntry> takeWhilePredicate,
                               final Consumer<RefStoreEntry> entryConsumer) {

        // It is possible this would benefit from some form of parallelism but have not used .parallel() as IO
        // is involved, so it may tie up the fork join pool
        Stream<RefStoreEntry> stream = getAllStoresAsStream()
                .flatMap(store ->
                        store.list(Integer.MAX_VALUE, filter).stream());

        if (takeWhilePredicate != null) {
            stream = stream.takeWhile(takeWhilePredicate);
        }
        stream
                .map(entry -> {
                    final String feedName = entry.getFeedName();
                    if (RefDataLmdbEnv.LEGACY_STORE_NAME.equals(feedName)) {
                        return renameLegacyFeed(entry, feedName);
                    } else {
                        return entry;
                    }
                })
                .forEach(entryConsumer);
    }
Get all ref stores keyed by feed name

@return Map of feedName => {@link RefDataOffHeapStore}
stroom-pipeline/src/main/java/stroom/pipeline/refdata/store/offheapstore/DelegatingRefDataOffHeapStore.java