Class 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 milliseconds
      protected static long ONE_WEEK
      One week in milliseconds
      protected static java.util.Set<java.lang.String> ONE_WEEK_METHODS
      Contains method names for all requests that should be cached 1 week
    • 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)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

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