Package de.umass.lastfm.cache
Class DefaultExpirationPolicy
- java.lang.Object
-
- de.umass.lastfm.cache.DefaultExpirationPolicy
-
- All Implemented Interfaces:
ExpirationPolicy
public class DefaultExpirationPolicy extends java.lang.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
Fields Modifier and Type Field Description 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 millisecondsprotected static long
ONE_WEEK
One week in millisecondsprotected static java.util.Set<java.lang.String>
ONE_WEEK_METHODS
Contains method names for all requests that should be cached 1 week
-
Constructor Summary
Constructors Constructor Description DefaultExpirationPolicy()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description long
getExpirationTime(java.lang.String method, java.util.Map<java.lang.String,java.lang.String> params)
Returns the time in milliseconds a request of the given method should be cached.void
setCacheRecentWeeklyCharts(long cacheRecentWeeklyCharts)
-
-
-
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 java.util.Set<java.lang.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 thesetCacheRecentWeeklyCharts(long)
method to set this value. This variable also applies to the getWeeklyChartList method
-
-
Method Detail
-
getExpirationTime
public long getExpirationTime(java.lang.String method, java.util.Map<java.lang.String,java.lang.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 interfaceExpirationPolicy
- Parameters:
method
- The method calledparams
- The parameters sent- Returns:
- the time the request should be cached in milliseconds
-
setCacheRecentWeeklyCharts
public void setCacheRecentWeeklyCharts(long cacheRecentWeeklyCharts)
-
-