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
Interface StoreQuery.Executor

All Known Implementing Classes:
  AbstractStoreQuery.AbstractExecutor

Enclosing interface:
  StoreQuery

    public static interface StoreQuery.Executor

An executor provides a uniform interface to the mechanism for executing either an in-memory or datastore query. In the common case, the `executeQuery(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)` method will be called before other methods, though this is not guaranteed.

Author:
  Marc Prud'hommeaux

Method Summary
`Number` | `executeDelete(StoreQuery q, Object[] params)` Deleted the objects that result from the execution of the query, retuning the number of objects that were deleted.
`ResultObjectProvider` | `executeQuery(StoreQuery q, Object[] params, StoreQuery.Range range)` Return the result of executing this query with the given parameter values.
`Number` | `executeUpdate(StoreQuery q, Object[] params)` Updates the objects that result from the execution of the query, retuning the number of objects that were updated.
`ClassMetaData[]` | `getAccessPathMetaDatas(StoreQuery q)` Return an array of all persistent classes used in this query, or empty array if unknown.
`String` | `getAlias(StoreQuery q)` If this is not a projection but the candidate results are placed into a result class with an alias, return that alias.
`boolean[]` | `getAscending(StoreQuery q)` Return the ordering direction for all ordering clauses, or empty array if none.
`String[]` | `getDataStoreActions(StoreQuery q, Object[] params, StoreQuery.Range range)` Return a description of the commands that will be sent to the datastore in order to execute the query.
`int` | `getOperation(StoreQuery q)` Returns the operation this executor is meant to execute.
`Object` | `getOrderingValue(StoreQuery q, Object[] params, Object resultObject, int orderIndex)` Extract the value of the `orderIndex`th ordering expression in `Query#getOrderingClauses` from the given result object.
`LinkedMap` | `getParameterTypes(StoreQuery q)` Return a map of parameter names to types.
`String[]` | `getProjectionAliases(StoreQuery q)` Return the alias for each projection element, or empty array if not a projection.
`Class[]` | `getProjectionTypes(StoreQuery q)` Return the expected types of the projections used by this query, or an empty array if not a projection.
`void` | `getRange(StoreQuery q, Object[] params, StoreQuery.Range range)` Mutate the given range to set any range information stored in the query string and/or parameters.
`Class` | `getResultClass(StoreQuery q)` Returns the result class, if any.
`Map` | `getUpdates(StoreQuery q)` Return a map of `FieldMetaData` to update `Constant`s, in cases where this query is for a bulk update.
`boolean` | `hasGrouping(StoreQuery q)` Whether the compiled query has grouping.
`boolean` | `isAggregate(StoreQuery q)` Return true if the compiled query is an aggregate.
`boolean` | `isPacking(StoreQuery q)` Return true if this executor packs projections into the result class itself.
`void` | `validate(StoreQuery q)` Validate components of query.

Method Detail

### executeQuery

    ResultObjectProvider executeQuery(StoreQuery q,
                                      Object[] params,
                                      StoreQuery.Range range)

  Return the result of executing this query with the given parameter values. If this query is a projection and this executor does not pack results itself, each element of the returned result object provider should be an object array containing the projection values.

  Parameters:
    `lrs` - true if the query result should be treated as a large result set, assuming the query is not an aggregate and does not have grouping
  See Also:
    `isPacking(org.apache.openjpa.kernel.StoreQuery)`

### executeDelete

    Number executeDelete(StoreQuery q,
                         Object[] params)

  Deleted the objects that result from the execution of the query, retuning the number of objects that were deleted.

### executeUpdate

    Number executeUpdate(StoreQuery q,
                         Object[] params)

  Updates the objects that result from the execution of the query, retuning the number of objects that were updated.

### getDataStoreActions

    String[] getDataStoreActions(StoreQuery q,
                                 Object[] params,
                                 StoreQuery.Range range)

  Return a description of the commands that will be sent to the datastore in order to execute the query.

### validate

    void validate(StoreQuery q)

  Validate components of query.

### getRange

    void getRange(StoreQuery q,
                  Object[] params,
                  StoreQuery.Range range)

  Mutate the given range to set any range information stored in the query string and/or parameters.

### getOrderingValue

    Object getOrderingValue(StoreQuery q,
                            Object[] params,
                            Object resultObject,
                            int orderIndex)

  Extract the value of the `orderIndex`th ordering expression in `Query#getOrderingClauses` from the given result object. The result object will be an object from the result object provider returned from `executeQuery(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)`. This method is used when several result lists have to be merged in memory. If this exeuctor's parent query supports executors on abstract or interface classes, this method will not be used.

  See Also:
    `StoreQuery.supportsAbstractExecutors()`

### getAscending

    boolean[] getAscending(StoreQuery q)

  Return the ordering direction for all ordering clauses, or empty array if none.

### isPacking

    boolean isPacking(StoreQuery q)

  Return true if this executor packs projections into the result class itself. Executors for query languages that allow projections without result clauses must return true and perform the result packing themselves.

### getAlias

    String getAlias(StoreQuery q)

  If this is not a projection but the candidate results are placed into a result class with an alias, return that alias.

### getProjectionAliases

    String[] getProjectionAliases(StoreQuery q)

  Return the alias for each projection element, or empty array if not a projection.

### getProjectionTypes

    Class[] getProjectionTypes(StoreQuery q)

  Return the expected types of the projections used by this query, or an empty array if not a projection.

### getAccessPathMetaDatas

    ClassMetaData[] getAccessPathMetaDatas(StoreQuery q)

  Return an array of all persistent classes used in this query, or empty array if unknown.

### getOperation

    int getOperation(StoreQuery q)

  Returns the operation this executor is meant to execute.

  See Also:
    `QueryOperations`

### isAggregate

    boolean isAggregate(StoreQuery q)

  Return true if the compiled query is an aggregate.

### hasGrouping

    boolean hasGrouping(StoreQuery q)

  Whether the compiled query has grouping.

### getParameterTypes

    LinkedMap getParameterTypes(StoreQuery q)

  Return a map of parameter names to types. The returned `Map.entrySet()`'s `Iterator` must return values in the order in which they were declared or used.

### getResultClass

    Class getResultClass(StoreQuery q)

  Returns the result class, if any.

### getUpdates

    Map getUpdates(StoreQuery q)

  Return a map of `FieldMetaData` to update `Constant`s, in cases where this query is for a bulk update.

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 Apache Software Foundation. All Rights Reserved.