Class LocalCache.Entry

All Implemented Interfaces:
ConfigurableCacheMap.Entry, Serializable, Cloneable, Map.Entry
Enclosing class:
LocalCache

public class LocalCache.Entry extends SafeHashMap.Entry implements ConfigurableCacheMap.Entry
A holder for a cached value.
Author:
cp 2001.04.19
See Also:
  • Constructor Details

    • Entry

      public Entry()
      Construct the cacheable entry that holds the cached value.
  • Method Details

    • onAdd

      protected void onAdd()
      Description copied from class: SafeHashMap.Entry
      This method is invoked when the containing Map has actually added this Entry to itself.
      Overrides:
      onAdd in class SafeHashMap.Entry
    • setValue

      public Object setValue(Object oValue)
      Description copied from class: SafeHashMap.Entry
      Replaces the value corresponding to this entry with the specified value (optional operation). (Writes through to the map.) The behavior of this call is undefined if the mapping has already been removed from the map (by the iterator's remove operation).
      Specified by:
      setValue in interface Map.Entry
      Overrides:
      setValue in class SafeHashMap.Entry
      Parameters:
      oValue - new value to be stored in this entry
      Returns:
      old value corresponding to the entry
    • copyFrom

      protected void copyFrom(SafeHashMap.Entry entry)
      Description copied from class: SafeHashMap.Entry
      Copy this Entry's information from another Entry. Sub-classes must implement this method if they add any additional fields.
      Overrides:
      copyFrom in class SafeHashMap.Entry
      Parameters:
      entry - the entry to copy from
    • getPriority

      public int getPriority()
      Calculate a cache priority.
      Returns:
      a value between 0 and 10, 0 being the highest priority
    • getCreatedMillis

      public long getCreatedMillis()
      Determine when the cache entry was created.
      Returns:
      the date/time value, in millis, when the entry was created
    • touch

      public void touch()
      Description copied from interface: ConfigurableCacheMap.Entry
      Indicate to the entry that it has been touched, such as when it is accessed or modified.
      Specified by:
      touch in interface ConfigurableCacheMap.Entry
    • getLastTouchMillis

      public long getLastTouchMillis()
      Description copied from interface: ConfigurableCacheMap.Entry
      Determine when the cache entry was last touched.
      Specified by:
      getLastTouchMillis in interface ConfigurableCacheMap.Entry
      Returns:
      the date/time value, in millis, when the entry was most recently touched
    • getTouchCount

      public int getTouchCount()
      Description copied from interface: ConfigurableCacheMap.Entry
      Determine the number of times that the cache entry has been touched (since the touch count was last reset).
      Specified by:
      getTouchCount in interface ConfigurableCacheMap.Entry
      Returns:
      the number of times that the cache entry has been touched
    • resetTouchCount

      protected void resetTouchCount()
      Reset the number of times that the cache entry has been touched. The touch count does not get reset to zero, but rather to a fraction of its former self; this prevents long lived items from gaining an unassailable advantage in the eviction process.
      Since:
      Coherence 3.5
    • getExpiryMillis

      public long getExpiryMillis()
      Description copied from interface: ConfigurableCacheMap.Entry
      Determine when the cache entry will expire, if ever.
      Specified by:
      getExpiryMillis in interface ConfigurableCacheMap.Entry
      Returns:
      the date/time value, in millis, when the entry will (or did) expire; zero indicates no expiry
    • setExpiryMillis

      public void setExpiryMillis(long lMillis)
      Description copied from interface: ConfigurableCacheMap.Entry
      Specify when the cache entry will expire, or disable expiry. Note that if the cache is configured for automatic expiry, each subsequent update to this cache entry will reschedule the expiry time.
      Specified by:
      setExpiryMillis in interface ConfigurableCacheMap.Entry
      Parameters:
      lMillis - pass the date/time value, in millis, for when the entry will expire, or pass zero to disable automatic expiry
    • registerExpiry

      protected void registerExpiry(long lMillis)
      Register (or unregister or replace the registration of) this entry for expiry.
      Parameters:
      lMillis - the date/time value for when the entry will expire; 0 is passed to indicate that the entry needs to be removed from the items queued for expiry
    • isExpired

      public boolean isExpired()
      Determine if the cache entry has expired.
      Returns:
      true if the cache entry was subject to automatic expiry and the current time is greater than the entry's expiry time
    • scheduleExpiry

      protected void scheduleExpiry()
      Reschedule the cache entry expiration.
    • discard

      protected void discard()
      Called to inform the Entry that it is no longer used.
    • isDiscarded

      protected boolean isDiscarded()
      Determine if this entry has already been discarded from the cache.
      Returns:
      true if this entry has been discarded
    • calculateUnits

      protected int calculateUnits(Object oValue)
      Calculate a cache cost for the specified object.

      The default implementation uses the unit calculator type of the containing cache.

      Parameters:
      oValue - the cache value to evaluate for unit cost
      Returns:
      an integer value 0 or greater, with a larger value signifying a higher cost
    • getUnits

      public int getUnits()
      Description copied from interface: ConfigurableCacheMap.Entry
      Determine the number of cache units used by this Entry.
      Specified by:
      getUnits in interface ConfigurableCacheMap.Entry
      Returns:
      an integer value 0 or greater, with a larger value signifying a higher cost; -1 implies that the Entry has been discarded
    • setUnits

      public void setUnits(int cUnits)
      Description copied from interface: ConfigurableCacheMap.Entry
      Specify the number of cache units used by this Entry.
      Specified by:
      setUnits in interface ConfigurableCacheMap.Entry
      Parameters:
      cUnits - an integer value 0 or greater, with a larger value signifying a higher cost
    • isEvictable

      protected boolean isEvictable()
      Determine if this entry has been marked as being evictable.
      Returns:
      true if this entry is evictable
      Since:
      Coherence 3.5
    • setEvictable

      protected void setEvictable(boolean fEvict)
      Specify that this entry is evictable or not.
      Parameters:
      fEvict - true to specify that this entry is evictable, such as when it is selected for deferred eviction, and false to specify that it is no longer evictable
      Since:
      Coherence 3.5
    • toString

      public String toString()
      Render the cache entry as a String.
      Overrides:
      toString in class SafeHashMap.Entry
      Returns:
      the details about this Entry