<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd"> <!--NewPage--> <HTML> <HEAD> <!-- Generated by javadoc on Wed Dec 03 16:22:06 EST 2003 --> <TITLE> ForeignKeyIndex (Sleepycat Software, Inc. - Berkeley DB Java API) </TITLE> <META NAME="keywords" CONTENT="com.sleepycat.bdb.ForeignKeyIndex,ForeignKeyIndex class"> <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../style.css" TITLE="Style"> </HEAD> <SCRIPT> function asd() { parent.document.title="ForeignKeyIndex (Sleepycat Software, Inc. - Berkeley DB Java API)"; } </SCRIPT> <BODY BGCOLOR="white" onload="asd();"> <!-- ========== START OF NAVBAR ========== --> <A NAME="navbar_top"><!-- --></A> <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0"> <TR> <TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A NAME="navbar_top_firstrow"><!-- --></A> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3"> <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="class-use/ForeignKeyIndex.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </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> <b>Berkeley DB</b><br><font size="-1"> version 4.2.52</font></EM> </TD> </TR> <TR> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../com/sleepycat/bdb/DataView.html"><B>PREV CLASS</B></A> <A HREF="../../../com/sleepycat/bdb/RecordNumberBinding.html"><B>NEXT CLASS</B></A></FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A> <A HREF="ForeignKeyIndex.html" TARGET="_top"><B>NO FRAMES</B></A> <SCRIPT> <!-- if(window==top) { document.writeln('<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>'); } //--> </SCRIPT> <NOSCRIPT> <A HREF="../../../allclasses-noframe.html" TARGET=""><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> <!-- =========== END OF NAVBAR =========== --> <HR> <!-- ======== START OF CLASS DATA ======== --> <H2> <FONT SIZE="-1"> com.sleepycat.bdb</FONT> <BR> Class ForeignKeyIndex</H2> <PRE> <A HREF="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">java.lang.Object</A> | +--<A HREF="../../../com/sleepycat/bdb/DataIndex.html">com.sleepycat.bdb.DataIndex</A> | +--<B>com.sleepycat.bdb.ForeignKeyIndex</B> </PRE> <HR> <DL> <DT>public class <B>ForeignKeyIndex</B><DT>extends <A HREF="../../../com/sleepycat/bdb/DataIndex.html">DataIndex</A></DL> <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"><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 <A HREF="../../../com/sleepycat/bdb/collection/package-summary.html">com.sleepycat.bdb.collection</A> 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> <!-- ======== NESTED CLASS SUMMARY ======== --> <!-- =========== FIELD SUMMARY =========== --> <A NAME="field_summary"><!-- --></A> <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TD COLSPAN=2><FONT SIZE="+2"> <B>Field Summary</B></FONT></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_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" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TD COLSPAN=2><FONT SIZE="+2"> <B>Constructor Summary</B></FONT></TD> </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">DataStore</A> store, <A HREF="../../../com/sleepycat/db/Db.html">Db</A> db, <A HREF="../../../com/sleepycat/bdb/bind/KeyExtractor.html">KeyExtractor</A> keyExtractor, <A HREF="../../../com/sleepycat/bdb/DataStore.html">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" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TD COLSPAN=2><FONT SIZE="+2"> <B>Method Summary</B></FONT></TD> </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">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" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> <TD><B>Methods inherited from class com.sleepycat.bdb.<A HREF="../../../com/sleepycat/bdb/DataIndex.html">DataIndex</A></B></TD> </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" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"> <TD><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html">Object</A></B></TD> </TR> <TR BGCOLOR="white" CLASS="TableRowColor"> <TD><CODE><A HREF="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html#getClass()">getClass</A>, <A HREF="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html#notify()">notify</A>, <A HREF="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html#wait()">wait</A>, <A HREF="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html#wait(long)">wait</A>, <A HREF="http://java.sun.com/j2se/1.3/docs/api/java/lang/Object.html#wait(long, int)">wait</A></CODE></TD> </TR> </TABLE> <P> <!-- ============ FIELD DETAIL =========== --> <A NAME="field_detail"><!-- --></A> <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TD COLSPAN=1><FONT SIZE="+2"> <B>Field Detail</B></FONT></TD> </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" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TD COLSPAN=1><FONT SIZE="+2"> <B>Constructor Detail</B></FONT></TD> </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">DataStore</A> store, <A HREF="../../../com/sleepycat/db/Db.html">Db</A> db, <A HREF="../../../com/sleepycat/bdb/bind/KeyExtractor.html">KeyExtractor</A> keyExtractor, <A HREF="../../../com/sleepycat/bdb/DataStore.html">DataStore</A> foreignStore, int deleteAction)</PRE> <DL> <DD>Creates a foreign key index from a previously opened Db object. <P> <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><A HREF="http://java.sun.com/j2se/1.3/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - if a format mismatch is detected between the index and the store, or if unsorted duplicates were specified for the index Db.</DL> <!-- ============ METHOD DETAIL ========== --> <A NAME="method_detail"><!-- --></A> <TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%"> <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> <TD COLSPAN=1><FONT SIZE="+2"> <B>Method Detail</B></FONT></TD> </TR> </TABLE> <A NAME="getForeignStore()"><!-- --></A><H3> getForeignStore</H3> <PRE> public final <A HREF="../../../com/sleepycat/bdb/DataStore.html">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 NAVBAR ========== --> <A NAME="navbar_bottom"><!-- --></A> <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0"> <TR> <TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A NAME="navbar_bottom_firstrow"><!-- --></A> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3"> <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="class-use/ForeignKeyIndex.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </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> <b>Berkeley DB</b><br><font size="-1"> version 4.2.52</font></EM> </TD> </TR> <TR> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../com/sleepycat/bdb/DataView.html"><B>PREV CLASS</B></A> <A HREF="../../../com/sleepycat/bdb/RecordNumberBinding.html"><B>NEXT CLASS</B></A></FONT></TD> <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A> <A HREF="ForeignKeyIndex.html" TARGET="_top"><B>NO FRAMES</B></A> <SCRIPT> <!-- if(window==top) { document.writeln('<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>'); } //--> </SCRIPT> <NOSCRIPT> <A HREF="../../../allclasses-noframe.html" TARGET=""><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> <!-- =========== END OF NAVBAR =========== --> <HR> <font size=1><a href="../../../../sleepycat/legal.html">Copyright (c) 1996-2003</a> <a href="http://www.sleepycat.com">Sleepycat Software, Inc.</a> - All rights reserved.</font> </BODY> </HTML>