You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by si...@apache.org on 2010/12/24 21:26:16 UTC

svn commit: r1052585 [3/5] - in /incubator/river/site/trunk/content/river/doc/api/net/jini/lookup: ./ class-use/ entry/

Added: incubator/river/site/trunk/content/river/doc/api/net/jini/lookup/LookupCache.html
URL: http://svn.apache.org/viewvc/incubator/river/site/trunk/content/river/doc/api/net/jini/lookup/LookupCache.html?rev=1052585&view=auto
==============================================================================
--- incubator/river/site/trunk/content/river/doc/api/net/jini/lookup/LookupCache.html (added)
+++ incubator/river/site/trunk/content/river/doc/api/net/jini/lookup/LookupCache.html Fri Dec 24 20:26:15 2010
@@ -0,0 +1,426 @@
+<!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_15) on Mon Mar 08 17:46:22 EST 2010 -->
+<TITLE>
+LookupCache (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="net.jini.lookup.LookupCache interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="LookupCache (Apache River v2.1.2-SNAPSHOT API Documentation)";
+}
+</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="class-use/LookupCache.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&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-all.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="../../../net/jini/lookup/JoinManager.html" title="class in net.jini.lookup"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/lookup/LookupCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LookupCache.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">
+net.jini.lookup</FONT>
+<BR>
+Interface LookupCache</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>LookupCache</B></DL>
+</PRE>
+
+<P>
+The <code>LookupCache</code> interface defines the methods provided
+ by the object created and returned by the 
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryManager.html" title="class in net.jini.lookup"><CODE>ServiceDiscoveryManager</CODE></A>
+ when a client-like entity invokes the
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryManager.html#createLookupCache(net.jini.core.lookup.ServiceTemplate, net.jini.lookup.ServiceItemFilter, net.jini.lookup.ServiceDiscoveryListener)"><CODE>createLookupCache</CODE></A> method. It is within the object returned by that
+ method that discovered service references, matching criteria defined
+ by the entity, are stored. Through this interface, the entity may
+ retrieve one or more of the stored service references, register and
+ un-register with the cache's event mechanism, discard previously
+ discovered service references to make them eligible for re-discovery,
+ and terminate all of the cache's processing.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Sun Microsystems, Inc.</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../net/jini/lookup/ServiceDiscoveryManager.html" title="class in net.jini.lookup"><CODE>ServiceDiscoveryManager</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="../../../net/jini/lookup/LookupCache.html#addListener(net.jini.lookup.ServiceDiscoveryListener)">addListener</A></B>(<A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html" title="interface in net.jini.lookup">ServiceDiscoveryListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers a <code>ServiceDiscoveryListener</code> object with
+ the event mechanism of a <code>LookupCache</code>.</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="../../../net/jini/lookup/LookupCache.html#discard(java.lang.Object)">discard</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;serviceReference)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deletes a service reference from the cache and causes a notification 
+ to be sent to all registered listeners indicating that the service 
+ has been discarded.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../net/jini/core/lookup/ServiceItem.html" title="class in net.jini.core.lookup">ServiceItem</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lookup/LookupCache.html#lookup(net.jini.lookup.ServiceItemFilter)">lookup</A></B>(<A HREF="../../../net/jini/lookup/ServiceItemFilter.html" title="interface in net.jini.lookup">ServiceItemFilter</A>&nbsp;filter)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Finds a <code>ServiceItem</code> object that satisfies the given
+ <code>filter</code> parameter.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../net/jini/core/lookup/ServiceItem.html" title="class in net.jini.core.lookup">ServiceItem</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lookup/LookupCache.html#lookup(net.jini.lookup.ServiceItemFilter, int)">lookup</A></B>(<A HREF="../../../net/jini/lookup/ServiceItemFilter.html" title="interface in net.jini.lookup">ServiceItemFilter</A>&nbsp;filter,
+       int&nbsp;maxMatches)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Finds an array of instances of <code>ServiceItem</code> that each
+ satisfy the given <code>filter</code> parameter.</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="../../../net/jini/lookup/LookupCache.html#removeListener(net.jini.lookup.ServiceDiscoveryListener)">removeListener</A></B>(<A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html" title="interface in net.jini.lookup">ServiceDiscoveryListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes a <code>ServiceDiscoveryListener</code> object from the set  
+ of listeners currently registered with the <code>LookupCache</code>.</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="../../../net/jini/lookup/LookupCache.html#terminate()">terminate</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs cleanup duties related to the termination of
+ the processing being performed by a particular instance of
+ <code>LookupCache</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="lookup(net.jini.lookup.ServiceItemFilter)"><!-- --></A><H3>
+lookup</H3>
+<PRE>
+<A HREF="../../../net/jini/core/lookup/ServiceItem.html" title="class in net.jini.core.lookup">ServiceItem</A> <B>lookup</B>(<A HREF="../../../net/jini/lookup/ServiceItemFilter.html" title="interface in net.jini.lookup">ServiceItemFilter</A>&nbsp;filter)</PRE>
+<DL>
+<DD>Finds a <code>ServiceItem</code> object that satisfies the given
+ <code>filter</code> parameter. 
+ <p>
+ The service item returned must have been previously discovered to 
+ be both registered with one or more of the lookup services in the 
+ managed set, and to match criteria defined by the entity.
+ <p>
+ The semantics of the <code>filter</code> argument are identical
+ to those of the <code>filter</code> argument specified for a
+ number of the methods defined in the interface of the
+ <code>ServiceDiscoveryManager</code> utility class. This argument
+ is intended to allow an entity to separate its filtering into two
+ steps: an initial filter applied during the discovery phase, and
+ a finer resolution filter applied upon retrieval from the cache.
+ As with the methods of the <code>ServiceDiscoveryManager</code>, if
+ <code>null</code> is the value of this argument, then no additional
+ filtering will be performed.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - used for matching <code>ServiceItem</code>s. A null 
+                     value means no additional filtering should be applied.
+<DT><B>Returns:</B><DD>ServiceItem that satisfies the filter, and that was 
+                     previously discovered to be registered with one
+                     or more lookup services in the managed set. A 
+                     <code>null</code> value will be returned if no
+                     <code>ServiceItem</code> is found that matches
+                     the criteria or if the cache is empty.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="lookup(net.jini.lookup.ServiceItemFilter, int)"><!-- --></A><H3>
+lookup</H3>
+<PRE>
+<A HREF="../../../net/jini/core/lookup/ServiceItem.html" title="class in net.jini.core.lookup">ServiceItem</A>[] <B>lookup</B>(<A HREF="../../../net/jini/lookup/ServiceItemFilter.html" title="interface in net.jini.lookup">ServiceItemFilter</A>&nbsp;filter,
+                     int&nbsp;maxMatches)</PRE>
+<DL>
+<DD>Finds an array of instances of <code>ServiceItem</code> that each
+ satisfy the given <code>filter</code> parameter.
+ <p>
+ Each service item contained in the returned array must have been
+ previously discovered to be both registered with one or more of the
+ lookup services in the managed set, and to match criteria defined
+ by the entity.
+ <p>
+ The semantics of the <code>filter</code> argument are
+ identical to those of the <code>filter</code> argument specified
+ for a number of the methods defined in the interface of the
+ <code>ServiceDiscoveryManager</code> utility class. This argument is
+ intended to allow an entity to separate its filtering into two
+ steps: an initial filter applied during the discovery phase, and
+ a finer resolution filter applied upon retrieval from the cache.
+ As with the methods of the <code>ServiceDiscoveryManager</code>, if
+ <code>null</code> is the value of this argument, then no
+ additional filtering will be performed.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>filter</CODE> - used for matching <code>ServiceItem</code>s.
+                       A null value means no additional filtering should
+                       be applied.<DD><CODE>maxMatches</CODE> - maximum number of matches to return. If this 
+                       value is set to <code>Integer.MAX_VALUE</code>
+                       then all elements in the cache that match the
+                       criteria will be returned.
+<DT><B>Returns:</B><DD>ServiceItem[] array whose elements each satisfy the filter,
+                       and that were previously discovered to be
+                       registered with one or more lookup services in
+                       the managed set. An empty array will be returned
+                       if no <code>ServiceItem</code> is found that
+                       matches the criteria or if the cache is empty.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if <code>maxMatches</code>
+         is a negative number.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="addListener(net.jini.lookup.ServiceDiscoveryListener)"><!-- --></A><H3>
+addListener</H3>
+<PRE>
+void <B>addListener</B>(<A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html" title="interface in net.jini.lookup">ServiceDiscoveryListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD>Registers a <code>ServiceDiscoveryListener</code> object with
+ the event mechanism of a <code>LookupCache</code>. The listener 
+ object will receive a <code>ServiceDiscoveryEvent</code> upon the 
+ discovery, removal, or modification of one of the cache's
+ services. Once a listener is registered, it will be notified of
+ all service references discovered to date, and will be notified as
+ new services are discovered and existing services are modified or
+ discarded. 
+
+ If the parameter value duplicates (using <code>equals</code>) another
+ element in the set of listeners, no action is taken. If the parameter
+ value is <code>null</code>, a <code>NullPointerException</code> is
+ thrown.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>listener</CODE> - the <code>ServiceDiscoveryListener</code> object to
+                       register.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - this exception occurs when
+         <code>null</code> is input to the <code>listener</code>
+         parameter.<DT><B>See Also:</B><DD><A HREF="../../../net/jini/lookup/LookupCache.html#removeListener(net.jini.lookup.ServiceDiscoveryListener)"><CODE>removeListener(net.jini.lookup.ServiceDiscoveryListener)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="removeListener(net.jini.lookup.ServiceDiscoveryListener)"><!-- --></A><H3>
+removeListener</H3>
+<PRE>
+void <B>removeListener</B>(<A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html" title="interface in net.jini.lookup">ServiceDiscoveryListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD>Removes a <code>ServiceDiscoveryListener</code> object from the set  
+ of listeners currently registered with the <code>LookupCache</code>.
+ Once all listeners are removed from the cache's set of listeners, 
+ the cache will send no more <code>ServiceDiscoveryEvent</code> 
+ notifications. 
+
+ If the parameter value is <code>null</code>, or if the parameter value
+ does not exist in the managed set of listeners, no action is taken.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>listener</CODE> - the <code>ServiceDiscoveryListener</code> object to
+                 remove.<DT><B>See Also:</B><DD><A HREF="../../../net/jini/lookup/LookupCache.html#addListener(net.jini.lookup.ServiceDiscoveryListener)"><CODE>addListener(net.jini.lookup.ServiceDiscoveryListener)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="discard(java.lang.Object)"><!-- --></A><H3>
+discard</H3>
+<PRE>
+void <B>discard</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;serviceReference)</PRE>
+<DL>
+<DD>Deletes a service reference from the cache and causes a notification 
+ to be sent to all registered listeners indicating that the service 
+ has been discarded.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>serviceReference</CODE> - the service reference to        discard.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="terminate()"><!-- --></A><H3>
+terminate</H3>
+<PRE>
+void <B>terminate</B>()</PRE>
+<DL>
+<DD>Performs cleanup duties related to the termination of
+ the processing being performed by a particular instance of
+ <code>LookupCache</code>. For that instance, this method cancels
+ all event leases granted by the lookup services that supplied the
+ contents of the cache, and un-exports all remote listener objects
+ registered with those lookup services. The <code>terminate</code>
+ method is typically called when the entity is no longer interested
+ in the contents of the <code>LookupCache</code>.
+<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>&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="class-use/LookupCache.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&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-all.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="../../../net/jini/lookup/JoinManager.html" title="class in net.jini.lookup"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/lookup/LookupCache.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LookupCache.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>
+Copyright 2007, multiple authors.<br>Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="child" >Apache License, Version 2.0</a>, see the <a href="../../../doc-files/NOTICE" target="child" >NOTICE</a> file for attributions.
+</BODY>
+</HTML>

Added: incubator/river/site/trunk/content/river/doc/api/net/jini/lookup/ServiceDiscoveryEvent.html
URL: http://svn.apache.org/viewvc/incubator/river/site/trunk/content/river/doc/api/net/jini/lookup/ServiceDiscoveryEvent.html?rev=1052585&view=auto
==============================================================================
--- incubator/river/site/trunk/content/river/doc/api/net/jini/lookup/ServiceDiscoveryEvent.html (added)
+++ incubator/river/site/trunk/content/river/doc/api/net/jini/lookup/ServiceDiscoveryEvent.html Fri Dec 24 20:26:15 2010
@@ -0,0 +1,430 @@
+<!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_15) on Mon Mar 08 17:46:23 EST 2010 -->
+<TITLE>
+ServiceDiscoveryEvent (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="net.jini.lookup.ServiceDiscoveryEvent class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ServiceDiscoveryEvent (Apache River v2.1.2-SNAPSHOT API Documentation)";
+}
+</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="class-use/ServiceDiscoveryEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&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-all.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="../../../net/jini/lookup/LookupCache.html" title="interface in net.jini.lookup"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html" title="interface in net.jini.lookup"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/lookup/ServiceDiscoveryEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ServiceDiscoveryEvent.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;<A HREF="#fields_inherited_from_class_java.util.EventObject">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&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">
+net.jini.lookup</FONT>
+<BR>
+Class ServiceDiscoveryEvent</H2>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/EventObject.html" title="class or interface in java.util">java.util.EventObject</A>
+      <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>net.jini.lookup.ServiceDiscoveryEvent</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/io/Serializable.html" title="class or interface in java.io">Serializable</A></DD>
+</DL>
+<HR>
+<DL>
+<DT><PRE>public class <B>ServiceDiscoveryEvent</B><DT>extends <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/EventObject.html" title="class or interface in java.util">EventObject</A></DL>
+</PRE>
+
+<P>
+The <code>ServiceDiscoveryEvent</code> class encapsulates the
+ service discovery information made available by the event mechanism
+ of the <A HREF="../../../net/jini/lookup/LookupCache.html" title="interface in net.jini.lookup"><CODE>LookupCache</CODE></A>.  All listeners
+ that an entity has registered with the cache's event mechanism will
+ receive an event of type <code>ServiceDiscoveryEvent</code> upon
+ the discovery, removal, or modification of one of the cache's services.
+ This class is used by 
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryManager.html" title="class in net.jini.lookup"><CODE>ServiceDiscoveryManager</CODE></A>.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Sun Microsystems, Inc.</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../net/jini/lookup/ServiceDiscoveryManager.html" title="class in net.jini.lookup"><CODE>ServiceDiscoveryManager</CODE></A>, 
+<A HREF="../../../serialized-form.html#net.jini.lookup.ServiceDiscoveryEvent">Serialized Form</A></DL>
+<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>
+</TABLE>
+&nbsp;<A NAME="fields_inherited_from_class_java.util.EventObject"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Fields inherited from class java.util.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/EventObject.html" title="class or interface in java.util">EventObject</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/EventObject.html#source" title="class or interface in java.util">source</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== 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="../../../net/jini/lookup/ServiceDiscoveryEvent.html#ServiceDiscoveryEvent(java.lang.Object, net.jini.core.lookup.ServiceItem, net.jini.core.lookup.ServiceItem)">ServiceDiscoveryEvent</A></B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;source,
+                      <A HREF="../../../net/jini/core/lookup/ServiceItem.html" title="class in net.jini.core.lookup">ServiceItem</A>&nbsp;preEventItem,
+                      <A HREF="../../../net/jini/core/lookup/ServiceItem.html" title="class in net.jini.core.lookup">ServiceItem</A>&nbsp;postEventItem)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The constructor of <code>ServiceDiscoveryEvent</code> takes
+ three arguments:
+ 
+ An instance of <code>Object</code> corresponding to the
+ instance of <code>LookupCache</code> from which the given event
+ originated
+ 
+ A <code>ServiceItem</code> reference representing the state
+ of the service (associated with the given event) prior to the
+ occurrence of the event
+ 
+ A <code>ServiceItem</code> reference representing the state
+ of the service after the occurrence of the event
+ 
+ 
+ If <code>null</code> is passed as the source parameter for the
+ constructor, a <code>NullPointerException</code> will be thrown.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== 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;<A HREF="../../../net/jini/core/lookup/ServiceItem.html" title="class in net.jini.core.lookup">ServiceItem</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html#getPostEventServiceItem()">getPostEventServiceItem</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an instance of a <code>ServiceItem</code> containing the
+ service reference corresponding to the given event.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../net/jini/core/lookup/ServiceItem.html" title="class in net.jini.core.lookup">ServiceItem</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html#getPreEventServiceItem()">getPreEventServiceItem</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an instance of a <code>ServiceItem</code> containing the
+ service reference corresponding to the given event.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.util.EventObject"><!-- --></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.util.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/EventObject.html" title="class or interface in java.util">EventObject</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/EventObject.html#getSource()" title="class or interface in java.util">getSource</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/EventObject.html#toString()" title="class or interface in java.util">toString</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;<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.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://
 java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<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="ServiceDiscoveryEvent(java.lang.Object, net.jini.core.lookup.ServiceItem, net.jini.core.lookup.ServiceItem)"><!-- --></A><H3>
