package com.sun.MySunCatalogue.cache;

/**
 * Title:        MySunCatalogue
 * Description:
 * Copyright:    Copyright (c) 2001
 * Company:      Devote
 * @author
 * @version 1.0
 */
import java.util.Date;
import java.lang.Math;
import org.apache.cocoon.caching.CacheValidity;

public final class DeltaTimeCacheValidity implements CacheValidity
{

    private long cachedDateTime;  // Holds the store-time in miliseconds
    private long timeInCache;     // maximum time allowed in cache in minutes

    public DeltaTimeCacheValidity(long timeInCache)
    {
	this.cachedDateTime = new Date().getTime();
	this.timeInCache = timeInCache * 60000;
    }

    public boolean isValid(CacheValidity validity)
    {
        if (validity instanceof DeltaTimeCacheValidity)
        {
            return Math.abs((((DeltaTimeCacheValidity)validity).getCachedDateTime() - this.cachedDateTime)) < this.timeInCache;
        }
        return false;
    }

    public long getCachedDateTime()
    {
        return this.cachedDateTime;
    }

    public String toString()
    {
        return "DeltaTimeCacheValidity: " + this.cachedDateTime + "(+" + this.timeInCache + "s)";
    }

}
