<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_07) on Thu Aug 23 19:40:11 EDT 2007 -->
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE>
AbstractStoreQuery.AbstractExecutor (OpenJPA 1.0.0 API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.openjpa.kernel.AbstractStoreQuery.AbstractExecutor class">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="AbstractStoreQuery.AbstractExecutor (OpenJPA 1.0.0 API)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AbstractStoreQuery.AbstractExecutor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/openjpa/kernel/AutoClear.html" title="interface in org.apache.openjpa.kernel"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="AbstractStoreQuery.AbstractExecutor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.openjpa.kernel</FONT>
<BR>
Class AbstractStoreQuery.AbstractExecutor</H2>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.openjpa.kernel.AbstractStoreQuery.AbstractExecutor</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></DD>
</DL>
<DL>
<DT><B>Enclosing class:</B><DD><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel">AbstractStoreQuery</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract static class <B>AbstractStoreQuery.AbstractExecutor</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></DL>
</PRE>

<P>
Abstract <A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" title="class in org.apache.openjpa.kernel"><CODE>AbstractStoreQuery.AbstractExecutor</CODE></A> that implements most methods as no-ops.
<P>

<P>
<HR>

<P>

<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#AbstractStoreQuery.AbstractExecutor()">AbstractStoreQuery.AbstractExecutor</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Number.html" title="class or interface in java.lang">Number</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#executeDelete(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])">executeDelete</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q,
              <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>[]&nbsp;params)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deleted the objects that result from the execution of the
 query, retuning the number of objects that were deleted.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Number.html" title="class or interface in java.lang">Number</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#executeUpdate(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])">executeUpdate</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q,
              <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>[]&nbsp;params)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the objects that result from the execution of the
 query, retuning the number of objects that were updated.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getAccessPathMetaDatas(org.apache.openjpa.kernel.StoreQuery)">getAccessPathMetaDatas</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return an array of all persistent classes used in this query, or
 empty array if unknown.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getAlias(org.apache.openjpa.kernel.StoreQuery)">getAlias</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If this is not a projection but the candidate results are placed
 into a result class with an alias, return that alias.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getAscending(org.apache.openjpa.kernel.StoreQuery)">getAscending</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the ordering direction for all ordering clauses, or empty
 array if none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getDataStoreActions(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)">getDataStoreActions</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q,
                    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>[]&nbsp;params,
                    <A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Range.html" title="class in org.apache.openjpa.kernel">StoreQuery.Range</A>&nbsp;range)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a description of the commands that will be sent to
 the datastore in order to execute the query.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getOperation(org.apache.openjpa.kernel.StoreQuery)">getOperation</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the operation this executor is meant to execute.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getOrderingValue(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], java.lang.Object, int)">getOrderingValue</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q,
                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>[]&nbsp;params,
                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;resultObject,
                 int&nbsp;orderIndex)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Extract the value of the <code>orderIndex</code>th ordering
 expression in <CODE>Query#getOrderingClauses</CODE> from the
 given result object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://jakarta.apache.org/commons/collections/api-release/org/apache/commons/collections/map/LinkedMap.html" title="class or interface in org.apache.commons.collections.map">LinkedMap</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getParameterTypes(org.apache.openjpa.kernel.StoreQuery)">getParameterTypes</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a map of parameter names to types.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getProjectionAliases(org.apache.openjpa.kernel.StoreQuery)">getProjectionAliases</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the alias for each projection element, or empty array
 if not a projection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getProjectionTypes(org.apache.openjpa.kernel.StoreQuery)">getProjectionTypes</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the expected types of the projections used by this query,
 or an empty array if not a projection.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getRange(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)">getRange</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q,
         <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>[]&nbsp;params,
         <A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Range.html" title="class in org.apache.openjpa.kernel">StoreQuery.Range</A>&nbsp;range)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mutate the given range to set any range information stored in 
 the query string and/or parameters.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getResultClass(org.apache.openjpa.kernel.StoreQuery)">getResultClass</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the result class, if any.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util">Map</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#getUpdates(org.apache.openjpa.kernel.StoreQuery)">getUpdates</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a map of <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta"><CODE>FieldMetaData</CODE></A> to update
 <A HREF="../../../../org/apache/openjpa/kernel/exps/Constant.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>Constant</CODE></A>s, in cases where this query is for a bulk update.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#hasGrouping(org.apache.openjpa.kernel.StoreQuery)">hasGrouping</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the compiled query has grouping.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#isAggregate(org.apache.openjpa.kernel.StoreQuery)">isAggregate</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if the compiled query is an aggregate.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#isPacking(org.apache.openjpa.kernel.StoreQuery)">isPacking</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if this executor packs projections into the result
 class itself.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html#validate(org.apache.openjpa.kernel.StoreQuery)">validate</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate components of query.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.openjpa.kernel.StoreQuery.Executor"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from interface org.apache.openjpa.kernel.<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#executeQuery(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)">executeQuery</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="AbstractStoreQuery.AbstractExecutor()"><!-- --></A><H3>
