com.atlassian.cache.ehcache
Class EhCacheManager

java.lang.Object
  extended by com.atlassian.cache.ehcache.EhCacheManager
All Implemented Interfaces:
CacheFactory, CacheManager

public class EhCacheManager
extends Object
implements CacheManager

Maintains a mapping of name -> Cache and provides factory methods for creating ad getting caches.

Since:
2.0

Constructor Summary
EhCacheManager()
          Creates an instance backed by a new instance of CacheManager.
EhCacheManager(net.sf.ehcache.CacheManager delegate)
          Creates an instance backed by the provided instance of CacheManager.
 
Method Summary
 void flushCaches()
          Flush the contents of all caches registered with the cache manager
<K,V> Cache<K,V>
getCache(Class<?> owningClass, String name)
          Returns the cache with the given name, creates it if necessary.
<K,V> Cache<K,V>
getCache(String name)
          Returns the cache with the given name, creates it if necessary.
<K,V> Cache<K,V>
getCache(String name, CacheLoader<K,V> loader)
          Returns the cache with the given name and loader, creates it if necessary.
<K,V> Cache<K,V>
getCache(String name, CacheLoader<K,V> loader, CacheSettings settings)
          Returns the cache with the given name, loader and required cache settings, creates it if necessary.
<K,V> Cache<K,V>
getCache(String name, Class<K> keyType, Class<V> valueType)
          Returns a cache with the given name, and the types specified.
<V> CachedReference<V>
getCachedReference(Class<?> owningClass, String name, Supplier<V> supplier)
          Returns a Cached Reference, creating it if necessary.
<V> CachedReference<V>
getCachedReference(Class<?> owningClass, String name, Supplier<V> supplier, CacheSettings required)
          Returns a Cached Reference, creating it if necessary.
<V> CachedReference<V>
getCachedReference(String name, Supplier<V> supplier)
          Returns a Cached Reference, creating it if necessary.
<V> CachedReference<V>
getCachedReference(String name, Supplier<V> supplier, CacheSettings settings)
          Returns a Cached Reference, creating it if necessary.
 Collection<Cache<?,?>> getCaches()
          Gets the collection of caches managed.
 Collection<ManagedCache> getManagedCaches()
          Gets the collection of caches managed.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EhCacheManager

public EhCacheManager()
Creates an instance backed by a new instance of CacheManager.


EhCacheManager

public EhCacheManager(net.sf.ehcache.CacheManager delegate)
Creates an instance backed by the provided instance of CacheManager.

Parameters:
delegate - an Ehcache's cache manager
Method Detail

getCaches

public Collection<Cache<?,?>> getCaches()
Description copied from interface: CacheManager
Gets the collection of caches managed. This collection is not a "live" collection. It is a copy.

Specified by:
getCaches in interface CacheManager
Returns:
a collection of Caches.

getManagedCaches

public Collection<ManagedCache> getManagedCaches()
Description copied from interface: CacheManager
Gets the collection of caches managed. This collection is not a "live" collection. It is a copy.

Specified by:
getManagedCaches in interface CacheManager
Returns:
a collection of ManagedCaches.

flushCaches

public void flushCaches()
Description copied from interface: CacheManager
Flush the contents of all caches registered with the cache manager

Specified by:
flushCaches in interface CacheManager

getCache

public <K,V> Cache<K,V> getCache(@NotNull
                                 String name)
Description copied from interface: CacheFactory
Returns the cache with the given name, creates it if necessary. This is equivalent to calling CacheFactory.getCache(String, CacheLoader) with name and null.

Specified by:
getCache in interface CacheFactory
Parameters:
name - the name of the cache
Returns:
a Cache

getCache

public <K,V> Cache<K,V> getCache(Class<?> owningClass,
                                 String name)
Description copied from interface: CacheFactory
Returns the cache with the given name, creates it if necessary.

It is equivalent to calling CacheFactory.getCache(String) with the computed name.

Specified by:
getCache in interface CacheFactory
Parameters:
owningClass - the owning class
name - the name of the cache spaced within the owningClass
Returns:
a Cache

