Class DefaultRepositoryCache

  • All Implemented Interfaces:
    RepositoryCache

    public final class DefaultRepositoryCache
    extends java.lang.Object
    implements RepositoryCache
    A simplistic repository cache backed by a thread-safe map. The simplistic nature of this cache makes it only suitable for use with short-lived repository system sessions where pruning of cache data is not required.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Map<java.lang.Object,​java.lang.Object> cache  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object get​(RepositorySystemSession session, java.lang.Object key)
      Gets the specified data from the cache.
      void put​(RepositorySystemSession session, java.lang.Object key, java.lang.Object data)
      Puts the specified data into the cache.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • cache

        private final java.util.Map<java.lang.Object,​java.lang.Object> cache
    • Constructor Detail

      • DefaultRepositoryCache

        public DefaultRepositoryCache()
    • Method Detail

      • get

        public java.lang.Object get​(RepositorySystemSession session,
                                    java.lang.Object key)
        Description copied from interface: RepositoryCache
        Gets the specified data from the cache.

        Warning: The cache will directly return the saved reference. If the cached data is to be modified after its retrieval, the caller is responsible to create a copy of the returned data and use this instead of the cache record.

        Specified by:
        get in interface RepositoryCache
        Parameters:
        session - The repository session during which the cache is accessed, must not be null.
        key - The key to use for lookup of the data, must not be null.
        Returns:
        The requested data or null if none was present in the cache.
      • put

        public void put​(RepositorySystemSession session,
                        java.lang.Object key,
                        java.lang.Object data)
        Description copied from interface: RepositoryCache
        Puts the specified data into the cache. It is entirely up to the cache implementation how long this data will be kept before being purged, i.e. callers must not make any assumptions about the lifetime of cached data.

        Warning: The cache will directly save the provided reference. If the cached data is mutable, i.e. could be modified after being put into the cache, the caller is responsible for creating a copy of the original data and store the copy in the cache.

        Specified by:
        put in interface RepositoryCache
        Parameters:
        session - The repository session during which the cache is accessed, must not be null.
        key - The key to use for lookup of the data, must not be null.
        data - The data to store in the cache, may be null.