blob: 5db1b20eeeb65a756c0eda7a83b7b134ef3c3e7e [file] [log] [blame]
<!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.5.0_06) on Wed Jul 19 14:42:41 EDT 2006 -->
<TITLE>
OperationObserver (Cayenne API Documentation - v.1.2)
</TITLE>
<META NAME="keywords" CONTENT="org.objectstyle.cayenne.access.OperationObserver interface">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../objectstyle-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="OperationObserver (Cayenne API Documentation - v.1.2)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= 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-files/index-1.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="../../../../org/objectstyle/cayenne/access/OperationHints.html" title="interface in org.objectstyle.cayenne.access"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/objectstyle/cayenne/access/OptimisticLockException.html" title="class in org.objectstyle.cayenne.access"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/objectstyle/cayenne/access/OperationObserver.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="OperationObserver.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">
org.objectstyle.cayenne.access</FONT>
<BR>
Interface OperationObserver</H2>
<DL>
<DT><B>All Superinterfaces:</B> <DD><A HREF="../../../../org/objectstyle/cayenne/access/OperationHints.html" title="interface in org.objectstyle.cayenne.access">OperationHints</A></DD>
</DL>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../org/objectstyle/cayenne/access/util/ContextCommitObserver.html" title="class in org.objectstyle.cayenne.access.util">ContextCommitObserver</A>, <A HREF="../../../../org/objectstyle/cayenne/access/DataDomainLegacyQueryAction.html" title="class in org.objectstyle.cayenne.access">DataDomainLegacyQueryAction</A>, <A HREF="../../../../org/objectstyle/cayenne/access/util/DefaultOperationObserver.html" title="class in org.objectstyle.cayenne.access.util">DefaultOperationObserver</A>, <A HREF="../../../../org/objectstyle/cayenne/access/util/IteratedSelectObserver.html" title="class in org.objectstyle.cayenne.access.util">IteratedSelectObserver</A>, <A HREF="../../../../org/objectstyle/cayenne/access/QueryResult.html" title="class in org.objectstyle.cayenne.access">QueryResult</A>, <A HREF="../../../../org/objectstyle/cayenne/access/util/SelectObserver.html" title="class in org.objectstyle.cayenne.access.util">SelectObserver</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public interface <B>OperationObserver</B><DT>extends <A HREF="../../../../org/objectstyle/cayenne/access/OperationHints.html" title="interface in org.objectstyle.cayenne.access">OperationHints</A></DL>
</PRE>
<P>
Defines a set of callback methods that allow QueryEngine to pass back query results and
notify caller about exceptions.
<P>
<P>
<DL>
<DT><B>Author:</B></DT>
<DD>Andrei Adamchik</DD>
<DT><B>See Also:</B><DD><A HREF="../../../../org/objectstyle/cayenne/access/QueryEngine.html" title="interface in org.objectstyle.cayenne.access"><CODE>QueryEngine</CODE></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;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/objectstyle/cayenne/access/OperationObserver.html#nextBatchCount(org.objectstyle.cayenne.query.Query, int[])">nextBatchCount</A></B>(<A HREF="../../../../org/objectstyle/cayenne/query/Query.html" title="interface in org.objectstyle.cayenne.query">Query</A>&nbsp;query,
int[]&nbsp;resultCount)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Callback method invoked after a batch update is executed.</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="../../../../org/objectstyle/cayenne/access/OperationObserver.html#nextCount(org.objectstyle.cayenne.query.Query, int)">nextCount</A></B>(<A HREF="../../../../org/objectstyle/cayenne/query/Query.html" title="interface in org.objectstyle.cayenne.query">Query</A>&nbsp;query,
int&nbsp;resultCount)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Callback method invoked after an updating query is executed.</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="../../../../org/objectstyle/cayenne/access/OperationObserver.html#nextDataRows(org.objectstyle.cayenne.query.Query, java.util.List)">nextDataRows</A></B>(<A HREF="../../../../org/objectstyle/cayenne/query/Query.html" title="interface in org.objectstyle.cayenne.query">Query</A>&nbsp;query,
java.util.List&nbsp;dataRows)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Callback method invoked for each processed ResultSet.</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="../../../../org/objectstyle/cayenne/access/OperationObserver.html#nextDataRows(org.objectstyle.cayenne.query.Query, org.objectstyle.cayenne.access.ResultIterator)">nextDataRows</A></B>(<A HREF="../../../../org/objectstyle/cayenne/query/Query.html" title="interface in org.objectstyle.cayenne.query">Query</A>&nbsp;q,
<A HREF="../../../../org/objectstyle/cayenne/access/ResultIterator.html" title="interface in org.objectstyle.cayenne.access">ResultIterator</A>&nbsp;it)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Callback method invoked for each opened ResultIterator.</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="../../../../org/objectstyle/cayenne/access/OperationObserver.html#nextGeneratedDataRows(org.objectstyle.cayenne.query.Query, org.objectstyle.cayenne.access.ResultIterator)">nextGeneratedDataRows</A></B>(<A HREF="../../../../org/objectstyle/cayenne/query/Query.html" title="interface in org.objectstyle.cayenne.query">Query</A>&nbsp;query,
<A HREF="../../../../org/objectstyle/cayenne/access/ResultIterator.html" title="interface in org.objectstyle.cayenne.access">ResultIterator</A>&nbsp;keysIterator)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Callback method invoked after each batch of generated values is read durring an
update.</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="../../../../org/objectstyle/cayenne/access/OperationObserver.html#nextGlobalException(java.lang.Exception)">nextGlobalException</A></B>(java.lang.Exception&nbsp;ex)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Callback method invoked on exceptions that are not tied to a specific query
execution, such as JDBC connection exceptions, etc.</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="../../../../org/objectstyle/cayenne/access/OperationObserver.html#nextQueryException(org.objectstyle.cayenne.query.Query, java.lang.Exception)">nextQueryException</A></B>(<A HREF="../../../../org/objectstyle/cayenne/query/Query.html" title="interface in org.objectstyle.cayenne.query">Query</A>&nbsp;query,
java.lang.Exception&nbsp;ex)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Callback method invoked on exceptions that happen during an execution of a specific
query.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.objectstyle.cayenne.access.OperationHints"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from interface org.objectstyle.cayenne.access.<A HREF="../../../../org/objectstyle/cayenne/access/OperationHints.html" title="interface in org.objectstyle.cayenne.access">OperationHints</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/objectstyle/cayenne/access/OperationHints.html#getLoggingLevel()">getLoggingLevel</A>, <A HREF="../../../../org/objectstyle/cayenne/access/OperationHints.html#isIteratedResult()">isIteratedResult</A></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="nextCount(org.objectstyle.cayenne.query.Query, int)"><!-- --></A><H3>
nextCount</H3>
<PRE>
void <B>nextCount</B>(<A HREF="../../../../org/objectstyle/cayenne/query/Query.html" title="interface in org.objectstyle.cayenne.query">Query</A>&nbsp;query,
int&nbsp;resultCount)</PRE>
<DL>
<DD>Callback method invoked after an updating query is executed.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="nextBatchCount(org.objectstyle.cayenne.query.Query, int[])"><!-- --></A><H3>
nextBatchCount</H3>
<PRE>
void <B>nextBatchCount</B>(<A HREF="../../../../org/objectstyle/cayenne/query/Query.html" title="interface in org.objectstyle.cayenne.query">Query</A>&nbsp;query,
int[]&nbsp;resultCount)</PRE>
<DL>
<DD>Callback method invoked after a batch update is executed.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="nextDataRows(org.objectstyle.cayenne.query.Query, java.util.List)"><!-- --></A><H3>
nextDataRows</H3>
<PRE>
void <B>nextDataRows</B>(<A HREF="../../../../org/objectstyle/cayenne/query/Query.html" title="interface in org.objectstyle.cayenne.query">Query</A>&nbsp;query,
java.util.List&nbsp;dataRows)</PRE>
<DL>
<DD>Callback method invoked for each processed ResultSet.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="nextDataRows(org.objectstyle.cayenne.query.Query, org.objectstyle.cayenne.access.ResultIterator)"><!-- --></A><H3>
nextDataRows</H3>
<PRE>
void <B>nextDataRows</B>(<A HREF="../../../../org/objectstyle/cayenne/query/Query.html" title="interface in org.objectstyle.cayenne.query">Query</A>&nbsp;q,
<A HREF="../../../../org/objectstyle/cayenne/access/ResultIterator.html" title="interface in org.objectstyle.cayenne.access">ResultIterator</A>&nbsp;it)</PRE>
<DL>
<DD>Callback method invoked for each opened ResultIterator. If this observer requested
results to be returned as a ResultIterator, this method is invoked instead of
"nextDataRows(Query,List)". OperationObserver is responsible for closing the
ResultIterators passed via this method.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="nextGeneratedDataRows(org.objectstyle.cayenne.query.Query, org.objectstyle.cayenne.access.ResultIterator)"><!-- --></A><H3>
nextGeneratedDataRows</H3>
<PRE>
void <B>nextGeneratedDataRows</B>(<A HREF="../../../../org/objectstyle/cayenne/query/Query.html" title="interface in org.objectstyle.cayenne.query">Query</A>&nbsp;query,
<A HREF="../../../../org/objectstyle/cayenne/access/ResultIterator.html" title="interface in org.objectstyle.cayenne.access">ResultIterator</A>&nbsp;keysIterator)</PRE>
<DL>
<DD>Callback method invoked after each batch of generated values is read durring an
update.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Since:</B></DT>
<DD>1.2</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="nextQueryException(org.objectstyle.cayenne.query.Query, java.lang.Exception)"><!-- --></A><H3>
nextQueryException</H3>
<PRE>
void <B>nextQueryException</B>(<A HREF="../../../../org/objectstyle/cayenne/query/Query.html" title="interface in org.objectstyle.cayenne.query">Query</A>&nbsp;query,
java.lang.Exception&nbsp;ex)</PRE>
<DL>
<DD>Callback method invoked on exceptions that happen during an execution of a specific
query.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="nextGlobalException(java.lang.Exception)"><!-- --></A><H3>
nextGlobalException</H3>
<PRE>
void <B>nextGlobalException</B>(java.lang.Exception&nbsp;ex)</PRE>
<DL>
<DD>Callback method invoked on exceptions that are not tied to a specific query
execution, such as JDBC connection exceptions, etc.
<P>
<DD><DL>
</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-files/index-1.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="../../../../org/objectstyle/cayenne/access/OperationHints.html" title="interface in org.objectstyle.cayenne.access"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/objectstyle/cayenne/access/OptimisticLockException.html" title="class in org.objectstyle.cayenne.access"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/objectstyle/cayenne/access/OperationObserver.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="OperationObserver.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>
<!--@SFLOGO@--> &nbsp; <i>Copyright &#169; 2001-2006 <a href=
"http://objectstyle.org" target="_top">ObjectStyle.org</a> All Rights Reserved.</i>
</BODY>
</HTML>