Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > main-release > by-pkgid > bc1980b66a68f286299491ee8724e71c > files > 399

db4.7-4.7.25-6mdv2010.1.x86_64.rpm

<!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.6.0_0) on Wed Dec 30 04:50:28 EST 2009 -->
<TITLE>
Format
</TITLE>

<META NAME="date" CONTENT="2009-12-30">

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

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Format";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

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


<!-- ========= 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="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="../../../../com/sleepycat/persist/impl/EnumFormat.html" title="class in com.sleepycat.persist.impl"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../com/sleepycat/persist/impl/ObjectArrayFormat.html" title="class in com.sleepycat.persist.impl"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?com/sleepycat/persist/impl/Format.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Format.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&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">
com.sleepycat.persist.impl</FONT>
<BR>
Class Format</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.sleepycat.persist.impl.Format</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A>, java.io.Serializable</DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../com/sleepycat/persist/impl/ComplexFormat.html" title="class in com.sleepycat.persist.impl">ComplexFormat</A>, <A HREF="../../../../com/sleepycat/persist/impl/CompositeKeyFormat.html" title="class in com.sleepycat.persist.impl">CompositeKeyFormat</A>, <A HREF="../../../../com/sleepycat/persist/impl/EnumFormat.html" title="class in com.sleepycat.persist.impl">EnumFormat</A>, <A HREF="../../../../com/sleepycat/persist/impl/ObjectArrayFormat.html" title="class in com.sleepycat.persist.impl">ObjectArrayFormat</A>, <A HREF="../../../../com/sleepycat/persist/impl/PrimitiveArrayFormat.html" title="class in com.sleepycat.persist.impl">PrimitiveArrayFormat</A>, <A HREF="../../../../com/sleepycat/persist/impl/ProxiedFormat.html" title="class in com.sleepycat.persist.impl">ProxiedFormat</A>, <A HREF="../../../../com/sleepycat/persist/impl/SimpleFormat.html" title="class in com.sleepycat.persist.impl">SimpleFormat</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>Format</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A>, java.io.Serializable</DL>
</PRE>

