Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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