Class LRUCacheImpl

  • All Implemented Interfaces:
    Cache
    Direct Known Subclasses:
    FIXEDCacheImpl

    public class LRUCacheImpl
    extends Object
    implements Cache
    Author:
    Shalini M
    • Field Detail

      • _logger

        protected static final Logger _logger
    • Constructor Detail

      • LRUCacheImpl

        public LRUCacheImpl​(PoolInfo poolInfo,
                            int maxSize)
    • Method Detail

      • checkAndUpdateCache

        public Object checkAndUpdateCache​(CacheObjectKey key)
        Check if an entry is found for this key object. If found, the entry is put in the result object and back into the list.
        Specified by:
        checkAndUpdateCache in interface Cache
        Parameters:
        key - key whose mapping entry is to be checked.
        Returns:
        result object that contains the key with the entry if not null when (1) object not found in cache
      • addToCache

        public void addToCache​(CacheObjectKey key,
                               Object o,
                               boolean force)
        Add the key and entry value into the cache.
        Specified by:
        addToCache in interface Cache
        Parameters:
        key - key that contains the sql string and its type (PS/CS)
        o - entry that is the wrapper of PreparedStatement or CallableStatement
        force - If the already existing key is to be overwritten
      • clearCache

        public void clearCache()
        Clears the statement cache
        Specified by:
        clearCache in interface Cache
      • flushCache

        public void flushCache()
        Description copied from interface: Cache
        Closing all statements in statement cache and flush the statement cache of all the statements. Used when a physical connection to the underlying resource manager is destroyed.
        Specified by:
        flushCache in interface Cache
      • purge

        public void purge()
        Description copied from interface: Cache
        Remove all statements stored in the statement cache after closing the statement objects. Used when the statement cache size exceeds user defined maximum cache size.
        Specified by:
        purge in interface Cache
      • purge

        public void purge​(Object obj)
        Description copied from interface: Cache
        Remove the specified entry stored in the statement cache after closing the statement object associated with this entry. Used when statement is being reclaimed and is being used for the subsequent requests from the application.
        Specified by:
        purge in interface Cache
      • getSize

        public int getSize()
        Returns the number of entries in the statement cache
        Specified by:
        getSize in interface Cache
        Returns:
        has integer value
      • getMaxSize

        public int getMaxSize()
      • isSynchronized

        public boolean isSynchronized()
        Description copied from interface: Cache
        Check if the statement cache is synchronized.
        Specified by:
        isSynchronized in interface Cache
        Returns:
        boolean synchronized flag.