<P>
The base class for all object formats.  Formats are used to define the
 stored layout for all persistent classes, including simple types.

 The design documentation below describes the storage format for entities and
 its relationship to information stored per format in the catalog.

 Requirements
 ------------
 + Provides EntityBinding for objects and EntryBinding for keys.
 + Provides SecondaryKeyCreator, SecondaryMultiKeyCreator and
   SecondaryMultiKeyNullifier (SecondaryKeyNullifier is redundant).
 + Works with reflection and bytecode enhancement.
 + For reflection only, works with any entity model not just annotations.
 + Bindings are usable independently of the persist API.
 + Performance is almost equivalent to hand coded tuple bindings.
 + Small performance penalty for compatible class changes (new fields,
   widening).
 + Secondary key create/nullify do not have to deserialize the entire record;
   in other words, store secondary keys at the start of the data.

 Class Format
 ------------
 Every distinct class format is given a unique format ID.  Class IDs are not
 equivalent to class version numbers (as in the version property of @Entity
 and @Persistent) because the format can change when the version number does
 not.  Changes that cause a unique format ID to be assigned are:

 + Add field.
 + Widen field type.
 + Change primitive type to primitive wrapper class.
 + Add or drop secondary key.
 + Any incompatible class change.

 The last item, incompatible class changes, also correspond to a class
 version change.

 For each distinct class format the following information is conceptually
 stored in the catalog, keyed by format ID.

 - Class name
 - Class version number
 - Superclass format
 - Kind: simple, enum, complex, array
 - For kind == simple:
     - Primitive class
 - For kind == enum:
     - Array of constant names, sorted by name.
 - For kind == complex:
     - Primary key fieldInfo, or null if no primary key is declared
     - Array of secondary key fieldInfo, sorted by field name
     - Array of other fieldInfo, sorted by field name
 - For kind == array:
     - Component class format
     - Number of array dimensions
 - Other metadata for RawType

 Where fieldInfo is:
     - Field name
     - Field class
     - Other metadata for RawField

 Data Layout
 -----------
 For each entity instance the data layout is as follows:

   instanceData: formatId keyFields... nonKeyFields...
   keyFields:    fieldValue...
   nonKeyFields: fieldValue...

 The formatId is the (positive non-zero) ID of a class format, defined above.
 This is ID of the most derived class of the instance.  It is stored as a
 packed integer.

 Following the format ID, zero or more sets of secondary key field values
 appear, followed by zero or more sets of other class field values.

 The keyFields are the sets of secondary key fields for each class in order
 of the highest superclass first.  Within a class, fields are ordered by
 field name.

 The nonKeyFields are the sets of other non-key fields for each class in
 order of the highest superclass first.  Within a class, fields are ordered
 by field name.

 A field value is:

   fieldValue:   primitiveValue
               | nullId
               | instanceRef
               | instanceData
               | simpleValue
               | enumValue
               | arrayValue

 For a primitive type, a primitive value is used as defined for tuple
 bindings.  For float and double, sorted float and sorted double tuple values
 are used.

 For a non-primitive type with a null value, a nullId is used that has a zero
 (illegal formatId) value.  This includes String and other simple reference
 types.  The formatId is stored as a packed integer, meaning that it is
 stored as a single zero byte.

 For a non-primitive type, an instanceRef is used for a non-null instance
 that appears earlier in the data byte array.  An instanceRef is the negation
 of the byte offset of the instanceData that appears earlier.  It is stored
 as a packed integer.

 The remaining rules apply only to reference types with non-null values that
 do not appear earlier in the data array.

 For an array type, an array formatId is used that identifies the component
 type and the number of array dimensions.  This is followed by an array
 length (stored as a packed integer) and zero or more fieldValue elements.
 For an array with N+1 dimensions where N is greater than zero, the leftmost
 dimension is enumerated such that each fieldValue element is itself an array
 of N dimensions or null.

   arrayValue:  formatId length fieldValue...

 For an enum type, an enumValue is used, consisting of a formatId that
 identifies the enum class and an enumIndex (stored as a packed integer) that
 identifies the constant name in the enum constant array of the enum class
 format:

   enumValue:   formatId enumIndex

 For a simple type, a simpleValue is used.  This consists of the formatId
 that identifies the class followed by the simple type value.  For a
 primitive wrapper type the simple type value is the corresponding primitive,
 for a Date it is the milliseconds as a long primitive, and for BigInteger or
 BigDecimal it is a byte array as defined for tuple bindings of these types.

   simpleValue: formatId value

 For all other complex types, an instanceData is used, which is defined
 above.

 Secondary Keys
 --------------
 For secondary key support we must account for writing and nullifying
 specific keys.  Rather than instantiating the entity and then performing
 the secondary key operation, we strive to perform the secondary key
 operation directly on the byte format.

 To create a secondary key we skip over other fields and then copy the bytes
 of the embedded key.  This approach is very efficient because a) the entity
 is not instantiated, and b) the secondary keys are stored at the beginning
 of the byte format and can be quickly read.

 To nullify we currently instantiate the raw entity, set the key field to null
 (or remove it from the array/collection), and convert the raw entity back to
 bytes.  Although the performance of this approach is not ideal because it
 requires serialization, it avoids the complexity of modifying the packed
 serialized format directly, adjusting references to key objects, etc.  Plus,
 when we nullify a key we are going to write the record, so the serialization
 overhead may not be significant.  For the record, I tried implementing
 nullification of the bytes directly and found it was much too complex.

 Lifecycle
 ---------
 Format are managed by a Catalog class.  Simple formats are managed by
 SimpleCatalog, and are copied from the SimpleCatalog by PersistCatalog.
 Other formats are managed by PersistCatalog.  The lifecycle of a format
 instance is:

 - Constructed by the catalog when a format is requested for a Class
   that currently has no associated format.

 - The catalog calls setId() and adds the format to its format list
   (indexed by format id) and map (keyed by class name).

 - The catalog calls collectRelatedFormats(), where a format can create
   additional formats that it needs, or that should also be persistent.

 - The catalog calls initializeIfNeeded(), which calls the initialize()
   method of the format class.

 - initialize() should initialize any transient fields in the format.
   initialize() can assume that all related formats are available in the
   catalog.  It may call initializeIfNeeded() for those related formats, if
   it needs to interact with an initialized related format; this does not
   cause a cycle, because initializeIfNeeded() does nothing for an already
   initialized format.

 - The catalog creates a group of related formats at one time, and then
   writes its entire list of formats to the catalog DB as a single record.
   This grouping reduces the number of writes.

 - When a catalog is opened and the list of existing formats is read.  After
   a format is deserialized, its initializeIfNeeded() method is called.
   setId() and collectRelatedFormats() are not called, since the ID and
   related formats are stored in serialized fields.

 - There are two modes for opening an existing catalog: raw mode and normal
   mode.  In raw mode, the old format is used regardless of whether it
   matches the current class definition; in fact the class is not accessed
   and does not need to be present.

 - In normal mode, for each existing format that is initialized, a new format
   is also created based on the current class and metadata definition.  If
   the two formats are equal, the new format is discarded.  If they are
   unequal, the new format becomes the current format and the old format's
   evolve() method is called.  evolve() is responsible for adjusting the
   old format for class evolution.  Any number of non-current formats may
   exist for a given class, and are setup to evolve the single current format
   for the class.
