package de.invesdwin.util.collections.loadingcache.internal; import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.function.Function; import javax.annotation.concurrent.Immutable; import de.invesdwin.util.collections.loadingcache.ILoadingCache; @Immutable public class NoCachingLoadingCache<K, V> implements ILoadingCache<K, V> { private final Function<K, V> loadValue; public NoCachingLoadingCache(final Function<K, V> loadValue) { this.loadValue = loadValue; } @Override public V get(final K key) { return loadValue.apply(key); } @Override public void clear() {} @Override public boolean containsKey(final K key) { return false; } @Override public void remove(final K key) {} @Override public void put(final K key, final V value) {} @Override public Set<Entry<K, V>> entrySet() { return Collections.emptySet(); } @Override public int size() { return 0; } @Override public boolean isEmpty() { return true; } @Override public Set<K> keySet() { return Collections.emptySet(); } @Override public Collection<V> values() { return Collections.emptySet(); } @Override public Map<K, V> asMap() { return Collections.emptyMap(); } }