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.BOOL
private 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.InterruptedException
private java.lang.String getScriptName()