Package de.bsvrz.pua.prot.aggregations
Class AbstractAggregation<T extends AggregationResultValue>
- java.lang.Object
-
- de.bsvrz.pua.prot.aggregations.AbstractAggregation<T>
-
- All Implemented Interfaces:
Aggregation
public abstract class AbstractAggregation<T extends AggregationResultValue> extends java.lang.Object implements Aggregation
Abstrakte Basisklasse für Aggregationen, die AggregationResultValue zur Vereinfachung benutzen. Vorgehensweise: AggregationResultValue ableiten, falls Zusatzinformationen je Attribut gespeichert werden sollen (sonst kann AggregationResultValue selbst verwendet werden). Für die Aggregation diese Klasse ableiten und die erforerlichen Methoden überschreiben. createAggregationResultValue() sollte dabei eine Methode sein, die eine Instanz des verwendeten AggregationResultValue-Typs erzeugt. Optional kann am Ende finish() überschieben werden um am Ende noch das Ergebnis zu berechnen (z.B. bei der Berechnung des Durchschnitts am Ende noch durch die Anzahl der aggregierten Daten teilen)
-
-
Constructor Summary
Constructors Constructor Description AbstractAggregation()
-
Method Summary
Modifier and Type Method Description void
aggregate(ResultValue value)
Führt die Aggregierung durch.protected abstract void
aggregate(T result, ExpressionResult newValue)
Berechnung der Aggregation, der Implementierende sollte etwas aufrufen wieresult.set(x)
wobei x aus result.getValue() als altem Aggregationswert und newValue als neuem Wert berechnet wird.protected abstract java.util.function.Supplier<T>
createAggregationResultValue()
void
finish(T t)
Schließt die Berechnung von T als Aggregationswert ab.ResultValue
getResult()
Liefert das Ergebnis der Aggregation.java.lang.String
toString()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface de.bsvrz.pua.prot.aggregations.Aggregation
getAggregationName
-
-
-
-
Method Detail
-
aggregate
public final void aggregate(ResultValue value)
Description copied from interface:Aggregation
Führt die Aggregierung durch.- Specified by:
aggregate
in interfaceAggregation
- Parameters:
value
- Wert- See Also:
Aggregation.aggregate(de.bsvrz.pua.prot.util.ResultValue)
-
getResult
public final ResultValue getResult() throws java.lang.UnsupportedOperationException
Description copied from interface:Aggregation
Liefert das Ergebnis der Aggregation. Der Aufruf dieser Methode kennzeichnet einen neuen Aggregationszyklus.- Specified by:
getResult
in interfaceAggregation
- Returns:
- Aggregierter Wert.
- Throws:
java.lang.UnsupportedOperationException
- Operation kann auf den Daten nicht durchgeführt werden.- See Also:
Aggregation.getResult()
-
createAggregationResultValue
protected abstract java.util.function.Supplier<T> createAggregationResultValue()
-
finish
public void finish(T t)
Schließt die Berechnung von T als Aggregationswert ab. Hier kann z.B. bei der Durchschnittsaggregation zum Schluss durch die Anzahl Werte (AggregationResultValue.getAggregationCount()) dividiert werden.- Parameters:
t
- Bisheriger berechneter Wert und Rückgabe
-
aggregate
protected abstract void aggregate(T result, ExpressionResult newValue)
Berechnung der Aggregation, der Implementierende sollte etwas aufrufen wieresult.set(x)
wobei x aus result.getValue() als altem Aggregationswert und newValue als neuem Wert berechnet wird.- Parameters:
result
- Alter Wert und RückgabenewValue
- Wert der dazu aggregiert werden soll
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-