private class ArchiveQueryTask.ContWalk extends Object
#fill(Container[])
im Container-Walk auf die sog. Container-Walk-Indexe verteilt, beginnend beim
Container-Walk-Index 0. Um die Archivantwort zu bestimmen, muessen die Container dann nur noch in der Reihenfolge durchlaufen werden, in der sie im
Container-Walk abgelegt sind. Modifier and Type | Field and Description |
---|---|
private ArchiveOrder |
archiveOrder
Sortierkriterium fuer nachgelieferte Datensaetze.
|
private int |
currIdx
Aktueller Index innerhalb des Container-Walks, -1 fuer ungueltigen Index.
|
private List<List<ArchiveQueryTask.Container>> |
cw
Sortierte Liste, die pro Index eine Liste von ContInfos haelt.
|
private ArchiveDataKind |
dataKind
Datensatzart der Container in diesem Container-Walk.
|
private boolean |
done
Flag, ob der Container-Walk fertig durchlaufen worden ist.
|
private boolean |
firstDataSent
Flag, ob der erste Datensatz am Anfang der Antwort bereits versandt worden ist.
|
Modifier | Constructor and Description |
---|---|
private |
ArchiveQueryTask.ContWalk(ArchiveDataKind dataKind,
ArchiveOrder archiveOrder,
ArchiveQueryTask.Container[] contInfos)
Erstellt einen neuen Container-Walk und fuellt ihn mit den angegebenen Container-Infos.
|
Modifier and Type | Method and Description |
---|---|
private boolean |
allInContWalk(ArchiveQueryTask.Container[] contInfos)
Prueft, ob alle angegebenen Container-Infos bereits im Container-Walk einsortiert sind.
|
private void |
cleanUp()
Nachdem der ContWalk als erledigt markiert worden ist, kann der ContWalk mit diese Methode geleert werden, um Arbeitsspeicher zu sparen.
|
private void |
fill(ArchiveQueryTask.Container[] allCont)
Fuellt den Container-Walk mit den uebergebenen Container-Infos wobei Ueberschneidungen der durch die Container abgedeckten Bereiche beruecksichtigt werden,
und die betroffenen Container-Infos jeweils geclustert dem gleichen Container-Walk-Index zugeordnet werden.
|
private List<ArchiveQueryTask.Container> |
getContainer(int cwIdx)
Liefert Liste aller Container-Infos, die beim angegebenen Container-Walk-Index abgelegt sind.
|
private ArchiveQueryTask.Container |
getLastContainer()
Wenn nur noch ein Container im Container-Walk unerledigt ist, wird dieser geliefert, ansonsten
null . |
private TimingType |
getSortTimingType()
Liefert den
TimingType , nach dem Datensaetze aus Containern dieses Container-Walks (ein)sortiert werden muessen. |
private int |
maxIdx()
Liefert den groessten Index des Container-Walks zurueck, -1 bei leerem Container-Walk.
|
String |
toString() |
private ArchiveDataKind dataKind
private ArchiveOrder archiveOrder
private List<List<ArchiveQueryTask.Container>> cw
private boolean firstDataSent
private boolean done
private int currIdx
private ArchiveQueryTask.ContWalk(ArchiveDataKind dataKind, ArchiveOrder archiveOrder, ArchiveQueryTask.Container[] contInfos)
dataKind
- Datensatzart der Container im Container-WalkarchiveOrder
- Sortierkriterium fuer nachgelieferte DatensaetzecontInfos
- Container-Infos der Ergebnis-Containerprivate List<ArchiveQueryTask.Container> getContainer(int cwIdx)
cwIdx
- Container-Walk-Indexprivate ArchiveQueryTask.Container getLastContainer()
null
.null
.private void fill(ArchiveQueryTask.Container[] allCont)
allCont
- Container-Infos der Ergebnis-Containerprivate boolean allInContWalk(ArchiveQueryTask.Container[] contInfos)
contInfos
- Zu pruefende Container-Infostrue
falls alle Container-Infos im Container-Walk einsortiert sind, false
sonstprivate int maxIdx()
private void cleanUp()
private TimingType getSortTimingType()
TimingType
, nach dem Datensaetze aus Containern dieses Container-Walks (ein)sortiert werden muessen. Dies ist normalerweise der
Datenindex, bei nachgelieferten Datensaetzen kann es alternativ auch die Datenzeit sein.