public class IMDSBuilder
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private java.util.List<Elements> |
_attributes
Im Spalten-Bereich definierte Attribute.
|
private Tuple<ExpressionTree,java.lang.Boolean> |
_constraint
Im Skript definierte Einschränlung.
|
private int |
_currentInterval
Index des aktuellen Intervalls.
|
private byte |
_currentStatus
Aktueller Status.
|
private static Debug |
_debug
Debug-Ausgabe.
|
private long |
_endOfInterval
Zeitpunkt Intervallende des zuletzt beendeten Intervalls.
|
private java.util.List<BaseDataSet> |
_lastBaseData
Letzter "roher" Datensatz, also nicht aggregierte, nicht nachgefilterte Daten die durch den Filter gekommen sind.
|
private boolean |
_merge
true falls Datensätze verschmolzen werden sollen. |
private boolean |
_noChangeMarkerPerCell
true wenn NoChange-Informationen für Zustandsprotokolle pro Zelle generiert werden sollen (statt pro Zeile)
|
private ProcessingBuffer |
_processingBuffer
Führt die Datenaufbereitung durch.
|
private java.util.Hashtable<RealElement,ValueProvider> |
_realElements
Zuordnung der realen Attribute zu ihren Wertebeschaffern.
|
protected RingBuffer<ValueContainer> |
_realElementValues
Puffer, der die Zuordnung: Reale Elemente -> Werte enthält.
|
private int |
_startPeriodIndex
Periodenindex, bei der zugehörige Buffer beginnt zu laden.
|
private Status |
_status
Objekt zur Statusberechnung.
|
private java.util.Hashtable<TempAttributeDescription,TempAttribut> |
_tempElements
Zuordnung der temporären Attribute zu ihren Wertebeschaffern.
|
private static ResultValue |
RV_EMPTY_DATASET
Wert eines leeren Ausgangsdatensatzes.
|
private static ResultValue |
RV_FILTERED_DATASET
Wert eines Datensatzes, der gefiltert wurde und daher nicht existiert
|
private static ResultValue |
RV_REPETITION
Wert eines wiederholten Ausgangsdatensatzes.
|
| Constructor and Description |
|---|
IMDSBuilder(boolean merge,
boolean noChangeMarkerPerCell,
java.util.List<Elements> attributes,
Tuple<ExpressionTree,java.lang.Boolean> constraint,
java.util.Hashtable<RealElement,ValueProvider> realElements,
java.util.Hashtable<TempAttributeDescription,TempAttribut> tempElements,
ProcessingBuffer processingBuffer,
Status status,
int startPeriodIndex)
Initialisierung.
|
| Modifier and Type | Method and Description |
|---|---|
private boolean[] |
applyConstraint(ValueContainer valueContainer)
Wendet den Filterausdruck an.
|
private java.util.List<BaseDataSet> |
calcBaseDataForAllAttributes(ValueContainer valueContainer,
boolean[] constraints)
Erzeugt Ausgangsdatensatz.
|
void |
collectData(boolean insertEmpty,
long winnerTimeStamp)
Sammelt die Werte der realen Attribute.
|
private BaseDataSet |
createEmptyBaseDataSet() |
void |
createIntermediateDataSet(boolean done)
Bereitet die Basisdaten auf und erstellt Ausgangsdatensätze.
|
private java.lang.String |
getScriptName()
Liefert die Bezeichnung des Skripts zur Verwendung in Fehlerausgaben.
|
byte |
getStatus()
Liefert den momentanen Status zurück.
|
boolean |
isDone()
Zeigt an dass keine weiteren Daten mehr vorliegen.
|
private boolean |
isNotFiltered(int rowIndex,
boolean[] constraints)
Stellt fest, ob für die aktuelle Aliasdefinition ein Filter gesetzt ist
|
void |
nextInterval(long endOfInterval)
Markiert den zuletzt eingefügten Ausgangsdatensatz als den letzten des Intervalls.
|
void |
throwAway()
Verwirft den zuletzt eingefügten Datensatz
|
private static final ResultValue RV_EMPTY_DATASET
private static final ResultValue RV_FILTERED_DATASET
private static final ResultValue RV_REPETITION
private static final Debug _debug
private java.util.List<BaseDataSet> _lastBaseData
createIntermediateDataSet(boolean) verwendet werden.protected RingBuffer<ValueContainer> _realElementValues
private final Status _status
private final ProcessingBuffer _processingBuffer
private final java.util.List<Elements> _attributes
private final java.util.Hashtable<TempAttributeDescription,TempAttribut> _tempElements
private final java.util.Hashtable<RealElement,ValueProvider> _realElements
private final Tuple<ExpressionTree,java.lang.Boolean> _constraint
private int _currentInterval
private byte _currentStatus
_status berechnet.private final boolean _merge
true falls Datensätze verschmolzen werden sollen.private final boolean _noChangeMarkerPerCell
private long _endOfInterval
private final int _startPeriodIndex
public IMDSBuilder(boolean merge,
boolean noChangeMarkerPerCell,
java.util.List<Elements> attributes,
Tuple<ExpressionTree,java.lang.Boolean> constraint,
java.util.Hashtable<RealElement,ValueProvider> realElements,
java.util.Hashtable<TempAttributeDescription,TempAttribut> tempElements,
ProcessingBuffer processingBuffer,
Status status,
int startPeriodIndex)
merge - true falls Datensätze verschmolzen werden sollen.noChangeMarkerPerCell - true wenn NoChange-Informationen für Zustandsprotokolle pro Zelle generiert werden sollen (statt pro Zeile)attributes - Im Spalten-Bereich definierte Attribute.constraint - Im Skript definierte Einschränlung.realElements - Zuordnung der realen Attribute zu ihren Wertebeschaffern.tempElements - Zuordnung der temporären Attribute zu ihren Wertebeschaffern.processingBuffer - Datenaufbereiter.status - Objekt zur Statusberechung.startPeriodIndex - public void collectData(boolean insertEmpty,
long winnerTimeStamp)
insertEmpty - true legt fest, dass ein leerer Datensatz eingefügt werden soll.winnerTimeStamp - Minimaler, nicht-aufgefüllter Zeitstempel.public void createIntermediateDataSet(boolean done)
throws java.lang.InterruptedException,
FailureException
done - Das Sammeln der Daten wurde abgeschlossen.java.lang.InterruptedException - Datenaufbereitung wurde abgebrochenFailureException - Fehler beim Aufbereiten der Daten.private java.util.List<BaseDataSet> calcBaseDataForAllAttributes(ValueContainer valueContainer, boolean[] constraints)
valueContainer - Reale Attribute und ihre Werte.constraints - Filtereinschränkungen, siehe isNotFiltered(int, boolean[])private boolean isNotFiltered(int rowIndex,
boolean[] constraints)
rowIndex - Der Index des Aliases. -1 für Spalten in denen kein Alias verwendet wird.constraints - Für welche Aliase die Bedingung zutrifft. Muss mindestens ein Element haben.private boolean[] applyConstraint(ValueContainer valueContainer) throws FailureException
valueContainer - Datensatz, auf den der Filter angewendet werden soll.FailureException - Ergebnistyp des Ausdrucks ist nicht ExpressionResult.ResultType.BOOLprivate BaseDataSet createEmptyBaseDataSet()
public boolean isDone()
true falls keine weiteren Daten mehr vorliegen.public void nextInterval(long endOfInterval)
endOfInterval - Endzeitpunkt des Intervalls, das gerade beendet wurde.ValueContainer.setLastOfInterval(long)public byte getStatus()
public void throwAway()
throws java.lang.InterruptedException
java.lang.InterruptedExceptionprivate java.lang.String getScriptName()