K - the type of keys maintained by this cacheV - the type of mapped valuespublic class SoftReferenceCache<K,V> extends java.lang.Object implements ExpungingCacheI<K,V>, CacheI<K,V>
| Constructor and Description |
|---|
SoftReferenceCache() |
SoftReferenceCache(CacheFetcherI<K,V> fetcher,
DependencyCalculatorI<K,V> dependencyCalculator,
java.util.Map<K,ExpungeableReferenceI<?>> cache) |
SoftReferenceCache(CacheFetcherI<K,V> fetcher,
DependencyCalculatorI<K,V> dependencyCalculator,
java.util.Map<K,ExpungeableReferenceI<?>> cache,
java.lang.Class<V> cachedClass) |
SoftReferenceCache(CacheFetcherI<K,V> fetcher,
java.util.Map<K,ExpungeableReferenceI<?>> cache) |
SoftReferenceCache(CacheFetcherI<K,V> fetcher,
java.util.Map<K,ExpungeableReferenceI<?>> cache,
java.lang.Class<V> cachedClass) |
SoftReferenceCache(java.lang.Class<V> cachedClass) |
SoftReferenceCache(java.util.Map<K,ExpungeableReferenceI<?>> cache) |
SoftReferenceCache(java.util.Map<K,ExpungeableReferenceI<?>> cache,
java.lang.Class<V> cachedClass) |
| Modifier and Type | Method and Description |
|---|---|
void |
clear() |
V |
computeIfAbsent(K key,
java.util.function.Function<? super K,? extends V> mappingFunction)
Returns the value associated with the specified key, computing it if necessary.
|
boolean |
contains(K key) |
void |
expunge(K key) |
void |
expungeAll(K[] keys) |
void |
expungeAllForDependencies(long[] deps) |
void |
expungeAllForDependencies(java.lang.Long[] deps) |
void |
expungeForDependency(long dep) |
void |
expungeForDependency(java.lang.Long dep) |
V |
get(K key) |
java.lang.Object[] |
get(K[] keys) |
java.lang.Object[] |
get(K[] keys,
boolean dontCacheNulls) |
java.lang.Object[] |
get(K[] keys,
boolean dontCacheNulls,
boolean dontFetch) |
V |
get(K key,
boolean dontCacheNulls) |
V |
get(K key,
boolean dontCacheNulls,
boolean dontFetch) |
V |
getAt(K key) |
ExpungeableReferenceI<V> |
getExpungeableReference(K key) |
java.util.Set<K> |
keySet() |
void |
put(K key,
V value) |
void |
put(K key,
V value,
boolean dontCacheNulls) |
void |
put(K key,
V value,
boolean dontCacheNulls,
long[] dependencies) |
void |
putAt(K key,
V value) |
V |
putIfAbsent(K key,
V value)
Associates the specified key with the given value if it is not already
associated with a live value.
|
void |
remove(K key) |
int |
size() |
java.util.Collection<java.lang.Object> |
values() |
public SoftReferenceCache()
public SoftReferenceCache(java.lang.Class<V> cachedClass)
public SoftReferenceCache(java.util.Map<K,ExpungeableReferenceI<?>> cache)
public SoftReferenceCache(java.util.Map<K,ExpungeableReferenceI<?>> cache, java.lang.Class<V> cachedClass)
public SoftReferenceCache(CacheFetcherI<K,V> fetcher, DependencyCalculatorI<K,V> dependencyCalculator, java.util.Map<K,ExpungeableReferenceI<?>> cache)
public SoftReferenceCache(CacheFetcherI<K,V> fetcher, DependencyCalculatorI<K,V> dependencyCalculator, java.util.Map<K,ExpungeableReferenceI<?>> cache, java.lang.Class<V> cachedClass)
public SoftReferenceCache(CacheFetcherI<K,V> fetcher, java.util.Map<K,ExpungeableReferenceI<?>> cache)
public SoftReferenceCache(CacheFetcherI<K,V> fetcher, java.util.Map<K,ExpungeableReferenceI<?>> cache, java.lang.Class<V> cachedClass)
public java.lang.Object[] get(K[] keys, boolean dontCacheNulls)
public java.lang.Object[] get(K[] keys, boolean dontCacheNulls, boolean dontFetch)
public ExpungeableReferenceI<V> getExpungeableReference(K key)
getExpungeableReference in interface ExpungingCacheI<K,V>public void expunge(K key)
expunge in interface ExpungingCacheI<K,V>public void expungeAll(K[] keys)
expungeAll in interface ExpungingCacheI<K,V>public void expungeForDependency(long dep)
expungeForDependency in interface ExpungingCacheI<K,V>public void expungeForDependency(java.lang.Long dep)
expungeForDependency in interface ExpungingCacheI<K,V>public void expungeAllForDependencies(long[] deps)
expungeAllForDependencies in interface ExpungingCacheI<K,V>public void expungeAllForDependencies(java.lang.Long[] deps)
expungeAllForDependencies in interface ExpungingCacheI<K,V>public java.util.Collection<java.lang.Object> values()
public java.util.Set<K> keySet()
public int size()
public V putIfAbsent(K key, V value)
Treats "ghost entries" (keys with GC-cleared SoftReferences) as absent, replacing them with the new value atomically.
key - key with which the specified value is to be associatedvalue - value to be associated with the specified keyjava.lang.IllegalStateException - if the map is not concurrent or dependency tracking is enabledpublic V computeIfAbsent(K key, java.util.function.Function<? super K,? extends V> mappingFunction)
Handles the "Ghost Entry" problem by checking if an existing SoftReference has been cleared. If cleared, it re-computes the value.
computeIfAbsent in interface CacheI<K,V>key - the key with which the specified value is to be associatedmappingFunction - the function to compute a value if missingjava.lang.IllegalStateException - if the underlying map is not concurrentCopyright © 2000-2026 OAshi S.à r.l. All Rights Reserved.