| For a given key value, return the object associated with the key
value from the cache. If the value is not found in the cache OR if the
value in the cache has expired, the cache will attempt to load it from
the DataLoader. If the DataLoader returns a null value, a null value
will be stored in the cache and returned to the caller.
Unlike other methods on the MRUCache class, this method is not
synchronized at the method level. It is, however, synchronized within the
method. The purpose of this is to allow the cache to continue servicing
requests while it is loading data from the DataLoader. All other
activities in this method are synchronized, but the load of data from the
MRUCacheDataLoader is unsycnchronized, and will not stop other threads
from reading from the cache, or loading other datums.
Parameters: key - the key for the desired cache entry Object the cached object |