de.umass.lastfm.cache
Class DatabaseCache

java.lang.Object
  extended by de.umass.lastfm.cache.Cache
      extended by 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 Summary
protected  Connection conn
           
protected static String TABLE_NAME
           
 
Constructor Summary
DatabaseCache(Connection connection)
           
 
Method Summary
 void clear()
          Clears the cache by effectively removing all cached data.
 boolean contains(String cacheEntryName)
          Checks if the cache contains an entry with the given name.
protected  void createTable()
           
 boolean isExpired(String cacheEntryName)
          Checks if the specified entry is expired.
 InputStream load(String cacheEntryName)
          Loads the specified entry from the cache and returns an InputStream to be read from.
 void remove(String cacheEntryName)
          Removes the specified entry from the cache if available.
 void store(String cacheEntryName, InputStream inputStream, long expirationDate)
          Stores a request in the cache.
 
Methods inherited from class de.umass.lastfm.cache.Cache
createCacheEntryName, getExpirationPolicy, setExpirationPolicy, setHashCacheEntryNames
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TABLE_NAME

protected static final String TABLE_NAME
See Also:
Constant Field Values

conn

protected Connection conn
Constructor Detail

DatabaseCache

public DatabaseCache(Connection connection)
              throws SQLException
Throws:
SQLException
Method Detail

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