<!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_15) on Thu Jul 17 13:34:27 CDT 2008 -->
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE>
StoreManager (OpenJPA 1.0.3 API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.openjpa.kernel.StoreManager interface">

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

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="StoreManager (OpenJPA 1.0.3 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/StoreManager.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/StoreContext.html" title="interface in org.apache.openjpa.kernel"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.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/StoreManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="StoreManager.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;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&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>
Interface StoreManager</H2>
<DL>
<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../org/apache/openjpa/lib/util/Closeable.html" title="interface in org.apache.openjpa.lib.util">Closeable</A></DD>
</DL>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../org/apache/openjpa/abstractstore/AbstractStoreManager.html" title="class in org.apache.openjpa.abstractstore">AbstractStoreManager</A>, <A HREF="../../../../org/apache/openjpa/datacache/DataCacheStoreManager.html" title="class in org.apache.openjpa.datacache">DataCacheStoreManager</A>, <A HREF="../../../../org/apache/openjpa/kernel/DelegatingStoreManager.html" title="class in org.apache.openjpa.kernel">DelegatingStoreManager</A>, <A HREF="../../../../org/apache/openjpa/jdbc/kernel/JDBCStoreManager.html" title="class in org.apache.openjpa.jdbc.kernel">JDBCStoreManager</A>, <A HREF="../../../../org/apache/openjpa/xmlstore/XMLStoreManager.html" title="class in org.apache.openjpa.xmlstore">XMLStoreManager</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public interface <B>StoreManager</B><DT>extends <A HREF="../../../../org/apache/openjpa/lib/util/Closeable.html" title="interface in org.apache.openjpa.lib.util">Closeable</A></DL>
</PRE>

<P>
Interface to be implemented by data store mechanisms to interact with
 this runtime.
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD>Abe White</DD>
</DL>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_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>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#FORCE_LOAD_ALL">FORCE_LOAD_ALL</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#FORCE_LOAD_DFG">FORCE_LOAD_DFG</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#FORCE_LOAD_NONE">FORCE_LOAD_NONE</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#FORCE_LOAD_REFRESH">FORCE_LOAD_REFRESH</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#VERSION_DIFFERENT">VERSION_DIFFERENT</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#VERSION_EARLIER">VERSION_EARLIER</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#VERSION_LATER">VERSION_LATER</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#VERSION_SAME">VERSION_SAME</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;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#assignField(org.apache.openjpa.kernel.OpenJPAStateManager, int, boolean)">assignField</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
            int&nbsp;field,
            boolean&nbsp;preFlush)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assign a value to the given field.</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/StoreManager.html#assignObjectId(org.apache.openjpa.kernel.OpenJPAStateManager, boolean)">assignObjectId</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
               boolean&nbsp;preFlush)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assign an object id to the given new instance.</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/StoreManager.html#beforeStateChange(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.PCState)">beforeStateChange</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
                  <A HREF="../../../../org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>&nbsp;fromState,
                  <A HREF="../../../../org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>&nbsp;toState)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notification that the given state manager is about to change its
 lifecycle state.</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/StoreManager.html#begin()">begin</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Begin a data store transaction.</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/StoreManager.html#beginOptimistic()">beginOptimistic</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notification that an optimistic transaction has started.</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/StoreManager.html#cancelAll()">cancelAll</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Cancel all pending data store statements.</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/StoreManager.html#close()">close</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Free any resources this store manager is using.</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/StoreManager.html#commit()">commit</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Commit the current data store transaction.</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/StoreManager.html#compareVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object, java.lang.Object)">compareVersion</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;state,
               <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;v1,
               <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;v2)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare the two version objects.</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/StoreManager.html#copyDataStoreId(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)">copyDataStoreId</A></B>(<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;oid,
                <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Copy the given object id value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop">ResultObjectProvider</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#executeExtent(org.apache.openjpa.meta.ClassMetaData, boolean, org.apache.openjpa.kernel.FetchConfiguration)">executeExtent</A></B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta,
              boolean&nbsp;subclasses,
              <A HREF="../../../../org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>&nbsp;fetch)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a provider for all instances of the given candidate class,
 optionally including subclasses.</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/StoreManager.html#exists(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)">exists</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
       <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;edata)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Verify that the given instance exists in the data store; return false
 if it does not.</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/Collection.html" title="class or interface in java.util">Collection</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#flush(java.util.Collection)">flush</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A>&nbsp;sms)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Flush the given state manager collection to the datastore, returning
 a collection of exceptions encountered during flushing.</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/StoreManager.html#getClientConnection()">getClientConnection</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a connection to the data store suitable for client use.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#getDataStoreIdSequence(org.apache.openjpa.meta.ClassMetaData)">getDataStoreIdSequence</A></B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;forClass)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a sequence that generates datastore identity values for the
 given class.</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/StoreManager.html#getDataStoreIdType(org.apache.openjpa.meta.ClassMetaData)">getDataStoreIdType</A></B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the class used by this StoreManager for datastore identity
 values.</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/StoreManager.html#getManagedType(java.lang.Object)">getManagedType</A></B>(<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;oid)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the persistent class for the given data store identity value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#getValueSequence(org.apache.openjpa.meta.FieldMetaData)">getValueSequence</A></B>(<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>&nbsp;forField)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a sequence that generates values for the given field.</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/StoreManager.html#initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)">initialize</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
           <A HREF="../../../../org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>&nbsp;state,
           <A HREF="../../../../org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>&nbsp;fetch,
           <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;edata)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialize the given state manager.</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/StoreManager.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)">load</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
     <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/BitSet.html" title="class or interface in java.util">BitSet</A>&nbsp;fields,
     <A HREF="../../../../org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>&nbsp;fetch,
     int&nbsp;lockLevel,
     <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;edata)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Load the given state manager.</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/Collection.html" title="class or interface in java.util">Collection</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#loadAll(java.util.Collection, org.apache.openjpa.kernel.PCState, int, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)">loadAll</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A>&nbsp;sms,
        <A HREF="../../../../org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>&nbsp;state,
        int&nbsp;load,
        <A HREF="../../../../org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>&nbsp;fetch,
        <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;edata)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialize, load, or validate the existance of all of the given
 objects.</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/StoreManager.html#newDataStoreId(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)">newDataStoreId</A></B>(<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;oidVal,
               <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new unique datastore identity for the given type from
 the given oid value (presumably pk, stringified oid, or oid instance).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#newFetchConfiguration()">newFetchConfiguration</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a fetch configuration suitable for this runtime.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#newQuery(java.lang.String)">newQuery</A></B>(<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>&nbsp;language)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a query implementation suitable for this store.</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/StoreManager.html#releaseConnection()">releaseConnection</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Instruct the store to release a retained connection.</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/StoreManager.html#retainConnection()">retainConnection</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Instruct the store to retain a connection for continued use.</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/StoreManager.html#rollback()">rollback</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rollback the current data store transaction.</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/StoreManager.html#rollbackOptimistic()">rollbackOptimistic</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notification that an optimistic transaction was rolled back before
 a data store transaction ever began.</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/StoreManager.html#setContext(org.apache.openjpa.kernel.StoreContext)">setContext</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>&nbsp;ctx)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set a reference to the corresponding context.</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/StoreManager.html#syncVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)">syncVersion</A></B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
            <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;edata)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Update the version information in the given state manager to the
 version stored in the data store.</TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_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>Field Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="VERSION_LATER"><!-- --></A><H3>
