Interface IndexImplementation
public interface IndexImplementation
Ein SpaltenIndex innerhalb eines
AbstractIndex
, hiermit kann über eine Spalte der kleinste oder größte Wert bestimmt werden,
wenn der Index über diese Spalte sortiert abgespeichert ist.-
Method Summary
Modifier and Type Method Description long
findEntryIndex(long searchValue, byte[] tmp)
Findet den Element-Index des Eintrags zu einem Wert in diesem Indexlong
findEntryIndexOrPreviousHighest(long searchValue, byte[] tmp)
Findet den Element-Index des Eintrags zu einem Wert in diesem Index.long
findEntryIndexOrPreviousLowest(long searchValue, byte[] tmp)
Findet den Element-Index des Eintrags zu einem Wert in diesem Index.IndexContentDescriptor.IndexColumn
getColumn()
Die von diesem Objekt indexierte SpalteLongRange
query(LongRange inputRange)
Fragt die Indizes (Zeilennummern) eines Wertebereichs ab.
-
Method Details
-
query
Fragt die Indizes (Zeilennummern) eines Wertebereichs ab. Falls die Spalte, die dieser Index implementiert bspw. Datenzeitwerte enthält, wirdquery(new LongRange(1000, 2000))
den Zeilenbereich (bspw 12...45) zurückliefern, in denen die Werte in diesem Bereich stehen. In dem Fall könnte z. B. Zeile 12 den Wert 999 enthalten (wenn Zeile 13 den Wert 1002 enthält) und Zeile 45 den Wert 1985 (wenn Zeile 46 den Wert 2002 enthält). Das Verhalten entspricht hierbei Archivanfragen, d. h. der erste Datensatz vor Intervallanfang wird ebenfalls mit zurückgegeben wenn auf dem Intervallanfang kein Datensatz liegt.- Parameters:
inputRange
- Wertebereich- Returns:
- Zeilenbereich oder null
- Throws:
java.io.IOException
- IO-Fehler beim Lesen des Index
-
findEntryIndexOrPreviousLowest
long findEntryIndexOrPreviousLowest(long searchValue, byte[] tmp) throws java.io.IOExceptionFindet den Element-Index des Eintrags zu einem Wert in diesem Index. Das Verhalten der Methode ermittelt die untere Grenze für den initialen Datensatz einer Archivanfrage.- Parameters:
searchValue
- Zu suchender Werttmp
- Byte-Array zum ablegen von temporären Daten. (Mindestgröße: eine Index-Zeile)- Returns:
- Der Index (Zeilennummer) an dem dieser Wert vorkommt.
- Falls der Wert mehrmals vorkommt (bei nicht streng monoton ansteigenden Werten) wird die niedrigste passende Zeilennummer zurückgegeben.
- Kommt der Wert nicht direkt vor, wird die Zeilennummer vor dem gesuchten Wert zurückgegeben, d.h. der Wert vor dem Intervallanfang. (-1 falls die erste Zeile mit dem Index 0 bereits zu groß ist)
- Throws:
java.io.IOException
-
findEntryIndexOrPreviousHighest
long findEntryIndexOrPreviousHighest(long searchValue, byte[] tmp) throws java.io.IOExceptionFindet den Element-Index des Eintrags zu einem Wert in diesem Index. Das Verhalten der Methode ermittelt die obere Grenze einer Archivanfrage.- Parameters:
searchValue
- Zu suchender Werttmp
- Byte-Array zum ablegen von temporären Daten. (Mindestgröße: eine Index-Zeile)- Returns:
- Der Index (Zeilennummer) an dem dieser Wert vorkommt.
- Falls der Wert mehrmals vorkommt (bei nicht streng monoton ansteigenden Werten) wird die höchste passende Zeilennummer zurückgegeben.
- Kommt der Wert nicht direkt vor, wird die Zeilennummer vor dem gesuchten Wert zurückgegeben, d.h. der Wert vor dem Intervallende. (-1 falls die erste Zeile mit dem Index 0 bereits zu groß ist)
- Throws:
java.io.IOException
-
findEntryIndex
long findEntryIndex(long searchValue, byte[] tmp) throws java.io.IOExceptionFindet den Element-Index des Eintrags zu einem Wert in diesem Index- Parameters:
searchValue
- Zu suchender Werttmp
- Byte-Array zum ablegen von temporären Daten. (Mindestgröße: eine Index-Zeile)- Returns:
- Der Index (Zeilennummer) an dem dieser Wert vorkommt.
- Falls der Wert mehrmals vorkommt (bei nicht streng monoton ansteigenden Werten) wird eine beliebige passende Zeilennummer zurückgegeben.
- Kommt der Wert nicht direkt vor, wird analog zu
Arrays.binarySearch(int[], int)
die Zahl(-(<i>Einfügeposition</i>) - 1)
zurückgegeben, wobei Einfügeposition die ist, an der der Eintrag "fehlt" und eingefügt werden sollte, falls das beabsichtigt ist.
- Throws:
java.io.IOException
-
getColumn
IndexContentDescriptor.IndexColumn getColumn()Die von diesem Objekt indexierte Spalte- Returns:
- Spalte
-