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 voidaggregate(ResultValue value)Führt die Aggregierung durch.protected abstract voidaggregate(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()voidfinish(T t)Schließt die Berechnung von T als Aggregationswert ab.ResultValuegetResult()Liefert das Ergebnis der Aggregation.java.lang.StringtoString()-
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:AggregationFührt die Aggregierung durch.- Specified by:
aggregatein 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:AggregationLiefert das Ergebnis der Aggregation. Der Aufruf dieser Methode kennzeichnet einen neuen Aggregationszyklus.- Specified by:
getResultin 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:
toStringin classjava.lang.Object
-
-