Class SystemObjectCache<K extends SystemObject,​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.
    • 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 Detail

      • SystemObjectCache

        public SystemObjectCache()
    • 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)
      • 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