<!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 Feb 11 22:24:07 EST 2009 --> <TITLE> SerialBinding </TITLE> <META NAME="date" CONTENT="2009-02-11"> <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="SerialBinding"; } } </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> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR> </TABLE> </TD> <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> </EM> </TD> </TR> <TR> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../com/sleepycat/bind/serial/SerialBase.html" title="class in com.sleepycat.bind.serial"><B>PREV CLASS</B></A> <A HREF="../../../../com/sleepycat/bind/serial/SerialInput.html" title="class in com.sleepycat.bind.serial"><B>NEXT CLASS</B></A></FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../index.html?com/sleepycat/bind/serial/SerialBinding.html" target="_top"><B>FRAMES</B></A> <A HREF="SerialBinding.html" target="_top"><B>NO FRAMES</B></A> <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: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <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.bind.serial</FONT> <BR> Class SerialBinding</H2> <PRE> java.lang.Object <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../com/sleepycat/bind/serial/SerialBase.html" title="class in com.sleepycat.bind.serial">com.sleepycat.bind.serial.SerialBase</A> <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.sleepycat.bind.serial.SerialBinding</B> </PRE> <DL> <DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/sleepycat/bind/EntryBinding.html" title="interface in com.sleepycat.bind">EntryBinding</A></DD> </DL> <HR> <DL> <DT><PRE>public class <B>SerialBinding</B><DT>extends <A HREF="../../../../com/sleepycat/bind/serial/SerialBase.html" title="class in com.sleepycat.bind.serial">SerialBase</A><DT>implements <A HREF="../../../../com/sleepycat/bind/EntryBinding.html" title="interface in com.sleepycat.bind">EntryBinding</A></DL> </PRE> <P> A concrete <code>EntryBinding</code> that treats a key or data entry as a serialized object. <p>This binding stores objects in serialized object format. The deserialized objects are returned by the binding, and their <code>Class</code> must implement the <code>Serializable</code> interface.</p> <p>For key bindings, a tuple binding is usually a better choice than a serial binding. A tuple binding gives a reasonable sort order, and works with comparators in all cases -- see below.</p> <p><em>WARNING:</em> SerialBinding should not be used with Berkeley DB Java Edition for key bindings, when a custom comparator is used. In JE, comparators are instantiated and called internally at times when databases are not accessible. Because serial bindings depend on the class catalog database, a serial binding cannot be used during these times. An attempt to use a serial binding with a custom comparator will result in a NullPointerException during environment open or close.</p> <P> <P> <HR> <P> <!-- ======== CONSTRUCTOR SUMMARY ======== --> <A NAME="constructor_summary"><!-- --></A> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> <B>Constructor Summary</B></FONT></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD><CODE><B><A HREF="../../../../com/sleepycat/bind/serial/SerialBinding.html#SerialBinding(com.sleepycat.bind.serial.ClassCatalog, java.lang.Class)">SerialBinding</A></B>(<A HREF="../../../../com/sleepycat/bind/serial/ClassCatalog.html" title="interface in com.sleepycat.bind.serial">ClassCatalog</A> classCatalog, java.lang.Class baseClass)</CODE> <BR> Creates a serial binding.</TD> </TR> </TABLE> <!-- ========== 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> java.lang.Object</CODE></FONT></TD> <TD><CODE><B><A HREF="../../../../com/sleepycat/bind/serial/SerialBinding.html#entryToObject(com.sleepycat.db.DatabaseEntry)">entryToObject</A></B>(<A HREF="../../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> entry)</CODE> <BR> Deserialize an object from an entry buffer.</TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE> java.lang.Class</CODE></FONT></TD> <TD><CODE><B><A HREF="../../../../com/sleepycat/bind/serial/SerialBinding.html#getBaseClass()">getBaseClass</A></B>()</CODE> <BR> Returns the base class for this binding.</TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE> java.lang.ClassLoader</CODE></FONT></TD> <TD><CODE><B><A HREF="../../../../com/sleepycat/bind/serial/SerialBinding.html#getClassLoader()">getClassLoader</A></B>()</CODE> <BR> Returns the class loader to be used during deserialization, or null if a default class loader should be used.</TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE> void</CODE></FONT></TD> <TD><CODE><B><A HREF="../../../../com/sleepycat/bind/serial/SerialBinding.html#objectToEntry(java.lang.Object, com.sleepycat.db.DatabaseEntry)">objectToEntry</A></B>(java.lang.Object object, <A HREF="../../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> entry)</CODE> <BR> Serialize an object into an entry buffer.</TD> </TR> </TABLE> <A NAME="methods_inherited_from_class_com.sleepycat.bind.serial.SerialBase"><!-- --></A> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> <TH ALIGN="left"><B>Methods inherited from class com.sleepycat.bind.serial.<A HREF="../../../../com/sleepycat/bind/serial/SerialBase.html" title="class in com.sleepycat.bind.serial">SerialBase</A></B></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD><CODE><A HREF="../../../../com/sleepycat/bind/serial/SerialBase.html#getSerialBufferSize()">getSerialBufferSize</A>, <A HREF="../../../../com/sleepycat/bind/serial/SerialBase.html#getSerialOutput(java.lang.Object)">getSerialOutput</A>, <A HREF="../../../../com/sleepycat/bind/serial/SerialBase.html#setSerialBufferSize(int)">setSerialBufferSize</A></CODE></TD> </TR> </TABLE> <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, toString, wait, wait, wait</CODE></TD> </TR> </TABLE> <P> <!-- ========= CONSTRUCTOR DETAIL ======== --> <A NAME="constructor_detail"><!-- --></A> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> <B>Constructor Detail</B></FONT></TH> </TR> </TABLE> <A NAME="SerialBinding(com.sleepycat.bind.serial.ClassCatalog, java.lang.Class)"><!-- --></A><H3> SerialBinding</H3> <PRE> public <B>SerialBinding</B>(<A HREF="../../../../com/sleepycat/bind/serial/ClassCatalog.html" title="interface in com.sleepycat.bind.serial">ClassCatalog</A> classCatalog, java.lang.Class baseClass)</PRE> <DL> <DD>Creates a serial binding. <P> <DL> <DT><B>Parameters:</B><DD><CODE>classCatalog</CODE> - is the catalog to hold shared class information and for a database should be a <A HREF="../../../../com/sleepycat/bind/serial/StoredClassCatalog.html" title="class in com.sleepycat.bind.serial"><CODE>StoredClassCatalog</CODE></A>.<DD><CODE>baseClass</CODE> - is the base class for serialized objects stored using this binding -- all objects using this binding must be an instance of this class.</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="getBaseClass()"><!-- --></A><H3> getBaseClass</H3> <PRE> public final java.lang.Class <B>getBaseClass</B>()</PRE> <DL> <DD>Returns the base class for this binding. <P> <DD><DL> </DL> </DD> <DD><DL> <DT><B>Returns:</B><DD>the base class for this binding.</DL> </DD> </DL> <HR> <A NAME="getClassLoader()"><!-- --></A><H3> getClassLoader</H3> <PRE> public java.lang.ClassLoader <B>getClassLoader</B>()</PRE> <DL> <DD>Returns the class loader to be used during deserialization, or null if a default class loader should be used. The default implementation of this method returns null. <p>This method may be overriden to return a dynamically determined class loader. For example, <code>Thread.currentThread().getContextClassLoader()</code> could be called to use the context class loader for the curren thread. Or <code>getBaseClass().getClassLoader()</code> could be called to use the class loader for the base class, assuming that a base class has been specified.</p> <p>If this method returns null, a default class loader will be used as determined by the <code>java.io.ObjectInputStream.resolveClass</code> method.</p> <P> <DD><DL> </DL> </DD> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="entryToObject(com.sleepycat.db.DatabaseEntry)"><!-- --></A><H3> entryToObject</H3> <PRE> public java.lang.Object <B>entryToObject</B>(<A HREF="../../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> entry)</PRE> <DL> <DD>Deserialize an object from an entry buffer. May only be called for data that was serialized using <A HREF="../../../../com/sleepycat/bind/serial/SerialBinding.html#objectToEntry(java.lang.Object, com.sleepycat.db.DatabaseEntry)"><CODE>objectToEntry(java.lang.Object, com.sleepycat.db.DatabaseEntry)</CODE></A>, since the fixed serialization header is assumed to not be included in the input data. <A HREF="../../../../com/sleepycat/bind/serial/SerialInput.html" title="class in com.sleepycat.bind.serial"><CODE>SerialInput</CODE></A> is used to deserialize the object. <P> <DD><DL> <DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/bind/EntryBinding.html#entryToObject(com.sleepycat.db.DatabaseEntry)">entryToObject</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/bind/EntryBinding.html" title="interface in com.sleepycat.bind">EntryBinding</A></CODE></DL> </DD> <DD><DL> <DT><B>Parameters:</B><DD><CODE>entry</CODE> - is the input serialized entry. <DT><B>Returns:</B><DD>the output deserialized object.</DL> </DD> </DL> <HR> <A NAME="objectToEntry(java.lang.Object, com.sleepycat.db.DatabaseEntry)"><!-- --></A><H3> objectToEntry</H3> <PRE> public void <B>objectToEntry</B>(java.lang.Object object, <A HREF="../../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> entry)</PRE> <DL> <DD>Serialize an object into an entry buffer. The fixed serialization header is not included in the output data to save space, and therefore to deserialize the data the complementary <A HREF="../../../../com/sleepycat/bind/serial/SerialBinding.html#entryToObject(com.sleepycat.db.DatabaseEntry)"><CODE>entryToObject(com.sleepycat.db.DatabaseEntry)</CODE></A> method must be used. <A HREF="../../../../com/sleepycat/bind/serial/SerialOutput.html" title="class in com.sleepycat.bind.serial"><CODE>SerialOutput</CODE></A> is used to serialize the object. <p>Note that this method sets the DatabaseEntry offset property to a non-zero value and the size property to a value less than the length of the byte array.</p> <P> <DD><DL> <DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sleepycat/bind/EntryBinding.html#objectToEntry(java.lang.Object, com.sleepycat.db.DatabaseEntry)">objectToEntry</A></CODE> in interface <CODE><A HREF="../../../../com/sleepycat/bind/EntryBinding.html" title="interface in com.sleepycat.bind">EntryBinding</A></CODE></DL> </DD> <DD><DL> <DT><B>Parameters:</B><DD><CODE>object</CODE> - is the input deserialized object.<DD><CODE>entry</CODE> - is the output serialized entry. <DT><B>Throws:</B> <DD><CODE>java.lang.IllegalArgumentException</CODE> - if the object is not an instance of the base class for this binding.</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> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR> </TABLE> </TD> <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> </EM> </TD> </TR> <TR> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../com/sleepycat/bind/serial/SerialBase.html" title="class in com.sleepycat.bind.serial"><B>PREV CLASS</B></A> <A HREF="../../../../com/sleepycat/bind/serial/SerialInput.html" title="class in com.sleepycat.bind.serial"><B>NEXT CLASS</B></A></FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../index.html?com/sleepycat/bind/serial/SerialBinding.html" target="_top"><B>FRAMES</B></A> <A HREF="SerialBinding.html" target="_top"><B>NO FRAMES</B></A> <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: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD> </TR> </TABLE> <A NAME="skip-navbar_bottom"></A> <!-- ======== END OF BOTTOM NAVBAR ======= --> <HR> </BODY> </HTML>