Class DatabaseCache

java.lang.Object
de.umass.lastfm.cache.Cache
de.umass.lastfm.cache.DatabaseCache

public class DatabaseCache extends Cache
Generic class for caching into a database. It's constructor takes a Connection instance, which must be opened and closed by the client. SQL code used in this class should work with all common databases (which support varchar, timestamp and longvarchar datatypes).
For more specialized versions of this class for different databases one may extend this class and override methods as needed.
Author:
Janni Kovacs
  • Field Details

  • Constructor Details

  • Method Details

    • createTable

      protected void createTable() throws SQLException
      Throws:
      SQLException
    • contains

      public boolean contains(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
    • load

      public InputStream load(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
    • remove

      public void remove(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
    • store

      public void store(String cacheEntryName, 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
    • isExpired

      public boolean isExpired(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