<!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_41) on Fri Apr 12 14:46:32 CDT 2013 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
ValueTableJDBCSeq (OpenJPA Parent POM 1.2.3 API)
</TITLE>

<META NAME="keywords" CONTENT="org.apache.openjpa.jdbc.kernel.ValueTableJDBCSeq class">

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

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="ValueTableJDBCSeq (OpenJPA Parent POM 1.2.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/ValueTableJDBCSeq.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/jdbc/kernel/UpdateManager.html" title="interface in org.apache.openjpa.jdbc.kernel"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ValueTableJDBCSeq.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;<A HREF="#nested_classes_inherited_from_class_org.apache.openjpa.jdbc.kernel.TableJDBCSeq">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&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;<A HREF="#field_detail">FIELD</A>&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.jdbc.kernel</FONT>
<BR>
Class ValueTableJDBCSeq</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 "><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq</A>
      <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">org.apache.openjpa.jdbc.kernel.TableJDBCSeq</A>
          <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.openjpa.jdbc.kernel.ValueTableJDBCSeq</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/JDBCSeq.html" title="interface in org.apache.openjpa.jdbc.kernel">JDBCSeq</A>, <A HREF="../../../../../org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A>, <A HREF="../../../../../org/apache/openjpa/lib/conf/Configurable.html" title="interface in org.apache.openjpa.lib.conf">Configurable</A>, <A HREF="../../../../../org/apache/openjpa/lib/util/Closeable.html" title="interface in org.apache.openjpa.lib.util">Closeable</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>ValueTableJDBCSeq</B><DT>extends <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A></DL>
</PRE>

<P>
Specialization of the <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel"><CODE>TableJDBCSeq</CODE></A> that maintains multiple
 sequence counts. Each instance of this class represents one row with
 a known string primary key value, more or less. The table name defaults
 to <code>OPENJPA_SEQUENCES_TABLE</code>.
<P>

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

<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->

