info.sswap.api.servlet
Class ContentCache

java.lang.Object
  extended by info.sswap.api.servlet.ContentCache

public class ContentCache
extends java.lang.Object

Caches arbitrary user/service content (e.g., resources referenced in an RRG) The underlying cache implementation is currently provided by EHCache

Author:
Blazej Bulka

Nested Class Summary
(package private) static class ContentCache.Entry
          An entry of the cache.
 
Field Summary
private  boolean active
           
private  net.sf.ehcache.CacheManager cacheManager
          EHCache CacheManager
private static java.lang.String EHCACHE_CONF_FILE
          Name of resource that contains EHCache configuration file
private static ContentCache instance
          Singleton instance of this class
 
Constructor Summary
private ContentCache()
          Private constructor (to be accessed only when creating the singleton instance)
 
Method Summary
static ContentCache get()
          Accessor for the singleton instance
 ContentCache.Entry get(java.lang.String token)
          Gets an entry for a (possibly future) RRG.
private  net.sf.ehcache.Cache getCache()
          Gets the cache used for storing RRGs from EHCache cache manager
 boolean isActive()
           
 void shutdown()
           
 void store(java.lang.String token, byte[] content, java.lang.String contentType)
          Stores a computed RRG, indicating that the computation of an RRG was successful, and allowing its future retrieval by the client.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EHCACHE_CONF_FILE

private static final java.lang.String EHCACHE_CONF_FILE
Name of resource that contains EHCache configuration file

See Also:
Constant Field Values

instance

private static final ContentCache instance
Singleton instance of this class


cacheManager

private net.sf.ehcache.CacheManager cacheManager
EHCache CacheManager


active

private boolean active
Constructor Detail

ContentCache

private ContentCache()
Private constructor (to be accessed only when creating the singleton instance)

Method Detail

get

public static ContentCache get()
Accessor for the singleton instance

Returns:
the singleton instance

getCache

private net.sf.ehcache.Cache getCache()
Gets the cache used for storing RRGs from EHCache cache manager

Returns:
the cache for storing RRGs

store

public void store(java.lang.String token,
                  byte[] content,
                  java.lang.String contentType)
Stores a computed RRG, indicating that the computation of an RRG was successful, and allowing its future retrieval by the client. This call overwrites any previous contents for that token in the cache. (If there is a previous entry in the cache, it should only contain polling interval -- it is safe to overwrite such an entry, since there should be no polling anymore; storing the computed RRG is a terminal state for an RRG computation).

Parameters:
token - the token identifying the RRG that has been computed
content - the "content" (data) to be stored
contentType - "type" of content, such as a MIME type

get

public ContentCache.Entry get(java.lang.String token)
Gets an entry for a (possibly future) RRG. The entry may contain RRG (if the computation has finished successfully), an error message (if the computation failed), or none of the them (in such a case, the entry is a mere indicator that the token is a valid token, and the computation is still being performed; in such a case, the useful information is in suggestedPollingInterval)

Parameters:
token - the token for which the entry should be obtained
Returns:
the entry or null (if there is no entry for this token)

isActive

public boolean isActive()

shutdown

public void shutdown()


Copyright (c) 2011, iPlant Collaborative, University of Arizona, Cold Spring Harbor Laboratories, University of Texas at Austin.