Package org.apache.wiki.cache

# Interface CachingManager

All Known Implementing Classes:
  `EhcacheCachingManager`

public interface CachingManager
Cache manager abstraction.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`CACHE_ATTACHMENTS`
Name of the attachment cache.
`static final String`
`CACHE_ATTACHMENTS_COLLECTION`
Name of the collection attachment cache.
`static final String`
`CACHE_ATTACHMENTS_DYNAMIC`
Name of the dynamic attachment cache.
`static final String`
`CACHE_DOCUMENTS`
Name of the rendering cache.
`static final String`
`CACHE_PAGES`
Name of the page cache.
`static final String`
`CACHE_PAGES_HISTORY`
Name of the page history cache.
`static final String`
`CACHE_PAGES_TEXT`
Name of the page text cache.
`static final String`
`PROP_CACHE_CONF_FILE`
The property value with the location of the cache configuration file.
`static final String`
`PROP_CACHE_ENABLE`
The property value for setting the cache on/off.
`static final String`
`PROP_USECACHE_DEPRECATED`
Deprecated.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`enabled(String cacheName)`
Checks if the requested cache is enabled or not.
`<T, E extends Exception>
T`
`get(String cacheName, Serializable key, CheckedSupplier<T,E> supplier)`
Returns an item from a cache.
`CacheInfo`
`info(String cacheName)`
Retrieves cache usage information.
`<T extends Serializable>
List<T>`
`keys(String cacheName)`
Returns the list of keys from elements present in a cache.
`void`
`put(String cacheName, Serializable key, Object val)`
Puts an item on a cache.
`default boolean`
`registerListener(String cacheName, String listener, Object... args)`
Register a listener associated with the given cache and type of listener.
`void`
`remove(String cacheName, Serializable key)`
Removes an item from a cache.
`void`
`shutdown()`
Shuts down the underlying cache manager

## Field Details

### PROP_USECACHE_DEPRECATED

@Deprecated static final String PROP_USECACHE_DEPRECATED
Deprecated.
The property value for setting the cache on/off. Value is "jspwiki.usePageCache". This key is deprecated, use instead `PROP_CACHE_ENABLE`.

See Also:
  - Constant Field Values

### PROP_CACHE_ENABLE

static final String PROP_CACHE_ENABLE
The property value for setting the cache on/off. Value is "jspwiki.cache.enable".

See Also:
  - Constant Field Values

### PROP_CACHE_CONF_FILE

static final String PROP_CACHE_CONF_FILE
The property value with the location of the cache configuration file. Value is "jspwiki.cache.config-file".

See Also:
  - Constant Field Values

### CACHE_ATTACHMENTS

static final String CACHE_ATTACHMENTS
Name of the attachment cache.

See Also:
  - Constant Field Values

### CACHE_ATTACHMENTS_COLLECTION

static final String CACHE_ATTACHMENTS_COLLECTION
Name of the collection attachment cache.

See Also:
  - Constant Field Values

### CACHE_ATTACHMENTS_DYNAMIC

static final String CACHE_ATTACHMENTS_DYNAMIC
Name of the dynamic attachment cache.

See Also:
  - Constant Field Values

### CACHE_PAGES

static final String CACHE_PAGES
Name of the page cache.

See Also:
  - Constant Field Values

### CACHE_PAGES_TEXT

static final String CACHE_PAGES_TEXT
Name of the page text cache.

See Also:
  - Constant Field Values

### CACHE_PAGES_HISTORY

static final String CACHE_PAGES_HISTORY
Name of the page history cache.

See Also:
  - Constant Field Values

### CACHE_DOCUMENTS

static final String CACHE_DOCUMENTS
Name of the rendering cache.

See Also:
  - Constant Field Values

## Method Details

### shutdown

void shutdown()
Shuts down the underlying cache manager

### enabled

boolean enabled(String cacheName)
Checks if the requested cache is enabled or not.

Parameters:
  `cacheName` - The cache to be queried.
Returns:
  `true` if the cache is enabled, `false` otherwise.

### info

CacheInfo info(String cacheName)
Retrieves cache usage information.

Parameters:
  `cacheName` - The cache to be queried.
Returns:
  cache usage information, or `null` if the requested cache is not enabled.

### keys

<T extends Serializable> List<T> keys(String cacheName)
Returns the list of keys from elements present in a cache.

Parameters:
  `cacheName` - The cache to be queried.
Returns:
  list of keys from elements present in a cache.

### get

<T, E extends Exception> T get(String cacheName, Serializable key, CheckedSupplier<T,E> supplier) throws E
Returns an item from a cache. If it is not found on the cache, try to retrieve from the provided supplier. If found there, put the value in the cache, and return it. Otherwise, return `null`.

Parameters:
  `cacheName` - The cache in which the item lives.
  `key` - item's identifier.
  `supplier` - if the element is not cached, try to retrieve from the cached system.
Returns:
  The requested item or `null` if either the cache is not enabled or the item is not present on the cache / cached service.
Throws:
  `E` - the supplier may throw a checked exception, which is propagated upwards.

### put

void put(String cacheName, Serializable key, Object val)
Puts an item on a cache.

Parameters:
  `cacheName` - The cache in which the item will live.
  `key` - item's identifier.
  `val` - item to insert in the cache.

### remove

void remove(String cacheName, Serializable key)
Removes an item from a cache.

Parameters:
  `cacheName` - The cache in which the item to be removed lives.
  `key` - item's identifier.

### registerListener

default boolean registerListener(String cacheName, String listener, Object... args)
Register a listener associated with the given cache and type of listener.

Parameters:
  `cacheName` - the name of the cache where the listener will be registered.
  `listener` - the kind of listener to be registered
  `args` - arguments needed to instantiate and register the listener.
Returns:
  `true` if the listener is created & registered, `false` otherwise.