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.