VERSION_LATER</H3>
<PRE>
static final int <B>VERSION_LATER</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.kernel.StoreManager.VERSION_LATER">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="VERSION_EARLIER"><!-- --></A><H3>
VERSION_EARLIER</H3>
<PRE>
static final int <B>VERSION_EARLIER</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.kernel.StoreManager.VERSION_EARLIER">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="VERSION_SAME"><!-- --></A><H3>
VERSION_SAME</H3>
<PRE>
static final int <B>VERSION_SAME</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.kernel.StoreManager.VERSION_SAME">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="VERSION_DIFFERENT"><!-- --></A><H3>
VERSION_DIFFERENT</H3>
<PRE>
static final int <B>VERSION_DIFFERENT</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.kernel.StoreManager.VERSION_DIFFERENT">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="FORCE_LOAD_NONE"><!-- --></A><H3>
FORCE_LOAD_NONE</H3>
<PRE>
static final int <B>FORCE_LOAD_NONE</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.kernel.StoreManager.FORCE_LOAD_NONE">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="FORCE_LOAD_DFG"><!-- --></A><H3>
FORCE_LOAD_DFG</H3>
<PRE>
static final int <B>FORCE_LOAD_DFG</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.kernel.StoreManager.FORCE_LOAD_DFG">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="FORCE_LOAD_REFRESH"><!-- --></A><H3>
FORCE_LOAD_REFRESH</H3>
<PRE>
static final int <B>FORCE_LOAD_REFRESH</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.kernel.StoreManager.FORCE_LOAD_REFRESH">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="FORCE_LOAD_ALL"><!-- --></A><H3>
FORCE_LOAD_ALL</H3>
<PRE>
static final int <B>FORCE_LOAD_ALL</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.kernel.StoreManager.FORCE_LOAD_ALL">Constant Field Values</A></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="setContext(org.apache.openjpa.kernel.StoreContext)"><!-- --></A><H3>
setContext</H3>
<PRE>
void <B>setContext</B>(<A HREF="../../../../org/apache/openjpa/kernel/StoreContext.html" title="interface in org.apache.openjpa.kernel">StoreContext</A>&nbsp;ctx)</PRE>
<DL>
<DD>Set a reference to the corresponding context. This method
 will be called before the store manager is used. The store manager
 is responsible for pulling any necessary configuration data from the
 context, including the transaction mode and connection retain mode.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="beginOptimistic()"><!-- --></A><H3>
