Package org.infinispan.container.entries
Class MortalCacheEntry
java.lang.Object
org.infinispan.container.entries.AbstractInternalCacheEntry
org.infinispan.container.entries.MortalCacheEntry
- All Implemented Interfaces:
Cloneable
,Map.Entry
,CacheEntry
,InternalCacheEntry
,MetadataAware
- Direct Known Subclasses:
L1InternalCacheEntry
A cache entry that is mortal. I.e., has a lifespan.
- Since:
- 4.0
- Author:
- Manik Surtani
-
Nested Class Summary
-
Field Summary
Fields inherited from class org.infinispan.container.entries.AbstractInternalCacheEntry
internalMetadata, key, value
-
Constructor Summary
ModifierConstructorDescriptionMortalCacheEntry
(Object key, Object value, long lifespan, long created) protected
MortalCacheEntry
(Object key, Object value, PrivateMetadata internalMetadata, long lifespan, long created) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
appendFieldsToString
(StringBuilder builder) final boolean
clone()
final long
final long
Only used with entries that have a lifespan, this determines when an entry is due to expire.final long
final long
final long
Get metadata of this cache entry.final boolean
isExpired
(long now) void
reincarnate
(long now) "Reincarnates" an entry.void
setLifespan
(long lifespan) void
setMetadata
(Metadata metadata) Set the metadata in the cache entry.Creates a representation of this entry as anInternalCacheValue
.final void
touch
(long currentTimeMillis) Updates access timestamps on this instance to a specified timeMethods inherited from class org.infinispan.container.entries.AbstractInternalCacheEntry
commit, equals, getInternalMetadata, getKey, getValue, hashCode, isChanged, isCreated, isEvicted, isL1Entry, isNull, isRemoved, setChanged, setCreated, setEvicted, setInternalMetadata, setRemoved, setSkipLookup, setValue, skipLookup, toString
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.infinispan.container.entries.CacheEntry
setCreated, setLastUsed
Methods inherited from interface org.infinispan.container.entries.InternalCacheEntry
canExpireMaxIdle
-
Field Details
-
lifespan
protected long lifespan -
created
protected long created
-
-
Constructor Details
-
MortalCacheEntry
-
MortalCacheEntry
protected MortalCacheEntry(Object key, Object value, PrivateMetadata internalMetadata, long lifespan, long created)
-
-
Method Details
-
isExpired
public final boolean isExpired(long now) - Parameters:
now
- the current time as defined bySystem.currentTimeMillis()
orTimeService.wallClockTime()
- Returns:
- true if the entry has expired; false otherwise
-
canExpire
public final boolean canExpire()- Returns:
- true if the entry can expire, false otherwise
-
setLifespan
public void setLifespan(long lifespan) -
getCreated
public final long getCreated()- Returns:
- timestamp when the entry was created
-
getLastUsed
public final long getLastUsed()- Returns:
- timestamp when the entry was last used
-
getLifespan
public final long getLifespan()- Returns:
- retrieves the lifespan of this entry. -1 means an unlimited lifespan.
-
getMaxIdle
public final long getMaxIdle()- Returns:
- the maximum allowed time for which this entry can be idle, after which it is considered expired.
-
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.- Returns:
- timestamp when the entry is due to expire, or -1 if it doesn't have a lifespan
-
touch
public final void touch(long currentTimeMillis) Description copied from interface:InternalCacheEntry
Updates access timestamps on this instance to a specified time- Parameters:
currentTimeMillis
- the current time as defined bySystem.currentTimeMillis()
orTimeService.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.- Parameters:
now
- the current time as defined bySystem.currentTimeMillis()
orTimeService.wallClockTime()
-
toInternalCacheValue
Description copied from interface:InternalCacheEntry
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.
-
getMetadata
Description copied from interface:MetadataAware
Get metadata of this cache entry.- Specified by:
getMetadata
in interfaceMetadataAware
- Overrides:
getMetadata
in classAbstractInternalCacheEntry
- Returns:
- a Metadata instance
-
setMetadata
Description copied from interface:MetadataAware
Set the metadata in the cache entry.- Specified by:
setMetadata
in interfaceMetadataAware
- Overrides:
setMetadata
in classAbstractInternalCacheEntry
- Parameters:
metadata
- to apply to the cache entry
-
clone
- Specified by:
clone
in interfaceCacheEntry
- Specified by:
clone
in interfaceInternalCacheEntry
- Overrides:
clone
in classAbstractInternalCacheEntry
-
appendFieldsToString
- Overrides:
appendFieldsToString
in classAbstractInternalCacheEntry
-