Class MetadataMortalCacheEntry
- java.lang.Object
-
- org.infinispan.container.entries.AbstractInternalCacheEntry
-
- org.infinispan.container.entries.metadata.MetadataMortalCacheEntry
-
- All Implemented Interfaces:
Cloneable
,Map.Entry
,CacheEntry
,InternalCacheEntry
,MetadataAware
- Direct Known Subclasses:
L1MetadataInternalCacheEntry
public class MetadataMortalCacheEntry extends AbstractInternalCacheEntry implements MetadataAware
A cache entry that is mortal and isMetadataAware
- Since:
- 5.3
- Author:
- Galder ZamarreƱo
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MetadataMortalCacheEntry.Externalizer
-
Constructor Summary
Constructors Constructor Description MetadataMortalCacheEntry(Object key, Object value, Metadata metadata, long created)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canExpire()
long
getCreated()
long
getExpiryTime()
Only used with entries that have a lifespan, this determines when an entry is due to expire.long
getLastUsed()
long
getLifespan()
long
getMaxIdle()
Metadata
getMetadata()
Get metadata of this cache entry.Object
getValue()
Retrieves the value of this entryboolean
isExpired()
boolean
isExpired(long now)
void
reincarnate()
"Reincarnates" an entry.void
reincarnate(long now)
"Reincarnates" an entry.void
setMetadata(Metadata metadata)
Set the metadata in the cache entry.Object
setValue(Object value)
Sets the value of the entry, returning the previous valueInternalCacheValue
toInternalCacheValue()
Creates a representation of this entry as anInternalCacheValue
.void
touch()
Updates access timestamps on this instancevoid
touch(long currentTimeMillis)
Updates access timestamps on this instance to a specified time-
Methods inherited from class org.infinispan.container.entries.AbstractInternalCacheEntry
clone, commit, equals, getKey, hashCode, isChanged, isCreated, isEvicted, isL1Entry, isNull, isRemoved, setChanged, setCreated, setEvicted, setRemoved, setSkipLookup, 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
commit, isLoaded, isValid, rollback, setCreated, setLastUsed, setLoaded, setValid, undelete
-
Methods inherited from interface org.infinispan.container.entries.InternalCacheEntry
canExpireMaxIdle
-
-
-
-
Method Detail
-
getValue
public Object getValue()
Description copied from interface:CacheEntry
Retrieves the value of this entry- Specified by:
getValue
in interfaceCacheEntry
- Specified by:
getValue
in interfaceMap.Entry
- Returns:
- the value of the entry
-
setValue
public Object setValue(Object value)
Description copied from interface:CacheEntry
Sets the value of the entry, returning the previous value- Specified by:
setValue
in interfaceCacheEntry
- Specified by:
setValue
in interfaceMap.Entry
- Parameters:
value
- value to set- Returns:
- previous value
-
isExpired
public final boolean isExpired(long now)
- Specified by:
isExpired
in interfaceInternalCacheEntry
- 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()
- Specified by:
isExpired
in interfaceInternalCacheEntry
- Returns:
- true if the entry has expired; false otherwise
-
canExpire
public final boolean canExpire()
- Specified by:
canExpire
in interfaceInternalCacheEntry
- Returns:
- true if the entry can expire, false otherwise
-
getCreated
public final long getCreated()
- Specified by:
getCreated
in interfaceCacheEntry
- Returns:
- timestamp when the entry was created
-
getLastUsed
public final long getLastUsed()
- Specified by:
getLastUsed
in interfaceCacheEntry
- Returns:
- timestamp when the entry was last used
-
getLifespan
public final long getLifespan()
- Specified by:
getLifespan
in interfaceCacheEntry
- Returns:
- retrieves the lifespan of this entry. -1 means an unlimited lifespan.
-
getMaxIdle
public final long getMaxIdle()
- Specified by:
getMaxIdle
in interfaceCacheEntry
- 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.- Specified by:
getExpiryTime
in interfaceInternalCacheEntry
- 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:InternalCacheEntry
Updates access timestamps on this instance- Specified by:
touch
in interfaceInternalCacheEntry
-
touch
public final void touch(long currentTimeMillis)
Description copied from interface:InternalCacheEntry
Updates access timestamps on this instance to a specified time- Specified by:
touch
in interfaceInternalCacheEntry
- 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.- Specified by:
reincarnate
in interfaceInternalCacheEntry
-
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.- Specified by:
reincarnate
in interfaceInternalCacheEntry
- Parameters:
now
- the current time as defined bySystem.currentTimeMillis()
orTimeService.wallClockTime()
-
toInternalCacheValue
public InternalCacheValue 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.- Specified by:
toInternalCacheValue
in interfaceInternalCacheEntry
- Returns:
- a new InternalCacheValue encapsulating this InternalCacheEntry's value and expiration information.
-
getMetadata
public Metadata 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
public void setMetadata(Metadata metadata)
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
-
-