public class BOCache extends java.lang.Object implements CacheFetcherI, DBManEventListenerI, BOCacheI, DependencyCalculatorI
CacheFetcherI
,
DBManEventListenerI
,
BOCacheI
,
DependencyCalculatorI
Constructor and Description |
---|
BOCache(java.lang.String _title,
java.lang.Class<? extends BO> _clazz,
BOLoaderI _cacheLoader)
Initializes a new instance of the BOCache class with the provided parameters.
|
BOCache(java.lang.String _title,
java.lang.Class<? extends BO> _clazz,
BOLoaderI _cacheLoader,
CacheFetcherI _fetcher)
Initializes a new instance of the BOCache class with the provided parameters.
|
BOCache(java.lang.String _title,
java.lang.Class<? extends BO> _clazz,
BOLoaderI _cacheLoader,
CacheFetcherI _fetcher,
DependencyCalculatorI _dependencyCalculator) |
BOCache(java.lang.String _title,
java.lang.Class<? extends BO> _clazz,
BOLoaderI _cacheLoader,
CacheFetcherI _fetcher,
DependencyCalculatorI _dependencyCalculator,
java.lang.Class[] _dependentClasses) |
BOCache(java.lang.String _title,
java.lang.Class<? extends BO> _clazz,
BOLoaderI _cacheLoader,
CacheFetcherI _fetcher,
DependencyCalculatorI _dependencyCalculator,
java.lang.Class[] _dependentClasses,
CacheKeyCalculatorI _cacheKeyCalculator) |
BOCache(java.lang.String _title,
java.lang.Class<? extends BO> _clazz,
BOLoaderI _cacheLoader,
java.lang.String _query)
Initializes a new instance of the BOCache class with the provided parameters.
|
BOCache(java.lang.String _title,
java.lang.Class<? extends BO> _clazz,
BOLoaderI _cacheLoader,
java.lang.String _query,
CacheKeyCalculatorI _cacheKeyCalculator)
Initializes a new instance of the BOCache class with the provided parameters.
|
BOCache(java.lang.String _title,
java.lang.Class<? extends BO> _clazz,
BOLoaderI _cacheLoader,
java.lang.String _query,
DependencyCalculatorI _dependencyCalculator) |
BOCache(java.lang.String _title,
java.lang.Class<? extends BO> _clazz,
BOLoaderI _cacheLoader,
java.lang.String _query,
DependencyCalculatorI _dependencyCalculator,
java.lang.Class[] _dependentClasses) |
Modifier and Type | Method and Description |
---|---|
long[] |
calculateDependencies(java.lang.Object key,
java.lang.Object value)
This method calculates for a given object the ids of objects, which can invalidate
the cached state.
|
void |
clear() |
java.lang.Object |
computeIfAbsent(java.lang.Object key,
java.util.function.Function computeFunction) |
boolean |
contains(java.lang.Object key) |
java.lang.Object |
fetch(java.lang.Object key)
Fetches an object corresponding to the given key from the cache or the database
using the cache loader.
|
java.lang.Object |
fetch(java.lang.Object key,
boolean silent) |
java.lang.Object[] |
fetchAll(java.lang.Object[] keys)
Returns an array of objects fetched from the cache, given an array of keys.
|
static void |
flushCaches() |
BOI |
get(java.lang.Object key) |
BOI[] |
get(java.lang.Object[] keys) |
BOI[] |
get(java.lang.Object[] keys,
boolean dontCacheNulls) |
BOI[] |
get(java.lang.Object[] keys,
boolean dontCacheNulls,
boolean dontFetch) |
BOI |
get(java.lang.Object key,
boolean dontCacheNulls) |
BOI |
get(java.lang.Object key,
boolean dontCacheNulls,
boolean dontFetch) |
static BO |
getCachedInstance(java.lang.Class<? extends BO> c,
java.lang.String keyAttrName,
java.lang.Object key,
java.lang.String q,
BOLoaderI makeLoadedBy)
Retrieves a Business Object (BO) instance from the cache or the database, based on the given parameters.
|
static BO |
getCachedInstance(java.lang.Class<? extends BO> c,
java.lang.String keyAttrName,
java.lang.Object key,
java.lang.String q,
BOLoaderI makeLoadedBy,
boolean dontCacheNulls) |
static BO |
getCachedInstance(java.lang.Class<? extends BO> c,
java.lang.String keyAttrName,
java.lang.Object key,
java.lang.String q,
BOLoaderI makeLoadedBy,
boolean dontCacheNulls,
java.lang.String cacheName) |
static BO |
getCachedInstance(java.lang.Class<? extends BO> c,
java.lang.String keyAttrName,
java.lang.Object key,
java.lang.String q,
BOLoaderI makeLoadedBy,
boolean dontCacheNulls,
java.lang.String cacheName,
BOLoaderI fallbackCacheLoader) |
BOLoaderI |
getCacheLoader()
Returns the
de.ipcon.db.core.BOLoaderI object that is used for loading objects into this cache. |
java.lang.Class |
getExpectedKeyClass() |
static void |
initStaticCacheLoader(BOLoaderI bol) |
void |
processDBManEvent(DBManEvent e)
Invoked when a subscribed DBManEvent occurs.
|
void |
put(java.lang.Object key,
java.lang.Object value) |
void |
remove(java.lang.Object key) |
public BOCache(java.lang.String _title, java.lang.Class<? extends BO> _clazz, BOLoaderI _cacheLoader)
_title
- the title or name of the cache_clazz
- the Class
object of the BO that the cache is designed to handle_cacheLoader
- the cache loader to be used for loading BOs into the cachepublic BOCache(java.lang.String _title, java.lang.Class<? extends BO> _clazz, BOLoaderI _cacheLoader, CacheFetcherI _fetcher)
_title
- the title or name of the cache_clazz
- the Class
object of the BO that the cache is designed to handle_cacheLoader
- the cache loader to be used for loading BOs into the cache_fetcher
- the cache fetcher providing a callback to fetch missing values_dependencyCalculator
- the dependency calculator to extend the change lister to additional BOs a cached value depends on and
invalidate the cached state depending on the calculated dependencies between BOs_dependentClasses
- an array of classes that are dependent on the BO class, to be used by the dependency calculator_cacheKeyCalculator
- the cache key calculator to be used for calculating cache keyspublic BOCache(java.lang.String _title, java.lang.Class<? extends BO> _clazz, BOLoaderI _cacheLoader, CacheFetcherI _fetcher, DependencyCalculatorI _dependencyCalculator)
public BOCache(java.lang.String _title, java.lang.Class<? extends BO> _clazz, BOLoaderI _cacheLoader, CacheFetcherI _fetcher, DependencyCalculatorI _dependencyCalculator, java.lang.Class[] _dependentClasses)
public BOCache(java.lang.String _title, java.lang.Class<? extends BO> _clazz, BOLoaderI _cacheLoader, CacheFetcherI _fetcher, DependencyCalculatorI _dependencyCalculator, java.lang.Class[] _dependentClasses, CacheKeyCalculatorI _cacheKeyCalculator)
public BOCache(java.lang.String _title, java.lang.Class<? extends BO> _clazz, BOLoaderI _cacheLoader, java.lang.String _query)
_title
- the title or name of the cache_clazz
- the Class
object of the BO that the cache is designed to handle_cacheLoader
- the cache loader to be used for loading BOs into the cache_query
- the query to be used for fetching missing BOs_dependencyCalculator
- the dependency calculator to extend the change lister to additional BOs a cached value depends on and
invalidate the cached state depending on the calculated dependencies between BOs_dependentClasses
- an array of classes that are dependent on the BO class, to be used by the dependency calculatorpublic BOCache(java.lang.String _title, java.lang.Class<? extends BO> _clazz, BOLoaderI _cacheLoader, java.lang.String _query, DependencyCalculatorI _dependencyCalculator)
public BOCache(java.lang.String _title, java.lang.Class<? extends BO> _clazz, BOLoaderI _cacheLoader, java.lang.String _query, DependencyCalculatorI _dependencyCalculator, java.lang.Class[] _dependentClasses)
public BOCache(java.lang.String _title, java.lang.Class<? extends BO> _clazz, BOLoaderI _cacheLoader, java.lang.String _query, CacheKeyCalculatorI _cacheKeyCalculator)
_title
- the title or name of the cache_clazz
- the Class
object of the BO that the cache is designed to handle_cacheLoader
- the cache loader to be used for loading BOs into the cache_query
- the query to be used for fetching missing BOs_cacheKeyCalculator
- the cache key calculator to be used for calculating cache keyspublic static void initStaticCacheLoader(BOLoaderI bol)
public static void flushCaches()
public static BO getCachedInstance(java.lang.Class<? extends BO> c, java.lang.String keyAttrName, java.lang.Object key, java.lang.String q, BOLoaderI makeLoadedBy)
c
- the Class
object of the BO to be loadedkeyAttrName
- The name of the "primary key" attribute that is used to get the value of the key.
This is used to identify the correct cache and create a standard SingleAttributeCacheKeyCalculator that enables correct cache
invalidation based on events.key
- the value of the "primary key" attribute that uniquely identifies the BO instance to fetch from the cacheq
- the query to fetch the BO instance from the databasemakeLoadedBy
- if provided, the returned BO instance will have this BOLoaderI
set as the loader instead of the
static cache loader with which it might have been loadeddontCacheNulls
- if true, null values will not be cachedcacheName
- A custom name for the cache to use.fallbackCacheLoader
- a BOLoaderI
that can be used as a fallback when no static cache loader is available.
This parameter is typically used in special cases during update scripts, and should not be used in normal operation.java.lang.IllegalStateException
- if no usable cache loader is found to retrieve the BO from the cache or database.public static BO getCachedInstance(java.lang.Class<? extends BO> c, java.lang.String keyAttrName, java.lang.Object key, java.lang.String q, BOLoaderI makeLoadedBy, boolean dontCacheNulls)
public static BO getCachedInstance(java.lang.Class<? extends BO> c, java.lang.String keyAttrName, java.lang.Object key, java.lang.String q, BOLoaderI makeLoadedBy, boolean dontCacheNulls, java.lang.String cacheName)
public static BO getCachedInstance(java.lang.Class<? extends BO> c, java.lang.String keyAttrName, java.lang.Object key, java.lang.String q, BOLoaderI makeLoadedBy, boolean dontCacheNulls, java.lang.String cacheName, BOLoaderI fallbackCacheLoader)
public void processDBManEvent(DBManEvent e)
DBManEventListenerI
DBManBOChangeEvent
for events triggered after modification on BOs.processDBManEvent
in interface DBManEventListenerI
public BOLoaderI getCacheLoader()
de.ipcon.db.core.BOLoaderI
object that is used for loading objects into this cache.
Use with caution as its use is only intended for a specific scenario where a different CacheFetcherI
might use it.de.ipcon.db.core.BOLoaderI
object used for loading objects into this cache.public long[] calculateDependencies(java.lang.Object key, java.lang.Object value)
DependencyCalculatorI
calculateDependencies
in interface DependencyCalculatorI
key
- The cache key of the object, does not have to be a Long, FIXME is it nullable or nonnull?value
- The currently cached value which might depend on other objects. Nullablepublic java.lang.Class getExpectedKeyClass()
getExpectedKeyClass
in interface CacheFetcherI
public java.lang.Object fetch(java.lang.Object key)
fetch
in interface CacheFetcherI
key
- the key corresponding to the object to be fetchedsilent
- a flag indicating whether to suppress any error messagesjava.lang.IllegalArgumentException
- if more than one object for the given key existspublic java.lang.Object fetch(java.lang.Object key, boolean silent)
public java.lang.Object[] fetchAll(java.lang.Object[] keys)
fetchAll
in interface CacheFetcherI
keys
- an array of keys of the objects to fetch.public BOI get(java.lang.Object key, boolean dontCacheNulls)
public BOI get(java.lang.Object key, boolean dontCacheNulls, boolean dontFetch)
public BOI[] get(java.lang.Object[] keys, boolean dontCacheNulls)
public BOI[] get(java.lang.Object[] keys, boolean dontCacheNulls, boolean dontFetch)
public void put(java.lang.Object key, java.lang.Object value)
public java.lang.Object computeIfAbsent(java.lang.Object key, java.util.function.Function computeFunction)
computeIfAbsent
in interface CacheI
Copyright © 2000-2024 OAshi S.à r.l. All Rights Reserved.