Class FutureCache<K,​V,​C>

  • Type Parameters:
    K - the key type parameter
    V - the value type parameter
    C - the context type parameter
    Direct Known Subclasses:
    FutureExoCache

    public abstract class FutureCache<K,​V,​C>
    extends Object
    A future cache that prevents the loading of the same resource twice. This should be used when the resource to load is very expensive or cannot be concurrently retrieved (like a classloading).
    Version:
    $Revision$
    Author:
    Julien Viet
    • Constructor Detail

      • FutureCache

        public FutureCache​(Loader<K,​V,​C> loader)
    • Method Detail

      • get

        protected abstract V get​(K key)
      • put

        protected abstract void put​(K key,
                                    V value)
      • putOnly

        protected abstract void putOnly​(K key,
                                        V value)
      • get

        public final V get​(C context,
                           K key)
        Perform a cache lookup for the specified key within the specified context. When the value cannot be loaded (because it does not exist or it failed or anything else that does not come to my mind), the value null is returned.
        Parameters:
        context - the context in which the resource is accessed
        key - the key identifying the resource
        Returns:
        the value