beginOptimistic</H3>
<PRE>
void <B>beginOptimistic</B>()</PRE>
<DL>
<DD>Notification that an optimistic transaction has started. This method
 does not replace the <A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#begin()"><CODE>begin()</CODE></A> method, which will still be called
 when a true data store transaction should begin.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="rollbackOptimistic()"><!-- --></A><H3>
rollbackOptimistic</H3>
<PRE>
void <B>rollbackOptimistic</B>()</PRE>
<DL>
<DD>Notification that an optimistic transaction was rolled back before
 a data store transaction ever began.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="begin()"><!-- --></A><H3>
begin</H3>
<PRE>
void <B>begin</B>()</PRE>
<DL>
<DD>Begin a data store transaction. After this method is called,
 it is assumed that all further operations are operating in a single
 transaction that can be committed or rolled back. If optimistic
 transactions are in use, this method will only be called when the
 system requires a transactionally consistent connection due to a
 user request to flush or commit the transaction. In this case, it
 is possible that the optimistic transaction does not have the latest
 versions of all instances (i.e. another transaction has modified the
 same instances and committed since the optimistic transaction started).
 On commit, an exception must be thrown on any attempt to overwrite
 data for an instance with an older version.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Since:</B></DT>
  <DD>0.2.5</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="commit()"><!-- --></A><H3>
commit</H3>
<PRE>
void <B>commit</B>()</PRE>
<DL>
<DD>Commit the current data store transaction.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="rollback()"><!-- --></A><H3>
rollback</H3>
<PRE>
void <B>rollback</B>()</PRE>
<DL>
<DD>Rollback the current data store transaction.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="exists(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><!-- --></A><H3>
exists</H3>
<PRE>
boolean <B>exists</B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
               <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;edata)</PRE>
<DL>
<DD>Verify that the given instance exists in the data store; return false
 if it does not.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="syncVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><!-- --></A><H3>
syncVersion</H3>
<PRE>
boolean <B>syncVersion</B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
                    <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;edata)</PRE>
<DL>
<DD>Update the version information in the given state manager to the
 version stored in the data store.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>sm</CODE> - the instance to check<DD><CODE>edata</CODE> - the current execution data, or null if not
 given to the calling method of the context
