Class MutableSetStorage

java.lang.Object
de.bsvrz.puk.config.configFile.datamodel.MutableSetStorage
Direct Known Subclasses:
MutableSetConfigDataStorage, MutableSetExtFileStorage, TransientMutableSetStorage

public abstract class MutableSetStorage
extends java.lang.Object
Interface um die Speicherung einer dynamischem Menge (ConfigMutableSet) zu realisieren. Diese werden entweder als Konfigurationsdatensatz oder als eigene Datei gespeichert, je nach Implementierung
  • Constructor Summary

    Constructors
    Constructor Description
    MutableSetStorage()  
  • Method Summary

    Modifier and Type Method Description
    void add​(java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> addedElements, short simulationVariant)
    Fügt Objekte zu der Menge hinzu
    java.util.List<java.lang.Long> deleteElements​(short simulationVariant)
    Löscht Objekte einer angegebenen Simulation permanent und vollständig aus dieser Menge (z.
    java.util.List<java.lang.Long> deleteElementsOlderThan​(long deletionTime)
    Entfernt alle historischen (ungültigen) Elemente, die vor dem angegebenen Zeitstempel auf ungültig gesetzt wurden
    java.util.List<de.bsvrz.puk.config.configFile.datamodel.MutableSetStorage.MutableElement> getMutableElements()
    Gibt alle aktuell enthaltenen Elemente zurück.
    void invalidate​(java.util.Collection<java.lang.Long> removedElements, short simulationVariant)
    Macht Objektreferenzen in der Menge ungültig
    void purgeCache()  
    protected abstract java.util.List<de.bsvrz.puk.config.configFile.datamodel.MutableSetStorage.MutableElement> readElements()
    Gibt alle bisher gespeicherten Elemente (auch ungültige/gelöschte) zurück.
    protected abstract void writeElements​(java.util.List<de.bsvrz.puk.config.configFile.datamodel.MutableSetStorage.MutableElement> mutableElements)
    Schreibt eine Menge von Mengenelementen in den dahinterliegenden Speicher (etweder Konfigurationsdaten oder externe Datei).

    Methods inherited from class java.lang.Object

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

    • MutableSetStorage

      public MutableSetStorage()
  • Method Details

    • add

      public final void add​(java.util.Collection<de.bsvrz.dav.daf.main.config.SystemObject> addedElements, short simulationVariant) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Fügt Objekte zu der Menge hinzu
      Parameters:
      addedElements - Objekte
      simulationVariant - Simulationsvariante
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • invalidate

      public final void invalidate​(java.util.Collection<java.lang.Long> removedElements, short simulationVariant) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Macht Objektreferenzen in der Menge ungültig
      Parameters:
      removedElements - Objekte, die nicht mehr in der Menge enthalten sein sollen
      simulationVariant - Simulationsvariante
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • deleteElements

      public final java.util.List<java.lang.Long> deleteElements​(short simulationVariant) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Löscht Objekte einer angegebenen Simulation permanent und vollständig aus dieser Menge (z. B. beim Beenden einer Simulation)
      Parameters:
      simulationVariant - Simulationsvariante
      Returns:
      Liste mit gelöschten Objekten
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • deleteElementsOlderThan

      public final java.util.List<java.lang.Long> deleteElementsOlderThan​(long deletionTime) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Entfernt alle historischen (ungültigen) Elemente, die vor dem angegebenen Zeitstempel auf ungültig gesetzt wurden
      Parameters:
      deletionTime - Zeitstempel analog zu System.currentTimeMillis()
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • writeElements

      protected abstract void writeElements​(java.util.List<de.bsvrz.puk.config.configFile.datamodel.MutableSetStorage.MutableElement> mutableElements) throws de.bsvrz.dav.daf.main.config.ConfigurationChangeException
      Schreibt eine Menge von Mengenelementen in den dahinterliegenden Speicher (etweder Konfigurationsdaten oder externe Datei). Die Reihenfolge bzw. der Index der Elemente entspricht dem neuesten Aufruf von readElements(). Es können aber Objekte am Ende gelöscht und oder eingefügt werden.
      Parameters:
      mutableElements - Liste mit zu schreibenen Elementen
      Throws:
      de.bsvrz.dav.daf.main.config.ConfigurationChangeException
    • readElements

      protected abstract java.util.List<de.bsvrz.puk.config.configFile.datamodel.MutableSetStorage.MutableElement> readElements()
      Gibt alle bisher gespeicherten Elemente (auch ungültige/gelöschte) zurück. Die Elemente sollen in der Reihenfolge zurückgegeben werden, wie sie in der Datei stehen.

      Die zurückgegebene Liste wird vom Aufrufer ggf. modifiziert, darf also nicht von der implementierenden Klasse gecacht werden.

      Returns:
      Liste mit allen Elementen des Sets (enthält Objektreferenz, Gültigkeit, Simulationsvariante)
    • getMutableElements

      public final java.util.List<de.bsvrz.puk.config.configFile.datamodel.MutableSetStorage.MutableElement> getMutableElements()
      Gibt alle aktuell enthaltenen Elemente zurück.
      Returns:
      eine Liste von Elementen mit Zeitstempeln, die die Zugehörigkeitszeiträume repräsentieren
    • purgeCache

      public void purgeCache()