AbstractStoreQuery.AbstractExecutor</H3>
<PRE>
public <B>AbstractStoreQuery.AbstractExecutor</B>()</PRE>
<DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="executeDelete(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])"><!-- --></A><H3>
executeDelete</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Number.html" title="class or interface in java.lang">Number</A> <B>executeDelete</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q,
                            <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>[]&nbsp;params)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#executeDelete(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])">StoreQuery.Executor</A></CODE></B></DD>
<DD>Deleted the objects that result from the execution of the
 query, retuning the number of objects that were deleted.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#executeDelete(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])">executeDelete</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="executeUpdate(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])"><!-- --></A><H3>
executeUpdate</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Number.html" title="class or interface in java.lang">Number</A> <B>executeUpdate</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q,
                            <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>[]&nbsp;params)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#executeUpdate(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])">StoreQuery.Executor</A></CODE></B></DD>
<DD>Updates the objects that result from the execution of the
 query, retuning the number of objects that were updated.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#executeUpdate(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[])">executeUpdate</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDataStoreActions(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)"><!-- --></A><H3>
getDataStoreActions</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] <B>getDataStoreActions</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q,
                                    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>[]&nbsp;params,
                                    <A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Range.html" title="class in org.apache.openjpa.kernel">StoreQuery.Range</A>&nbsp;range)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getDataStoreActions(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Return a description of the commands that will be sent to
 the datastore in order to execute the query.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getDataStoreActions(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)">getDataStoreActions</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="validate(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
validate</H3>
<PRE>
public void <B>validate</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#validate(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Validate components of query.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#validate(org.apache.openjpa.kernel.StoreQuery)">validate</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getRange(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)"><!-- --></A><H3>
getRange</H3>
<PRE>
public void <B>getRange</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q,
                     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>[]&nbsp;params,
                     <A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Range.html" title="class in org.apache.openjpa.kernel">StoreQuery.Range</A>&nbsp;range)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getRange(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Mutate the given range to set any range information stored in 
 the query string and/or parameters.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getRange(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)">getRange</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getOrderingValue(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], java.lang.Object, int)"><!-- --></A><H3>
getOrderingValue</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A> <B>getOrderingValue</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q,
                               <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>[]&nbsp;params,
                               <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;resultObject,
                               int&nbsp;orderIndex)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getOrderingValue(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], java.lang.Object, int)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Extract the value of the <code>orderIndex</code>th ordering
 expression in <CODE>Query#getOrderingClauses</CODE> from the
 given result object. The result object will be an object from
 the result object provider returned from <A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#executeQuery(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)"><CODE>StoreQuery.Executor.executeQuery(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], org.apache.openjpa.kernel.StoreQuery.Range)</CODE></A>.
 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.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getOrderingValue(org.apache.openjpa.kernel.StoreQuery, java.lang.Object[], java.lang.Object, int)">getOrderingValue</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html#supportsAbstractExecutors()"><CODE>StoreQuery.supportsAbstractExecutors()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getAscending(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
getAscending</H3>
<PRE>
public boolean[] <B>getAscending</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getAscending(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Return the ordering direction for all ordering clauses, or empty
 array if none.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getAscending(org.apache.openjpa.kernel.StoreQuery)">getAscending</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isPacking(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
isPacking</H3>
<PRE>
public boolean <B>isPacking</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#isPacking(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>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.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#isPacking(org.apache.openjpa.kernel.StoreQuery)">isPacking</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getAlias(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
getAlias</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>getAlias</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getAlias(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>If this is not a projection but the candidate results are placed
 into a result class with an alias, return that alias.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getAlias(org.apache.openjpa.kernel.StoreQuery)">getAlias</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getProjectionAliases(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
getProjectionAliases</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[] <B>getProjectionAliases</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getProjectionAliases(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Return the alias for each projection element, or empty array
 if not a projection.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getProjectionAliases(org.apache.openjpa.kernel.StoreQuery)">getProjectionAliases</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getProjectionTypes(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
getProjectionTypes</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>[] <B>getProjectionTypes</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getProjectionTypes(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Return the expected types of the projections used by this query,
 or an empty array if not a projection.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getProjectionTypes(org.apache.openjpa.kernel.StoreQuery)">getProjectionTypes</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getAccessPathMetaDatas(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
getAccessPathMetaDatas</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>[] <B>getAccessPathMetaDatas</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getAccessPathMetaDatas(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Return an array of all persistent classes used in this query, or
 empty array if unknown.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getAccessPathMetaDatas(org.apache.openjpa.kernel.StoreQuery)">getAccessPathMetaDatas</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getOperation(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
getOperation</H3>
<PRE>
public int <B>getOperation</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getOperation(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Returns the operation this executor is meant to execute.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getOperation(org.apache.openjpa.kernel.StoreQuery)">getOperation</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/openjpa/kernel/QueryOperations.html" title="interface in org.apache.openjpa.kernel"><CODE>QueryOperations</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="isAggregate(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
isAggregate</H3>
<PRE>
public boolean <B>isAggregate</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#isAggregate(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Return true if the compiled query is an aggregate.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#isAggregate(org.apache.openjpa.kernel.StoreQuery)">isAggregate</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="hasGrouping(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
hasGrouping</H3>
<PRE>
public boolean <B>hasGrouping</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#hasGrouping(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Whether the compiled query has grouping.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#hasGrouping(org.apache.openjpa.kernel.StoreQuery)">hasGrouping</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getParameterTypes(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
getParameterTypes</H3>
<PRE>
public <A HREF="http://jakarta.apache.org/commons/collections/api-release/org/apache/commons/collections/map/LinkedMap.html" title="class or interface in org.apache.commons.collections.map">LinkedMap</A> <B>getParameterTypes</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getParameterTypes(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Return a map of parameter names to types. The returned
 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html#entrySet()" title="class or interface in java.util"><CODE>Map.entrySet()</CODE></A>'s <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Iterator.html" title="class or interface in java.util"><CODE>Iterator</CODE></A> must return values in the
 order in which they were declared or used.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getParameterTypes(org.apache.openjpa.kernel.StoreQuery)">getParameterTypes</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getResultClass(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
getResultClass</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A> <B>getResultClass</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getResultClass(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Returns the result class, if any.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getResultClass(org.apache.openjpa.kernel.StoreQuery)">getResultClass</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getUpdates(org.apache.openjpa.kernel.StoreQuery)"><!-- --></A><H3>
getUpdates</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Map.html" title="class or interface in java.util">Map</A> <B>getUpdates</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A>&nbsp;q)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getUpdates(org.apache.openjpa.kernel.StoreQuery)">StoreQuery.Executor</A></CODE></B></DD>
<DD>Return a map of <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta"><CODE>FieldMetaData</CODE></A> to update
 <A HREF="../../../../org/apache/openjpa/kernel/exps/Constant.html" title="interface in org.apache.openjpa.kernel.exps"><CODE>Constant</CODE></A>s, in cases where this query is for a bulk update.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html#getUpdates(org.apache.openjpa.kernel.StoreQuery)">getUpdates</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.Executor.html" title="interface in org.apache.openjpa.kernel">StoreQuery.Executor</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/AbstractStoreQuery.AbstractExecutor.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/openjpa/kernel/AbstractStoreQuery.html" title="class in org.apache.openjpa.kernel"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/openjpa/kernel/AutoClear.html" title="interface in org.apache.openjpa.kernel"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/openjpa/kernel/AbstractStoreQuery.AbstractExecutor.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="AbstractStoreQuery.AbstractExecutor.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &copy; 2006-2007 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
