Class MapCacheStoreAdapter
- java.lang.Object
-
- org.craftercms.core.cache.impl.store.MapCacheStoreAdapter
-
- All Implemented Interfaces:
CacheStoreAdapter
public class MapCacheStoreAdapter extends Object implements CacheStoreAdapter
Implementation of aCacheStoreAdapter
using an underlyingMap
.- Author:
- Sumer Jabri, Alfonso Vásquez
-
-
Constructor Summary
Constructors Constructor Description MapCacheStoreAdapter()
Default constructor.MapCacheStoreAdapter(List<String> scopes)
Constructor that receives a list of scopes that need to created.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addScope(String scope, int maxItemsInMemory)
Adds a new scope.void
clearAll()
Clears the contents of the entire store.void
clearScope(String scope)
Clears the contents of the specified scope in the underlying store.CacheItem
get(String scope, Object key)
Retrieves an item from a scope.Collection<Object>
getKeys(String scope)
Returns a list of the keys of the items present in the specified scope.Collection<String>
getScopes()
Returns the scopes managed by the underlying store.int
getSize(String scope)
Returns the quantity of items present in the specified scope.CacheStatistics
getStatistics(String scope)
Returns the statistics of the specified scope from the underlying store.boolean
hasKey(String scope, Object key)
Returns true if there's and item with the specified key in the specified scope.boolean
hasScope(String scope)
Returns true if the specified scope exists in the cache.void
put(CacheItem item)
Puts an item in a scope.boolean
remove(String scope, Object key)
Removes an item from a scope.void
removeScope(String scope)
Removes an existing scope and all the items that are in it.
-
-
-
Constructor Detail
-
MapCacheStoreAdapter
public MapCacheStoreAdapter()
Default constructor. CreatesscopeCaches
as aConcurrentHashMap
-
MapCacheStoreAdapter
public MapCacheStoreAdapter(List<String> scopes)
Constructor that receives a list of scopes that need to created. Each scope is an instance ofConcurrentHashMap
.
-
-
Method Detail
-
hasScope
public boolean hasScope(String scope) throws Exception
Returns true if the specified scope exists in the cache.- Specified by:
hasScope
in interfaceCacheStoreAdapter
- Throws:
Exception
-
getScopes
public Collection<String> getScopes() throws Exception
Returns the scopes managed by the underlying store.- Specified by:
getScopes
in interfaceCacheStoreAdapter
- Throws:
Exception
-
addScope
public void addScope(String scope, int maxItemsInMemory) throws Exception
Adds a new scope. The scope is an instance ofConcurrentHashMap
.- Specified by:
addScope
in interfaceCacheStoreAdapter
- Parameters:
scope
- the name of the scopemaxItemsInMemory
- the maximum number of items in memory, before they are evicted- Throws:
Exception
-
removeScope
public void removeScope(String scope) throws Exception
Removes an existing scope and all the items that are in it.- Specified by:
removeScope
in interfaceCacheStoreAdapter
- Parameters:
scope
- scope to remove- Throws:
Exception
-
getSize
public int getSize(String scope) throws Exception
Returns the quantity of items present in the specified scope.- Specified by:
getSize
in interfaceCacheStoreAdapter
- Returns:
- the size of the scope (quantity of items)
- Throws:
Exception
-
getKeys
public Collection<Object> getKeys(String scope) throws Exception
Returns a list of the keys of the items present in the specified scope.- Specified by:
getKeys
in interfaceCacheStoreAdapter
- Returns:
- a list of the keys of the available items in the scope
- Throws:
Exception
-
hasKey
public boolean hasKey(String scope, Object key) throws Exception
Returns true if there's and item with the specified key in the specified scope.- Specified by:
hasKey
in interfaceCacheStoreAdapter
- Returns:
- true if the key exists in the scope, false otherwise
- Throws:
Exception
-
get
public CacheItem get(String scope, Object key) throws Exception
Retrieves an item from a scope.- Specified by:
get
in interfaceCacheStoreAdapter
- Parameters:
scope
- scope to get the item fromkey
- unique key for the item within this scope- Returns:
- the requested item if found, null otherwise
- Throws:
Exception
-
put
public void put(CacheItem item) throws Exception
Puts an item in a scope. The scope is obtained throughCacheItem.getScope()
.- Specified by:
put
in interfaceCacheStoreAdapter
- Parameters:
item
- the item to put- Throws:
Exception
-
remove
public boolean remove(String scope, Object key) throws Exception
Removes an item from a scope.- Specified by:
remove
in interfaceCacheStoreAdapter
- Parameters:
scope
- scope to remove the item fromkey
- unique key for the item within this scope- Returns:
- true if the removal was successful, false otherwise
- Throws:
Exception
-
clearAll
public void clearAll() throws Exception
Clears the contents of the entire store.- Specified by:
clearAll
in interfaceCacheStoreAdapter
- Throws:
Exception
-
clearScope
public void clearScope(String scope) throws Exception
Clears the contents of the specified scope in the underlying store.- Specified by:
clearScope
in interfaceCacheStoreAdapter
- Parameters:
scope
- scope to clear- Throws:
Exception
-
getStatistics
public CacheStatistics getStatistics(String scope)
Returns the statistics of the specified scope from the underlying store.- Specified by:
getStatistics
in interfaceCacheStoreAdapter
- Parameters:
scope
- scope to inspect- Returns:
- the statistics
-
-