org.infinispan.container.entries
Class ImmortalCacheEntry

java.lang.Object
  extended by org.infinispan.container.entries.AbstractInternalCacheEntry
      extended by org.infinispan.container.entries.ImmortalCacheEntry
All Implemented Interfaces:
Cloneable, Map.Entry<Object,Object>, CacheEntry, InternalCacheEntry, Versioned
Direct Known Subclasses:
VersionedImmortalCacheEntry

public class ImmortalCacheEntry
extends AbstractInternalCacheEntry

A cache entry that is immortal/cannot expire

Since:
4.0
Author:
Manik Surtani

Nested Class Summary
static class ImmortalCacheEntry.Externalizer
           
 
Field Summary
protected  ImmortalCacheValue cacheValue
           
 
Fields inherited from class org.infinispan.container.entries.AbstractInternalCacheEntry
key
 
Constructor Summary
protected ImmortalCacheEntry(Object key, ImmortalCacheValue value)
           
  ImmortalCacheEntry(Object key, Object value)
           
 
Method Summary
 boolean canExpire()
           
 ImmortalCacheEntry clone()
           
 boolean equals(Object o)
           
 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()
           
 Object getValue()
          Retrieves the value of this entry
 int hashCode()
           
 boolean isExpired()
           
 boolean isExpired(long now)
           
 void reincarnate()
          "Reincarnates" an entry.
 Object setValue(Object value)
          Sets the value of the entry, returning the previous value
 InternalCacheValue toInternalCacheValue()
          Creates a representation of this entry as an InternalCacheValue.
 String toString()
           
 void touch()
          Updates access timestamps on this instance
 void touch(long currentTimeMillis)
          Updates access timestamps on this instance to a specified time
 
Methods inherited from class org.infinispan.container.entries.AbstractInternalCacheEntry
commit, getKey, getVersion, isChanged, isCreated, isEvicted, isLockPlaceholder, isNull, isRemoved, isValid, rollback, setCreated, setEvicted, setLifespan, setMaxIdle, setRemoved, setValid, setVersion, undelete
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

cacheValue

protected ImmortalCacheValue cacheValue
Constructor Detail

ImmortalCacheEntry

protected ImmortalCacheEntry(Object key,
                             ImmortalCacheValue value)

ImmortalCacheEntry

public ImmortalCacheEntry(Object key,
                          Object value)
Method Detail

isExpired

public final boolean isExpired(long now)
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

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()
Description copied from interface: InternalCacheEntry
Updates access timestamps on this instance


touch

public void touch(long currentTimeMillis)
Description copied from interface: InternalCacheEntry
Updates access timestamps on this instance to a specified time


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.


toInternalCacheValue

public InternalCacheValue toInternalCacheValue()
Description copied from interface: InternalCacheEntry
Creates a representation of this entry as an InternalCacheValue. 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.

getValue

public Object getValue()
Description copied from interface: CacheEntry
Retrieves the value of this 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

Parameters:
value - value to set
Returns:
previous value

equals

public boolean equals(Object o)
Specified by:
equals in interface Map.Entry<Object,Object>
Overrides:
equals in class Object

hashCode

public int hashCode()
Specified by:
hashCode in interface Map.Entry<Object,Object>
Overrides:
hashCode in class Object

clone

public ImmortalCacheEntry clone()
Specified by:
clone in interface InternalCacheEntry
Overrides:
clone in class AbstractInternalCacheEntry

toString

public String toString()
Overrides:
toString in class AbstractInternalCacheEntry

-->

Copyright © 2012 JBoss, a division of Red Hat. All Rights Reserved.