Class CombineDataIterator

java.lang.Object
de.bsvrz.ars.ars.persistence.iter.CombineDataIterator
All Implemented Interfaces:
DataIterator, java.lang.AutoCloseable
Direct Known Subclasses:
TimeSpecificationCombineDataIterator

public class CombineDataIterator
extends java.lang.Object
implements DataIterator
Diese Klasse kombiniert mehrere parallel laufende Iteratoren um daraus einen einzelnen Iterator zu erstellen, der alle Daten enthält. Die Daten werden dabei entweder Anhand ihrer Datenzeit oder ihres Datenindex einsortiert.
  • Constructor Summary

    Constructors
    Constructor Description
    CombineDataIterator​(java.util.Collection<DataSequence> containerSequences, de.bsvrz.dav.daf.main.archive.ArchiveOrder order, java.util.zip.Inflater inflater)
    Konstruktor zum Kombinieren von mehreren DataSequence-Objekten
  • Method Summary

    Modifier and Type Method Description
    void close()
    Terminiert das iterieren.
    ContainerManagementData getContainerManagementData()
    Gibt die Containerheaderdaten des Containers des aktuell betrachteten Datensatzes zurück
    de.bsvrz.dav.daf.main.archive.ArchiveOrder getOrder()
    Gibt die Sortierung zurück
    boolean isEmpty()
    Gibt true zurück, wenn der Iterator erschöpft ist.
    void peek​(ContainerDataResult result)
    Kopiert die Daten des aktuellen Elements in das angegebene Result-Objekt.
    long peekArchiveTime()
    Ruft die aktuelle Archivzeit ab.
    long peekDataIndex()
    Ruft den aktuellen Datenindex ab.
    long peekDataTime()
    Ruft die aktuelle Datenzeit ab.
    ContainerDataResult peekNext()
    Gibt Daten des auf die gültige Sequenz folgenden Datensatzes zurück, damit kann dann unter anderem bestimmt werden, wie lange der Datensatz gültig ist.
    void remove()
    Entfernt das aktuelle Element.
    protected void updateDelegate()  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface de.bsvrz.ars.ars.persistence.iter.DataIterator

    poll
  • Constructor Details

  • Method Details

    • peek

      public void peek​(ContainerDataResult result) throws PersistenceException
      Description copied from interface: DataIterator
      Kopiert die Daten des aktuellen Elements in das angegebene Result-Objekt. Dies ist eine Optimierung, damit nicht ständig neue Result-Objekt angelegt werden müssen.
      Specified by:
      peek in interface DataIterator
      Parameters:
      result - Ziel-Element
      Throws:
      PersistenceException
    • peekDataIndex

      public long peekDataIndex()
      Description copied from interface: DataIterator
      Ruft den aktuellen Datenindex ab. Entspricht
      
           ContainerDataResult result = new ContainerDataResult()
           this.peek(result)
           return result.getDataIndex()
       
      ist aber wahrscheinlich performanter.
      Specified by:
      peekDataIndex in interface DataIterator
      Returns:
      Datenindex des aktuellen Elements
    • peekDataTime

      public long peekDataTime()
      Description copied from interface: DataIterator
      Ruft die aktuelle Datenzeit ab. Entspricht
      
           ContainerDataResult result = new ContainerDataResult()
           this.peek(result)
           return result.getDataTime()
       
      ist aber wahrscheinlich performanter.
      Specified by:
      peekDataTime in interface DataIterator
      Returns:
      Datenzeit des aktuellen Elements
    • peekArchiveTime

      public long peekArchiveTime()
      Description copied from interface: DataIterator
      Ruft die aktuelle Archivzeit ab. Entspricht
      
       ContainerDataResult result = new ContainerDataResult()
       this.peek(result)
       return result.getArchiveTime()
       
      ist aber wahrscheinlich performanter.
      Specified by:
      peekArchiveTime in interface DataIterator
      Returns:
      Archivzeit des aktuellen Elements
    • remove

      Description copied from interface: DataIterator
      Entfernt das aktuelle Element.
      Specified by:
      remove in interface DataIterator
      Throws:
      PersistenceException
      SynchronizationFailedException
    • updateDelegate

      protected final void updateDelegate()
    • isEmpty

      public boolean isEmpty()
      Description copied from interface: DataIterator
      Gibt true zurück, wenn der Iterator erschöpft ist. Ist das der Fall liefern alle anderen Funktionen außer close() NoSuchElementExceptions.
      Specified by:
      isEmpty in interface DataIterator
      Returns:
      true, wenn der Iterator erschöpft ist, sonst false
    • peekNext

      Description copied from interface: DataIterator
      Gibt Daten des auf die gültige Sequenz folgenden Datensatzes zurück, damit kann dann unter anderem bestimmt werden, wie lange der Datensatz gültig ist. Diese Methode darf nur aufgerufen werden, wenn DataIterator.isEmpty() true zurückliefert.
      Specified by:
      peekNext in interface DataIterator
      Returns:
      Ziel-Element oder null falls es keinen nächsten Datensatz gibt
      Throws:
      PersistenceException
      SynchronizationFailedException
    • close

      public void close()
      Description copied from interface: DataIterator
      Terminiert das iterieren. Hierdurch werden alle ggf. noch offenen Containerdateien geschlossen.
      Specified by:
      close in interface java.lang.AutoCloseable
      Specified by:
      close in interface DataIterator
    • getContainerManagementData

      public ContainerManagementData getContainerManagementData() throws PersistenceException
      Description copied from interface: DataIterator
      Gibt die Containerheaderdaten des Containers des aktuell betrachteten Datensatzes zurück
      Specified by:
      getContainerManagementData in interface DataIterator
      Returns:
      ContainerManagementData
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis
    • getOrder

      public de.bsvrz.dav.daf.main.archive.ArchiveOrder getOrder()
      Gibt die Sortierung zurück
      Returns:
      die Sortierung