<P>

<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.sleepycat.persist.impl.Format">Serialized Form</A></DL>
<HR>

<P>

<!-- ========== 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;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/persist/impl/Format.html#getClassName()">getClassName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the class name for this type in the format specified by <CODE>Class.getName()</CODE>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../com/sleepycat/persist/impl/Format.html" title="class in com.sleepycat.persist.impl">Format</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/persist/impl/Format.html#getComponentType()">getComponentType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the array component type, or null if this is not an array type.</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="../../../../com/sleepycat/persist/impl/Format.html#getDimensions()">getDimensions</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the number of array dimensions, or zero if this is not an array
 type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.List&lt;java.lang.String&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/persist/impl/Format.html#getEnumConstants()">getEnumConstants</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an unmodifiable list of the names of the enum instances, or null
 if this is not an enum type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.Map&lt;java.lang.String,<A HREF="../../../../com/sleepycat/persist/raw/RawField.html" title="interface in com.sleepycat.persist.raw">RawField</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/persist/impl/Format.html#getFields()">getFields</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a map of field name to raw field for each non-static
 non-transient field declared in this class, or null if this is not a
 complex type (in other words, this is a simple type or an array type).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../com/sleepycat/persist/impl/Format.html" title="class in com.sleepycat.persist.impl">Format</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/persist/impl/Format.html#getPreviousVersion()">getPreviousVersion</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the previous version of this format in the linked list of
 versions, or null if this is the only version.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../com/sleepycat/persist/impl/Format.html" title="class in com.sleepycat.persist.impl">Format</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/persist/impl/Format.html#getSuperType()">getSuperType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the type of the superclass, or null if the superclass is Object
 or this is not a complex type (in other words, this is a simple type or
 an array type).</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="../../../../com/sleepycat/persist/impl/Format.html#getVersion()">getVersion</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the class version for this type.</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="../../../../com/sleepycat/persist/impl/Format.html#initializeReader(com.sleepycat.persist.impl.Catalog, int, com.sleepycat.persist.impl.Format)">initializeReader</A></B>(com.sleepycat.persist.impl.Catalog&nbsp;catalog,
                 int&nbsp;initVersion,
                 <A HREF="../../../../com/sleepycat/persist/impl/Format.html" title="class in com.sleepycat.persist.impl">Format</A>&nbsp;oldFormat)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called to initialize a separate Reader implementation.</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="../../../../com/sleepycat/persist/impl/Format.html#isArray()">isArray</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether this is an array type.</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="../../../../com/sleepycat/persist/impl/Format.html#isEnum()">isEnum</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether this is an enum type.</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="../../../../com/sleepycat/persist/impl/Format.html#isPrimitive()">isPrimitive</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether this type is a Java primitive: char, byte, short, int,
 long, float or double.</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="../../../../com/sleepycat/persist/impl/Format.html#isSimple()">isSimple</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns whether this is a <a
 href="../model/Entity.html#simpleTypes">simple type</a>: primitive,
 primitive wrapper, BigInteger, String or Date.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/persist/impl/Format.html#newInstance(com.sleepycat.persist.impl.EntityInput, boolean)">newInstance</A></B>(<A HREF="../../../../com/sleepycat/persist/impl/EntityInput.html" title="interface in com.sleepycat.persist.impl">EntityInput</A>&nbsp;input,
            boolean&nbsp;rawAccess)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates a new instance of the target class using its default
 constructor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/persist/impl/Format.html#readObject(java.lang.Object, com.sleepycat.persist.impl.EntityInput, boolean)">readObject</A></B>(java.lang.Object&nbsp;o,
           <A HREF="../../../../com/sleepycat/persist/impl/EntityInput.html" title="interface in com.sleepycat.persist.impl">EntityInput</A>&nbsp;input,
           boolean&nbsp;rawAccess)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called after newInstance() to read the rest of the data bytes and fill
 in the object contents.</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="../../../../com/sleepycat/persist/impl/Format.html#readPriKey(java.lang.Object, com.sleepycat.persist.impl.EntityInput, boolean)">readPriKey</A></B>(java.lang.Object&nbsp;o,
           <A HREF="../../../../com/sleepycat/persist/impl/EntityInput.html" title="interface in com.sleepycat.persist.impl">EntityInput</A>&nbsp;input,
           boolean&nbsp;rawAccess)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads the primary key from the given input bytes and sets the primary
 key field in the given object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/sleepycat/persist/impl/Format.html#toString()">toString</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ 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="getPreviousVersion()"><!-- --></A><H3>
