Package 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
A filter listener extends expression filters with custom functionality.
- Author:
- Steve Kim, Abe White
-
Method Summary
Modifier and TypeMethodDescriptionevaluate
(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.getTag()
Return the tag that this extension listens for.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 targetfield
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 targettargetClass
- the expected class of the target; given in case the target evaluates to null and typing is neededargs
- the values of the arguments given in the filter; will be null if this extension does not expect an argumentargClasses
- the expected classes of the arguments; given in case an argument evaluates to null and typing is neededcandidate
- the candidate object being evaluatedctx
- the persistence context- Returns:
- the value of the extension for this candidate; if
this extension is an expression, this method should
return
Boolean.TRUE
orBoolean.FALSE
- Throws:
UserException
- if this extension does not support in-memory operation
-
getType
Return the expected type of the result of this listener.- Parameters:
targetClass
- the expected class of the target, or null if no targetargClasses
- the expected classes of the arguments, or null if no arguments
-