Class SystemObjectCache<K extends SystemObject,V>
java.lang.Object
de.bsvrz.dav.daf.communication.dataRepresentation.data.info.version1.SystemObjectCache<K,V>
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 -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
computeIfAbsent
(K key, Function<? super K, ? extends V> mappingFunction) Synchronisierter Zugriff auf das dem angegebenen Schlüssel zugeordnete Objekt.boolean
containsKey
(Object key) boolean
containsValue
(Object value) void
forgetDataModel
(DataModel dataModel) Löscht alle Keys, die das angegeben Datenmodell verwendenboolean
isEmpty()
void
int
size()
-
Constructor Details
-
SystemObjectCache
public SystemObjectCache()
-
-
Method Details
-
size
public int size() -
isEmpty
public boolean isEmpty() -
containsKey
-
containsValue
-
computeIfAbsent
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
-
put
-
remove
-
putAll
-
clear
public void clear() -
forgetDataModel
Löscht alle Keys, die das angegeben Datenmodell verwenden- Parameters:
dataModel
- Datenmodell
-