<!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_18) on Thu Dec 02 16:59:39 UTC 2010 --> <TITLE> ForeignKeyIndex </TITLE> <META NAME="date" CONTENT="2010-12-02"> <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="ForeignKeyIndex"; } } </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/bdb/DataView.html" title="class in com.sleepycat.bdb"><B>PREV CLASS</B></A> <A HREF="../../../com/sleepycat/bdb/IntegrityConstraintException.html" title="class in com.sleepycat.bdb"><B>NEXT CLASS</B></A></FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../index.html?com/sleepycat/bdb/ForeignKeyIndex.html" target="_top"><B>FRAMES</B></A> <A HREF="ForeignKeyIndex.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 | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> DETAIL: <A HREF="#field_detail">FIELD</A> | <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.bdb</FONT> <BR> Class ForeignKeyIndex</H2> <PRE> java.lang.Object <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../com/sleepycat/bdb/DataIndex.html" title="class in com.sleepycat.bdb">com.sleepycat.bdb.DataIndex</A> <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>com.sleepycat.bdb.ForeignKeyIndex</B> </PRE> <HR> <DL> <DT><PRE>public class <B>ForeignKeyIndex</B><DT>extends <A HREF="../../../com/sleepycat/bdb/DataIndex.html" title="class in com.sleepycat.bdb">DataIndex</A></DL> </PRE> <P> Represents a Berkeley DB secondary index where the index key is the primary key of another data store. An index is always attached to a single <A HREF="../../../com/sleepycat/bdb/DataStore.html" title="class in com.sleepycat.bdb"><CODE>DataStore</CODE></A> when it is constructed. An index is typically accessed by passing it to the constructor of one of the collection classes in the <CODE>com.sleepycat.bdb.collection</CODE> package. For example: <pre> Db db = new Db(env, 0); db.setFlags(Db.DB_DUPSORT); db.open(null, "index.db", null, Db.DB_BTREE, dbOpenFlags, 0); ForeignKeyIndex index = new ForeignKeyIndex(store, db, keyExtractor, foreignStore, deleteAction); StoredMap map = new StoredMap(index, keyBinding, valueBinding, writeAllowed); </pre> <p>All access methods may be used with BDB. However, some access methods may only be used with certain types of collection views, and some access methods impose restrictions on the way collection views are used.</p> <P> <P> <HR> <P> <!-- =========== FIELD SUMMARY =========== --> <A NAME="field_summary"><!-- --></A> <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> <B>Field Summary</B></FONT></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static int</CODE></FONT></TD> <TD><CODE><B><A HREF="../../../com/sleepycat/bdb/ForeignKeyIndex.html#ON_DELETE_ABORT">ON_DELETE_ABORT</A></B></CODE> <BR> When the foreign key is deleted, throw an exception.</TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static int</CODE></FONT></TD> <TD><CODE><B><A HREF="../../../com/sleepycat/bdb/ForeignKeyIndex.html#ON_DELETE_CASCADE">ON_DELETE_CASCADE</A></B></CODE> <BR> When the foreign key is deleted, delete the index key.</TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE>static int</CODE></FONT></TD> <TD><CODE><B><A HREF="../../../com/sleepycat/bdb/ForeignKeyIndex.html#ON_DELETE_CLEAR">ON_DELETE_CLEAR</A></B></CODE> <BR> When the foreign key is deleted, clear the index key.</TD> </TR> </TABLE> <!-- ======== 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/bdb/ForeignKeyIndex.html#ForeignKeyIndex(com.sleepycat.bdb.DataStore, com.sleepycat.db.Db, com.sleepycat.bdb.bind.KeyExtractor, com.sleepycat.bdb.DataStore, int)">ForeignKeyIndex</A></B>(<A HREF="../../../com/sleepycat/bdb/DataStore.html" title="class in com.sleepycat.bdb">DataStore</A> store, <A HREF="../../../com/sleepycat/db/Db.html" title="class in com.sleepycat.db">Db</A> db, <A HREF="../../../com/sleepycat/bdb/bind/KeyExtractor.html" title="interface in com.sleepycat.bdb.bind">KeyExtractor</A> keyExtractor, <A HREF="../../../com/sleepycat/bdb/DataStore.html" title="class in com.sleepycat.bdb">DataStore</A> foreignStore, int deleteAction)</CODE> <BR> Creates a foreign key index from a previously opened Db object.</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> int</CODE></FONT></TD> <TD><CODE><B><A HREF="../../../com/sleepycat/bdb/ForeignKeyIndex.html#getDeleteAction()">getDeleteAction</A></B>()</CODE> <BR> Returns a value indicating what action occurs when the foreign key is deleted.</TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> <CODE> <A HREF="../../../com/sleepycat/bdb/DataStore.html" title="class in com.sleepycat.bdb">DataStore</A></CODE></FONT></TD> <TD><CODE><B><A HREF="../../../com/sleepycat/bdb/ForeignKeyIndex.html#getForeignStore()">getForeignStore</A></B>()</CODE> <BR> Returns the foreign store which has the primary key which matches the index key of this store.</TD> </TR> </TABLE> <A NAME="methods_inherited_from_class_com.sleepycat.bdb.DataIndex"><!-- --></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.bdb.<A HREF="../../../com/sleepycat/bdb/DataIndex.html" title="class in com.sleepycat.bdb">DataIndex</A></B></TH> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD><CODE><A HREF="../../../com/sleepycat/bdb/DataIndex.html#getKeyExtractor()">getKeyExtractor</A>, <A HREF="../../../com/sleepycat/bdb/DataIndex.html#getKeyFormat()">getKeyFormat</A>, <A HREF="../../../com/sleepycat/bdb/DataIndex.html#getStore()">getStore</A>, <A HREF="../../../com/sleepycat/bdb/DataIndex.html#toString()">toString</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, wait, wait, wait</CODE></TD> </TR> </TABLE> <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="ON_DELETE_ABORT"><!-- --></A><H3> ON_DELETE_ABORT</H3> <PRE> public static final int <B>ON_DELETE_ABORT</B></PRE> <DL> <DD>When the foreign key is deleted, throw an exception. <P> <DL> <DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.sleepycat.bdb.ForeignKeyIndex.ON_DELETE_ABORT">Constant Field Values</A></DL> </DL> <HR> <A NAME="ON_DELETE_CASCADE"><!-- --></A><H3> ON_DELETE_CASCADE</H3> <PRE> public static final int <B>ON_DELETE_CASCADE</B></PRE> <DL> <DD>When the foreign key is deleted, delete the index key. <P> <DL> <DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.sleepycat.bdb.ForeignKeyIndex.ON_DELETE_CASCADE">Constant Field Values</A></DL> </DL> <HR> <A NAME="ON_DELETE_CLEAR"><!-- --></A><H3> ON_DELETE_CLEAR</H3> <PRE> public static final int <B>ON_DELETE_CLEAR</B></PRE> <DL> <DD>When the foreign key is deleted, clear the index key. <P> <DL> <DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#com.sleepycat.bdb.ForeignKeyIndex.ON_DELETE_CLEAR">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="ForeignKeyIndex(com.sleepycat.bdb.DataStore, com.sleepycat.db.Db, com.sleepycat.bdb.bind.KeyExtractor, com.sleepycat.bdb.DataStore, int)"><!-- --></A><H3> ForeignKeyIndex</H3> <PRE> public <B>ForeignKeyIndex</B>(<A HREF="../../../com/sleepycat/bdb/DataStore.html" title="class in com.sleepycat.bdb">DataStore</A> store, <A HREF="../../../com/sleepycat/db/Db.html" title="class in com.sleepycat.db">Db</A> db, <A HREF="../../../com/sleepycat/bdb/bind/KeyExtractor.html" title="interface in com.sleepycat.bdb.bind">KeyExtractor</A> keyExtractor, <A HREF="../../../com/sleepycat/bdb/DataStore.html" title="class in com.sleepycat.bdb">DataStore</A> foreignStore, int deleteAction)</PRE> <DL> <DD>Creates a foreign key index from a previously opened Db object. <P> <DL> <DT><B>Parameters:</B><DD><CODE>store</CODE> - the store to be indexed and also specifies the environment that was used to create the Db object.<DD><CODE>db</CODE> - the previously opened Db object.<DD><CODE>keyExtractor</CODE> - an object for extracting the index key from primary key and/or value buffers, and for clearing the index key in a value buffer.<DD><CODE>foreignStore</CODE> - is the store in which the index key for this store is a primary key.<DD><CODE>deleteAction</CODE> - determines what action occurs when the foreign key is deleted. It must be one of the ON_DELETE_ constants. <DT><B>Throws:</B> <DD><CODE>java.lang.IllegalArgumentException</CODE> - if a format mismatch is detected between the index and the store, or if unsorted duplicates were specified for the index Db.</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="getForeignStore()"><!-- --></A><H3> getForeignStore</H3> <PRE> public final <A HREF="../../../com/sleepycat/bdb/DataStore.html" title="class in com.sleepycat.bdb">DataStore</A> <B>getForeignStore</B>()</PRE> <DL> <DD>Returns the foreign store which has the primary key which matches the index key of this store. <P> <DD><DL> </DL> </DD> </DL> <HR> <A NAME="getDeleteAction()"><!-- --></A><H3> getDeleteAction</H3> <PRE> public final int <B>getDeleteAction</B>()</PRE> <DL> <DD>Returns a value indicating what action occurs when the foreign key is deleted. It must be one of the ON_DELETE_ constants. <P> <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> </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/bdb/DataView.html" title="class in com.sleepycat.bdb"><B>PREV CLASS</B></A> <A HREF="../../../com/sleepycat/bdb/IntegrityConstraintException.html" title="class in com.sleepycat.bdb"><B>NEXT CLASS</B></A></FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../index.html?com/sleepycat/bdb/ForeignKeyIndex.html" target="_top"><B>FRAMES</B></A> <A HREF="ForeignKeyIndex.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 | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD> <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> DETAIL: <A HREF="#field_detail">FIELD</A> | <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>