1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<!--NewPage--> 3<HTML> 4<HEAD> 5<!-- Generated by javadoc (build 1.5.0) on Thu May 15 17:17:32 EDT 2008 --> 6<TITLE> 7SecondaryKeyCreator (Oracle - Berkeley DB Java API) 8</TITLE> 9 10<META NAME="keywords" CONTENT="com.sleepycat.db.SecondaryKeyCreator interface"> 11 12<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../style.css" TITLE="Style"> 13 14<SCRIPT type="text/javascript"> 15function windowTitle() 16{ 17 parent.document.title="SecondaryKeyCreator (Oracle - Berkeley DB Java API)"; 18} 19</SCRIPT> 20<NOSCRIPT> 21</NOSCRIPT> 22 23</HEAD> 24 25<BODY BGCOLOR="white" onload="windowTitle();"> 26 27 28<!-- ========= START OF TOP NAVBAR ======= --> 29<A NAME="navbar_top"><!-- --></A> 30<A HREF="#skip-navbar_top" title="Skip navigation links"></A> 31<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> 32<TR> 33<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> 34<A NAME="navbar_top_firstrow"><!-- --></A> 35<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> 36 <TR ALIGN="center" VALIGN="top"> 37 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> 38 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> 39 <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> 40 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/SecondaryKeyCreator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> 41 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> 42 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> 43 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> 44 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> 45 </TR> 46</TABLE> 47</TD> 48<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> 49<b>Berkeley DB</b><br><font size="-1"> version 4.7.25</font></EM> 50</TD> 51</TR> 52 53<TR> 54<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 55 <A HREF="../../../com/sleepycat/db/SecondaryDatabase.html" title="class in com.sleepycat.db"><B>PREV CLASS</B></A> 56 <A HREF="../../../com/sleepycat/db/SecondaryMultiKeyCreator.html" title="interface in com.sleepycat.db"><B>NEXT CLASS</B></A></FONT></TD> 57<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 58 <A HREF="../../../index.html?com/sleepycat/db/SecondaryKeyCreator.html" target="_top"><B>FRAMES</B></A> 59 <A HREF="SecondaryKeyCreator.html" target="_top"><B>NO FRAMES</B></A> 60 <SCRIPT type="text/javascript"> 61 <!-- 62 if(window==top) { 63 document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>'); 64 } 65 //--> 66</SCRIPT> 67<NOSCRIPT> 68 <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A> 69</NOSCRIPT> 70 71 72</FONT></TD> 73</TR> 74<TR> 75<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 76 SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD> 77<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 78DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD> 79</TR> 80</TABLE> 81<A NAME="skip-navbar_top"></A> 82<!-- ========= END OF TOP NAVBAR ========= --> 83 84<HR> 85<!-- ======== START OF CLASS DATA ======== --> 86<H2> 87<FONT SIZE="-1"> 88com.sleepycat.db</FONT> 89<BR> 90Interface SecondaryKeyCreator</H2> 91<DL> 92<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../com/sleepycat/bind/serial/SerialSerialKeyCreator.html" title="class in com.sleepycat.bind.serial">SerialSerialKeyCreator</A>, <A HREF="../../../com/sleepycat/bind/serial/TupleSerialKeyCreator.html" title="class in com.sleepycat.bind.serial">TupleSerialKeyCreator</A>, <A HREF="../../../com/sleepycat/bind/serial/TupleSerialMarshalledKeyCreator.html" title="class in com.sleepycat.bind.serial">TupleSerialMarshalledKeyCreator</A>, <A HREF="../../../com/sleepycat/bind/tuple/TupleTupleKeyCreator.html" title="class in com.sleepycat.bind.tuple">TupleTupleKeyCreator</A>, <A HREF="../../../com/sleepycat/bind/tuple/TupleTupleMarshalledKeyCreator.html" title="class in com.sleepycat.bind.tuple">TupleTupleMarshalledKeyCreator</A></DD> 93</DL> 94<HR> 95<DL> 96<DT><PRE>public interface <B>SecondaryKeyCreator</B></DL> 97</PRE> 98 99<P> 100The interface implemented for extracting single-valued secondary keys from 101primary records. 102<p> 103The key creator object is specified by calling 104<A HREF="../../../com/sleepycat/db/SecondaryConfig.html#setKeyCreator(com.sleepycat.db.SecondaryKeyCreator)"><CODE>SecondaryConfig.setKeyCreator</CODE></A>. 105The secondary database configuration is specified when calling 106<A HREF="../../../com/sleepycat/db/Environment.html#openSecondaryDatabase(com.sleepycat.db.Transaction, java.lang.String, java.lang.String, com.sleepycat.db.Database, com.sleepycat.db.SecondaryConfig)"><CODE>Environment.openSecondaryDatabase</CODE></A>. 107<p> 108For example: 109<pre> 110 class MyKeyCreator implements SecondaryKeyCreator { 111 public boolean createSecondaryKey(SecondaryDatabase secondary, 112 DatabaseEntry key, 113 DatabaseEntry data, 114 DatabaseEntry result) 115 throws DatabaseException { 116 // 117 // DO HERE: Extract the secondary key from the primary key and 118 // data, and set the secondary key into the result parameter. 119 // 120 return true; 121 } 122 } 123 ... 124 SecondaryConfig secConfig = new SecondaryConfig(); 125 secConfig.setKeyCreator(new MyKeyCreator()); 126 // Now pass secConfig to Environment.openSecondaryDatabase 127</pre> 128<P> 129 130<P> 131<HR> 132 133<P> 134 135<!-- ========== METHOD SUMMARY =========== --> 136 137<A NAME="method_summary"><!-- --></A> 138<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 139<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> 140<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> 141<B>Method Summary</B></FONT></TH> 142</TR> 143<TR BGCOLOR="white" CLASS="TableRowColor"> 144<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 145<CODE> boolean</CODE></FONT></TD> 146<TD><CODE><B><A HREF="../../../com/sleepycat/db/SecondaryKeyCreator.html#createSecondaryKey(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry)">createSecondaryKey</A></B>(<A HREF="../../../com/sleepycat/db/SecondaryDatabase.html" title="class in com.sleepycat.db">SecondaryDatabase</A> secondary, 147 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> key, 148 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> data, 149 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> result)</CODE> 150 151<BR> 152 Creates a secondary key entry, given a primary key and data entry.</TD> 153</TR> 154</TABLE> 155 156<P> 157 158<!-- ============ METHOD DETAIL ========== --> 159 160<A NAME="method_detail"><!-- --></A> 161<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 162<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> 163<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> 164<B>Method Detail</B></FONT></TH> 165</TR> 166</TABLE> 167 168<A NAME="createSecondaryKey(com.sleepycat.db.SecondaryDatabase, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry, com.sleepycat.db.DatabaseEntry)"><!-- --></A><H3> 169createSecondaryKey</H3> 170<PRE> 171boolean <B>createSecondaryKey</B>(<A HREF="../../../com/sleepycat/db/SecondaryDatabase.html" title="class in com.sleepycat.db">SecondaryDatabase</A> secondary, 172 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> key, 173 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> data, 174 <A HREF="../../../com/sleepycat/db/DatabaseEntry.html" title="class in com.sleepycat.db">DatabaseEntry</A> result) 175 throws <A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></PRE> 176<DL> 177<DD>Creates a secondary key entry, given a primary key and data entry. 178 <p> 179 A secondary key may be derived from the primary key, primary data, or a 180 combination of the primary key and data. For secondary keys that are 181 optional, the key creator method may return false and the key/data pair 182 will not be indexed. To ensure the integrity of a secondary database the 183 key creator method must always return the same result for a given set of 184 input parameters. 185 <p> 186<P> 187<DD><DL> 188<DT><B>Parameters:</B><DD><CODE>secondary</CODE> - the database to which the secondary key will be added. 189 This parameter is passed for informational purposes but is not commonly 190 used. 191 <p><DD><CODE>key</CODE> - the primary key entry. This parameter must not be modified 192 by this method. 193 <p><DD><CODE>data</CODE> - the primary data entry. This parameter must not be modified 194 by this method. 195 <p><DD><CODE>result</CODE> - the secondary key created by this method. 196 <p> 197<DT><B>Returns:</B><DD>true if a key was created, or false to indicate that the key is 198 not present. 199 <p> 200<DT><B>Throws:</B> 201<DD><CODE><A HREF="../../../com/sleepycat/db/DatabaseException.html" title="class in com.sleepycat.db">DatabaseException</A></CODE> - if an error occurs attempting to create the 202 secondary key.</DL> 203</DD> 204</DL> 205<!-- ========= END OF CLASS DATA ========= --> 206<HR> 207 208 209<!-- ======= START OF BOTTOM NAVBAR ====== --> 210<A NAME="navbar_bottom"><!-- --></A> 211<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> 212<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> 213<TR> 214<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> 215<A NAME="navbar_bottom_firstrow"><!-- --></A> 216<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> 217 <TR ALIGN="center" VALIGN="top"> 218 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> 219 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> 220 <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> 221 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/SecondaryKeyCreator.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> 222 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> 223 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> 224 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> 225 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> 226 </TR> 227</TABLE> 228</TD> 229<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> 230<b>Berkeley DB</b><br><font size="-1"> version 4.7.25</font></EM> 231</TD> 232</TR> 233 234<TR> 235<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 236 <A HREF="../../../com/sleepycat/db/SecondaryDatabase.html" title="class in com.sleepycat.db"><B>PREV CLASS</B></A> 237 <A HREF="../../../com/sleepycat/db/SecondaryMultiKeyCreator.html" title="interface in com.sleepycat.db"><B>NEXT CLASS</B></A></FONT></TD> 238<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 239 <A HREF="../../../index.html?com/sleepycat/db/SecondaryKeyCreator.html" target="_top"><B>FRAMES</B></A> 240 <A HREF="SecondaryKeyCreator.html" target="_top"><B>NO FRAMES</B></A> 241 <SCRIPT type="text/javascript"> 242 <!-- 243 if(window==top) { 244 document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>'); 245 } 246 //--> 247</SCRIPT> 248<NOSCRIPT> 249 <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A> 250</NOSCRIPT> 251 252 253</FONT></TD> 254</TR> 255<TR> 256<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 257 SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD> 258<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 259DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD> 260</TR> 261</TABLE> 262<A NAME="skip-navbar_bottom"></A> 263<!-- ======== END OF BOTTOM NAVBAR ======= --> 264 265<HR> 266<font size=1>Copyright (c) 1996,2008 Oracle. All rights reserved.</font> 267</BODY> 268</HTML> 269