Clover coverage report -
Coverage timestamp: So Nov 6 2005 14:19:51 CET
file stats: LOC: 59   Methods: 2
NCLOC: 21   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
ExpiresRefreshPolicy.java 0% 0% 0% 0%
coverage
 1    /*
 2    * Copyright (c) 2002-2003 by OpenSymphony
 3    * All rights reserved.
 4    */
 5    package com.opensymphony.oscache.web.filter;
 6   
 7    import com.opensymphony.oscache.base.CacheEntry;
 8    import com.opensymphony.oscache.base.EntryRefreshPolicy;
 9    import com.opensymphony.oscache.base.NeedsRefreshException;
 10   
 11    /**
 12    * Checks if a cache filter entry has expired.
 13    * This is useful when expires header are used in the response.
 14    *
 15    * @version $Revision: 1.1 $
 16    * @author <a href="mailto:ltorunski@t-online.de">Lars Torunski</a>
 17    */
 18    public class ExpiresRefreshPolicy implements EntryRefreshPolicy {
 19   
 20    /** the refresh period (in milliseconds) of a certain cache filter*/
 21    private long refreshPeriod;
 22   
 23    /**
 24    * Constructor ExpiresRefreshPolicy.
 25    *
 26    * @param refreshPeriod the refresh period in seconds
 27    */
 28  0 public ExpiresRefreshPolicy(int refreshPeriod) {
 29  0 this.refreshPeriod = refreshPeriod * 1000L;
 30    }
 31   
 32    /**
 33    * Indicates whether the supplied <code>CacheEntry</code> needs to be refreshed.
 34    * This will be called when retrieving an entry from the cache - if this method
 35    * returns <code>true</code> then a <code>NeedsRefreshException</code> will be
 36    * thrown.
 37    *
 38    * @param entry The cache entry which is ignored.
 39    * @return <code>true</code> if the content needs refreshing, <code>false</code> otherwise.
 40    *
 41    * @see NeedsRefreshException
 42    * @see CacheEntry
 43    */
 44  0 public boolean needsRefresh(CacheEntry entry) {
 45   
 46  0 long currentTimeMillis = System.currentTimeMillis();
 47   
 48  0 if ((refreshPeriod >= 0) && (currentTimeMillis >= (entry.getLastUpdate() + refreshPeriod))) {
 49  0 return true;
 50  0 } else if (entry.getContent() instanceof ResponseContent) {
 51  0 ResponseContent responseContent = (ResponseContent) entry.getContent();
 52  0 return currentTimeMillis >= responseContent.getExpires();
 53    } else {
 54  0 return false;
 55    }
 56   
 57    }
 58   
 59    }