Class DefaultExpirationPolicy

java.lang.Object
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

    Fields
    Modifier and Type
    Field
    Description
    protected long
    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 final long
    One day in milliseconds
    protected static final long
    One week in milliseconds
    protected static final Set<String>
    Contains method names for all requests that should be cached 1 week
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    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 Details

    • ONE_DAY

      protected static final long ONE_DAY
      One day in milliseconds
      See Also:
    • ONE_WEEK

      protected static final long ONE_WEEK
      One week in milliseconds
      See Also:
    • 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 Details

    • DefaultExpirationPolicy

      public DefaultExpirationPolicy()
  • Method Details

    • 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)