com.opensymphony.xwork2.inject.util
Class ReferenceCache<K,V>
java.lang.Object
com.opensymphony.xwork2.inject.util.ReferenceMap<K,V>
com.opensymphony.xwork2.inject.util.ReferenceCache<K,V>
- All Implemented Interfaces:
- Serializable, Map<K,V>
public abstract class ReferenceCache<K,V>
- extends ReferenceMap<K,V>
Extends ReferenceMap
to support lazy loading values by overriding
create(Object)
.
- Author:
- crazybob@google.com (Bob Lee)
- See Also:
- Serialized Form
Methods inherited from class com.opensymphony.xwork2.inject.util.ReferenceMap |
clear, containsKey, containsValue, dereference, dereferenceCollection, dereferenceEntry, dereferenceKey, dereferenceKeySet, dereferenceValue, dereferenceValues, ensureNotNull, ensureNotNull, entrySet, execute, getPutStrategy, internalGet, isEmpty, keyHashCode, keySet, makeKeyReferenceAware, makeValueReferenceAware, put, putAll, putIfAbsent, putIfAbsentStrategy, putStrategy, referenceEquals, referenceKey, referenceValue, remove, remove, replace, replace, replaceStrategy, size, values |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
futures
transient ConcurrentMap<Object,Future<V>> futures
localFuture
transient ThreadLocal<Future<V>> localFuture
ReferenceCache
public ReferenceCache(ReferenceType keyReferenceType,
ReferenceType valueReferenceType)
ReferenceCache
public ReferenceCache()
- Equivalent to
new ReferenceCache(STRONG, STRONG)
.
create
protected abstract V create(K key)
- Override to lazy load values. Use as an alternative to
ReferenceMap.put(Object,Object)
. Invoked by getter if value isn't already cached.
Must not return null
. This method will not be called again until
the garbage collector reclaims the returned value.
internalCreate
V internalCreate(K key)
get
public V get(Object key)
-
If this map does not contain an entry for the given key and
create(Object)
has been overridden, this method will create a new
value, put it in the map, and return it.
- Specified by:
get
in interface Map<K,V>
- Overrides:
get
in class ReferenceMap<K,V>
- Throws:
NullPointerException
- if create(Object)
returns null.
CancellationException
- if the creation is
cancelled. See cancel()
.
cancel
protected void cancel()
- Cancels the current
create(Object)
. Throws CancellationException
to all clients currently
blocked on get(Object)
.
of
public static <K,V> ReferenceCache<K,V> of(ReferenceType keyReferenceType,
ReferenceType valueReferenceType,
Function<? super K,? extends V> function)
- Returns a
ReferenceCache
delegating to the specified function
. The specified function must not return null
.
readObject
private void readObject(ObjectInputStream in)
throws IOException,
ClassNotFoundException
- Throws:
IOException
ClassNotFoundException
Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.