This page gives some advice to create a new Aggregation function.
This page is under construction.
An aggregation function needs to implement one of the following interfaces:
de.uniol.inf.is.odysseus.aggregation.functions.IIncrementalAggregationFunction
void addNew(T newElement);
sum
and count
. sum += newElement
and count++
void removeOutdated(Collection<T> outdatedElements, T trigger, PointInTime pointInTime);
sum -= element
and count--
Object[] evalute(T trigger, PointInTime pointInTime);
return sum/count
de.uniol.inf.is.odysseus.aggregation.functions.INonIncrementalAggregationFunction
Object[] evaluate(Collection<T> elements, T trigger, PointInTime pointInTime);
elements
holds all elements in the window that starts at pointInTime
. In de.uniol.inf.is.odysseus.aggregation.functions
there are also abstract classes.
de.uniol.inf.is.odysseus.aggregation.functions.factory.IAggregationFunctionFactory
to allow Odysseus to create a new function.de.uniol.inf.is.odysseus.aggregation.AggregationFunctionRegistry
).