EclipseLink 2.1.2, build 'v20101206-r8635' API Reference

org.eclipse.persistence.descriptors.invalidation
Class CacheInvalidationPolicy

java.lang.Object
  extended by org.eclipse.persistence.descriptors.invalidation.CacheInvalidationPolicy
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
DailyCacheInvalidationPolicy, NoExpiryCacheInvalidationPolicy, TimeToLiveCacheInvalidationPolicy

public abstract class CacheInvalidationPolicy
extends java.lang.Object
implements java.io.Serializable

PUBLIC: A CacheInvalidationPolicy is used to set objects in TopLink's identity maps to be invalid following given rules. CacheInvalidationPolicy is the abstract superclass for all policies used for cache invalidation. By default in EclipseLink, objects do not expire in the cache. Several different policies are available to allow objects to expire. These can be set on the ClassDescriptor.

See Also:
ClassDescriptor, NoExpiryCacheInvalidationPolicy, DailyCacheInvalidationPolicy, TimeToLiveCacheInvalidationPolicy, Serialized Form

Field Summary
protected  boolean isInvalidationRandomized
          Allows the timeToLive to be randomized to avoid bottlenecks.
static long NO_EXPIRY
           
protected  java.util.Random random
          Random used for randomized invalidation.
protected  boolean shouldRefreshInvalidObjectsInUnitOfWork
          Determines if expired object registered in the unit of work should be refreshed, default true.
protected  boolean shouldUpdateReadTimeOnUpdate
          This will represent objects that do not expire.
 
Constructor Summary
CacheInvalidationPolicy()
           
 
Method Summary
abstract  long getExpiryTimeInMillis(org.eclipse.persistence.internal.identitymaps.CacheKey key)
          INTERNAL: Get the next time when this object will become invalid
 long getRemainingValidTime(org.eclipse.persistence.internal.identitymaps.CacheKey key)
          INTERNAL: Return the remaining life of this object
 boolean isInvalidated(org.eclipse.persistence.internal.identitymaps.CacheKey key)
          INTERNAL: return true if this object is expire, false otherwise.
abstract  boolean isInvalidated(org.eclipse.persistence.internal.identitymaps.CacheKey key, long currentTimeMillis)
          INTERNAL: return true if this object is expire, false otherwise.
 boolean isInvalidationRandomized()
          PUBLIC: Allows the timeToLive to be randomized to avoid bottlenecks.
 void setIsInvalidationRandomized(boolean isInvalidationRandomized)
          PUBLIC: Allows the timeToLive to be randomized to avoid bottlenecks.
 void setShouldRefreshInvalidObjectsInUnitOfWork(boolean shouldRefreshInvalidObjectsInUnitOfWork)
          PUBLIC: Set if expired object registered in the unit of work should be refreshed, default is true.
 void setShouldUpdateReadTimeOnUpdate(boolean shouldUpdateReadTime)
          PUBLIC: Set whether to update the stored time an object was read when an object is updated.
 boolean shouldRefreshInvalidObjectsInUnitOfWork()
          PUBLIC: Return if expired object registered in the unit of work should be refreshed.
 boolean shouldUpdateReadTimeOnUpdate()
          PUBLIC: Return whether objects affected by this CacheInvalidationPolicy should have the read time on their cache keys updated when an update occurs.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NO_EXPIRY

public static final long NO_EXPIRY
See Also:
Constant Field Values

shouldUpdateReadTimeOnUpdate

protected boolean shouldUpdateReadTimeOnUpdate
This will represent objects that do not expire.


shouldRefreshInvalidObjectsInUnitOfWork

protected boolean shouldRefreshInvalidObjectsInUnitOfWork
Determines if expired object registered in the unit of work should be refreshed, default true.


isInvalidationRandomized

protected boolean isInvalidationRandomized
Allows the timeToLive to be randomized to avoid bottlenecks.


random

protected java.util.Random random
Random used for randomized invalidation.

Constructor Detail

CacheInvalidationPolicy

public CacheInvalidationPolicy()
Method Detail

isInvalidationRandomized

public boolean isInvalidationRandomized()
PUBLIC: Allows the timeToLive to be randomized to avoid bottlenecks.


setIsInvalidationRandomized

public void setIsInvalidationRandomized(boolean isInvalidationRandomized)
PUBLIC: Allows the timeToLive to be randomized to avoid bottlenecks.


getExpiryTimeInMillis

public abstract long getExpiryTimeInMillis(org.eclipse.persistence.internal.identitymaps.CacheKey key)
INTERNAL: Get the next time when this object will become invalid


getRemainingValidTime

public long getRemainingValidTime(org.eclipse.persistence.internal.identitymaps.CacheKey key)
INTERNAL: Return the remaining life of this object


isInvalidated

public boolean isInvalidated(org.eclipse.persistence.internal.identitymaps.CacheKey key)
INTERNAL: return true if this object is expire, false otherwise.


isInvalidated

public abstract boolean isInvalidated(org.eclipse.persistence.internal.identitymaps.CacheKey key,
                                      long currentTimeMillis)
INTERNAL: return true if this object is expire, false otherwise.


setShouldUpdateReadTimeOnUpdate

public void setShouldUpdateReadTimeOnUpdate(boolean shouldUpdateReadTime)
PUBLIC: Set whether to update the stored time an object was read when an object is updated. When the read time is updated, it indicates to EclipseLink that the data in the object is up to date. This means that cache invalidation checks will occur relative to the new read time. By default, the read time will not be updated when an object is updated. Often it is possible to be confident that the object is up to date after an update because otherwise the update will fail because of the locking policies in use.


shouldUpdateReadTimeOnUpdate

public boolean shouldUpdateReadTimeOnUpdate()
PUBLIC: Return whether objects affected by this CacheInvalidationPolicy should have the read time on their cache keys updated when an update occurs.


setShouldRefreshInvalidObjectsInUnitOfWork

public void setShouldRefreshInvalidObjectsInUnitOfWork(boolean shouldRefreshInvalidObjectsInUnitOfWork)
PUBLIC: Set if expired object registered in the unit of work should be refreshed, default is true.


shouldRefreshInvalidObjectsInUnitOfWork

public boolean shouldRefreshInvalidObjectsInUnitOfWork()
PUBLIC: Return if expired object registered in the unit of work should be refreshed.


EclipseLink 2.1.2, build 'v20101206-r8635' API Reference