Package io.github.dhruv1110.jcachex
Class CacheEntry<V>
- java.lang.Object
-
- io.github.dhruv1110.jcachex.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 Summary
Constructors Constructor Description CacheEntry(V value, long weight, Instant expirationTime)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getAccessCount()
Instant
getCreationTime()
Get creation time as Instant (created lazily for compatibility)long
getCreationTimeNanos()
Instant
getExpirationTime()
Get expiration time as Instant (returns original Instant for compatibility)Instant
getLastAccessTime()
Get last access time as Instant (created lazily for compatibility)long
getLastAccessTimeNanos()
V
getValue()
long
getWeight()
void
incrementAccessCount()
Optimized access count increment with minimal overheadboolean
isExpired()
Fast expiration check using nanoTimevoid
updateExpirationOnAccess(Duration accessExpirationDuration)
Updates the expiration time based on access time.
-
-
-
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
-
-