package org.solbase.cache;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class ThreadLocalCache<K, V, Z> extends VersionedCache<K, V, Z> {
private ThreadLocal<Map<K, CachedObjectWrapper<V, Z>>> threadLevelCache = new ThreadLocal<Map<K, CachedObjectWrapper<V, Z>>>() {
@Override
protected Map<K, CachedObjectWrapper<V, Z>> initialValue() {
return new HashMap<K, CachedObjectWrapper<V, Z>>();
}
};
@Override
protected CachedObjectWrapper<V, Z> getInternal(K key) throws IOException {
return threadLevelCache.get().get(key);
}
@Override
public void put(K key, CachedObjectWrapper<V, Z> aValue) throws IOException {
threadLevelCache.get().put(key, aValue);
}
@Override
public void clear() throws IOException {
threadLevelCache.get().clear();
}
}