java.lang.Object
com.sun.appserv.util.cache.BaseCache
com.sun.appserv.util.cache.LruCache
com.sun.ejb.containers.util.cache.LruEJBCache
org.glassfish.persistence.ejb.entitybean.container.cache.FIFOEJBObjectCache
All Implemented Interfaces:
com.sun.appserv.util.cache.Cache, EJBObjectCache

public class FIFOEJBObjectCache extends com.sun.ejb.containers.util.cache.LruEJBCache implements EJBObjectCache
A FIFO EJB(Local)Object cache that maintains reference count
Author:
Mahesh Kannan
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    protected static class 
     

    Nested classes/interfaces inherited from class com.sun.appserv.util.cache.LruCache

    com.sun.appserv.util.cache.LruCache.LruCacheItem

    Nested classes/interfaces inherited from class com.sun.appserv.util.cache.BaseCache

    com.sun.appserv.util.cache.BaseCache.CacheItem
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final boolean
     
     
    protected int
     
    protected String
     
    protected Object
     
    protected int
     

    Fields inherited from class com.sun.ejb.containers.util.cache.LruEJBCache

    cacheName

    Fields inherited from class com.sun.appserv.util.cache.LruCache

    defaultMaxEntries, head, isUnbounded, listSize, NO_TIMEOUT, tail, timeout, trimCount

    Fields inherited from class com.sun.appserv.util.cache.BaseCache

    bucketLocks, buckets, entryCount, hitCount, listeners, maxBuckets, maxEntries, missCount, refreshFlags, removalCount, threshold
  • Constructor Summary

    Constructors
    Constructor
    Description
    default constructor
    FIFOEJBObjectCache(String name, long timeout)
    constructor with specified timeout
  • Method Summary

    Modifier and Type
    Method
    Description
    protected com.sun.appserv.util.cache.BaseCache.CacheItem
    createItem(int hashCode, Object key, Object value, int size)
     
    protected void
     
    protected void
     
    get(Object key)
     
    get(Object key, boolean incrementRefCount)
     
     
    protected void
     
    void
    init(int maxEntries, int numberOfVictimsToSelect, long timeout, float loadFactor, Properties props)
     
    protected Object
    internalGet(int hashCode, Object key, boolean incrementRefCount)
     
    protected Object
    internalPut(int hashCode, Object key, Object value, int size, boolean incrementRefCount)
     
    protected Object
    internalRemove(Object key, boolean decrementRefCount)
     
    protected boolean
     
    protected void
    itemAccessed(com.sun.appserv.util.cache.BaseCache.CacheItem item)
     
    protected void
    itemRemoved(com.sun.appserv.util.cache.BaseCache.CacheItem item)
     
    static void
    main(String[] args)
     
    void
     
    put(Object key, Object value)
     
    put(Object key, Object value, boolean incrementRefCount)
     
     
    remove(Object key, boolean decrementRefCount)
     
    void
     
    void
    trimExpiredEntries(int maxCount)
     

    Methods inherited from class com.sun.ejb.containers.util.cache.LruEJBCache

    itemAdded, setCacheName, trimLru

    Methods inherited from class com.sun.appserv.util.cache.LruCache

    getStatByName, init, itemRefreshed, setTimeout

    Methods inherited from class com.sun.appserv.util.cache.BaseCache

    _put, _remove, _removeItem, add, add, addCacheListener, clear, clearStats, contains, decrementEntryCount, destroy, elements, eq, get, getAll, getEntryCount, getIndex, getIndex, handleOverflow, hash, incrementAddCount, incrementEntryCount, incrementHitCount, incrementMissCount, incrementOverflowCount, incrementRefreshCount, incrementRemovalCount, init, init, isEmpty, keys, loadValue, notifyRefresh, put, remove, remove, removeAll, trimItem, values, waitRefresh

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.sun.appserv.util.cache.Cache

    add, add, addCacheListener, clear, clearStats, contains, destroy, elements, getAll, getEntryCount, getIndex, getStatByName, init, init, isEmpty, keys, notifyRefresh, put, remove, removeAll, values, waitRefresh
  • Field Details

    • maxCacheSize

      protected int maxCacheSize
    • name

      protected String name
    • listener

      protected EJBObjectCacheListener listener
    • refCountLock

      protected Object refCountLock
    • totalRefCount

      protected int totalRefCount
    • _printRefCount

      protected static final boolean _printRefCount
  • Constructor Details

    • FIFOEJBObjectCache

      public FIFOEJBObjectCache(String name)
      default constructor
    • FIFOEJBObjectCache

      public FIFOEJBObjectCache(String name, long timeout)
      constructor with specified timeout
  • Method Details

    • init

      public void init(int maxEntries, int numberOfVictimsToSelect, long timeout, float loadFactor, Properties props)
      Specified by:
      init in interface EJBObjectCache
    • setEJBObjectCacheListener

      public void setEJBObjectCacheListener(EJBObjectCacheListener listener)
      Specified by:
      setEJBObjectCacheListener in interface EJBObjectCache
    • get

      public Object get(Object key)
      Specified by:
      get in interface com.sun.appserv.util.cache.Cache
      Overrides:
      get in class com.sun.appserv.util.cache.BaseCache
    • get

      public Object get(Object key, boolean incrementRefCount)
      Specified by:
      get in interface EJBObjectCache
    • put

      public Object put(Object key, Object value)
      Specified by:
      put in interface com.sun.appserv.util.cache.Cache
      Overrides:
      put in class com.sun.appserv.util.cache.BaseCache
    • put

      public Object put(Object key, Object value, boolean incrementRefCount)
      Specified by:
      put in interface EJBObjectCache
    • remove

      public Object remove(Object key)
      Specified by:
      remove in interface com.sun.appserv.util.cache.Cache
      Overrides:
      remove in class com.sun.appserv.util.cache.BaseCache
    • remove

      public Object remove(Object key, boolean decrementRefCount)
      Specified by:
      remove in interface EJBObjectCache
    • isThresholdReached

      protected boolean isThresholdReached()
      Overrides:
      isThresholdReached in class com.sun.appserv.util.cache.BaseCache
    • itemAccessed

      protected void itemAccessed(com.sun.appserv.util.cache.BaseCache.CacheItem item)
      Overrides:
      itemAccessed in class com.sun.appserv.util.cache.LruCache
    • itemRemoved

      protected void itemRemoved(com.sun.appserv.util.cache.BaseCache.CacheItem item)
      Overrides:
      itemRemoved in class com.sun.appserv.util.cache.LruCache
    • internalGet

      protected Object internalGet(int hashCode, Object key, boolean incrementRefCount)
    • internalPut

      protected Object internalPut(int hashCode, Object key, Object value, int size, boolean incrementRefCount)
    • print

      public void print()
    • internalRemove

      protected Object internalRemove(Object key, boolean decrementRefCount)
    • createItem

      protected com.sun.appserv.util.cache.BaseCache.CacheItem createItem(int hashCode, Object key, Object value, int size)
      Overrides:
      createItem in class com.sun.appserv.util.cache.LruCache
    • getStats

      public Map getStats()
      Specified by:
      getStats in interface com.sun.appserv.util.cache.Cache
      Overrides:
      getStats in class com.sun.appserv.util.cache.LruCache
    • trimExpiredEntries

      public void trimExpiredEntries(int maxCount)
      Specified by:
      trimExpiredEntries in interface com.sun.appserv.util.cache.Cache
      Overrides:
      trimExpiredEntries in class com.sun.appserv.util.cache.LruCache
    • incrementReferenceCount

      protected void incrementReferenceCount()
    • decrementReferenceCount

      protected void decrementReferenceCount()
    • decrementReferenceCount

      protected void decrementReferenceCount(int count)
    • main

      public static void main(String[] args)