+ServiceDiscoveryEvent</H3>
+<PRE>
+public <B>ServiceDiscoveryEvent</B>(<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A>&nbsp;source,
+                             <A HREF="../../../net/jini/core/lookup/ServiceItem.html" title="class in net.jini.core.lookup">ServiceItem</A>&nbsp;preEventItem,
+                             <A HREF="../../../net/jini/core/lookup/ServiceItem.html" title="class in net.jini.core.lookup">ServiceItem</A>&nbsp;postEventItem)</PRE>
+<DL>
+<DD>The constructor of <code>ServiceDiscoveryEvent</code> takes
+ three arguments:
+ 
+ <li>An instance of <code>Object</code> corresponding to the
+ instance of <code>LookupCache</code> from which the given event
+ originated</li>
+ <p>
+ <li>A <code>ServiceItem</code> reference representing the state
+ of the service (associated with the given event) prior to the
+ occurrence of the event</li>
+ <p>
+ <li>A <code>ServiceItem</code> reference representing the state
+ of the service after the occurrence of the event</li>
+ 
+ <p>
+ If <code>null</code> is passed as the source parameter for the
+ constructor, a <code>NullPointerException</code> will be thrown.
+ <p>
+ Depending on the nature of the discovery event, a null reference
+ may be passed as one or the other of the remaining parameters, but
+ never both. If <code>null</code> is passed as both the
+ <code>preEventItem </code>and the <code>postEventItem</code>
+ parameters, a <code>NullPointerException</code> will be thrown.
+ <p>
+ Note that the constructor will not modify the contents of either
+ <code>ServiceItem</code> argument. Doing so can result in
+ unpredictable and undesirable effects on future processing by the
+ <code>ServiceDiscoveryManager</code>. That is why the effects of any
+ such modification to the contents of either input parameter are
+ undefined.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>source</CODE> - an instance of <code>Object</code> corresponding 
+                        to the instance of <code>LookupCache</code> from 
+                        which the given event originated.<DD><CODE>preEventItem</CODE> - a <code>ServiceItem</code> reference
+                        representing the state of the service (associated 
+                        with the given event) prior to the occurrence of 
+                        the event.<DD><CODE>postEventItem</CODE> - a <code>ServiceItem</code> reference 
+                representing the state of the service after the 
+                        occurrence of the event.
+<DT><B>Throws:</B>
+<DD><CODE><code>NullPointerException</code></CODE> - if <code>null</code> is 
+                        passed as the source parameter for the constructor, 
+                        or if <code>null</code> is passed as both the 
+                        <code>preEventItem </code>and the 
+                        <code>postEventItem</code> parameters.</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="getPreEventServiceItem()"><!-- --></A><H3>
+getPreEventServiceItem</H3>
+<PRE>
+public <A HREF="../../../net/jini/core/lookup/ServiceItem.html" title="class in net.jini.core.lookup">ServiceItem</A> <B>getPreEventServiceItem</B>()</PRE>
+<DL>
+<DD>Returns an instance of a <code>ServiceItem</code> containing the
+ service reference corresponding to the given event. The service
+ state reflected in the returned service item is the state of the
+ service prior to the occurrence of the event.
+ <p>
+ If the event is a discovery event (as opposed to a removal or
+ modification event), then this method will return <code>null</code> 
+ because the discovered service had no state in the cache prior to 
+ its discovery.
+ <p>
+ Because making a copy can be a very expensive process, this
+ method does not return a copy of the service reference associated
+ with the given event. Rather, it returns the appropriate service
+ reference from the cache itself. Due to this cost, listeners that
+ receive a <code>ServiceDiscoveryEvent</code> must not modify the
+ contents of the object returned by this method; doing so could
+ cause the state of the cache to become corrupted or inconsistent
+ because the objects returned by this method are also members of
+ the cache. This potential for corruption or inconsistency is why
+ the effects of modifying the object returned by this accessor
+ method are undefined.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>ServiceItem containing the service reference corresponding 
+                to the given event.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getPostEventServiceItem()"><!-- --></A><H3>
+getPostEventServiceItem</H3>
+<PRE>
+public <A HREF="../../../net/jini/core/lookup/ServiceItem.html" title="class in net.jini.core.lookup">ServiceItem</A> <B>getPostEventServiceItem</B>()</PRE>
+<DL>
+<DD>Returns an instance of a <code>ServiceItem</code> containing the
+ service reference corresponding to the given event. The service
+ state reflected in the returned service item is the state of the
+ service after the occurrence of the event.  
+ <p> 
+ If the event is a removal event, then this method will return 
+ <code>null</code> because the discovered service has no state in  
+ the cache after it is removed from the cache.
+ <p>
+ Because making a copy can be a very expensive process, this
+ method does not return a copy of the service reference associated
+ with the given event. Rather, it returns the appropriate service
+ reference from the cache itself. Due to this cost, listeners that
+ receive a <code>ServiceDiscoveryEvent</code> must not modify the
+ contents of the object returned by this method; doing so could
+ cause the state of the cache to become corrupted or inconsistent
+ because the objects returned by this method are also members of
+ the cache. This potential for corruption or inconsistency is why
+ the effects of modifying the object returned by this accessor
+ method are undefined.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>ServiceItem containing the service reference corresponding 
+                to the given event.</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="class-use/ServiceDiscoveryEvent.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&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-all.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="../../../net/jini/lookup/LookupCache.html" title="interface in net.jini.lookup"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html" title="interface in net.jini.lookup"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/lookup/ServiceDiscoveryEvent.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ServiceDiscoveryEvent.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;<A HREF="#fields_inherited_from_class_java.util.EventObject">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright 2007, multiple authors.<br>Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="child" >Apache License, Version 2.0</a>, see the <a href="../../../doc-files/NOTICE" target="child" >NOTICE</a> file for attributions.
+</BODY>
+</HTML>

