FileDocCategorySizeDatePackage
CacheInvalidationPolicy.javaAPI DocGlassfish v2 API4792Tue May 22 16:54:18 BST 2007oracle.toplink.essentials.descriptors.invalidation

CacheInvalidationPolicy

public abstract class CacheInvalidationPolicy extends Object implements 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 TopLink, objects do not expire in the cache. Several different policies are available to allow objects to expire. These can be set on the Descriptor.
see
oracle.toplink.essentials.publicinterface.Descriptor
see
oracle.toplink.essentials.descriptors.cacheinvalidation.NoExpiryCacheInvalidationPolicy
see
oracle.toplink.essentials.descriptors.cacheinvalidation.DailyCacheInvalidationPolicy
see
oracle.toplink.essentials.descriptors.cacheinvalidation.TimeToLiveCacheInvalidationPolicy

Fields Summary
public static final long
NO_EXPIRY
protected boolean
shouldUpdateReadTimeOnUpdate
this will represent objects that do not expire
Constructors Summary
Methods Summary
public abstract longgetExpiryTimeInMillis(oracle.toplink.essentials.internal.identitymaps.CacheKey key)
INTERNAL: Get the next time when this object will become invalid

public longgetRemainingValidTime(oracle.toplink.essentials.internal.identitymaps.CacheKey key)
INTERNAL: Return the remaining life of this object


                      
        

                 
        
        long expiryTime = getExpiryTimeInMillis(key);
        long remainingTime = expiryTime - System.currentTimeMillis();
        if (remainingTime > 0) {
            return remainingTime;
        }
        return 0;
    
public abstract booleanisInvalidated(oracle.toplink.essentials.internal.identitymaps.CacheKey key, long currentTimeMillis)
INTERNAL: return true if this object is expire, false otherwise.

public voidsetShouldUpdateReadTimeOnUpdate(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 TopLink 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 = shouldUpdateReadTime;
    
public booleanshouldUpdateReadTimeOnUpdate()
PUBLIC: Return whether objects affected by this CacheInvalidationPolicy should have the read time on their cache keys updated when an update occurs.

        return shouldUpdateReadTimeOnUpdate;