Schnittstelle BaseIndex<E extends Enum<E>>

Typparameter:
E - Spaltentyp
Alle Superschnittstellen:
AutoCloseable
Alle bekannten Unterschnittstellen:
ArchiveTimeIndex, DataIndexIndex, DataTimeIndex
Alle bekannten Implementierungsklassen:
AbstractIndex, ArchiveTimeIndexImpl, ContainerManagementIndex, DataIndexAndArchiveTimeIndex, DataIndexIndexImpl, DataTimeIndexImpl

public interface BaseIndex<E extends Enum<E>> extends AutoCloseable
Basis-Implementierung für Indexe
  • Methodendetails

    • query

      IndexResult<E> query(Map<E,LongRange> query) throws IndexException
      Ermittelt alle Index-Zeilen, die zu der angegebenen Anfrage passen. Das Ergebnis wird performant ermittelt, indem alle bekannten Einschränkungen ausgewertet werden. Wird nach Spalten eingeschränkt, die nicht im Index vorkommen, dann werden ggf. überflüssige Zeilen/Container usw. zurückgegeben. Hier muss dann der Anfrager entsprechend selbst filtern.
      Parameter:
      query - Anfrage. Zu jeder Spalte in dem Index kann ein von/bis-Bereich angegeben werden, zu dem Container geliefert werden sollen. Wie für Archivdaten üblich, wird als erster Container ggf. der Container zurückgegeben, der den letzten Datensatz vor dem Anfragezeitraum enthält.
      Gibt zurück:
      Ein IndexResult, der die Ergebnistabelle enthält
      Löst aus:
      IndexException - Lesefehler oder korrupter Index
    • query

      IndexResult<E> query() throws IndexException
      Ermittelt alle Index-Zeilen
      Gibt zurück:
      Ein IndexResult, der die Ergebnistabelle enthält
      Löst aus:
      IndexException - Lesefehler oder korrupter Index
    • setInsertValue

      void setInsertValue(E column, long value)
      Setzt einen Wert der Einfügezeile, die später mit insert() eingefügt werden kann.
      Parameter:
      column - Spalte
      value - Wert
    • setInsertValue

      void setInsertValue(E column, String value)
      Setzt einen Wert der Einfügezeile, die später mit insert() eingefügt werden kann.
      Parameter:
      column - Spalte
      value - Wert
    • first

      IndexResult<E> first() throws IndexException
      Gibt den ersten (der Sortierung nach am kleinsten) Eintrag zurück (der am Dateianfang gespeichert ist)
      Gibt zurück:
      IndexResult mit einem oder 0 Einträgen (falls der Index leer ist)
      Löst aus:
      IndexException - Lesefehler
    • insert

      void insert() throws IndexException
      Fügt die vorher mit setInsertValue(Enum, long) gesetzten Werte in den Index ein.
      Löst aus:
      IndexException - Lesefehler der Indexe (z. B. korrupt)
    • insertOrReplace

      void insertOrReplace() throws IndexException
      Fügt die vorher mit setInsertValue(Enum, long) gesetzten Werte in den Index ein oder überschreibt den bisher gespeicherten Wert. Welcher Wert überschrieben wird, ergibt sich aus Spalten, die eindeutige Werte (Primärschlüssel) enthalten. Ist keine passende Zeile vorhanden, wird eine neue erstellt.
      Löst aus:
      IndexException - Lesefehler der Indexe (z. B. korrupt)
    • insert

      void insert(boolean onlyCheck) throws IndexException
      Fügt die vorher mit setInsertValue(Enum, long) gesetzten Werte in den Index ein oder prüft, ob das funktionieren würde.
      Parameter:
      onlyCheck - falls true wird nur geprüft, ob die neuen Werte eingefügt werden können, ohne dass die Monotoniebedingungen verletzt werden würden.
      Löst aus:
      IndexException - Lesefehler der Indexe (z. B. korrupt)
    • insertOrReplace

      void insertOrReplace(boolean onlyCheck) throws IndexException
      Fügt die vorher mit setInsertValue(Enum, long) gesetzten Werte in den Index ein oder überschreibt den bisher gespeicherten Wert. Welcher Wert überschrieben wird, ergibt sich aus Spalten, die eindeutige Werte (Primärschlüssel) enthalten. Ist keine passende Zeile vorhanden, wird eine neue erstellt.
      Parameter:
      onlyCheck - falls true wird nur geprüft, ob die neuen Werte eingefügt werden können, ohne dass die Monotoniebedingungen verletzt werden würden.
      Löst aus:
      IndexException - Lesefehler der Indexe (z. B. korrupt)
    • append

      void append() throws IndexException
      Fügt die vorher mit setInsertValue(Enum, long) gesetzten Werte hinten an den Index an.
      Löst aus:
      IndexException - Lesefehler der Indexe (z. B. korrupt)
    • append

      void append(boolean onlyCheck) throws IndexException
      Fügt die vorher mit setInsertValue(Enum, long) gesetzten Werte hinten an den Index an.
      Parameter:
      onlyCheck - falls true wird nur geprüft, ob die neuen Werte eingefügt werden können, ohne dass die Monotoniebedingungen verletzt werden würden und der Index wird nicht verändert.
      Löst aus:
      IndexException - Lesefehler der Indexe (z. B. korrupt)
    • getLast

      long getLast(E column) throws IndexException
      Gibt den Wert in der letzten Zeile un der angegebenen Spalte zurück
      Parameter:
      column - Spalte
      Gibt zurück:
      Wert
      Löst aus:
      IndexException - Lesefehler oder es gibt keinen aktuellen Eintrag
    • getFirst

      long getFirst(E column) throws IndexException
      Gibt den Wert in der ersten Zeile un der angegebenen Spalte zurück
      Parameter:
      column - Spalte
      Gibt zurück:
      Wert
      Löst aus:
      IndexException - Lesefehler oder es gibt keinen aktuellen Eintrag
    • close

      void close() throws IndexException
      Schließt den Index und speichert alle geänderten Daten auf Platte. Nach dem Aufruf von close() darf die Index-Instanz nicht mehr verwendet werden.
      Angegeben von:
      close in Schnittstelle AutoCloseable
      Löst aus:
      IndexException - Lesefehler der Indexe (z. B. korrupt)
    • getFile

      Path getFile()
      Gibt die Datei zurück
      Gibt zurück:
      die Datei, in der der Index gespeichert wird.
    • removeAll

      void removeAll(Map<E,LongRange> query) throws IndexException
      Löscht alle Einträge, die query(Map) mit dem entsprechenden Parameter zurückliefern würde. (Ausnahme: Der letzte Container vor dem Anfragebereich, der ggf. als initialer Anfangswert zurückgegeben würde, wird nicht gelöscht).
      Parameter:
      query - Anfrage (siehe query(Map))
      Löst aus:
      IndexException - Lese-/Schreibfehler der Indexe (z. B. korrupt)
    • numEntries

      long numEntries()
      Anzahl der Einträge, die dieser Index speichert
      Gibt zurück:
      Anzahl der Einträge
    • flush

      void flush() throws IndexException
      Schreibt den Index auf die Festplatte
      Löst aus:
      IndexException - Lese-/Schreibfehler der Indexe (z. B. korrupt)