<DT><B>Returns:</B><DD>true if the instance still exists in the
 datastore and is up-to-date, false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><!-- --></A><H3>
initialize</H3>
<PRE>
boolean <B>initialize</B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
                   <A HREF="../../../../org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>&nbsp;state,
                   <A HREF="../../../../org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>&nbsp;fetch,
                   <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;edata)</PRE>
<DL>
<DD>Initialize the given state manager. The object id of the
 state manager will be set, and the state manager's metadata be set to
 the class of the instance to load, or possibly one of its superclasses.
 Initialization involves first calling the
 <A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html#initialize(java.lang.Class, org.apache.openjpa.kernel.PCState)"><CODE>OpenJPAStateManager.initialize(java.lang.Class, org.apache.openjpa.kernel.PCState)</CODE></A> method with
 a new instance of the correct type constructed with the
 <A HREF="../../../../org/apache/openjpa/enhance/PCRegistry.html#newInstance(java.lang.Class, org.apache.openjpa.enhance.StateManager, boolean)"><CODE>PCRegistry.newInstance(Class,
 org.apache.openjpa.enhance.StateManager, boolean)</CODE></A> method
 (this will reset the state manager's metadata if the actual type was a
 subclass). After instance initialization, load any the fields for the
 given fetch configuration that can be efficiently retrieved. If any of
 the configured fields are not loaded in this method, they will be
 loaded with a subsequent call to <A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)"><CODE>load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)</CODE></A>. If this method is
 called during a data store transaction, the instance's database record
 should be locked. Version information can be loaded if desired through
 the <A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html#setVersion(java.lang.Object)"><CODE>OpenJPAStateManager.setVersion(java.lang.Object)</CODE></A> method.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>sm</CODE> - the instance to initialize<DD><CODE>state</CODE> - the lifecycle state to initialize the state manager with<DD><CODE>fetch</CODE> - configuration for how to load the instance<DD><CODE>edata</CODE> - the current execution data, or null if not
 given to the calling method of the broker
<DT><B>Returns:</B><DD>true if the matching instance exists in the data
 store, false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)"><!-- --></A><H3>
load</H3>
<PRE>
boolean <B>load</B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
             <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/BitSet.html" title="class or interface in java.util">BitSet</A>&nbsp;fields,
             <A HREF="../../../../org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>&nbsp;fetch,
             int&nbsp;lockLevel,
             <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;edata)</PRE>
<DL>
<DD>Load the given state manager.
 Note that any collection or map types loaded into the state manager
 will be proxied with the correct type; therefore the store manager
 does not have to load the same concrete collection/map types as the
 instance declares. However, array types must be consistent with the
 array type stored by the persistence capable instance. If this method
 is called during a data store transaction, the instance should be
 locked. If the given state manager does not have its version set
 already, version information can be loaded if desired through the
 <A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html#setVersion(java.lang.Object)"><CODE>OpenJPAStateManager.setVersion(java.lang.Object)</CODE></A> method.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>sm</CODE> - the instance to load<DD><CODE>fields</CODE> - set of fields to load; all field indexes in this
 set must be loaded; this set is mutable<DD><CODE>fetch</CODE> - the fetch configuration to use when loading
 related objects<DD><CODE>lockLevel</CODE> - attempt to load simple fields at this lock level;
 relations should be loaded at the read lock level
 of the fetch configuration<DD><CODE>edata</CODE> - the current execution data, or null if not
 given to the calling method of the broker
<DT><B>Returns:</B><DD>false if the object no longer exists in the
 database, true otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="loadAll(java.util.Collection, org.apache.openjpa.kernel.PCState, int, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><!-- --></A><H3>
loadAll</H3>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A> <B>loadAll</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A>&nbsp;sms,
                   <A HREF="../../../../org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>&nbsp;state,
                   int&nbsp;load,
                   <A HREF="../../../../org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>&nbsp;fetch,
                   <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;edata)</PRE>
