Class MetadataTransientCacheEntry
- java.lang.Object
-
- org.infinispan.container.entries.AbstractInternalCacheEntry
-
- org.infinispan.container.entries.metadata.MetadataTransientCacheEntry
-
- All Implemented Interfaces:
Cloneable,Map.Entry,CacheEntry,InternalCacheEntry,MetadataAware
public class MetadataTransientCacheEntry extends AbstractInternalCacheEntry implements MetadataAware
A cache entry that is transient, i.e., it can be considered expired after a period of not being used, andMetadataAware- Since:
- 5.3
- Author:
- Galder ZamarreƱo
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMetadataTransientCacheEntry.Externalizer
-
Field Summary
Fields Modifier and Type Field Description protected longlastUsedprotected Metadatametadata-
Fields inherited from class org.infinispan.container.entries.AbstractInternalCacheEntry
internalMetadata, key, value
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedMetadataTransientCacheEntry(Object key, Object value, PrivateMetadata internalMetadata, Metadata metadata, long lastUsed)MetadataTransientCacheEntry(Object key, Object value, Metadata metadata, long lastUsed)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappendFieldsToString(StringBuilder builder)booleancanExpire()booleancanExpireMaxIdle()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.booleanisExpired(long now)voidreincarnate(long now)"Reincarnates" an entry.voidsetMetadata(Metadata metadata)Set the metadata in the cache entry.InternalCacheValue<?>toInternalCacheValue()Creates a representation of this entry as anInternalCacheValue.voidtouch(long currentTimeMillis)Updates access timestamps on this instance to a specified time-
Methods inherited from class org.infinispan.container.entries.AbstractInternalCacheEntry
clone, 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
-
-
-
-
Field Detail
-
metadata
protected Metadata metadata
-
lastUsed
protected long lastUsed
-
-
Constructor Detail
-
MetadataTransientCacheEntry
public MetadataTransientCacheEntry(Object key, Object value, Metadata metadata, long lastUsed)
-
MetadataTransientCacheEntry
protected MetadataTransientCacheEntry(Object key, Object value, PrivateMetadata internalMetadata, Metadata metadata, long lastUsed)
-
-
Method Detail
-
touch
public final void touch(long currentTimeMillis)
Description copied from interface:InternalCacheEntryUpdates access timestamps on this instance to a specified time- Specified by:
touchin interfaceInternalCacheEntry- 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.- Specified by:
reincarnatein interfaceInternalCacheEntry- Parameters:
now- the current time as defined bySystem.currentTimeMillis()orTimeService.wallClockTime()
-
canExpire
public final boolean canExpire()
- Specified by:
canExpirein interfaceInternalCacheEntry- Returns:
- true if the entry can expire, false otherwise
-
canExpireMaxIdle
public boolean canExpireMaxIdle()
- Specified by:
canExpireMaxIdlein interfaceInternalCacheEntry- Returns:
- true if this entry can expire via max idle, false otherwise
-
isExpired
public boolean isExpired(long now)
- Specified by:
isExpiredin interfaceInternalCacheEntry- Parameters:
now- the current time as defined bySystem.currentTimeMillis()orTimeService.wallClockTime()- Returns:
- true if the entry has expired; false otherwise
-
getCreated
public long getCreated()
- Specified by:
getCreatedin interfaceCacheEntry- Returns:
- timestamp when the entry was created
-
getLastUsed
public final long getLastUsed()
- Specified by:
getLastUsedin interfaceCacheEntry- Returns:
- timestamp when the entry was last used
-
getLifespan
public long getLifespan()
- Specified by:
getLifespanin interfaceCacheEntry- Returns:
- retrieves the lifespan of this entry. -1 means an unlimited lifespan.
-
getExpiryTime
public long getExpiryTime()
Description copied from interface:InternalCacheEntryOnly used with entries that have a lifespan, this determines when an entry is due to expire.- Specified by:
getExpiryTimein interfaceInternalCacheEntry- Returns:
- timestamp when the entry is due to expire, or -1 if it doesn't have a lifespan
-
getMaxIdle
public final long getMaxIdle()
- Specified by:
getMaxIdlein interfaceCacheEntry- Returns:
- the maximum allowed time for which this entry can be idle, after which it is considered expired.
-
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.- Specified by:
toInternalCacheValuein interfaceInternalCacheEntry- 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
-
appendFieldsToString
protected void appendFieldsToString(StringBuilder builder)
- Overrides:
appendFieldsToStringin classAbstractInternalCacheEntry
-
-