package org.infinispan.client.hotrod.near;
import java.util.concurrent.ConcurrentMap;
import org.infinispan.client.hotrod.VersionedValue;
import org.infinispan.commons.util.CollectionFactory;
/**
* A concurrent-map-based near cache implementation.
* It does not provide eviction capabilities.
*
* @since 7.1
*/
final class ConcurrentMapNearCache<K, V> implements NearCache<K, V> {
private final ConcurrentMap<K, VersionedValue<V>> cache = CollectionFactory.makeConcurrentMap();
@Override
public void put(K key, VersionedValue<V> value) {
cache.put(key, value);
}
@Override
public void putIfAbsent(K key, VersionedValue<V> value) {
cache.putIfAbsent(key, value);
}
@Override
public void remove(K key) {
cache.remove(key);
}
@Override
public VersionedValue<V> get(Object key) {
return cache.get(key);
}
@Override
public void clear() {
cache.clear();
}
public static <K, V> NearCache<K, V> create() {
return new ConcurrentMapNearCache<K, V>();
}
}