<DL>
<DD>Initialize, load, or validate the existance of all of the given
 objects. This method is called from various broker methods that act
 on multiple objects, such as <A HREF="../../../../org/apache/openjpa/kernel/StoreContext.html#retrieveAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks)"><CODE>StoreContext.retrieveAll(java.util.Collection, boolean, org.apache.openjpa.kernel.OpCallbacks)</CODE></A>. It gives
 the store manager an opportunity to efficiently batch-load data for
 several objects. Each of the given state managers will be in one of
 three states, each requiring a different action:
 <ul>
 <li><code>stateManager.getO () == null</code>: An
 uninitialized state manager. Perform the same actions as in
 <A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><CODE>initialize(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)</CODE></A>.
 <li><code>load != FORCE_LOAD_NONE || stateManager.getPCState ()
 == PCState.HOLLOW</code>: A hollow state manager, or one whose
 fields must be loaded because this is a refresh or retrieve action.
 Peform the same actions as in <A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)"><CODE>load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)</CODE></A>, choosing the fields
 to load based on the fetch configuration, or loading all fields
 if <code>load == FORCE_LOAD_ALL</code>. Any required fields left
 unloaded will cause a subsequent invocation of <A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)"><CODE>load(org.apache.openjpa.kernel.OpenJPAStateManager, java.util.BitSet, org.apache.openjpa.kernel.FetchConfiguration, int, java.lang.Object)</CODE></A> on
 the individual object in question.</li>
 <li><code>load == FORCE_LOAD_NONE &amp;&amp;
 stateManager.getPCState () != PCState.HOLLOW</code>: A non-hollow
 state manager. Perform the same actions as in <A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#exists(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)"><CODE>exists(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object)</CODE></A>,
 and load additional state if desired. Non-hollow objects will only
 be included outside of refresh invocations if a user calls
 <code>findAll</code> with the <code>validate</code>
 parameter set to <code>true</code>.</li>
 </ul> 
 Store managers that cannot efficiently batch load can simply test
 for these conditions and delegate to the proper methods.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>sms</CODE> - the state manager instances to load<DD><CODE>state</CODE> - the lifecycle state to initialize uninitialized
 state managers with; may be null if no uninitialized
 instances are included in <code>sms</code><DD><CODE>load</CODE> - one of the FORCE_LOAD_* constants describing the
 fields to force-load if this is a refresh or retrieve action<DD><CODE>fetch</CODE> - the current fetch configuration to use when loading
 related objects<DD><CODE>edata</CODE> - the current execution data, or null if not
 given to the calling method of the broker
<DT><B>Returns:</B><DD>a collection of the state manager identities for
 which no data store record exists<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/openjpa/util/ImplHelper.html#loadAll(java.util.Collection, org.apache.openjpa.kernel.StoreManager, org.apache.openjpa.kernel.PCState, int, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)"><CODE>ImplHelper.loadAll(java.util.Collection, org.apache.openjpa.kernel.StoreManager, org.apache.openjpa.kernel.PCState, int, org.apache.openjpa.kernel.FetchConfiguration, java.lang.Object)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="beforeStateChange(org.apache.openjpa.kernel.OpenJPAStateManager, org.apache.openjpa.kernel.PCState, org.apache.openjpa.kernel.PCState)"><!-- --></A><H3>
beforeStateChange</H3>
<PRE>
void <B>beforeStateChange</B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
                       <A HREF="../../../../org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>&nbsp;fromState,
                       <A HREF="../../../../org/apache/openjpa/kernel/PCState.html" title="class in org.apache.openjpa.kernel">PCState</A>&nbsp;toState)</PRE>
<DL>
<DD>Notification that the given state manager is about to change its
 lifecycle state. The store manager is not required to do anything in
 this method, but some back ends may need to.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Since:</B></DT>
  <DD>0.3.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="flush(java.util.Collection)"><!-- --></A><H3>
