Package org.apache.openjpa.kernel.exps
Interface FilterListener
-
- All Superinterfaces:
java.io.Serializable
- All Known Subinterfaces:
JDBCFilterListener
- All Known Implementing Classes:
GetColumn,JDBCStringContains,JDBCWildcardMatch,SQLEmbed,SQLExpression,SQLValue,StringContains,WildcardMatch
public interface FilterListener extends java.io.SerializableA filter listener extends expression filters with custom functionality.- Author:
- Steve Kim, Abe White
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.Objectevaluate(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.booleanexpectsArguments()Return true if this extension expects arguments to act on.booleanexpectsTarget()Return true if this extension expects a target to act on.java.lang.StringgetTag()Return the tag that this extension listens for.java.lang.ClassgetType(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 targetfieldbut 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 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.TRUEorBoolean.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 targetargClasses- the expected classes of the arguments, or null if no arguments
-
-