Class CacheEntry<V>

  • Type Parameters:
    V - the type of the cached value

    public class CacheEntry<V>
    extends Object
    Represents a cache entry containing a value along with metadata for cache management.

    This class encapsulates both the cached value and important metadata such as creation time, last access time, access count, weight, and expiration information. This metadata is used by eviction strategies, expiration policies, and statistics collection.

    Performance Optimizations: This implementation prioritizes performance by using nanoTime for time-sensitive operations and maintaining minimal object overhead.

    Since:
    1.0.0
    See Also:
    EvictionStrategy, CacheConfig
    • Constructor Detail

      • CacheEntry

        public CacheEntry​(V value,
                          long weight,
                          Instant expirationTime)
    • Method Detail

      • getValue

        public V getValue()
      • getWeight

        public long getWeight()
      • isExpired

        public boolean isExpired()
        Fast expiration check using nanoTime
      • getExpirationTime

        public Instant getExpirationTime()
        Get expiration time as Instant (returns original Instant for compatibility)
      • getAccessCount

        public long getAccessCount()
      • incrementAccessCount

        public void incrementAccessCount()
        Optimized access count increment with minimal overhead
      • getLastAccessTime

        public Instant getLastAccessTime()
        Get last access time as Instant (created lazily for compatibility)
      • getLastAccessTimeNanos

        public long getLastAccessTimeNanos()
      • getCreationTime

        public Instant getCreationTime()
        Get creation time as Instant (created lazily for compatibility)
      • getCreationTimeNanos

        public long getCreationTimeNanos()
      • updateExpirationOnAccess

        public void updateExpirationOnAccess​(Duration accessExpirationDuration)
        Updates the expiration time based on access time. Used for expireAfterAccess functionality.
        Parameters:
        accessExpirationDuration - the duration from now when the entry should expire