public abstract class SuperKeyedRegistry<K,V> extends Object
getSuperKeys(Object) method. The registry is thread safe and is optimized for lookups. A
 concurrent cache is dynamically updated when a value is retrieved from a super entry. The cache is removed each time
 a modification is made on the registry using put(Object, Object) or remove(Object) methods. Thus,
 for maximum performance you need to avoid modifying the registry after lookups were done: at application startup
 build the registry, at runtime perform lookups, at shutdown remove entries. The root key is passed in the constructor
 and is used to stop looking in super entries.| Modifier and Type | Field and Description | 
|---|---|
protected ConcurrentMap<K,Object> | 
lookup
the cache map used for lookups. 
 | 
protected Map<K,V> | 
registry  | 
| Constructor and Description | 
|---|
SuperKeyedRegistry()  | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
flushCache()  | 
V | 
get(K key)  | 
protected abstract List<K> | 
getSuperKeys(K key)  | 
protected boolean | 
isCachingEnabled(K key)
Override this in order to disable caching some specific keys. 
 | 
protected abstract boolean | 
isRoot(K key)  | 
void | 
put(K key,
   V value)  | 
V | 
remove(K key)  | 
protected volatile ConcurrentMap<K,Object> lookup
public SuperKeyedRegistry()
public void flushCache()
protected abstract List<K> getSuperKeys(K key)
protected boolean isCachingEnabled(K key)
Copyright © 2019 Nuxeo. All rights reserved.