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
public class MortalCacheEntry extends AbstractInternalCacheEntry
A cache entry that is mortal. I.e., has a lifespan.- Since:
- 4.0
- Author:
- Manik Surtani
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMortalCacheEntry.Externalizer
-
Constructor Summary
Constructors Constructor Description MortalCacheEntry(Object key, Object value, long lifespan, long created)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanExpire()MortalCacheEntryclone()longgetCreated()longgetExpiryTime()Only used with entries that have a lifespan, this determines when an entry is due to expire.longgetLastUsed()longgetLifespan()longgetMaxIdle()MetadatagetMetadata()Get metadata of this cache entry.ObjectgetValue()Retrieves the value of this entrybooleanisExpired()booleanisExpired(long now)voidreincarnate()"Reincarnates" an entry.voidreincarnate(long now)"Reincarnates" an entry.voidsetLifespan(long lifespan)voidsetMetadata(Metadata metadata)Set the metadata in the cache entry.ObjectsetValue(Object value)Sets the value of the entry, returning the previous valueInternalCacheValuetoInternalCacheValue()Creates a representation of this entry as anInternalCacheValue.StringtoString()voidtouch()Updates access timestamps on this instancevoidtouch(long currentTimeMillis)Updates access timestamps on this instance to a specified time-
Methods inherited from class org.infinispan.container.entries.AbstractInternalCacheEntry
commit, equals, getKey, hashCode, isChanged, isCreated, isEvicted, isL1Entry, isNull, isRemoved, setChanged, setCreated, setEvicted, setRemoved, setSkipLookup, skipLookup
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.infinispan.container.entries.CacheEntry
commit, isLoaded, isValid, rollback, setCreated, setLastUsed, setLoaded, setValid, undelete
-
Methods inherited from interface org.infinispan.container.entries.InternalCacheEntry
canExpireMaxIdle
-
-
-
-
Field Detail
-
value
protected Object value
-
lifespan
protected long lifespan
-
created
protected long created
-
-
Method Detail
-
getValue
public Object getValue()
Description copied from interface:CacheEntryRetrieves the value of this entry- Returns:
- the value of the entry
-
setValue
public Object setValue(Object value)
Description copied from interface:CacheEntrySets the value of the entry, returning the previous value- Parameters:
value- value to set- Returns:
- previous value
-
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
-
isExpired
public final boolean isExpired()
- 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:InternalCacheEntryOnly 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()
Description copied from interface:InternalCacheEntryUpdates access timestamps on this instance
-
touch
public final void touch(long currentTimeMillis)
Description copied from interface:InternalCacheEntryUpdates access timestamps on this instance to a specified time- Parameters:
currentTimeMillis- the current time as defined bySystem.currentTimeMillis()orTimeService.wallClockTime()
-
reincarnate
public final void reincarnate()
Description copied from interface:InternalCacheEntry"Reincarnates" an entry. Essentially, resets the 'created' timestamp of the entry to the current time.
-
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
public InternalCacheValue toInternalCacheValue()
Description copied from interface:InternalCacheEntryCreates 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
public Metadata getMetadata()
Description copied from interface:MetadataAwareGet metadata of this cache entry.- Specified by:
getMetadatain interfaceMetadataAware- Overrides:
getMetadatain classAbstractInternalCacheEntry- Returns:
- a Metadata instance
-
setMetadata
public void setMetadata(Metadata metadata)
Description copied from interface:MetadataAwareSet the metadata in the cache entry.- Specified by:
setMetadatain interfaceMetadataAware- Overrides:
setMetadatain classAbstractInternalCacheEntry- Parameters:
metadata- to apply to the cache entry
-
clone
public MortalCacheEntry clone()
- Specified by:
clonein interfaceCacheEntry- Specified by:
clonein interfaceInternalCacheEntry- Overrides:
clonein classAbstractInternalCacheEntry
-
toString
public String toString()
- Overrides:
toStringin classAbstractInternalCacheEntry
-
-