de.umass.lastfm.cache
Class DefaultExpirationPolicy

java.lang.Object
  extended by de.umass.lastfm.cache.DefaultExpirationPolicy
All Implemented Interfaces:
ExpirationPolicy

public class DefaultExpirationPolicy
extends Object
implements ExpirationPolicy

This Policy maintains a list of methods which should be cached one week. Everything else won't be cached if using this policy.

Author:
Janni Kovacs

Field Summary
protected  long cacheRecentWeeklyCharts
          Contains the expiration time for weekly chart data for the current week, which is one week by default; last.fm TOS says: "You agree to cache similar artist and any chart data (top tracks, top artists, top albums) for a minimum of one week." but they might be outdated the next day.
protected static long ONE_DAY
          One day in milliseconds
protected static long ONE_WEEK
          One week in milliseconds
protected static Set<String> ONE_WEEK_METHODS
          Contains method names for all requests that should be cached 1 week
 
Constructor Summary
DefaultExpirationPolicy()
           
 
Method Summary
 long getExpirationTime(String method, Map<String,String> params)
          Returns the time in milliseconds a request of the given method should be cached.
 void setCacheRecentWeeklyCharts(long cacheRecentWeeklyCharts)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ONE_DAY

protected static final long ONE_DAY
One day in milliseconds

See Also:
Constant Field Values

ONE_WEEK

protected static final long ONE_WEEK
One week in milliseconds

See Also:
Constant Field Values

ONE_WEEK_METHODS

protected static final Set<String> ONE_WEEK_METHODS
Contains method names for all requests that should be cached 1 week


cacheRecentWeeklyCharts

protected long cacheRecentWeeklyCharts
Contains the expiration time for weekly chart data for the current week, which is one week by default; last.fm TOS says: "You agree to cache similar artist and any chart data (top tracks, top artists, top albums) for a minimum of one week." but they might be outdated the next day. For now we will cache them one week. If you always need the latest charts but don't want to disable caching use the setCacheRecentWeeklyCharts(long) method to set this value. This variable also applies to the getWeeklyChartList method

Constructor Detail

DefaultExpirationPolicy

public DefaultExpirationPolicy()
Method Detail

getExpirationTime

public long getExpirationTime(String method,
                              Map<String,String> params)
Description copied from interface: ExpirationPolicy
Returns the time in milliseconds a request of the given method should be cached. Returns -1 if this method should not be cached.

Specified by:
getExpirationTime in interface ExpirationPolicy
Parameters:
method - The method called
params - The parameters sent
Returns:
the time the request should be cached in milliseconds

setCacheRecentWeeklyCharts

public void setCacheRecentWeeklyCharts(long cacheRecentWeeklyCharts)