Class AbstractAggregationExpression<T,​R>

    • Constructor Detail

      • AbstractAggregationExpression

        public AbstractAggregationExpression​(String alias,
                                             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 List<?> getArguments​(List<T> items,
                                       FunctionParameterTypePredicate<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​(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)