public class GanglinieInBearbeitung extends Object
Modifier and Type | Field and Description |
---|---|
private String |
absenderZeichen
Das Zeichen des Absenders der Prognoseanfrage.
|
private de.bsvrz.iav.gllib.gllib.dav.GanglinieMQ |
analyseganglinie
Die Analyseganglinie, die aus dem Archiv gelesen wird.
|
private de.bsvrz.iav.gllib.gllib.dav.GlProgAnfrage |
anfrage
Die zu bearbeitende Anfrage.
|
private List<de.bsvrz.iav.gllib.gllib.dav.GanglinieMQ> |
historischeGanglinien
Die historischen Ganglinien am Messquerschnitt.
|
private List<de.bsvrz.sys.funclib.bitctrl.modell.kalender.onlinedaten.OdEreignisKalenderAntwort.Daten.Zustandswechsel> |
kalenderantwort
Die Antwort vom Kalender.
|
private de.bsvrz.sys.funclib.debug.Debug |
log
Der Logger der Klasse.
|
private long |
naechsteAktualisierung
Zeitstempel, wann die nächste Aktualisierung der Prognose fällig ist.
|
private long |
naechstePruefung
Zeitstempel, wann die nächste Prüfung der Prognose fällig ist.
|
private de.bsvrz.iav.gllib.gllib.dav.GanglinieMQ |
prognoseganglinie
Die prognostizierte Ganglinie.
|
private List<PrognoseIntervall> |
prognoseintervalle
Enthält die Teilintervalle des Prognosezeitraums und deren Ganglinien.
|
private de.bsvrz.iav.gllib.gllib.modell.parameter.PdGanglinienModellPrognose.Daten |
prognoseParameter
Die Prognoseparameter.
|
private boolean |
prognoseParameterChanged
Flag, ob sich der Prognoseparameter am Messquerschnitt geändert hat.
|
private PrognoseParameterHelper |
prognoseParameterHelper |
private PropertyChangeListener |
prognoseParameterListener |
Constructor and Description |
---|
GanglinieInBearbeitung(de.bsvrz.iav.gllib.gllib.dav.GlProgAnfrage anfrage)
Initialisierung die Bearbeitung der Prognoseanfrage.
|
Modifier and Type | Method and Description |
---|---|
private void |
aufbereitenZustandswechsel()
Bereitet die Liste der Zustandswechsel auf, damit der Scanline-Algorithmus aus
bestimmeTeilintervalle() funktioniert. |
private void |
bestimmeEingangsdaten()
Bestimmt alle notwendigen Eingangsdaten der Prognose.
|
private void |
bestimmeErlaubteRelativeEreignisTypen()
Entfernt pro Teilintervall der Prognose alle Ereignistypen, die sich nicht mit dem gewählten
Tagesereignis verknüpfen lassen.
|
private void |
bestimmePrognoseGanglinien()
Bestimmt eine relative Ganglinie pro Ereignistyp, die zur Prognose herangezogen wird.
|
private void |
bestimmeTagesganglinien()
Führt die priorisierte Auswahl der Tagesganglinie pro Tag durch.
|
private void |
bestimmeTeilintervalle()
Erstellt aus der Liste der Zustandswechsels aus der Kalenderantwort die enhtsprechenden
Ereignisintervalle.
|
void |
close()
Schließt alle offenen Ressourcen.
|
private de.bsvrz.iav.gllib.gllib.dav.GanglinieMQ |
erzeugePrognoseganglinie()
Verschmilzt pro Prognoseintervall die realtiven Ganglinien mit der absoluten Ganglinie.
|
de.bsvrz.iav.gllib.gllib.dav.GlProgAnfrage |
getAnfrage()
Gibt die zu bearbeitende Anfrage zurück.
|
long |
getNaechsteAktualisierung()
Gibt den nächsten Zeitpunkt zurück, an dem die Prognose aktualisiert werden muss.
|
long |
getNaechstePruefung()
Gibt den nächsten Zeitpunkt zurück, an dem die Prognose überprüft werden muss.
|
de.bsvrz.iav.gllib.gllib.dav.GanglinieMQ |
getPrognoseganglinie()
Gibt die Prognoseganglinie zurück.
|
boolean |
isPrognoseParameterChanged()
Gibt den Wert des Flags für die Änderung des Prognoseparameters am Messquerschnitt zurück.
|
boolean |
isZyklischAktiv()
Prüft, ob dies die Bearbeitung einer zyklischen Prognoseanfrage ist und ob sie noch gültig
ist.
|
private boolean |
patternMatching(PrognoseIntervall intervall)
Führt das Pattern-Matching für ein Teilintervall aus.
|
private Map<de.bsvrz.sys.funclib.bitctrl.modell.kalender.objekte.EreignisTyp,EreignisTypGanglinien> |
pruefeGanglinien(List<de.bsvrz.iav.gllib.gllib.dav.GanglinieMQ> ganglinien)
Prüft ob die Liste der Ganglinien pro Ereignistyp plausibel ist.
|
private void |
setPrognoseParameterChanged(boolean prognoseParameterChanged)
Setzt das Flag für die Änderung des Prognoseparameters am Messquerschnitt.
|
void |
startPrognose()
Startet die Bearbeitung.
|
String |
toString() |
private final de.bsvrz.sys.funclib.debug.Debug log
private final de.bsvrz.iav.gllib.gllib.dav.GlProgAnfrage anfrage
private final String absenderZeichen
private List<de.bsvrz.iav.gllib.gllib.dav.GanglinieMQ> historischeGanglinien
private de.bsvrz.iav.gllib.gllib.modell.parameter.PdGanglinienModellPrognose.Daten prognoseParameter
private List<de.bsvrz.sys.funclib.bitctrl.modell.kalender.onlinedaten.OdEreignisKalenderAntwort.Daten.Zustandswechsel> kalenderantwort
private de.bsvrz.iav.gllib.gllib.dav.GanglinieMQ analyseganglinie
private List<PrognoseIntervall> prognoseintervalle
private de.bsvrz.iav.gllib.gllib.dav.GanglinieMQ prognoseganglinie
private boolean prognoseParameterChanged
private long naechstePruefung
private long naechsteAktualisierung
private final PrognoseParameterHelper prognoseParameterHelper
private final PropertyChangeListener prognoseParameterListener
public GanglinieInBearbeitung(de.bsvrz.iav.gllib.gllib.dav.GlProgAnfrage anfrage)
anfrage
- die zu bearbeitende Anfrage.public void close()
public de.bsvrz.iav.gllib.gllib.dav.GlProgAnfrage getAnfrage()
public de.bsvrz.iav.gllib.gllib.dav.GanglinieMQ getPrognoseganglinie()
null
.public void startPrognose()
public long getNaechstePruefung()
public long getNaechsteAktualisierung()
private void aufbereitenZustandswechsel()
bestimmeTeilintervalle()
funktioniert.
Am Anfang der Liste können Zustandswechsel fehlen, die den Beginn des Ereignisses signalisieren, wenn das Ereignis vor Beginn des Anfragezeitraumes begonnen hat.
Ereignisse die vor dem Anfragezeitraum enden, werden aus der Liste entfernt.
Da die Gültigkeit für Ereignisse zeitlich und verkehrlich unterschiedlich ist, hier aber nur die verkehrliche Gültigkeit interessiert, werden unnötige Zustandswechsel entfernt. So ein unnötiger Zustandswechsel ist z. B. wenn zweimal auf einander der selbe Zustand für verkehrliche Gültigkeit kommt, weil sich die zeitliche Gültigkeit geändert hat.
private void bestimmeTeilintervalle()
Die Methode entspricht zum Teil der ereignistypabhängigen Auswahl von Ganglinien laut Feinspezifikation. Da der Ereigniskalender in seiner Antwort nicht zwischen Tagesereignissen und Nichttagesereignissen unterscheidet, wird diese Auswahl sowohl für relative als auch für absolute Ganglinien durchgeführt.
Da die priorisierte Auswahl von Tagesganglinien und die ereignistypabhängige Auswahl von (relativen) Ganglinien voneinander unabhängig sind, stellt die gleichzeitige Ausführung keine Verletzung des Algorithmus dar.
Am Ende der Methode ist ist die Liste der Teilintervalle gefüllt (falls möglich).
prognoseintervalle
private void bestimmeTagesganglinien()
Die Methode setzt voraus, dass die Teilintervalle des Prognosezeitraums bestimmt wurde.
bestimmeTeilintervalle()
private void bestimmeErlaubteRelativeEreignisTypen()
Die Methode setzt voraus, dass es nur noch ein Tagesereignis pro Teilintervall der Prognose gibt.
bestimmeTagesganglinien()
private void bestimmePrognoseGanglinien()
Ist der Horizont der mittelfristigen Prognose gleich 0, werden nur die Auswahlmethode der langfristigen Prognose angewandt.
private boolean patternMatching(PrognoseIntervall intervall)
intervall
- das Intrvall für das das Pattern-Matching ausgeführt werden soll.true
, wenn das Pattern Matching erfolgreich war.private Map<de.bsvrz.sys.funclib.bitctrl.modell.kalender.objekte.EreignisTyp,EreignisTypGanglinien> pruefeGanglinien(List<de.bsvrz.iav.gllib.gllib.dav.GanglinieMQ> ganglinien)
ganglinien
- alle verfügbaren Ganglinien im Prognosezeitraum.Map
mit gültigen Ganglinien pro Ereignistyp.private de.bsvrz.iav.gllib.gllib.dav.GanglinieMQ erzeugePrognoseganglinie()
private void bestimmeEingangsdaten()
public boolean isZyklischAktiv()
true
, wenn dies eine zyklische Prognose ist und der Prognosezeitraum noch
nicht abgelaufen ist.public boolean isPrognoseParameterChanged()
true
, wenn sich der Parameter geändert hat.private void setPrognoseParameterChanged(boolean prognoseParameterChanged)
prognoseParameterChanged
- true
, wenn sich der Parameter geändert hat.Copyright © 2017 BitCtrl Systems GmbH. All rights reserved.