org.apache.openjpa.kernel.exps
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
 Object evaluate(Object target, Class targetClass, Object[] args, Class[] argClasses, 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.
 String getTag()
          Return the tag that this extension listens for.
 Class getType(Class targetClass, Class[] argClasses)
          Return the expected type of the result of this listener.
 

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


Copyright © 2006-2008 Apache Software Foundation. All Rights Reserved.