Added: incubator/river/site/trunk/content/river/doc/api/net/jini/lookup/ServiceDiscoveryListener.html
URL: http://svn.apache.org/viewvc/incubator/river/site/trunk/content/river/doc/api/net/jini/lookup/ServiceDiscoveryListener.html?rev=1052585&view=auto
==============================================================================
--- incubator/river/site/trunk/content/river/doc/api/net/jini/lookup/ServiceDiscoveryListener.html (added)
+++ incubator/river/site/trunk/content/river/doc/api/net/jini/lookup/ServiceDiscoveryListener.html Fri Dec 24 20:26:15 2010
@@ -0,0 +1,447 @@
+<!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_15) on Mon Mar 08 17:46:23 EST 2010 -->
+<TITLE>
+ServiceDiscoveryListener (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="net.jini.lookup.ServiceDiscoveryListener interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="ServiceDiscoveryListener (Apache River v2.1.2-SNAPSHOT API Documentation)";
+}
+</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="class-use/ServiceDiscoveryListener.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&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-all.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="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/lookup/ServiceDiscoveryManager.html" title="class in net.jini.lookup"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/lookup/ServiceDiscoveryListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ServiceDiscoveryListener.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">
+net.jini.lookup</FONT>
+<BR>
+Interface ServiceDiscoveryListener</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>ServiceDiscoveryListener</B></DL>
+</PRE>
+
+<P>
+The <code>ServiceDiscoveryListener</code> interface defines the
+ methods used by objects such as a <A HREF="../../../net/jini/lookup/LookupCache.html" title="interface in net.jini.lookup"><CODE>LookupCache</CODE></A> to notify an entity that events of interest related to
+ the elements of the cache have occurred. It is the responsibility of
+ the entity wishing to be notified of the occurrence of such events to
+ construct an object that implements the 
+ <code>ServiceDiscoveryListener</code> interface and then register
+ that object with the cache's event mechanism. Any implementation of
+ this interface must define the actions to take upon receipt of an
+ event notification. The action taken is dependent on both the
+ application and the particular event that has occurred.
+ <p>
+ When the cache receives from one of the managed lookup services, an event
+ signaling the <i>registration</i> of a service of interest for the 
+ <i>first time</i> (or for the first time since the service has been
+ discarded), the cache applies any requested filtering and, if the service of
+ interest passes the filter (or if no filtering was requested), the cache
+ invokes the <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceAdded(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceAdded</CODE></A> method on all instances of
+ <code>ServiceDiscoveryListener</code> that are registered with the cache.
+ Invoking the <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceAdded(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceAdded</CODE></A> method notifies the entity that a service of interest that
+ matches any additional selection criteria has been discovered, and is
+ <i>safe</i> to use (if <A HREF="../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security"><CODE>proxy preparation</CODE></A> was requested).
+ <p>
+ When the cache receives, from a managed lookup service, an event signaling
+ the <i>removal</i> of a service of interest from the <i>last</i> such lookup
+ service with which it was registered, the cache invokes the 
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceRemoved</CODE></A> method on all instances of
+ <code>ServiceDiscoveryListener</code> that are registered with the cache;
+ doing so notifies the entity that a service of interest has been discarded.
+ <p>
+ In addition to the scenarios just described, the cache may also receive,
+ from a managed lookup service, a notification indicating that one of the
+ following events has occurred:
+ <ul><li> The service has changed in some fundamental way (for example,
+          the service is replaced with a new version), as determined by
+          <A HREF="../../../net/jini/io/MarshalledInstance.html#fullyEquals(java.lang.Object)"><CODE>MarshalledInstance.fullyEquals</CODE></A>
+     <li> The attributes of interest (across the attribute sets of all
+          references to the service) have been uniquely modified
+ </ul>
+ <p>
+ Note that that when determining whether the proxy referenced in the event
+ is fundamentally different from the corresponding proxy held by the cache
+ (the proxy that references the same service as the proxy from the event),
+ the cache applies <A HREF="../../../net/jini/io/MarshalledInstance.html#fullyEquals(java.lang.Object)"><CODE>MarshalledInstance.fullyEquals</CODE></A> to the <b><i>unprepared</i></b> forms
+ of both proxies.
+ <p>
+ When the cache receives, from a managed lookup service, a notification
+ indicating that one of the above events has occurred, the cache will first
+ apply any requested filtering to the service referenced by the event;
+ after which the cache will invoke either the
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceChanged(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceChanged</CODE></A> method or
+ the <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceRemoved</CODE></A> method, possibly followed by the
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceAdded(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceAdded</CODE></A>
+ method. Which of those methods the cache ultimately invokes is dependent
+ on the nature of the notification from the lookup service as well as the
+ results of any filtering that is performed.
+ <p>
+ If the event from the lookup service indicates that attributes of the
+ service have been modified, and if either no filtering is requested or
+ the service referenced by the event passes the filter, then the cache
+ invokes the <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceChanged(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceChanged</CODE></A> method on all instances of 
+ <code>ServiceDiscoveryListener</code> that are registered with the cache.
+ Invoking the <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceChanged(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceChanged</CODE></A> method notifies the entity that the attributes of the
+ previously discovered service have been changed in some way that is still
+ of interest to the entity.
+ <p>
+ If the event from the lookup service indicates that the previously
+ discovered service itself has changed, then if either filtering is not
+ requested or the service passes the requested filter, the cache invokes
+ the <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceRemoved</CODE></A> method and then the
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceAdded(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceAdded</CODE></A>
+ method on all instances of <code>ServiceDiscoveryListener</code> that are
+ registered with the cache. Invoking the
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceRemoved</CODE></A> method followed by the
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceAdded(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceAdded</CODE></A>
+ method notifies the entity that the previously discovered service has been
+ replaced with a new reference.
+ <p>
+ If, on the other hand, filtering is requested but the service fails the
+ filter, then the cache invokes only the
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceRemoved</CODE></A> method on all instances of
+ <code>ServiceDiscoveryListener</code> that are registered with the
+ cache. In this case, the
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceRemoved</CODE></A> method is invoked because the cache has concluded that
+ the previously discovered service has been replaced with a new reference
+ that is either no longer of interest to the entity, or is not safe
+ to use.
+ <p>
+ Finally, if filtering is requested but the filtering process results in
+ an <i>indefinite</i> state, then the cache first invokes the 
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceRemoved</CODE></A> method (to indicate to the entity that the service
+ is currently unusable), and then periodically retries the filter for
+ an implementation-dependent amount of time that is likely to exceed
+ the typical service lease duration, until either a failure occurs
+ or a pass occurs. If a pass occurs within the retry time period, the cache
+ invokes the <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceAdded(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceAdded</CODE></A> method because the cache has concluded that the previously
+ discovered service has been replaced with a new reference that is still
+ of interest to the entity, and is now safe to use.
+ <p>
+ The methods just described -- 
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceAdded(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceAdded</CODE></A>,
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceRemoved</CODE></A>, and
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceChanged(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceChanged</CODE></A> -- each take a single parameter of type
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup"><CODE>ServiceDiscoveryEvent</CODE></A>, which
+ contains references to the service item corresponding to the event,
+ including representations of the service's state both before and after
+ the event.
+ <p>
+ Except for possible modifications that result from filtering, each method
+ defined by this interface must not modify the contents of the
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup"><CODE>ServiceDiscoveryEvent</CODE></A>
+ parameter; doing so can result in unpredictable and undesirable effects
+ on future processing by the <A HREF="../../../net/jini/lookup/ServiceDiscoveryManager.html" title="class in net.jini.lookup"><CODE>ServiceDiscoveryManager</CODE></A>. Therefore, the effects of such modifications
+ are undefined.
+ <p>
+ The <code>ServiceDiscoveryListener</code> interface makes the following
+ concurrency guarantee: for any given listener object that implements this
+ interface or any sub-interface, no two methods defined by the interface
+ or sub-interface will be invoked at the same time by the same cache.
+ This applies to different invocations of the same or different methods,
+ on the same or different listeners registered with a single cache. For
+ example, the <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceRemoved</CODE></A> method of one listener will not be invoked while the
+ invocation of another listener's
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceAdded(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceAdded</CODE></A>,
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceRemoved</CODE></A>, or
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceChanged(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceChanged</CODE></A> method is in progress. Similarly, the one listener's
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceRemoved</CODE></A> method will not be invoked while that same listener's
+ <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceAdded(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceAdded</CODE></A>,
+ or <A HREF="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceChanged(net.jini.lookup.ServiceDiscoveryEvent)"><CODE>serviceChanged</CODE></A> method is in progress.
+ <p>
+ Note that the intent of the methods of this interface is to allow the
+ recipient of the <A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup"><CODE>ServiceDiscoveryEvent</CODE></A> to be informed that a service has been added to,
+ removed from, or modified in the cache. Calls to these methods are
+ synchronous to allow the entity that makes the call (for example, a
+ thread that interacts with the various lookup services of interest)
+ to determine whether or not the call succeeded. However, it is not
+ part of the semantics of the call that the notification return can be
+ delayed while the recipient of the call reacts to the occurrence of the
+ event. Thus, it is highly recommended that implementations of this
+ interface avoid time consuming operations, and return from the method
+ as quickly as possible. For example, one strategy might be to simply
+ note the occurrence of the <A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup"><CODE>ServiceDiscoveryEvent</CODE></A>, and perform any time consuming event handling
+ asynchronously.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Sun Microsystems, Inc.</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../net/jini/lookup/LookupCache.html" title="interface in net.jini.lookup"><CODE>LookupCache</CODE></A>, 
+<A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup"><CODE>ServiceDiscoveryEvent</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="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceAdded(net.jini.lookup.ServiceDiscoveryEvent)">serviceAdded</A></B>(<A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup">ServiceDiscoveryEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When the cache receives from one of the managed lookup services,
+ an event signaling the <i>registration</i> of a service of
+ interest for the <i>first time</i> (or for the first time since
+ the service has been discarded), the cache invokes the
+ <code>serviceAdded</code> method on all instances of
+ <code>ServiceDiscoveryListener</code> that are registered with the
+ cache; doing so notifies the entity that a service of interest has
+ been discovered.</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="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceChanged(net.jini.lookup.ServiceDiscoveryEvent)">serviceChanged</A></B>(<A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup">ServiceDiscoveryEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When the cache receives, from a managed lookup service, an event
+ signaling the unique modification of the attributes of a service
+ of interest (across the attribute sets of all references to the
+ service), the cache invokes the <code>serviceChanged</code>
+ method on all instances of <code>ServiceDiscoveryListener</code>
+ that are registered with the cache; doing so notifies the entity
+ that the state of a service of interest has changed.</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="../../../net/jini/lookup/ServiceDiscoveryListener.html#serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)">serviceRemoved</A></B>(<A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup">ServiceDiscoveryEvent</A>&nbsp;event)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When the cache receives, from a managed lookup service, an event
+ signaling the removal of a service of interest from the last such
+ lookup service with which it was registered, the cache invokes
+ the <code>serviceRemoved</code> method on all instances of
+ <code>ServiceDiscoveryListener</code> that are registered with
+ the cache; doing so notifies the entity that a service of interest 
+ has been discarded.</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="serviceAdded(net.jini.lookup.ServiceDiscoveryEvent)"><!-- --></A><H3>
+serviceAdded</H3>
+<PRE>
+void <B>serviceAdded</B>(<A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup">ServiceDiscoveryEvent</A>&nbsp;event)</PRE>
+<DL>
+<DD>When the cache receives from one of the managed lookup services,
+ an event signaling the <i>registration</i> of a service of
+ interest for the <i>first time</i> (or for the first time since
+ the service has been discarded), the cache invokes the
+ <code>serviceAdded</code> method on all instances of
+ <code>ServiceDiscoveryListener</code> that are registered with the
+ cache; doing so notifies the entity that a service of interest has
+ been discovered.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>event</CODE> - an instance of <code>ServiceDiscoveryEvent</code> 
+                        containing references to the service item 
+                        corresponding to the event, including 
+                        representations of the service's state both 
+                        before and after the event.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="serviceRemoved(net.jini.lookup.ServiceDiscoveryEvent)"><!-- --></A><H3>
+serviceRemoved</H3>
+<PRE>
+void <B>serviceRemoved</B>(<A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup">ServiceDiscoveryEvent</A>&nbsp;event)</PRE>
+<DL>
+<DD>When the cache receives, from a managed lookup service, an event
+ signaling the removal of a service of interest from the last such
+ lookup service with which it was registered, the cache invokes
+ the <code>serviceRemoved</code> method on all instances of
+ <code>ServiceDiscoveryListener</code> that are registered with
+ the cache; doing so notifies the entity that a service of interest 
+ has been discarded.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>event</CODE> - a <code>ServiceDiscoveryEvent</code> object 
+                        containing references to the service item 
+                        corresponding to the event, including 
+                        representations of the service's state both 
+                        before and after the event.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="serviceChanged(net.jini.lookup.ServiceDiscoveryEvent)"><!-- --></A><H3>
+serviceChanged</H3>
+<PRE>
+void <B>serviceChanged</B>(<A HREF="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup">ServiceDiscoveryEvent</A>&nbsp;event)</PRE>
+<DL>
+<DD>When the cache receives, from a managed lookup service, an event
+ signaling the unique modification of the attributes of a service
+ of interest (across the attribute sets of all references to the
+ service), the cache invokes the <code>serviceChanged</code>
+ method on all instances of <code>ServiceDiscoveryListener</code>
+ that are registered with the cache; doing so notifies the entity
+ that the state of a service of interest has changed.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>event</CODE> - a <code>ServiceDiscoveryEvent</code> object
+                        containing references to the service item 
+                        corresponding to the event, including 
+                        representations of the service's state both
+                        before and after the event.</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="class-use/ServiceDiscoveryListener.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&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-all.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="../../../net/jini/lookup/ServiceDiscoveryEvent.html" title="class in net.jini.lookup"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/lookup/ServiceDiscoveryManager.html" title="class in net.jini.lookup"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/lookup/ServiceDiscoveryListener.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="ServiceDiscoveryListener.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>
+Copyright 2007, multiple authors.<br>Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="child" >Apache License, Version 2.0</a>, see the <a href="../../../doc-files/NOTICE" target="child" >NOTICE</a> file for attributions.
+</BODY>
+</HTML>