getPreviousVersion</H3>
<PRE>
public final <A HREF="../../../../com/sleepycat/persist/impl/Format.html" title="class in com.sleepycat.persist.impl">Format</A> <B>getPreviousVersion</B>()</PRE>
<DL>
<DD>Returns the previous version of this format in the linked list of
 versions, or null if this is the only version.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="initializeReader(com.sleepycat.persist.impl.Catalog, int, com.sleepycat.persist.impl.Format)"><!-- --></A><H3>
initializeReader</H3>
<PRE>
public void <B>initializeReader</B>(com.sleepycat.persist.impl.Catalog&nbsp;catalog,
                             int&nbsp;initVersion,
                             <A HREF="../../../../com/sleepycat/persist/impl/Format.html" title="class in com.sleepycat.persist.impl">Format</A>&nbsp;oldFormat)</PRE>
<DL>
<DD>Called to initialize a separate Reader implementation.  This method is
 called when no separate Reader exists, and does nothing.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getClassName()"><!-- --></A><H3>
getClassName</H3>
<PRE>
public java.lang.String <B>getClassName</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getClassName()">RawType</A></CODE></B></DD>
<DD>Returns the class name for this type in the format specified by <CODE>Class.getName()</CODE>.

 <p>If this class currently exists (has not been removed or renamed) then
 the class name may be passed to <CODE>Class.forName(java.lang.String)</CODE> to get the current
 <CODE>Class</CODE> object.  However, if this raw type is not the current
 version of the class, this type information may differ from that of the
 current <CODE>Class</CODE>.</p>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getClassName()">getClassName</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getVersion()"><!-- --></A><H3>
getVersion</H3>
<PRE>
public int <B>getVersion</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getVersion()">RawType</A></CODE></B></DD>
<DD>Returns the class version for this type.  For simple types, zero is
 always returned.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getVersion()">getVersion</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../com/sleepycat/persist/model/Entity.html#version()"><CODE>Entity.version()</CODE></A>, 