flush</H3>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A> <B>flush</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html" title="class or interface in java.util">Collection</A>&nbsp;sms)</PRE>
<DL>
<DD>Flush the given state manager collection to the datastore, returning
 a collection of exceptions encountered during flushing.
 The given collection may include states that do not require data
 store action, such as persistent-clean instances or persistent-dirty
 instances that have not been modified since they were last flushed.
 For datastore updates and inserts, the dirty, non-flushed fields of
 each state should be flushed. New instances without an assigned object
 id should be given one via <A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html#setObjectId(java.lang.Object)"><CODE>OpenJPAStateManager.setObjectId(java.lang.Object)</CODE></A>. New
 instances with value-strategy fields that have not been assigned yet
 should have their fields set. Datastore version information should be
 updated during flush, and the state manager's version indicator
 updated through the <A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html#setNextVersion(java.lang.Object)"><CODE>OpenJPAStateManager.setNextVersion(java.lang.Object)</CODE></A> method.
 The current version will roll over to this next version upon successful
 commit.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><CODE>org.apache.openjpa.util.ApplicationIds#assign()</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="assignObjectId(org.apache.openjpa.kernel.OpenJPAStateManager, boolean)"><!-- --></A><H3>
assignObjectId</H3>
<PRE>
boolean <B>assignObjectId</B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
                       boolean&nbsp;preFlush)</PRE>
<DL>
<DD>Assign an object id to the given new instance. Return false if the
 instance cannot be assigned an identity because a flush is required
 (for example, the identity is determined by the datastore on insert).
 For application identity instances, the assigned object id should be
 based on field state. The implementation is responsible for using the
 proper value strategy according to the instance metadata. This method
 is called the first time a user requests the oid of a new instance
 before flush.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>preFlush</CODE> - whether this assignment is being requested by the
 system as part of pre-flush activities, and can
 be ignored if it is more efficient to assign within <A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#flush(java.util.Collection)"><CODE>flush(java.util.Collection)</CODE></A><DT><B>Since:</B></DT>
  <DD>0.3.3</DD>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/openjpa/util/ImplHelper.html#generateFieldValue(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.FieldMetaData)"><CODE>ImplHelper.generateFieldValue(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.FieldMetaData)</CODE></A>, 
<A HREF="../../../../org/apache/openjpa/util/ImplHelper.html#generateIdentityValue(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData, int)"><CODE>ImplHelper.generateIdentityValue(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData, int)</CODE></A>, 
<CODE>org.apache.openjpa.util.ApplicationIds#assign()</CODE></DL>
</DD>
</DL>
<HR>

<A NAME="assignField(org.apache.openjpa.kernel.OpenJPAStateManager, int, boolean)"><!-- --></A><H3>
assignField</H3>
<PRE>
boolean <B>assignField</B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;sm,
                    int&nbsp;field,
                    boolean&nbsp;preFlush)</PRE>
<DL>
<DD>Assign a value to the given field. Return false if the value cannot
 be assigned because a flush is required (for example, the field value
 is determined by the datastore on insert). This method is called the
 first time a user requests the value of a field with a value-strategy
 on a new instance before flush.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>preFlush</CODE> - whether this assignment is being requested by the
 system as part of pre-flush activities, and can
 be ignored if it is more efficient to assign within <A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#flush(java.util.Collection)"><CODE>flush(java.util.Collection)</CODE></A><DT><B>Since:</B></DT>
  <DD>0.4.0</DD>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/openjpa/util/ImplHelper.html#generateFieldValue(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.FieldMetaData)"><CODE>ImplHelper.generateFieldValue(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.FieldMetaData)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getManagedType(java.lang.Object)"><!-- --></A><H3>
