Interface FilterListener

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.lang.Object evaluate​(java.lang.Object target, java.lang.Class targetClass, java.lang.Object[] args, java.lang.Class[] argClasses, java.lang.Object candidate, StoreContext ctx)
      Evaluate the given expression.
      boolean expectsArguments()
      Return true if this extension expects arguments to act on.
      boolean expectsTarget()
      Return true if this extension expects a target to act on.
      java.lang.String getTag()
      Return the tag that this extension listens for.
      java.lang.Class getType​(java.lang.Class targetClass, java.lang.Class[] argClasses)
      Return the expected type of the result of this listener.
    • Method Detail

      • getTag

        java.lang.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

        java.lang.Object evaluate​(java.lang.Object target,
                                  java.lang.Class targetClass,
                                  java.lang.Object[] args,
                                  java.lang.Class[] argClasses,
                                  java.lang.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

        java.lang.Class getType​(java.lang.Class targetClass,
                                java.lang.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