org.infinispan.container.entries
Interface InternalCacheEntry

All Superinterfaces:
CacheEntry
All Known Implementing Classes:
AbstractInternalCacheEntry, ImmortalCacheEntry, MortalCacheEntry, TransientCacheEntry, TransientMortalCacheEntry

public interface InternalCacheEntry
extends CacheEntry

Interface for internal cache entries that expose whether an entry has expired.

Since:
4.0
Author:
Manik Surtani

Method Summary
 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()
           
 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 interface org.infinispan.container.entries.CacheEntry
commit, getKey, getLifespan, getMaxIdle, getValue, isChanged, isCreated, isNull, isRemoved, isValid, rollback, setCreated, setRemoved, setValid, setValue
 

Method Detail

isExpired

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

canExpire

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

setMaxIdle

InternalCacheEntry setMaxIdle(long maxIdle)
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.

Specified by:
setMaxIdle in interface CacheEntry
Parameters:
maxIdle - maxIdle to set
Returns:
the updated CacheEntry

setLifespan

InternalCacheEntry setLifespan(long lifespan)
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.

Specified by:
setLifespan in interface CacheEntry
Parameters:
lifespan - lifespan to set
Returns:
the updated CacheEntry

getCreated

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

getLastUsed

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

getExpiryTime

long getExpiryTime()
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

void touch()
Updates access timestamps on this instance


toInternalCacheValue

InternalCacheValue toInternalCacheValue()
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.


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