Class SystemObjectCache<K extends SystemObject,V>
- java.lang.Object
-
- de.bsvrz.dav.daf.communication.dataRepresentation.data.info.version1.SystemObjectCache<K,V>
-
public class SystemObjectCache<K extends SystemObject,V> extends java.lang.Object
Map-Ähnliche Klasse, die Systemobjekte als Keys pro Datenmodell verwaltet und so die Objekte eines einzelnen Datenmodells schnell löschen kann. Die Implementierung ist aktuell nicht threadsafe, es muss also extern synchronisiert werden.
-
-
Constructor Summary
Constructors Constructor Description SystemObjectCache()
-
Method Summary
Modifier and Type Method Description void
clear()
V
computeIfAbsent(K key, java.util.function.Function<? super K,? extends V> mappingFunction)
Synchronisierter Zugriff auf das dem angegebenen Schlüssel zugeordnete Objekt.boolean
containsKey(java.lang.Object key)
boolean
containsValue(java.lang.Object value)
void
forgetDataModel(DataModel dataModel)
Löscht alle Keys, die das angegeben Datenmodell verwendenV
get(java.lang.Object key)
boolean
isEmpty()
V
put(K key, V value)
void
putAll(java.util.Map<? extends K,? extends V> m)
V
remove(java.lang.Object key)
int
size()
-
-
-
Method Detail
-
size
public int size()
-
isEmpty
public boolean isEmpty()
-
containsKey
public boolean containsKey(java.lang.Object key)
-
containsValue
public boolean containsValue(java.lang.Object value)
-
computeIfAbsent
public V computeIfAbsent(K key, java.util.function.Function<? super K,? extends V> mappingFunction)
Synchronisierter Zugriff auf das dem angegebenen Schlüssel zugeordnete Objekt. Wenn das gesuchte Objekt nicht enthalten ist, dann wird es mit der angegebenen `mappingFunction` erzeugt und in die Datenstruktur eingetragen. Dabei findet das Erzeugen unsynchronisiert statt. Dadurch kann es passieren, dass das Erzeugen durch zwei Threads gleichzeitig stattfindet. Von den beiden erzeugten Objekten wird nur genau eines in die Datenstruktur eingetragen. Beide Threads liefern dann das selbe Objekt zurück.- Parameters:
key
- Schlüssel des gesuchten Objekts.mappingFunction
- Funktion, die verwendet wird, um ein neues Objekt zu erzeugen, falls noch kein Objekt unter dem angegeben Schlüssel gefunden wurde.- Returns:
- Das dem Key zugeordnete Objekt.
-
get
public V get(java.lang.Object key)
-
remove
public V remove(java.lang.Object key)
-
clear
public void clear()
-
forgetDataModel
public void forgetDataModel(DataModel dataModel)
Löscht alle Keys, die das angegeben Datenmodell verwenden- Parameters:
dataModel
- Datenmodell
-
-