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 verwenden
    V 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()  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SystemObjectCache

      public SystemObjectCache()
  • Method Details

    • 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)
    • put

      public V put​(K key, V value)
    • remove

      public V remove​(java.lang.Object key)
    • putAll

      public void putAll​(java.util.Map<? extends K,​? extends V> m)
    • clear

      public void clear()
    • forgetDataModel

      public void forgetDataModel​(DataModel dataModel)
      Löscht alle Keys, die das angegeben Datenmodell verwenden
      Parameters:
      dataModel - Datenmodell