Interface FilterListener

All Superinterfaces:
Serializable
All Known Subinterfaces:
JDBCFilterListener
All Known Implementing Classes:
GetColumn, JDBCStringContains, JDBCWildcardMatch, SQLEmbed, SQLExpression, SQLValue, StringContains, WildcardMatch

public interface FilterListener extends Serializable
A filter listener extends expression filters with custom functionality.
Author:
Steve Kim, Abe White
  • Method Summary

    Modifier and Type
    Method
    Description
    evaluate(Object target, Class targetClass, Object[] args, Class[] argClasses, Object candidate, StoreContext ctx)
    Evaluate the given expression.
    boolean
    Return true if this extension expects arguments to act on.
    boolean
    Return true if this extension expects a target to act on.
    Return the tag that this extension listens for.
    getType(Class targetClass, Class[] argClasses)
    Return the expected type of the result of this listener.
  • Method Details

    • 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