|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.bsvrz.ars.ars.mgmt.tasks.ArchiveQueryTask.ContWalk
private class ArchiveQueryTask.ContWalk
Im Container-Walk werden alle Container einer Datensatzart gesammelt, die zur Beantwortung einer Unterabfrage (@link Query} benoetigt werden, da sie
Ergebnisdatensaetze enthalten. Entsprechend der Sortierreihenfolge der Container (Datenindex im Regelfall, bei nachgelieferten auch nach Datenzeit) werden
die Container mittels #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.
Sollten sich die Bereiche (typ. Datenzeitbereich bei Sortierung nach Datenzeit), zu denen die Container Datensaetze
enthalten, ueberschneiden, so werden die sich ueberlappenden Container jeweils zusammen unter einem Datenindex abgelegt. Alle Container eines solchen
Container-Walk-Index werden gleichzeitig geoeffnet, damit aus ihnen der jeweils naechste zu uebertragende Datensatz fuer die Archivantwort ermittelt werden
kann.
Beispiel: siehe TAnf Archivsystem, Abb. 5-14:
Die Container-Infos von C1 bis C3 wuerden wegen ihrer Ueberlappung zusammen dem
Container-Walk-Index 0 und C4 dann allein dem Container-Walk-Index 1 zugeordnet werden.
Field Summary | |
---|---|
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. |
Constructor Summary | |
---|---|
private |
ArchiveQueryTask.ContWalk(ArchiveDataKind dataKind,
ArchiveOrder archiveOrder,
ArchiveQueryTask.Container[] contInfos)
Erstellt einen neuen Container-Walk und fuellt ihn mit den angegebenen Container-Infos. |
Method Summary | |
---|---|
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()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private ArchiveDataKind dataKind
private ArchiveOrder archiveOrder
private List<List<ArchiveQueryTask.Container>> cw
private boolean firstDataSent
private boolean done
private int currIdx
Constructor Detail |
---|
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-ContainerMethod Detail |
---|
private List<ArchiveQueryTask.Container> getContainer(int cwIdx)
cwIdx
- Container-Walk-Index
private 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-Infos
true
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.
public String toString()
toString
in class Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |