|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.faktorips.runtime.caching.Memoizer<K,V>
public class Memoizer<K,V>
This Memoizer is implemented as suggested by Brian Goetz in Java Concurrency in Practice. It is a
thread safe caching mechanism that loads not stored object by calling a IComputable.
It is extended by the soft reference mechanism so references could be garbage collected in case
of memory needs.
| Constructor Summary | |
|---|---|
Memoizer(IComputable<K,V> computable)
The constructor to create a memoizer with default values for the internal ConcurrentHashMap |
|
Memoizer(IComputable<K,V> computable,
int initSize,
float loadFactor,
int concurrencyLevel)
This constructor needs next to the IComputable also the initial size, the load factor
and the concurrency level. |
|
| Method Summary | |
|---|---|
V |
compute(K key)
Compute an object of type V identified by the key of type K |
Class<? super V> |
getValueClass()
Getting the Class of the value this computable produces. |
static RuntimeException |
launderThrowable(Throwable t)
Coerce an unchecked Throwable to a RuntimeException If the Throwable is an Error, throw it; if it is a RuntimeException return it, otherwise throw IllegalStateException |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public Memoizer(IComputable<K,V> computable)
ConcurrentHashMap
computable - the IComputable to load new items
public Memoizer(IComputable<K,V> computable,
int initSize,
float loadFactor,
int concurrencyLevel)
IComputable also the initial size, the load factor
and the concurrency level. These parameters are only for tuning purpose and are directly
forwarded to the internal ConcurrentHashMap.
computable - The IComputable to load new itemsinitSize - the initial size @see ConcurrentHashMaploadFactor - the load factor @see ConcurrentHashMapconcurrencyLevel - the concurrency level @see ConcurrentHashMap| Method Detail |
|---|
public V compute(K key)
throws InterruptedException
IComputable
compute in interface IComputable<K,V>key - the key to identify the object
InterruptedException - When computation was interruptedpublic static RuntimeException launderThrowable(Throwable t)
public Class<? super V> getValueClass()
IComputableClass of the value this computable produces.
getValueClass in interface IComputable<K,V>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||