<A NAME="nested_class_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>Nested Class Summary</B></FONT></TH>
</TR>
</TABLE>
&nbsp;<A NAME="nested_classes_inherited_from_class_org.apache.openjpa.jdbc.kernel.TableJDBCSeq"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Nested classes/interfaces inherited from class org.apache.openjpa.jdbc.kernel.<A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.AllocateSequenceRunnable.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq.AllocateSequenceRunnable</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.CurrentSequenceRunnable.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq.CurrentSequenceRunnable</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.Status.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq.Status</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- =========== 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;<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/jdbc/kernel/ValueTableJDBCSeq.html#PK_VALUE">PK_VALUE</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.openjpa.jdbc.kernel.TableJDBCSeq"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.openjpa.jdbc.kernel.<A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#ACTION_ADD">ACTION_ADD</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#ACTION_DROP">ACTION_DROP</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#ACTION_GET">ACTION_GET</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#ACTION_SET">ACTION_SET</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.openjpa.jdbc.kernel.<A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#current">current</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#type">type</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.openjpa.kernel.Seq"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface org.apache.openjpa.kernel.<A HREF="../../../../../org/apache/openjpa/kernel/Seq.html" title="interface in org.apache.openjpa.kernel">Seq</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/openjpa/kernel/Seq.html#TYPE_CONTIGUOUS">TYPE_CONTIGUOUS</A>, <A HREF="../../../../../org/apache/openjpa/kernel/Seq.html#TYPE_DEFAULT">TYPE_DEFAULT</A>, <A HREF="../../../../../org/apache/openjpa/kernel/Seq.html#TYPE_NONTRANSACTIONAL">TYPE_NONTRANSACTIONAL</A>, <A HREF="../../../../../org/apache/openjpa/kernel/Seq.html#TYPE_TRANSACTIONAL">TYPE_TRANSACTIONAL</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== 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/jdbc/kernel/ValueTableJDBCSeq.html#ValueTableJDBCSeq()">ValueTableJDBCSeq</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>protected &nbsp;<A HREF="../../../../../org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#addPrimaryKeyColumn(org.apache.openjpa.jdbc.schema.Table)">addPrimaryKeyColumn</A></B>(<A HREF="../../../../../org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>&nbsp;table)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add the primary key column to the given table and return it.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &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/jdbc/kernel/ValueTableJDBCSeq.html#getPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping)">getPrimaryKey</A></B>(<A HREF="../../../../../org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>&nbsp;mapping)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the primary key value for the sequence table 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/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#getPrimaryKeyValue()">getPrimaryKeyValue</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The primary key value for this row.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#main(java.lang.String[])">main</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;args)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Usage: java org.apache.openjpa.jdbc.kernel.ValueTableJDBCSeq [option]*
 -action/-a &lt;add | drop | get | set&gt; [primary key value] [value]
  Where the following options are recognized.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)">run</A></B>(<A HREF="../../../../../org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>&nbsp;conf,
    <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;args,
    <A HREF="../../../../../org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>&nbsp;opts)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Run the tool.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], java.lang.String, org.apache.openjpa.jdbc.meta.MappingRepository, java.lang.ClassLoader)">run</A></B>(<A HREF="../../../../../org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>&nbsp;conf,
    <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;args,
    <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;action,
    <A HREF="../../../../../org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>&nbsp;repos,
    <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang">ClassLoader</A>&nbsp;loader)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Run the tool.</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/jdbc/kernel/ValueTableJDBCSeq.html#setPrimaryKeyValue(java.lang.String)">setPrimaryKeyValue</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;value)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The primary key value for this row.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.openjpa.jdbc.kernel.TableJDBCSeq"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.openjpa.jdbc.kernel.<A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#addSchema(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.SchemaGroup)">addSchema</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#allocateInternal(int, org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping)">allocateInternal</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#currentInternal(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping)">currentInternal</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#dropTable()">dropTable</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#endConfiguration()">endConfiguration</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#executeQuery(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.sql.Connection, java.sql.PreparedStatement, org.apache.openjpa.jdbc.sql.SQLBuffer)">executeQuery</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#executeUpdate(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.sql.Connection, java.sql.PreparedStatement, org.apache.openjpa.jdbc.sql.SQLBuffer, int)">executeUpdate</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getAllocate()">getAllocate</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getConfiguration()">getConfiguration</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getInitialValue()">getInitialValue</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getPrimaryKeyColumn()">getPrimaryKeyColumn</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getSequence(org.apache.openjpa.jdbc.meta.ClassMapping, java.sql.Connection)">getSequence</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getSequence(java.sql.ResultSet, org.apache.openjpa.jdbc.sql.DBDictionary)">getSequence</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getSequenceColumn()">getSequenceColumn</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getStatus(org.apache.openjpa.jdbc.meta.ClassMapping)">getStatus</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getTable()">getTable</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getUniqueColumns()">getUniqueColumns</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#nextInternal(org.apache.openjpa.jdbc.kernel.JDBCStore, org.apache.openjpa.jdbc.meta.ClassMapping)">nextInternal</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#prepareStatement(java.sql.Connection, org.apache.openjpa.jdbc.sql.SQLBuffer)">prepareStatement</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#refreshTable()">refreshTable</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#resolveTableName(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.schema.Table)">resolveTableName</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], java.lang.String)">run</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setAllocate(int)">setAllocate</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setConfiguration(org.apache.openjpa.lib.conf.Configuration)">setConfiguration</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setIncrement(int)">setIncrement</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setInitialValue(int)">setInitialValue</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setPrimaryKeyColumn(java.lang.String)">setPrimaryKeyColumn</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setSequence(org.apache.openjpa.jdbc.meta.ClassMapping, org.apache.openjpa.jdbc.kernel.TableJDBCSeq.Status, int, boolean, java.sql.Connection)">setSequence</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setSequenceColumn(java.lang.String)">setSequenceColumn</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setTable(java.lang.String)">setTable</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setTableName(java.lang.String)">setTableName</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#setUniqueColumns(java.lang.String)">setUniqueColumns</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#startConfiguration()">startConfiguration</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.openjpa.jdbc.kernel.<A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">AbstractJDBCSeq</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#allocate(int, org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)">allocate</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#close()">close</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#closeConnection(java.sql.Connection)">closeConnection</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#current(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)">current</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#getConnection(org.apache.openjpa.jdbc.kernel.JDBCStore)">getConnection</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#next(org.apache.openjpa.kernel.StoreContext, org.apache.openjpa.meta.ClassMetaData)">next</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#setType(int)">setType</A>, <A HREF="../../../../../org/apache/openjpa/jdbc/kernel/AbstractJDBCSeq.html#suspendInJTA()">suspendInJTA</A></CODE></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;
<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="PK_VALUE"><!-- --></A><H3>
PK_VALUE</H3>
<PRE>
public static final <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>PK_VALUE</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#org.apache.openjpa.jdbc.kernel.ValueTableJDBCSeq.PK_VALUE">Constant Field Values</A></DL>
</DL>

