Class FileSystemCache

  • All Implemented Interfaces:
    ScrobbleCache

    public class FileSystemCache
    extends Cache
    implements ScrobbleCache
    Standard Cache implementation which is used by default by the Caller class. This implementation caches all responses in the file system. In addition to the raw responses it stores a .meta file which contains the expiration date for the specified request.
    Author:
    Janni Kovacs
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void cacheScrobble​(SubmissionData... submissions)
      Caches one or more SubmissionData.
      void cacheScrobble​(java.util.Collection<SubmissionData> submissions)
      Caches a collection of SubmissionData.
      void clear()
      Clears the cache by effectively removing all cached data.
      void clearScrobbleCache()
      Clears all cached scrobbles from this cache.
      boolean contains​(java.lang.String cacheEntryName)
      Checks if the cache contains an entry with the given name.
      boolean isEmpty()
      Checks if the cache contains any scrobbles.
      boolean isExpired​(java.lang.String cacheEntryName)
      Checks if the specified entry is expired.
      java.io.InputStream load​(java.lang.String cacheEntryName)
      Loads the specified entry from the cache and returns an InputStream to be read from.
      void remove​(java.lang.String cacheEntryName)
      Removes the specified entry from the cache if available.
      void scrobble​(Scrobbler scrobbler)
      Tries to scrobble all cached scrobbles.
      void store​(java.lang.String cacheEntryName, java.io.InputStream inputStream, long expirationDate)
      Stores a request in the cache.
      • Methods inherited from class java.lang.Object

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

      • FileSystemCache

        public FileSystemCache()
      • FileSystemCache

        public FileSystemCache​(java.io.File cacheDir)
    • Method Detail

      • contains

        public boolean contains​(java.lang.String cacheEntryName)
        Description copied from class: Cache
        Checks if the cache contains an entry with the given name.
        Specified by:
        contains in class Cache
        Parameters:
        cacheEntryName - An entry name
        Returns:
        true if the cache contains this entry
      • remove

        public void remove​(java.lang.String cacheEntryName)
        Description copied from class: Cache
        Removes the specified entry from the cache if available. Does nothing if no such entry is available.
        Specified by:
        remove in class Cache
        Parameters:
        cacheEntryName - An entry name
      • isExpired

        public boolean isExpired​(java.lang.String cacheEntryName)
        Description copied from class: Cache
        Checks if the specified entry is expired.
        Specified by:
        isExpired in class Cache
        Parameters:
        cacheEntryName - An entry name
        Returns:
        true if the entry is expired
      • clear

        public void clear()
        Description copied from class: Cache
        Clears the cache by effectively removing all cached data.
        Specified by:
        clear in class Cache
      • load

        public java.io.InputStream load​(java.lang.String cacheEntryName)
        Description copied from class: Cache
        Loads the specified entry from the cache and returns an InputStream to be read from. Returns null if the cache does not contain the specified cacheEntryName.
        Specified by:
        load in class Cache
        Parameters:
        cacheEntryName - An entry name
        Returns:
        an InputStream or null
      • store

        public void store​(java.lang.String cacheEntryName,
                          java.io.InputStream inputStream,
                          long expirationDate)
        Description copied from class: Cache
        Stores a request in the cache.
        Specified by:
        store in class Cache
        Parameters:
        cacheEntryName - The entry name to be stored to
        inputStream - An InputStream containing the data to be cached
        expirationDate - The date of expiration represented in milliseconds since 1.1.1970
      • isEmpty

        public boolean isEmpty()
        Description copied from interface: ScrobbleCache
        Checks if the cache contains any scrobbles.
        Specified by:
        isEmpty in interface ScrobbleCache
        Returns:
        true if this cache is empty
      • scrobble

        public void scrobble​(Scrobbler scrobbler)
                      throws java.io.IOException
        Description copied from interface: ScrobbleCache
        Tries to scrobble all cached scrobbles. If it succeeds the cache will be empty afterwards. If this method fails an IOException is thrown and no entries are removed from the cache.
        Specified by:
        scrobble in interface ScrobbleCache
        Parameters:
        scrobbler - A Scrobbler instance
        Throws:
        java.io.IOException - on I/O errors