Save This Page
Home » oscache-2.4.1-full » com.opensymphony.oscache » base » persistence » [javadoc | source]
    1   /*
    2    * Copyright (c) 2002-2003 by OpenSymphony
    3    * All rights reserved.
    4    */
    5   package com.opensymphony.oscache.base.persistence;
    6   
    7   import com.opensymphony.oscache.base.Config;
    8   
    9   import java.util.Set;
   10   
   11   /**
   12    * Defines the methods that are required to persist cache data.
   13    * To provide a custom persistence mechanism you should implement this
   14    * interface and supply the fully-qualified classname to the cache via
   15    * the <code>cache.persistence.class</code> configuration property.
   16    *
   17    * @version        $Revision: 254 $
   18    * @author <a href="mailto:fbeauregard@pyxis-tech.com">Francois Beauregard</a>
   19    */
   20   public interface PersistenceListener {
   21       /**
   22        * Verify if an object is currently stored in the persistent cache.
   23        *
   24        * @param key The cache key of the object to check.
   25        */
   26       public boolean isStored(String key) throws CachePersistenceException;
   27   
   28       /**
   29        * Verify if a group is currently stored in the persistent cache.
   30        *
   31        * @param groupName The name of the group to check.
   32        */
   33       public boolean isGroupStored(String groupName) throws CachePersistenceException;
   34   
   35       /**
   36        * Clear the entire persistent cache (including the root)
   37        */
   38       public void clear() throws CachePersistenceException;
   39   
   40       /**
   41        * Allow the persistence code to initialize itself based on the supplied
   42        * cache configuration.
   43        */
   44       public PersistenceListener configure(Config config);
   45   
   46       /**
   47        * Removes an object from the persistent cache
   48        */
   49       public void remove(String key) throws CachePersistenceException;
   50   
   51       /**
   52        * Removes a group from the persistent cache.
   53        *
   54        * @param groupName The name of the cache group to remove.
   55        */
   56       public void removeGroup(String groupName) throws CachePersistenceException;
   57   
   58       /**
   59        * Retrieves an object from the persistent cache.
   60        *
   61        * @param key The unique cache key that maps to the object
   62        * being retrieved.
   63        * @return The object, or <code>null</code> if no object was found
   64        * matching the supplied key.
   65        */
   66       public Object retrieve(String key) throws CachePersistenceException;
   67   
   68       /**
   69        * Stores an object in the persistent cache.
   70        *
   71        * @param key The key to uniquely identify this object.
   72        * @param obj The object to persist. Most implementations
   73        * of this interface will require this object implements
   74        * <code>Serializable</code>.
   75        */
   76       public void store(String key, Object obj) throws CachePersistenceException;
   77   
   78       /**
   79        * Stores a group in the persistent cache.
   80        *
   81        * @param groupName The name of the group to persist.
   82        * @param group A set containing the keys of all the <code>CacheEntry</code>
   83        * objects that belong to this group.
   84        */
   85       public void storeGroup(String groupName, Set group) throws CachePersistenceException;
   86   
   87       /**
   88        * Retrieves a group from the persistent cache.
   89        *
   90        * @param groupName The name of the group to retrieve.
   91        * @return The returned set should contain the keys
   92        * of all the <code>CacheEntry</code> objects that belong
   93        * to this group.
   94        */
   95       Set retrieveGroup(String groupName) throws CachePersistenceException;
   96   }

Save This Page
Home » oscache-2.4.1-full » com.opensymphony.oscache » base » persistence » [javadoc | source]