Class AbstractAggregationExpression<T,​R>

    • Constructor Detail

      • AbstractAggregationExpression

        public AbstractAggregationExpression​(java.lang.String alias,
                                             java.util.List<ExpressionNode<T,​?>> args)
        Constructor initializes children expression list
        Parameters:
        alias - Expression alias
        args - List of children expressions
    • Method Detail

      • apply

        public R apply​(T value)
        Should be called after aggregate() method returning cached result. When query contains HAVING clause, extracts result from the nested map.
        Parameters:
        value - Object to handle
        Returns:
        Aggregation result
      • getArguments

        protected java.util.List<?> getArguments​(java.util.List<T> items,
                                                 FunctionParameterTypePredicate<java.lang.Object> _typeValidator)
        Evaluates and validates input collection values
        Parameters:
        items - Input collection
        _typeValidator - Argument type validator
        Returns:
        List of evaluated values
      • aggregate

        public abstract R aggregate​(java.util.List<T> items)
        Aggregation implementation
        Parameters:
        items - Collection to perform aggregation on
        Returns:
        Aggregation result
      • getCollectorType

        public abstract CollectorType getCollectorType()
        Type of the collector depends on the aggregation type
        Returns:
        CollectorType instance
      • setValue

        public void setValue​(R value)