getCache

public <K,V> Cache<K,V> getCache(String name,
                                 Class<K> keyType,
                                 Class<V> valueType)
Description copied from interface: CacheFactory
Returns a cache with the given name, and the types specified. Creates it if necessary. If two caches of the same name are queries, with different types, the call with incorrect type arguments will throw a ClassCastException. For example with:

Cache firstCache = cacheManager.getCache("myCache", String.class, String.class);
Cache secondCache = cacheManager.getCache("myCache", String.class, Long.class);

the second call to getCache will result in a ClassCastException.

Specified by:
getCache in interface CacheFactory
Parameters:
name - the name of the cache
keyType - the type of keys in the cache. Must extend Serializable
valueType - the type of values in the cache. Must extend Serializable
Returns:
a Cache

getCache

public <K,V> Cache<K,V> getCache(String name,
                                 CacheLoader<K,V> loader)
Description copied from interface: CacheFactory
Returns the cache with the given name and loader, creates it if necessary. This is equivalent to calling CacheFactory.getCache(String, CacheLoader, CacheSettings) with name, null and new CacheSettingsBuilder().build().

Specified by:
getCache in interface CacheFactory
Parameters:
name - the name of the cache
loader - the loader that will be used to provide values for keys that will be added to the cache. null indicates no loader
Returns:
a Cache

getCachedReference

public <V> CachedReference<V> getCachedReference(String name,
                                                 Supplier<V> supplier)
Description copied from interface: CacheFactory
Returns a Cached Reference, creating it if necessary.

Specified by:
getCachedReference in interface CacheFactory
Parameters:
name - the name of the Cached Reference
supplier - the supplier for value to be cached, called if the value needs to be generated
Returns:
the Cached Reference

getCachedReference

public <V> CachedReference<V> getCachedReference(String name,
                                                 Supplier<V> supplier,
                                                 CacheSettings settings)
Description copied from interface: CacheFactory
Returns a Cached Reference, creating it if necessary.

Specified by:
getCachedReference in interface CacheFactory
Parameters:
name - the name of the Cached Reference
supplier - the supplier for value to be cached, called if the value needs to be generated
settings - specifies the required cache settings
Returns:
the Cached Reference

getCachedReference

public <V> CachedReference<V> getCachedReference(Class<?> owningClass,
                                                 String name,
                                                 Supplier<V> supplier)
Description copied from interface: CacheFactory
Returns a Cached Reference, creating it if necessary.

It is equivalent to calling CacheFactory.getCachedReference(String, Supplier, CacheSettings)

Specified by:
getCachedReference in interface CacheFactory
Parameters:
owningClass - the owning class
name - the name of the cache spaced within the owningClass
supplier - the supplier for value to be cached, called if the value needs to be generated
Returns:
the Cached Reference

getCachedReference

public <V> CachedReference<V> getCachedReference(Class<?> owningClass,
                                                 String name,
                                                 Supplier<V> supplier,
                                                 CacheSettings required)
Description copied from interface: CacheFactory
Returns a Cached Reference, creating it if necessary.

It is equivalent to calling CacheFactory.getCachedReference(String, Supplier, CacheSettings)

Specified by:
getCachedReference in interface CacheFactory
Parameters:
owningClass - the owning class
name - the name of the cache spaced within the owningClass
supplier - the supplier for value to be cached, called if the value needs to be generated
required - specifies the required cache settings
Returns:
the Cached Reference

getCache

public <K,V> Cache<K,V> getCache(String name,
                                 CacheLoader<K,V> loader,
                                 CacheSettings settings)
Description copied from interface: CacheFactory
Returns the cache with the given name, loader and required cache settings, creates it if necessary.

Specified by:
getCache in interface CacheFactory
Parameters:
name - the name of the cache
loader - the loader that will be used to provide values for keys that will be added to the cache. null indicates no loader
settings - the cache settings that are required to be set if the cache is created.
Returns:
a Cache


Copyright © 2013 Atlassian. All Rights Reserved.