de.umass.lastfm.cache
Class FileSystemCache

java.lang.Object
  extended byde.umass.lastfm.cache.Cache
      extended byde.umass.lastfm.cache.FileSystemCache

public class FileSystemCache
extends Cache

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

Constructor Summary
FileSystemCache()
           
FileSystemCache(File cacheDir)
           
 
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.
 boolean isEmpty()
           
 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
 

Constructor Detail

FileSystemCache

public FileSystemCache()

FileSystemCache

public FileSystemCache(File cacheDir)
Method Detail

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

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

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

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

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

isEmpty

public boolean isEmpty()