org.infinispan.container.entries
Class TransientMortalCacheEntry

java.lang.Object
  extended by org.infinispan.container.entries.AbstractInternalCacheEntry
      extended by org.infinispan.container.entries.TransientMortalCacheEntry
All Implemented Interfaces:
Cloneable, Map.Entry<Object,Object>, CacheEntry, InternalCacheEntry

public class TransientMortalCacheEntry
extends AbstractInternalCacheEntry

A cache entry that is both transient and mortal.

Since:
4.0
Author:
Manik Surtani

Nested Class Summary
static class TransientMortalCacheEntry.Externalizer
           
 
Constructor Summary
TransientMortalCacheEntry(Object key, Object value, long maxIdle, long lifespan, long lastUsed, long created)
           
 
Method Summary
 boolean canExpire()
           
 TransientMortalCacheEntry 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()
           
 void reincarnate()
          "Reincarnates" an entry.
 void setLifespan(long lifespan)
          Sets the lifespan of the entry.
 void setMaxIdle(long maxIdle)
          Sets the maximum idle time of the entry.
 Object setValue(Object value)
          Sets the value of the entry, returing the previous value
 InternalCacheValue toInternalCacheValue()
          Creates a representation of this entry as an InternalCacheValue.
 String toString()
           
 void touch()
          Updates access timestamps on this instance
 
Methods inherited from class org.infinispan.container.entries.AbstractInternalCacheEntry
commit, getKey, isChanged, isCreated, isNull, isRemoved, isValid, rollback, setCreated, setRemoved, setValid
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TransientMortalCacheEntry

public TransientMortalCacheEntry(Object key,
                                 Object value,
                                 long maxIdle,
                                 long lifespan,
                                 long lastUsed,
                                 long created)
Method Detail

setLifespan

public void setLifespan(long lifespan)
Description copied from interface: InternalCacheEntry
Sets the lifespan of the entry.

Specified by:
setLifespan in interface CacheEntry
Specified by:
setLifespan in interface InternalCacheEntry
Overrides:
setLifespan in class AbstractInternalCacheEntry
Parameters:
lifespan - lifespan to set

setMaxIdle

public void setMaxIdle(long maxIdle)
Description copied from interface: InternalCacheEntry
Sets the maximum idle time of the entry.

Specified by:
setMaxIdle in interface CacheEntry
Specified by:
setMaxIdle in interface InternalCacheEntry
Overrides:
setMaxIdle in class AbstractInternalCacheEntry
Parameters:
maxIdle - maxIdle to set

getValue

public Object getValue()
Description copied from interface: CacheEntry
Retrieves the value of this entry

Returns:
the value of the entry

getLifespan

public long getLifespan()
Returns:
retrieves the lifespan of this entry. -1 means an unlimited lifespan.

canExpire

public final boolean canExpire()
Returns:
true if the entry can expire, false otherwise

getCreated

public long getCreated()
Returns:
timestamp when the entry was created

isExpired

public boolean isExpired()
Returns:
true if the entry has expired; false otherwise

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

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.

getLastUsed

public long getLastUsed()
Returns:
timestamp when the entry was last used

touch

public final void touch()
Description copied from interface: InternalCacheEntry
Updates access timestamps on this instance


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.


getMaxIdle

public long getMaxIdle()
Returns:
the maximum allowed time for which this entry can be idle, after which it is considered expired.

setValue

public Object setValue(Object value)
Description copied from interface: CacheEntry
Sets the value of the entry, returing 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 TransientMortalCacheEntry clone()
Specified by:
clone in interface InternalCacheEntry
Overrides:
clone in class AbstractInternalCacheEntry

toString

public String toString()
Overrides:
toString in class AbstractInternalCacheEntry

Google Analytics

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