org.infinispan.container.entries
Class TransientCacheEntry

java.lang.Object
  extended by org.infinispan.container.entries.AbstractInternalCacheEntry
      extended by org.infinispan.container.entries.TransientCacheEntry
All Implemented Interfaces:
CacheEntry, InternalCacheEntry
Direct Known Subclasses:
TransientMortalCacheEntry

public class TransientCacheEntry
extends AbstractInternalCacheEntry

A cache entry that is transient, i.e., it can be considered expired afer a period of not being used

Since:
4.0
Author:
Manik Surtani

Method Summary
 boolean canExpire()
           
 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()
           
 int hashCode()
           
 boolean isExpired()
           
 InternalCacheEntry setLifespan(long lifespan)
          Sets the lifespan of the entry.
 InternalCacheEntry setMaxIdle(long maxIdle)
          Sets the maximum idle time of the entry.
 InternalCacheValue toInternalCacheValue()
          Creates a representation of this entry as an InternalCacheValue.
 void touch()
          Updates access timestamps on this instance
 
Methods inherited from class org.infinispan.container.entries.AbstractInternalCacheEntry
commit, getKey, getValue, isChanged, isCreated, isNull, isRemoved, isValid, rollback, setCreated, setRemoved, setValid, setValue, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

touch

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


canExpire

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

isExpired

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

setMaxIdle

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

Note that if this method is used, you should always use a reference to the return value after invocation, since as an optimization, implementations may change type of CacheEntry used after invoking this method, for example changing a MortalCacheEntry to an ImmortalCacheEntry.

Parameters:
maxIdle - maxIdle to set
Returns:
the updated CacheEntry

setLifespan

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

Note that if this method is used, you should always use a reference to the return value after invocation, since as an optimization, implementations may change type of CacheEntry used after invoking this method, for example changing a MortalCacheEntry to an ImmortalCacheEntry.

Parameters:
lifespan - lifespan to set
Returns:
the updated CacheEntry

getCreated

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

getLastUsed

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

getLifespan

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

getExpiryTime

public 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

getMaxIdle

public final long getMaxIdle()
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: 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.

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object


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