<!-- ========= 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="ValueTableJDBCSeq()"><!-- --></A><H3>
ValueTableJDBCSeq</H3>
<PRE>
public <B>ValueTableJDBCSeq</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="getPrimaryKeyValue()"><!-- --></A><H3>
getPrimaryKeyValue</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>getPrimaryKeyValue</B>()</PRE>
<DL>
<DD>The primary key value for this row. Defaults to <code>DEFAULT</code>.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setPrimaryKeyValue(java.lang.String)"><!-- --></A><H3>
setPrimaryKeyValue</H3>
<PRE>
public void <B>setPrimaryKeyValue</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;value)</PRE>
<DL>
<DD>The primary key value for this row. Defaults to <code>DEFAULT</code>.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="addPrimaryKeyColumn(org.apache.openjpa.jdbc.schema.Table)"><!-- --></A><H3>
addPrimaryKeyColumn</H3>
<PRE>
protected <A HREF="../../../../../org/apache/openjpa/jdbc/schema/Column.html" title="class in org.apache.openjpa.jdbc.schema">Column</A> <B>addPrimaryKeyColumn</B>(<A HREF="../../../../../org/apache/openjpa/jdbc/schema/Table.html" title="class in org.apache.openjpa.jdbc.schema">Table</A>&nbsp;table)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#addPrimaryKeyColumn(org.apache.openjpa.jdbc.schema.Table)">TableJDBCSeq</A></CODE></B></DD>
<DD>Add the primary key column to the given table and return it.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#addPrimaryKeyColumn(org.apache.openjpa.jdbc.schema.Table)">addPrimaryKeyColumn</A></CODE> in class <CODE><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping)"><!-- --></A><H3>
getPrimaryKey</H3>
<PRE>
protected <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>getPrimaryKey</B>(<A HREF="../../../../../org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A>&nbsp;mapping)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping)">TableJDBCSeq</A></CODE></B></DD>
<DD>Return the primary key value for the sequence table for the given class.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html#getPrimaryKey(org.apache.openjpa.jdbc.meta.ClassMapping)">getPrimaryKey</A></CODE> in class <CODE><A HREF="../../../../../org/apache/openjpa/jdbc/kernel/TableJDBCSeq.html" title="class in org.apache.openjpa.jdbc.kernel">TableJDBCSeq</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="main(java.lang.String[])"><!-- --></A><H3>
main</H3>
<PRE>
public static void <B>main</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;args)
                 throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></PRE>
<DL>
<DD>Usage: java org.apache.openjpa.jdbc.kernel.ValueTableJDBCSeq [option]*
 -action/-a &lt;add | drop | get | set&gt; [primary key value] [value]
  Where the following options are recognized.
 <ul>
 <li><i>-properties/-p &lt;properties file or resource&gt;</i>: The
 path or resource name of a OpenJPA properties file containing
 information such as the license key    and connection data as
 outlined in <A HREF="../../../../../org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf"><CODE>JDBCConfiguration</CODE></A>. Optional.</li>
 <li><i>-&lt;property name&gt; &lt;property value&gt;</i>: All bean
 properties of the OpenJPA <A HREF="../../../../../org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf"><CODE>JDBCConfiguration</CODE></A> can be set by
 using their    names and supplying a value. For example:
 <code>-licenseKey adslfja83r3lkadf</code></li>
 </ul>
  The various actions are as follows.
 <ul>
 <li><i>add</i>: Create the sequence table.</li>
 <li><i>drop</i>: Drop the sequence table.</li>
 <li><i>get</i>: Print the current sequence value for the given
 primary key value.</li>
 <li><i>set</i>: Set the sequence value for the given primary key
 value.</li>
 </ul>
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><!-- --></A><H3>
run</H3>
<PRE>
public static boolean <B>run</B>(<A HREF="../../../../../org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>&nbsp;conf,
                          <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;args,
                          <A HREF="../../../../../org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>&nbsp;opts)
                   throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></PRE>
<DL>
<DD>Run the tool. Returns false if invalid options were given.
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></CODE></DL>
</DD>
</DL>
<HR>

<A NAME="run(org.apache.openjpa.jdbc.conf.JDBCConfiguration, java.lang.String[], java.lang.String, org.apache.openjpa.jdbc.meta.MappingRepository, java.lang.ClassLoader)"><!-- --></A><H3>
run</H3>
<PRE>
public static boolean <B>run</B>(<A HREF="../../../../../org/apache/openjpa/jdbc/conf/JDBCConfiguration.html" title="interface in org.apache.openjpa.jdbc.conf">JDBCConfiguration</A>&nbsp;conf,
                          <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;args,
                          <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;action,
                          <A HREF="../../../../../org/apache/openjpa/jdbc/meta/MappingRepository.html" title="class in org.apache.openjpa.jdbc.meta">MappingRepository</A>&nbsp;repos,
                          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang">ClassLoader</A>&nbsp;loader)
                   throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></PRE>
<DL>
<DD>Run the tool. Return false if an invalid option was given.
<P>
<DD><DL>

<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Exception.html" title="class or interface in java.lang">Exception</A></CODE></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/ValueTableJDBCSeq.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/jdbc/kernel/UpdateManager.html" title="interface in org.apache.openjpa.jdbc.kernel"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/openjpa/jdbc/kernel/ValueTableJDBCSeq.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ValueTableJDBCSeq.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;<A HREF="#nested_classes_inherited_from_class_org.apache.openjpa.jdbc.kernel.TableJDBCSeq">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&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;<A HREF="#field_detail">FIELD</A>&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 &#169; 2006-2013 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
