Interface FilterListener

    • Method Detail

      • getTag

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

        boolean expectsArguments()
        Return true if this extension expects arguments to act on. Some extensions may not need arguments; for example, an extension to switch a string to upper case might be of the form: field.ext:toUpperCase ().
      • expectsTarget

        boolean expectsTarget()
        Return true if this extension expects a target to act on. Some extensions act on a field or object value; others stand alone. field.ext:toUpperCase () acts on the target field but has no arguments, while another possible form, ext:toUpperCase (field) has no target but does have an argument.
      • evaluate

        Object evaluate​(Object target,
                        Class targetClass,
                        Object[] args,
                        Class[] argClasses,
                        Object candidate,
                        StoreContext ctx)
        Evaluate the given expression. This method is used when evaluating in-memory expressions. The method used when evaluating data store expressions will change depending on the data store in use.
        Parameters:
        target - the target object / field value to act on; will be null if this extension does not expect a target
        targetClass - the expected class of the target; given in case the target evaluates to null and typing is needed
        args - the values of the arguments given in the filter; will be null if this extension does not expect an argument
        argClasses - the expected classes of the arguments; given in case an argument evaluates to null and typing is needed
        candidate - the candidate object being evaluated
        ctx - the persistence context
        Returns:
        the value of the extension for this candidate; if this extension is an expression, this method should return Boolean.TRUE or Boolean.FALSE
        Throws:
        UserException - if this extension does not support in-memory operation
      • getType

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