<A HREF="../../../../com/sleepycat/persist/model/Persistent.html#version()"><CODE>Persistent.version()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="getSuperType()"><!-- --></A><H3>
getSuperType</H3>
<PRE>
public <A HREF="../../../../com/sleepycat/persist/impl/Format.html" title="class in com.sleepycat.persist.impl">Format</A> <B>getSuperType</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getSuperType()">RawType</A></CODE></B></DD>
<DD>Returns the type of the superclass, or null if the superclass is Object
 or this is not a complex type (in other words, this is a simple type or
 an array type).
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getSuperType()">getSuperType</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isSimple()"><!-- --></A><H3>
isSimple</H3>
<PRE>
public boolean <B>isSimple</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isSimple()">RawType</A></CODE></B></DD>
<DD>Returns whether this is a <a
 href="../model/Entity.html#simpleTypes">simple type</a>: primitive,
 primitive wrapper, BigInteger, String or Date.
 <!--
 primitive wrapper, BigInteger, BigDecimal, String or Date.
 -->

 <p>If true is returned, <A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isPrimitive()"><CODE>RawType.isPrimitive()</CODE></A> can be called for more
 information, and a raw value of this type is represented as a simple
 type object (not as a <A HREF="../../../../com/sleepycat/persist/raw/RawObject.html" title="class in com.sleepycat.persist.raw"><CODE>RawObject</CODE></A>).</p>

 <p>If false is returned, this is a complex type, an array type (see
 <A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isArray()"><CODE>RawType.isArray()</CODE></A>), or an enum type, and a raw value of this type is
 represented as a <A HREF="../../../../com/sleepycat/persist/raw/RawObject.html" title="class in com.sleepycat.persist.raw"><CODE>RawObject</CODE></A>.</p>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isSimple()">isSimple</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isPrimitive()"><!-- --></A><H3>
isPrimitive</H3>
<PRE>
public boolean <B>isPrimitive</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isPrimitive()">RawType</A></CODE></B></DD>
<DD>Returns whether this type is a Java primitive: char, byte, short, int,
 long, float or double.

 <p>If true is returned, this is also a simple type.  In other words,
 primitive types are a subset of simple types.</p>

 <p>If true is returned, a raw value of this type is represented as a
 non-null instance of the primitive type's wrapper class.  For example,
 an <code>int</code> raw value is represented as an
 <code>Integer</code>.</p>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isPrimitive()">isPrimitive</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isEnum()"><!-- --></A><H3>
isEnum</H3>
<PRE>
public boolean <B>isEnum</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isEnum()">RawType</A></CODE></B></DD>
<DD>Returns whether this is an enum type.

 <p>If true is returned, a value of this type is a <A HREF="../../../../com/sleepycat/persist/raw/RawObject.html" title="class in com.sleepycat.persist.raw"><CODE>RawObject</CODE></A> and
 the enum constant String is available via <A HREF="../../../../com/sleepycat/persist/raw/RawObject.html#getEnum()"><CODE>RawObject.getEnum()</CODE></A>.</p>

 <p>If false is returned, then this is a complex type, an array type (see
 <A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isArray()"><CODE>RawType.isArray()</CODE></A>), or a simple type (see <A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isSimple()"><CODE>RawType.isSimple()</CODE></A>).</p>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isEnum()">isEnum</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getEnumConstants()"><!-- --></A><H3>
getEnumConstants</H3>
<PRE>
public java.util.List&lt;java.lang.String&gt; <B>getEnumConstants</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getEnumConstants()">RawType</A></CODE></B></DD>
<DD>Returns an unmodifiable list of the names of the enum instances, or null
 if this is not an enum type.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getEnumConstants()">getEnumConstants</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isArray()"><!-- --></A><H3>
isArray</H3>
<PRE>
public boolean <B>isArray</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isArray()">RawType</A></CODE></B></DD>
<DD>Returns whether this is an array type.  Raw value arrays are represented
 as <A HREF="../../../../com/sleepycat/persist/raw/RawObject.html" title="class in com.sleepycat.persist.raw"><CODE>RawObject</CODE></A> instances.

 <p>If true is returned, the array component type is returned by <A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getComponentType()"><CODE>RawType.getComponentType()</CODE></A> and the number of array dimensions is returned by
 <A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getDimensions()"><CODE>RawType.getDimensions()</CODE></A>.</p>

 <p>If false is returned, then this is a complex type, an enum type (see
 <A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isEnum()"><CODE>RawType.isEnum()</CODE></A>), or a simple type (see <A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isSimple()"><CODE>RawType.isSimple()</CODE></A>).</p>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#isArray()">isArray</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDimensions()"><!-- --></A><H3>
getDimensions</H3>
<PRE>
public int <B>getDimensions</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getDimensions()">RawType</A></CODE></B></DD>
<DD>Returns the number of array dimensions, or zero if this is not an array
 type.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getDimensions()">getDimensions</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getComponentType()"><!-- --></A><H3>
getComponentType</H3>
<PRE>
public <A HREF="../../../../com/sleepycat/persist/impl/Format.html" title="class in com.sleepycat.persist.impl">Format</A> <B>getComponentType</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getComponentType()">RawType</A></CODE></B></DD>
<DD>Returns the array component type, or null if this is not an array type.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getComponentType()">getComponentType</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getFields()"><!-- --></A><H3>
getFields</H3>
<PRE>
public java.util.Map&lt;java.lang.String,<A HREF="../../../../com/sleepycat/persist/raw/RawField.html" title="interface in com.sleepycat.persist.raw">RawField</A>&gt; <B>getFields</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getFields()">RawType</A></CODE></B></DD>
<DD>Returns a map of field name to raw field for each non-static
 non-transient field declared in this class, or null if this is not a
 complex type (in other words, this is a simple type or an array type).
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html#getFields()">getFields</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/persist/raw/RawType.html" title="interface in com.sleepycat.persist.raw">RawType</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="newInstance(com.sleepycat.persist.impl.EntityInput, boolean)"><!-- --></A><H3>
newInstance</H3>
<PRE>
public abstract java.lang.Object <B>newInstance</B>(<A HREF="../../../../com/sleepycat/persist/impl/EntityInput.html" title="interface in com.sleepycat.persist.impl">EntityInput</A>&nbsp;input,
                                             boolean&nbsp;rawAccess)</PRE>
<DL>
<DD>Creates a new instance of the target class using its default
 constructor.  Normally this creates an empty object, and readObject() is
 called next to fill in the contents.  This is done in two steps to allow
 the instance to be registered by EntityInput before reading the
 contents.  This allows the fields in an object or a nested object to
 refer to the parent object in a graph.

 Alternatively, this method may read all or the first portion of the
 data, rather than that being done by readObject().  This is required for
 simple types and enums, where the object cannot be created without
 reading the data.  In these cases, there is no possibility that the
 parent object will be referenced by the child object in the graph.  It
 should not be done in other cases, or the graph references may not be
 maintained faithfully.

 Is public only in order to implement the Reader interface.  Note that
 this method should only be called directly in raw conversion mode or
 during conversion of an old format.  Normally it should be called via
 the getReader method and the Reader interface.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="readObject(java.lang.Object, com.sleepycat.persist.impl.EntityInput, boolean)"><!-- --></A><H3>
readObject</H3>
<PRE>
public abstract java.lang.Object <B>readObject</B>(java.lang.Object&nbsp;o,
                                            <A HREF="../../../../com/sleepycat/persist/impl/EntityInput.html" title="interface in com.sleepycat.persist.impl">EntityInput</A>&nbsp;input,
                                            boolean&nbsp;rawAccess)</PRE>
<DL>
<DD>Called after newInstance() to read the rest of the data bytes and fill
 in the object contents.  If the object was read completely by
 newInstance(), this method does nothing.

 Is public only in order to implement the Reader interface.  Note that
 this method should only be called directly in raw conversion mode or
 during conversion of an old format.  Normally it should be called via
 the getReader method and the Reader interface.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="readPriKey(java.lang.Object, com.sleepycat.persist.impl.EntityInput, boolean)"><!-- --></A><H3>
readPriKey</H3>
<PRE>
public void <B>readPriKey</B>(java.lang.Object&nbsp;o,
                       <A HREF="../../../../com/sleepycat/persist/impl/EntityInput.html" title="interface in com.sleepycat.persist.impl">EntityInput</A>&nbsp;input,
                       boolean&nbsp;rawAccess)</PRE>
<DL>
<DD>Reads the primary key from the given input bytes and sets the primary
 key field in the given object.  This is complement of writePriKey().

 Is public only in order to implement the Reader interface.  Note that
 this method should only be called directly in raw conversion mode or
 during conversion of an old format.  Normally it should be called via
 the getReader method and the Reader interface.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public java.lang.String <B>toString</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="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="../../../../com/sleepycat/persist/impl/EnumFormat.html" title="class in com.sleepycat.persist.impl"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../com/sleepycat/persist/impl/ObjectArrayFormat.html" title="class in com.sleepycat.persist.impl"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?com/sleepycat/persist/impl/Format.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="Format.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&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>

</BODY>
</HTML>