Class MetadataTransientMortalCacheEntry

java.lang.Object
org.infinispan.container.entries.AbstractInternalCacheEntry
org.infinispan.container.entries.metadata.MetadataTransientMortalCacheEntry
All Implemented Interfaces:
Cloneable, Map.Entry, CacheEntry, InternalCacheEntry, MetadataAware

public class MetadataTransientMortalCacheEntry extends AbstractInternalCacheEntry implements MetadataAware
A form of TransientMortalCacheEntry that stores Metadata
Since:
5.1
Author:
Manik Surtani
  • Constructor Details

    • MetadataTransientMortalCacheEntry

      public MetadataTransientMortalCacheEntry(Object key, Object value, Metadata metadata, long now)
    • MetadataTransientMortalCacheEntry

      public MetadataTransientMortalCacheEntry(Object key, Object value, Metadata metadata, long lastUsed, long created)
    • MetadataTransientMortalCacheEntry

      protected MetadataTransientMortalCacheEntry(Object key, Object value, PrivateMetadata internalMetadata, Metadata metadata, long lastUsed, long created)
  • Method Details

    • getLifespan

      public long getLifespan()
      Specified by:
      getLifespan in interface CacheEntry
      Returns:
      retrieves the lifespan of this entry. -1 means an unlimited lifespan.
    • canExpire

      public final boolean canExpire()
      Specified by:
      canExpire in interface InternalCacheEntry
      Returns:
      true if the entry can expire, false otherwise
    • getCreated

      public long getCreated()
      Specified by:
      getCreated in interface CacheEntry
      Returns:
      timestamp when the entry was created
    • isExpired

      public boolean isExpired(long now)
      Specified by:
      isExpired in interface InternalCacheEntry
      Parameters:
      now - the current time as defined by System.currentTimeMillis() or TimeService.wallClockTime()
      Returns:
      true if the entry has expired; false otherwise
    • canExpireMaxIdle

      public boolean canExpireMaxIdle()
      Specified by:
      canExpireMaxIdle in interface InternalCacheEntry
      Returns:
      true if this entry can expire via max idle, false otherwise
    • getExpiryTime

      public final long getExpiryTime()
      Description copied from interface: InternalCacheEntry
      Only used with entries that have a lifespan, this determines when an entry is due to expire.
      Specified by:
      getExpiryTime in interface InternalCacheEntry
      Returns:
      timestamp when the entry is due to expire, or -1 if it doesn't have a lifespan
    • toInternalCacheValue

      public InternalCacheValue<?> toInternalCacheValue()
      Description copied from interface: InternalCacheEntry
      Creates a representation of this entry as an InternalCacheValue. The main purpose of this is to provide a representation that does not have a reference to the key. This is useful in situations where the key is already known or stored elsewhere, making serialization and deserialization more efficient.

      Note that this should not be used to optimize memory overhead, since the saving of an additional reference to a key (a single object reference) does not warrant the cost of constructing an InternalCacheValue. This only makes sense when marshalling is involved, since the cost of marshalling the key again can be sidestepped using an InternalCacheValue if the key is already known/marshalled.

      Specified by:
      toInternalCacheValue in interface InternalCacheEntry
      Returns:
      a new InternalCacheValue encapsulating this InternalCacheEntry's value and expiration information.
    • getLastUsed

      public long getLastUsed()
      Specified by:
      getLastUsed in interface CacheEntry
      Returns:
      timestamp when the entry was last used
    • touch

      public final void touch(long currentTimeMillis)
      Description copied from interface: InternalCacheEntry
      Updates access timestamps on this instance to a specified time
      Specified by:
      touch in interface InternalCacheEntry
      Parameters:
      currentTimeMillis - the current time as defined by System.currentTimeMillis() or TimeService.wallClockTime()
    • reincarnate

      public void reincarnate(long now)
      Description copied from interface: InternalCacheEntry
      "Reincarnates" an entry. Essentially, resets the 'created' timestamp of the entry to the current time.
      Specified by:
      reincarnate in interface InternalCacheEntry
      Parameters:
      now - the current time as defined by System.currentTimeMillis() or TimeService.wallClockTime()
    • getMaxIdle

      public long getMaxIdle()
      Specified by:
      getMaxIdle in interface CacheEntry
      Returns:
      the maximum allowed time for which this entry can be idle, after which it is considered expired.
    • getMetadata

      public Metadata getMetadata()
      Description copied from interface: MetadataAware
      Get metadata of this cache entry.
      Specified by:
      getMetadata in interface MetadataAware
      Overrides:
      getMetadata in class AbstractInternalCacheEntry
      Returns:
      a Metadata instance
    • setMetadata

      public void setMetadata(Metadata metadata)
      Description copied from interface: MetadataAware
      Set the metadata in the cache entry.
      Specified by:
      setMetadata in interface MetadataAware
      Overrides:
      setMetadata in class AbstractInternalCacheEntry
      Parameters:
      metadata - to apply to the cache entry
    • appendFieldsToString

      protected void appendFieldsToString(StringBuilder builder)
      Overrides:
      appendFieldsToString in class AbstractInternalCacheEntry