/*
* Created on Apr 7, 2006
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*
* Copyright @2006 the original author or authors.
*/
package org.springmodules.cache.impl;
/**
* Manages creation, access and destruction of caches.
*
* @author Alex Ruiz
*
*/
public interface CacheManager {
/**
* Adds a new cache to this manager.
*
* @param cacheName
* the name of the cache to add
* @param cache
* the cache to add
* @throws CacheAlreadyExistsException
* if there is already a cache stored under the given name
*/
void addCache(String cacheName, Cache cache)
throws CacheAlreadyExistsException;
/**
* Retrieves a reference to a cache.
*
* @param cacheName
* the name of the cache to retrieve
* @return the cache which name matches the specified String or
* <code>null</code> if there is none
*/
Cache getCache(String cacheName);
/**
* Shuts down the cache manager and destroys its cache(s).
*/
void shutDown();
}