Class SQLEmbed

java.lang.Object
org.apache.openjpa.jdbc.kernel.exps.SQLEmbed
All Implemented Interfaces:
Serializable, JDBCFilterListener, FilterListener
Direct Known Subclasses:
SQLExpression, SQLValue

public class SQLEmbed extends Object implements JDBCFilterListener
Simple listener which embeds its SQL argument into the query. Listens on sql. Example:
"price < sql(\"(SELECT AVG (PRICE) FROM PRODUCT_TABLE)\")"
See Also:
  • Field Details

    • TAG

      public static String TAG
  • Constructor Details

    • SQLEmbed

      public SQLEmbed()
  • Method Details

    • getTag

      public String getTag()
      Description copied from interface: FilterListener
      Return the tag that this extension listens for.
      Specified by:
      getTag in interface FilterListener
    • expectsArguments

      public boolean expectsArguments()
      Description copied from interface: FilterListener
      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 ().
      Specified by:
      expectsArguments in interface FilterListener
    • expectsTarget

      public boolean expectsTarget()
      Description copied from interface: FilterListener
      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.
      Specified by:
      expectsTarget in interface FilterListener
    • evaluate

      public Object evaluate(Object target, Class targetClass, Object[] args, Class[] argClasses, Object candidate, StoreContext ctx)
      Description copied from interface: FilterListener
      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.
      Specified by:
      evaluate in interface FilterListener
      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
    • appendTo

      public void appendTo(SQLBuffer buf, FilterValue target, FilterValue[] args, ClassMapping type, JDBCStore store)
      Description copied from interface: JDBCFilterListener
      Append the SQL for this expression or value.
      Specified by:
      appendTo in interface JDBCFilterListener
      Parameters:
      buf - the SQL buffer to append to
      target - the target to act on, or null if the listener doesn't expect a target
      args - the values of the arguments given in the filter, or null if this listener doesn't expect arguments
      type - the class mapping for the query's candidate class
      store - the store that owns the query
    • getType

      public Class getType(Class targetClass, Class[] argClasses)
      Description copied from interface: FilterListener
      Return the expected type of the result of this listener.
      Specified by:
      getType in interface FilterListener
      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