getManagedType</H3>
<PRE>
<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>getManagedType</B>(<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;oid)</PRE>
<DL>
<DD>Return the persistent class for the given data store identity value.
 If the given value is not a datastore identity object, return null.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Since:</B></DT>
  <DD>0.3.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDataStoreIdType(org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
getDataStoreIdType</H3>
<PRE>
<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>getDataStoreIdType</B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</PRE>
<DL>
<DD>Return the class used by this StoreManager for datastore identity
 values. The given metadata may be null, in which case the return
 value should the common datastore identity class for all classes, or
 null if this store manager does not use a common identity class.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="copyDataStoreId(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
copyDataStoreId</H3>
<PRE>
<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>copyDataStoreId</B>(<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;oid,
                       <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</PRE>
<DL>
<DD>Copy the given object id value. Use the described type of the given
 metadata, which may be a subclass of the given oid's described type.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="newDataStoreId(java.lang.Object, org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
newDataStoreId</H3>
<PRE>
<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>newDataStoreId</B>(<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;oidVal,
                      <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</PRE>
<DL>
<DD>Create a new unique datastore identity for the given type from
 the given oid value (presumably pk, stringified oid, or oid instance).
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getClientConnection()"><!-- --></A><H3>
getClientConnection</H3>
<PRE>
<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>getClientConnection</B>()</PRE>
<DL>
<DD>Return a connection to the data store suitable for client use. If
 this method is called during a data store transaction, thie connection
 must be transactional. If no connection is in use, this method should
 create one to return.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="retainConnection()"><!-- --></A><H3>
retainConnection</H3>
<PRE>
void <B>retainConnection</B>()</PRE>
<DL>
<DD>Instruct the store to retain a connection for continued use. This
 will be invoked automatically based on the user's configured connection
 retain mode.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="releaseConnection()"><!-- --></A><H3>
releaseConnection</H3>
<PRE>
void <B>releaseConnection</B>()</PRE>
<DL>
<DD>Instruct the store to release a retained connection. This
 will be invoked automatically based on the user's configured connection
 retain mode.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="cancelAll()"><!-- --></A><H3>
cancelAll</H3>
<PRE>
boolean <B>cancelAll</B>()</PRE>
<DL>
<DD>Cancel all pending data store statements.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if any statements cancelled, false otherwise<DT><B>Since:</B></DT>
  <DD>0.3.1</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="executeExtent(org.apache.openjpa.meta.ClassMetaData, boolean, org.apache.openjpa.kernel.FetchConfiguration)"><!-- --></A><H3>
executeExtent</H3>
<PRE>
<A HREF="../../../../org/apache/openjpa/lib/rop/ResultObjectProvider.html" title="interface in org.apache.openjpa.lib.rop">ResultObjectProvider</A> <B>executeExtent</B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta,
                                   boolean&nbsp;subclasses,
                                   <A HREF="../../../../org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A>&nbsp;fetch)</PRE>
<DL>
<DD>Return a provider for all instances of the given candidate class,
 optionally including subclasses. The given candidate may be an
 unmapped type with mapped subclasses. If the provider is iterated
 within a data store transaction, returned instances should be locked.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="newQuery(java.lang.String)"><!-- --></A><H3>
newQuery</H3>
<PRE>
<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.html" title="interface in org.apache.openjpa.kernel">StoreQuery</A> <B>newQuery</B>(<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>&nbsp;language)</PRE>
<DL>
<DD>Return a query implementation suitable for this store. If the query
 is iterated within a data store transaction, returned instances should
 be locked. Return null if this store does not support native execution
 of the given language. OpenJPA can execute JPQL in memory even without
 back end support.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>language</CODE> - the query language</DL>
</DD>
</DL>
<HR>

<A NAME="newFetchConfiguration()"><!-- --></A><H3>
newFetchConfiguration</H3>
<PRE>
<A HREF="../../../../org/apache/openjpa/kernel/FetchConfiguration.html" title="interface in org.apache.openjpa.kernel">FetchConfiguration</A> <B>newFetchConfiguration</B>()</PRE>
<DL>
<DD>Return a fetch configuration suitable for this runtime. Typically
 will be or extend <code>FetchConfigurationImpl</code>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="compareVersion(org.apache.openjpa.kernel.OpenJPAStateManager, java.lang.Object, java.lang.Object)"><!-- --></A><H3>
compareVersion</H3>
<PRE>
int <B>compareVersion</B>(<A HREF="../../../../org/apache/openjpa/kernel/OpenJPAStateManager.html" title="interface in org.apache.openjpa.kernel">OpenJPAStateManager</A>&nbsp;state,
                   <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;v1,
                   <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;v2)</PRE>
<DL>
<DD>Compare the two version objects.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>state</CODE> - the state manager for the object<DD><CODE>v1</CODE> - the first version object to compare<DD><CODE>v2</CODE> - the second version object to compare
<DT><B>Returns:</B><DD><ul>
 <li><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#VERSION_LATER"><CODE>VERSION_LATER</CODE></A> if <code>v1</code>
 is later than <code>v2</code></li>
 <li><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#VERSION_EARLIER"><CODE>VERSION_EARLIER</CODE></A> if <code>v1</code>
 is earlier than <code>v2</code></li>
 <li><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#VERSION_SAME"><CODE>VERSION_SAME</CODE></A> if <code>v1</code>
 is the same as <code>v2</code></li>
 <li><A HREF="../../../../org/apache/openjpa/kernel/StoreManager.html#VERSION_DIFFERENT"><CODE>VERSION_DIFFERENT</CODE></A> if <code>v1</code>
 is different from <code>v2</code>, but the time
 difference of the versions cannot be determined</li>
 </ul></DL>
</DD>
</DL>
<HR>

<A NAME="getDataStoreIdSequence(org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
getDataStoreIdSequence</H3>
<PRE>
<A HREF="../../../../org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A> <B>getDataStoreIdSequence</B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;forClass)</PRE>
<DL>
<DD>Return a sequence that generates datastore identity values for the
 given class. This method will only be called when the identity strategy
 for the class is one of:
 <ul>
 <li><A HREF="../../../../org/apache/openjpa/meta/ValueStrategies.html#NATIVE"><CODE>ValueStrategies.NATIVE</CODE></A></li>
 <li><A HREF="../../../../org/apache/openjpa/meta/ValueStrategies.html#AUTOASSIGN"><CODE>ValueStrategies.AUTOASSIGN</CODE></A></li>
 <li><A HREF="../../../../org/apache/openjpa/meta/ValueStrategies.html#INCREMENT"><CODE>ValueStrategies.INCREMENT</CODE></A></li>
 </ul>
 If the identity strategy cannot be represented as a sequence, return
 null.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Since:</B></DT>
  <DD>0.4.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="getValueSequence(org.apache.openjpa.meta.FieldMetaData)"><!-- --></A><H3>
getValueSequence</H3>
<PRE>
<A HREF="../../../../org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A> <B>getValueSequence</B>(<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>&nbsp;forField)</PRE>
<DL>
<DD>Return a sequence that generates values for the given field. This
 method will only be called when the value strategy for the field
 is one of:
 <ul>
 <li><A HREF="../../../../org/apache/openjpa/meta/ValueStrategies.html#NATIVE"><CODE>ValueStrategies.NATIVE</CODE></A></li>
 <li><A HREF="../../../../org/apache/openjpa/meta/ValueStrategies.html#AUTOASSIGN"><CODE>ValueStrategies.AUTOASSIGN</CODE></A></li>
 <li><A HREF="../../../../org/apache/openjpa/meta/ValueStrategies.html#INCREMENT"><CODE>ValueStrategies.INCREMENT</CODE></A></li>
 </ul> If the value strategy cannot be represented as a sequence, return
 null.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Since:</B></DT>
  <DD>0.4.0</DD>
</DL>
</DD>
</DL>
<HR>

<A NAME="close()"><!-- --></A><H3>
close</H3>
<PRE>
void <B>close</B>()</PRE>
<DL>
<DD>Free any resources this store manager is using.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/lib/util/Closeable.html#close()">close</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/lib/util/Closeable.html" title="interface in org.apache.openjpa.lib.util">Closeable</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Since:</B></DT>
  <DD>0.2.5</DD>
</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/StoreManager.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/StoreContext.html" title="interface in org.apache.openjpa.kernel"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/openjpa/kernel/StoreQuery.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/StoreManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="StoreManager.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;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

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