public void read(final Consumer<C> readAction) {
        lock.readLock().lock();
        try {
            readAction.accept(valueReadOnly);
        } finally {
            lock.readLock().unlock();
        }
    }
executes an Action reading the collection
main/src/main/java/cgeo/geocaching/utils/livedata/CollectionLiveData.java