Interface AggregateListener

  • All Superinterfaces:
    Serializable

    public interface AggregateListener
    extends Serializable
    An aggregate listener aggregates data produced by an ExpressionQuery.
    Author:
    Abe White, Patrick Linskey
    • Method Detail

      • getTag

        String getTag()
        Return the tag that this listener listens for.
      • expectsArguments

        boolean expectsArguments()
        Return whether this function expects to act on arguments. Some function may not need arguments; for example, a function to count the number of objects that match a given filter might be of the form: count().
      • evaluate

        Object evaluate​(Collection args,
                        Class[] argClasses,
                        Collection candidates,
                        StoreContext ctx)
        Return the value of this aggregate.
        Parameters:
        args - for each candidate, the value of the arguments to the function; will be null if this aggregate does not expect an argument; if this function has multiple arguments, each element will be an array
        argClasses - the expected class of each argument element
        candidates - the candidate objects being evaluated
        ctx - the persistence context
        Returns:
        the value of the aggregate
        Throws:
        UserException - if this aggregate does not support in-memory operation
      • getType

        Class getType​(Class[] argClasses)
        Return the expected type of the result of this listener.
        Parameters:
        argClasses - the expected classes of the argument, or null if no arguments