Package org.infinispan.container.entries
Interface InternalCacheEntry<K,V>
- All Superinterfaces:
CacheEntry<K,
,V> Cloneable
,Map.Entry<K,
,V> MetadataAware
- All Known Implementing Classes:
AbstractInternalCacheEntry
,ImmortalCacheEntry
,L1InternalCacheEntry
,L1MetadataInternalCacheEntry
,MetadataImmortalCacheEntry
,MetadataMortalCacheEntry
,MetadataTransientCacheEntry
,MetadataTransientMortalCacheEntry
,MortalCacheEntry
,TransientCacheEntry
,TransientMortalCacheEntry
Interface for internal cache entries that expose whether an entry has expired.
- Since:
- 4.0
- Author:
- Manik Surtani, Sanne Grinovero
-
Method Summary
Modifier and TypeMethodDescriptionboolean
default boolean
clone()
long
Only used with entries that have a lifespan, this determines when an entry is due to expire.boolean
isExpired
(long now) boolean
void
reincarnate
(long now) "Reincarnates" an entry.Creates a representation of this entry as anInternalCacheValue
.void
touch
(long currentTimeMillis) Updates access timestamps on this instance to a specified timeMethods inherited from interface org.infinispan.container.entries.CacheEntry
commit, getCreated, getInternalMetadata, getKey, getLastUsed, getLifespan, getMaxIdle, getValue, isChanged, isCreated, isEvicted, isNull, isRemoved, setChanged, setCreated, setCreated, setEvicted, setInternalMetadata, setLastUsed, setRemoved, setSkipLookup, setValue, skipLookup
Methods inherited from interface org.infinispan.container.entries.metadata.MetadataAware
getMetadata, setMetadata
-
Method Details
-
isExpired
boolean isExpired(long now) - Parameters:
now
- the current time as defined bySystem.currentTimeMillis()
orTimeService.wallClockTime()
- Returns:
- true if the entry has expired; false otherwise
- Since:
- 5.1
-
canExpire
boolean canExpire()- Returns:
- true if the entry can expire, false otherwise
-
canExpireMaxIdle
default boolean canExpireMaxIdle()- Returns:
- true if this entry can expire via max idle, false otherwise
-
getExpiryTime
long getExpiryTime()Only used with entries that have a lifespan, this determines when an entry is due to expire.- Returns:
- timestamp when the entry is due to expire, or -1 if it doesn't have a lifespan
-
touch
void touch(long currentTimeMillis) Updates access timestamps on this instance to a specified time- Parameters:
currentTimeMillis
- the current time as defined bySystem.currentTimeMillis()
orTimeService.wallClockTime()
-
reincarnate
void reincarnate(long now) "Reincarnates" an entry. Essentially, resets the 'created' timestamp of the entry to the current time.- Parameters:
now
- the current time as defined bySystem.currentTimeMillis()
orTimeService.wallClockTime()
-
isL1Entry
boolean isL1Entry()- Returns:
true
if the entry is a L1 entry.
-
toInternalCacheValue
InternalCacheValue<V> toInternalCacheValue()Creates a representation of this entry as anInternalCacheValue
. 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.- Returns:
- a new InternalCacheValue encapsulating this InternalCacheEntry's value and expiration information.
-
clone
InternalCacheEntry<K,V> clone()- Specified by:
clone
in interfaceCacheEntry<K,
V>
-