blob: 17edf71de89df63eb9a7827ff38e49380952775e [file]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0) on Sun Aug 28 20:42:02 EST 2016 -->
<title>AbstractLookupLocatorDiscovery (Apache River v3.0.0 API Documentation (internals))</title>
<meta name="date" content="2016-08-28">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AbstractLookupLocatorDiscovery (Apache River v3.0.0 API Documentation (internals))";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":9,"i16":9,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractLookupLocatorDiscovery.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../net/jini/discovery/AbstractLookupDiscoveryManager.ProxyReg.html" title="class in net.jini.discovery"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.DiscoveryTask.html" title="class in net.jini.discovery"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?net/jini/discovery/AbstractLookupLocatorDiscovery.html" target="_top">Frames</a></li>
<li><a href="AbstractLookupLocatorDiscovery.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">net.jini.discovery</div>
<h2 title="Class AbstractLookupLocatorDiscovery" class="title">Class AbstractLookupLocatorDiscovery</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>net.jini.discovery.AbstractLookupLocatorDiscovery</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html" title="interface in net.jini.discovery">DiscoveryLocatorManagement</a>, <a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../net/jini/discovery/LookupLocatorDiscovery.html" title="class in net.jini.discovery">LookupLocatorDiscovery</a></dd>
</dl>
<hr>
<br>
<pre>abstract class <span class="typeNameLabel">AbstractLookupLocatorDiscovery</span>
extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a>, <a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html" title="interface in net.jini.discovery">DiscoveryLocatorManagement</a></pre>
<div class="block">This package private superclass of LookupLocatorDiscovery exists for
safe construction of LookupLocatorDiscovery's state, while retaining
backward compatibility of the API.
See www.securecoding.cert.org TSM01-J and OBJ11-J</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.DiscoveryTask.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.DiscoveryTask</a></span></code>
<div class="block">Task which retrieves elements from the set of undiscoveredLocators
and attempts, through the unicast discovery protocol, to discover
the lookup service having the LookupLocator referenced by the element.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.FutureFactory.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.FutureFactory</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.Initializer</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a></span></code>
<div class="block">Wrapper class in which each instance corresponds to a lookup service
to discover via unicast discovery.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.Notifier.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.Notifier</a></span></code>
<div class="block">Thread that retrieves data structures of type NotifyTask from a
queue and, based on the contents of the data structure, sends the
appropriate event (discovered/discarded) to each registered listener.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.NotifyTask.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.NotifyTask</a></span></code>
<div class="block">Data structure containing task data processed by the Notifier Thread</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#COMPONENT_NAME">COMPONENT_NAME</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#DEFAULT_SOCKET_TIMEOUT">DEFAULT_SOCKET_TIMEOUT</a></span></code>
<div class="block">Default timeout to set on sockets used for unicast discovery.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#discoveredLocators">discoveredLocators</a></span></code>
<div class="block">Stores LookupLocators that have been discovered</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#discoverLocatorsCalled">discoverLocatorsCalled</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.ExecutorService.html?is-external=true" title="class or interface in java.util">java.util.concurrent.ExecutorService</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#discoveryExecutor">discoveryExecutor</a></span></code>
<div class="block">ExecutorService for the discovery tasks.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../org/apache/river/thread/WakeupManager.html" title="class in org.apache.river.thread">WakeupManager</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#discoveryWakeupMgr">discoveryWakeupMgr</a></span></code>
<div class="block">Wakeup manager for the discovery tasks.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#getRegistrarMethod">getRegistrarMethod</a></span></code>
<div class="block">LookupLocator.getRegistrar method, used for looking up client
constraints of contained lookup locators.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#initialUnicastDelayRange">initialUnicastDelayRange</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#listeners">listeners</a></span></code>
<div class="block">Stores DiscoveryListeners</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private static <a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging">Logger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#logger">logger</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#MAX_N_TASKS">MAX_N_TASKS</a></span></code>
<div class="block">Maximum number of concurrent tasks that can be run in any task
manager created by this class.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.Notifier.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.Notifier</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#notifierThread">notifierThread</a></span></code>
<div class="block">Thread that handles pending notifications.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.BlockingDeque.html?is-external=true" title="class or interface in java.util">java.util.concurrent.BlockingDeque</a>&lt;<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.NotifyTask.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.NotifyTask</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#pendingNotifies">pendingNotifies</a></span></code>
<div class="block">Notifications to be sent to listeners.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private <a href="../../../org/apache/river/discovery/Discovery.html" title="class in org.apache.river.discovery">Discovery</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#protocol2">protocol2</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security">ProxyPreparer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#registrarPreparer">registrarPreparer</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#terminated">terminated</a></span></code>
<div class="block">Flag indicating whether or not this class is still functional.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#undiscoveredLocators">undiscoveredLocators</a></span></code>
<div class="block">Stores LookupLocators that have not been discovered yet.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private)</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#AbstractLookupLocatorDiscovery--">AbstractLookupLocatorDiscovery</a></span>()</code>
<div class="block">Creates an instance of this class</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>private </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#AbstractLookupLocatorDiscovery-net.jini.discovery.AbstractLookupLocatorDiscovery.Initializer-">AbstractLookupLocatorDiscovery</a></span>(<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.Initializer</a>&nbsp;init)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private)</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#AbstractLookupLocatorDiscovery-net.jini.config.Configuration-">AbstractLookupLocatorDiscovery</a></span>(<a href="../../../net/jini/config/Configuration.html" title="interface in net.jini.config">Configuration</a>&nbsp;config)</code>
<div class="block">Constructs a new lookup locator discovery object, having the given
<code>Configuration</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#addAndQueueDiscoveryTaskIfAbsent-net.jini.discovery.AbstractLookupLocatorDiscovery.LocatorReg-">addAndQueueDiscoveryTaskIfAbsent</a></span>(<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a>&nbsp;reg)</code>
<div class="block">Adds the given LocatorReg object to the set containing the objects
corresponding to the locators of desired lookup services that have
not yet been discovered, and queues a DiscoveryTask to attempt,
through unicast discovery, to discover the associated lookup service.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#addDiscoveryListener-net.jini.discovery.DiscoveryListener-">addDiscoveryListener</a></span>(<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&nbsp;l)</code>
<div class="block">Add a DiscoveryListener to the listener set.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#addLocators-net.jini.core.discovery.LookupLocator:A-">addLocators</a></span>(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;locators)</code>
<div class="block">Adds a set of locators to the managed set of locators.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#addNotify-java.util.List-java.util.Map-boolean-">addNotify</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&gt;&nbsp;notifies,
<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;&nbsp;groupsMap,
boolean&nbsp;discard)</code>
<div class="block">Add a notification task to the pending queue, and start an instance of
the Notifier thread if one isn't already running.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#beginDiscovery-net.jini.core.discovery.LookupLocator:A-">beginDiscovery</a></span>(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;locators)</code>
<div class="block">Using the given <code>Configuration</code>, initializes the current
instance of this utility, and initiates the discovery process for
the given set of locators.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>private <a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#buildServiceRegistrar--">buildServiceRegistrar</a></span>()</code>
<div class="block">From each element of the set of LocatorReg objects that correspond
to lookup services that have been discovered, this method extracts
the ServiceRegistrar reference and returns all of the references
in an array of ServiceRegistrar.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#deepCopy-java.util.Map-">deepCopy</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;&nbsp;groupsMap)</code>
<div class="block">Creates and returns a deep copy of the input parameter.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#discard-net.jini.core.lookup.ServiceRegistrar-">discard</a></span>(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;proxy)</code>
<div class="block">Removes an instance of <code>ServiceRegistrar</code> from the
managed set of lookup services, making the corresponding lookup
service eligible for re-discovery.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#discoverLocators-net.jini.core.discovery.LookupLocator:A-">discoverLocators</a></span>(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;lcts)</code>
<div class="block">Initiates the discovery process for the lookup services having the
given locators.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>private <a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#findReg-net.jini.core.discovery.LookupLocator-">findReg</a></span>(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>&nbsp;lct)</code>
<div class="block">From the sets of elements corresponding to yet-to-be-discovered
locators, this methods finds and returns the instance of LocatorReg
corresponding to the given LookupLocator.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>private <a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#findRegFromProxy-net.jini.core.lookup.ServiceRegistrar-">findRegFromProxy</a></span>(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;proxy)</code>
<div class="block">This method searches the set of discovered LocatorReg objects
for the element that contains the given ServiceRegistrar object.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#getDiscoveredLocators--">getDiscoveredLocators</a></span>()</code>
<div class="block">Returns the set of <code>LookupLocator</code> objects representing the
desired lookup services that are currently discovered.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#getLocators--">getLocators</a></span>()</code>
<div class="block">Returns an array consisting of the elements of the managed set
of locators; that is, instances of <code>LookupLocator</code> in
which each instance corresponds to a specific lookup service to
discover.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#getRegistrars--">getRegistrars</a></span>()</code>
<div class="block">Returns an array of instances of <code>ServiceRegistrar</code>, each
corresponding to a proxy to one of the currently discovered lookup
services.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#getUndiscoveredLocators--">getUndiscoveredLocators</a></span>()</code>
<div class="block">Returns the set of <code>LookupLocator</code> objects representing the
desired lookup services that have not yet been discovered.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>private static <a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.Initializer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#init-net.jini.config.Configuration-">init</a></span>(<a href="../../../net/jini/config/Configuration.html" title="interface in net.jini.config">Configuration</a>&nbsp;config)</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>private static <a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.Initializer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#initEmptyConfig--">initEmptyConfig</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#isArrayContains-java.lang.Object:A-java.lang.Object-">isArrayContains</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;a,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
<div class="block">Determines if the given Object is an element of the given array.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#isDiscovered-net.jini.core.discovery.LookupLocator-">isDiscovered</a></span>(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>&nbsp;lct)</code>
<div class="block">Determines whether or not the lookup service associated with the
given LookupLocator has already been discovered.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#mapRegToGroups-net.jini.core.lookup.ServiceRegistrar-java.lang.String:A-">mapRegToGroups</a></span>(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;curGroups)</code>
<div class="block">Convenience method that creates and returns a mapping of a single
<code>ServiceRegistrar</code> instance to a set of groups.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>private boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#regTryGetProxy-net.jini.discovery.AbstractLookupLocatorDiscovery.LocatorReg-">regTryGetProxy</a></span>(<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a>&nbsp;reg)</code>
<div class="block">Convenience method called from within the DiscoveryTask.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>private <a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#removeDiscoveredLocator-net.jini.core.discovery.LookupLocator-">removeDiscoveredLocator</a></span>(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>&nbsp;lct)</code>
<div class="block">Convenience method used to remove the LocatorReg - corresponding to
the given LookupLocator - from the set of LocatorReg objects that
correspond to lookup services that have already been discovered.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#removeDiscoveryListener-net.jini.discovery.DiscoveryListener-">removeDiscoveryListener</a></span>(<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&nbsp;l)</code>
<div class="block">Remove a DiscoveryListener from the listener set.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#removeLocators-net.jini.core.discovery.LookupLocator:A-">removeLocators</a></span>(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;locators)</code>
<div class="block">Deletes a set of locators from the managed set of locators, and discards
any already-discovered lookup service that corresponds to a deleted
locator.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#setLocators-net.jini.core.discovery.LookupLocator:A-">setLocators</a></span>(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;locators)</code>
<div class="block">Replaces all of the locators in the managed set with locators from
a new set, and discards any already-discovered lookup service that
corresponds to a locator that is removed from the managed set
as a result of an invocation of this method.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#terminate--">terminate</a></span>()</code>
<div class="block">Terminates all threads, ending all locator discovery processing being
performed by the current instance of this class.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#terminateTaskMgr--">terminateTaskMgr</a></span>()</code>
<div class="block">Convenience method that removes all pending and active tasks from the
TaskManager, and removes all pending tasks from the WakeupManager.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>private void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#testSetForNull-net.jini.core.discovery.LookupLocator:A-">testSetForNull</a></span>(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;locatorSet)</code>
<div class="block">This method is used by the public methods of this class that are
specified to throw a <code>NullPointerException</code> when the
set of locators is either <code>null</code> or contains one or
more <code>null</code> elements; in either case, this method
throws a <code>NullPointerException</code> which should be allowed
to propagate outward.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#toString--">toString</a></span>()</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="COMPONENT_NAME">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COMPONENT_NAME</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> COMPONENT_NAME</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupLocatorDiscovery.COMPONENT_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="logger">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>logger</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/logging/Logger.html?is-external=true" title="class or interface in java.util.logging">Logger</a> logger</pre>
</li>
</ul>
<a name="MAX_N_TASKS">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>MAX_N_TASKS</h4>
<pre>private static final&nbsp;int MAX_N_TASKS</pre>
<div class="block">Maximum number of concurrent tasks that can be run in any task
manager created by this class.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupLocatorDiscovery.MAX_N_TASKS">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DEFAULT_SOCKET_TIMEOUT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DEFAULT_SOCKET_TIMEOUT</h4>
<pre>private static final&nbsp;int DEFAULT_SOCKET_TIMEOUT</pre>
<div class="block">Default timeout to set on sockets used for unicast discovery.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../constant-values.html#net.jini.discovery.AbstractLookupLocatorDiscovery.DEFAULT_SOCKET_TIMEOUT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="getRegistrarMethod">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegistrarMethod</h4>
<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</a> getRegistrarMethod</pre>
<div class="block">LookupLocator.getRegistrar method, used for looking up client
constraints of contained lookup locators.</div>
</li>
</ul>
<a name="discoveryExecutor">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>discoveryExecutor</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.ExecutorService.html?is-external=true" title="class or interface in java.util">java.util.concurrent.ExecutorService</a> discoveryExecutor</pre>
<div class="block">ExecutorService for the discovery tasks. On the first attempt to
discover each locator, the tasks used to perform those discoveries
are managed by this <code>ExecutorService</code> so that the number of
concurrent threads can be bounded. If one or more of those attempts
fails, a <code>WakeupManager</code> is used (through the use of a
<code>RetryTask</code>) to schedule - at a later time (employing a
"backoff strategy") - the re-execution of each failed task in this
<code>ExecutorService</code>.</div>
</li>
</ul>
<a name="discoveryWakeupMgr">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>discoveryWakeupMgr</h4>
<pre>private final&nbsp;<a href="../../../org/apache/river/thread/WakeupManager.html" title="class in org.apache.river.thread">WakeupManager</a> discoveryWakeupMgr</pre>
<div class="block">Wakeup manager for the discovery tasks. For any locator, after
an initial failure to discover the locator, the task used to
perform all future discovery attempts is managed by this
<code>WakeupManager</code>; which schedules the re-execution of
the failed task - in the task manager - at various times in the
future until the locator is successfully discovered. This wakeup
manager is supplied to the <code>RetryTask</code>) that performs
the actual discovery attempt(s) so that when termination of this
lookup locator discovery utility is requested, all tasks scheduled
for retry by this wakeup manager can be cancelled.</div>
</li>
</ul>
<a name="undiscoveredLocators">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>undiscoveredLocators</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a>&gt; undiscoveredLocators</pre>
<div class="block">Stores LookupLocators that have not been discovered yet.</div>
</li>
</ul>
<a name="discoveredLocators">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>discoveredLocators</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a>&gt; discoveredLocators</pre>
<div class="block">Stores LookupLocators that have been discovered</div>
</li>
</ul>
<a name="notifierThread">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>notifierThread</h4>
<pre>private final&nbsp;<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.Notifier.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.Notifier</a> notifierThread</pre>
<div class="block">Thread that handles pending notifications.</div>
</li>
</ul>
<a name="pendingNotifies">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pendingNotifies</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent.BlockingDeque.html?is-external=true" title="class or interface in java.util">java.util.concurrent.BlockingDeque</a>&lt;<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.NotifyTask.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.NotifyTask</a>&gt; pendingNotifies</pre>
<div class="block">Notifications to be sent to listeners.</div>
</li>
</ul>
<a name="listeners">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listeners</h4>
<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&gt; listeners</pre>
<div class="block">Stores DiscoveryListeners</div>
</li>
</ul>
<a name="terminated">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>terminated</h4>
<pre>private volatile&nbsp;boolean terminated</pre>
<div class="block">Flag indicating whether or not this class is still functional.</div>
</li>
</ul>
<a name="registrarPreparer">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registrarPreparer</h4>
<pre>private final&nbsp;<a href="../../../net/jini/security/ProxyPreparer.html" title="interface in net.jini.security">ProxyPreparer</a> registrarPreparer</pre>
</li>
</ul>
<a name="protocol2">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>protocol2</h4>
<pre>private final&nbsp;<a href="../../../org/apache/river/discovery/Discovery.html" title="class in org.apache.river.discovery">Discovery</a> protocol2</pre>
</li>
</ul>
<a name="initialUnicastDelayRange">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialUnicastDelayRange</h4>
<pre>private final&nbsp;long initialUnicastDelayRange</pre>
</li>
</ul>
<a name="discoverLocatorsCalled">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>discoverLocatorsCalled</h4>
<pre>private volatile&nbsp;boolean discoverLocatorsCalled</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractLookupLocatorDiscovery--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AbstractLookupLocatorDiscovery</h4>
<pre>AbstractLookupLocatorDiscovery()</pre>
<div class="block">Creates an instance of this class</div>
</li>
</ul>
<a name="AbstractLookupLocatorDiscovery-net.jini.config.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AbstractLookupLocatorDiscovery</h4>
<pre>AbstractLookupLocatorDiscovery(<a href="../../../net/jini/config/Configuration.html" title="interface in net.jini.config">Configuration</a>&nbsp;config)
throws <a href="../../../net/jini/config/ConfigurationException.html" title="class in net.jini.config">ConfigurationException</a></pre>
<div class="block">Constructs a new lookup locator discovery object, having the given
<code>Configuration</code>.
<p>
For each managed <code>LookupLocator</code>, unicast discovery is
performed to obtain a <code>ServiceRegistrar</code> proxy for that
lookup service.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>config</code> - an instance of <code>Configuration</code>, used to
obtain the objects needed to configure the current
instance of this class</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../net/jini/config/ConfigurationException.html" title="class in net.jini.config">ConfigurationException</a></code> - indicates an exception
occurred while retrieving an item from the given
<code>Configuration</code></dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - <code>null</code> is input
for the configuration</dd>
</dl>
</li>
</ul>
<a name="AbstractLookupLocatorDiscovery-net.jini.discovery.AbstractLookupLocatorDiscovery.Initializer-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractLookupLocatorDiscovery</h4>
<pre>private&nbsp;AbstractLookupLocatorDiscovery(<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.Initializer</a>&nbsp;init)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="addDiscoveryListener-net.jini.discovery.DiscoveryListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addDiscoveryListener</h4>
<pre>public&nbsp;void&nbsp;addDiscoveryListener(<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&nbsp;l)</pre>
<div class="block">Add a DiscoveryListener to the listener set. The listener's
discovered method gets called right way with an array of
ServiceRegistrars that have already been discovered, and will
be called in the future whenever additional lookup services
are discovered.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryManagement.html#addDiscoveryListener-net.jini.discovery.DiscoveryListener-">addDiscoveryListener</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>l</code> - the new DiscoveryListener to add</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - this exception occurs when
<code>null</code> is input to the listener parameter
<code>l</code>.</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#removeDiscoveryListener-net.jini.discovery.DiscoveryListener-"><code>removeDiscoveryListener(net.jini.discovery.DiscoveryListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="removeDiscoveryListener-net.jini.discovery.DiscoveryListener-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeDiscoveryListener</h4>
<pre>public&nbsp;void&nbsp;removeDiscoveryListener(<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&nbsp;l)</pre>
<div class="block">Remove a DiscoveryListener from the listener set. It does
nothing if the DiscoveryListener does not exist in the
the listener set.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryManagement.html#removeDiscoveryListener-net.jini.discovery.DiscoveryListener-">removeDiscoveryListener</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>l</code> - the existing DiscoveryListener to remove</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#addDiscoveryListener-net.jini.discovery.DiscoveryListener-"><code>addDiscoveryListener(net.jini.discovery.DiscoveryListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="getRegistrars--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegistrars</h4>
<pre>public&nbsp;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>[]&nbsp;getRegistrars()</pre>
<div class="block">Returns an array of instances of <code>ServiceRegistrar</code>, each
corresponding to a proxy to one of the currently discovered lookup
services. For each invocation of this method, a new array is returned.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryManagement.html#getRegistrars--">getRegistrars</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>array of instances of <code>ServiceRegistrar</code>, each
corresponding to a proxy to one of the currently discovered
lookup services</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup"><code>ServiceRegistrar</code></a>,
<a href="../../../net/jini/discovery/DiscoveryManagement.html#removeDiscoveryListener-net.jini.discovery.DiscoveryListener-"><code>DiscoveryManagement.removeDiscoveryListener(net.jini.discovery.DiscoveryListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="discard-net.jini.core.lookup.ServiceRegistrar-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>discard</h4>
<pre>public&nbsp;void&nbsp;discard(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;proxy)</pre>
<div class="block">Removes an instance of <code>ServiceRegistrar</code> from the
managed set of lookup services, making the corresponding lookup
service eligible for re-discovery. This method takes no action if
the parameter input to this method is <code>null</code>, or if it
does not match (using <code>equals</code>) any of the elements in
the managed set.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryManagement.html#discard-net.jini.core.lookup.ServiceRegistrar-">discard</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>proxy</code> - the instance of <code>ServiceRegistrar</code> to discard
from the managed set of lookup services</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup"><code>ServiceRegistrar</code></a>,
<a href="../../../net/jini/discovery/DiscoveryManagement.html#discard-net.jini.core.lookup.ServiceRegistrar-"><code>DiscoveryManagement.discard(net.jini.core.lookup.ServiceRegistrar)</code></a></dd>
</dl>
</li>
</ul>
<a name="terminate--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>terminate</h4>
<pre>public&nbsp;void&nbsp;terminate()</pre>
<div class="block">Terminates all threads, ending all locator discovery processing being
performed by the current instance of this class.
<p>
After this method has been invoked, no new lookup services will
be discovered, and the effect of any new operations performed
on the current instance of this class are undefined.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryManagement.html#terminate--">terminate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryManagement.html" title="interface in net.jini.discovery">DiscoveryManagement</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/DiscoveryManagement.html#terminate--"><code>DiscoveryManagement.terminate()</code></a></dd>
</dl>
</li>
</ul>
<a name="getLocators--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLocators</h4>
<pre>public&nbsp;<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;getLocators()</pre>
<div class="block">Returns an array consisting of the elements of the managed set
of locators; that is, instances of <code>LookupLocator</code> in
which each instance corresponds to a specific lookup service to
discover. The returned set will include both the set of
<code>LookupLocator</code>s corresponding to lookup services
that have already been discovered as well as the set of those
that have not yet been discovered. If the managed set of locators
is empty, this method will return the empty array. This method
returns a new array upon each invocation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html#getLocators--">getLocators</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html" title="interface in net.jini.discovery">DiscoveryLocatorManagement</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>LookupLocator</code> array consisting of the elements
of the managed set of locators</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html#getLocators--"><code>DiscoveryLocatorManagement.getLocators()</code></a>,
<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#setLocators-net.jini.core.discovery.LookupLocator:A-"><code>setLocators(net.jini.core.discovery.LookupLocator[])</code></a></dd>
</dl>
</li>
</ul>
<a name="addLocators-net.jini.core.discovery.LookupLocator:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addLocators</h4>
<pre>public&nbsp;void&nbsp;addLocators(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;locators)</pre>
<div class="block">Adds a set of locators to the managed set of locators. Elements in the
input set that duplicate (using the <code>LookupLocator.equals</code>
method) elements already in the managed set will be ignored. If the
empty array is input, the managed set of locators will not change.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html#addLocators-net.jini.core.discovery.LookupLocator:A-">addLocators</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html" title="interface in net.jini.discovery">DiscoveryLocatorManagement</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>locators</code> - <code>LookupLocator</code> array consisting of the
locators to add to the managed set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - this exception occurs when
either <code>null</code> is input to the <code>locators</code>
parameter, or one or more of the elements of the
<code>locators</code> parameter is <code>null</code>.</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html#addLocators-net.jini.core.discovery.LookupLocator:A-"><code>DiscoveryLocatorManagement.addLocators(net.jini.core.discovery.LookupLocator[])</code></a>,
<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#removeLocators-net.jini.core.discovery.LookupLocator:A-"><code>removeLocators(net.jini.core.discovery.LookupLocator[])</code></a></dd>
</dl>
</li>
</ul>
<a name="setLocators-net.jini.core.discovery.LookupLocator:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLocators</h4>
<pre>public&nbsp;void&nbsp;setLocators(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;locators)</pre>
<div class="block">Replaces all of the locators in the managed set with locators from
a new set, and discards any already-discovered lookup service that
corresponds to a locator that is removed from the managed set
as a result of an invocation of this method. For any such lookup
service that is discarded, a discard notification is sent; and that
lookup service will not be eligible for re-discovery (assuming it is
not currently eligible for discovery through other means, such as
group discovery).
<p>
If the empty array is input, locator discovery will cease until this
method is invoked with an input parameter that is non-<code>null</code>
and non-empty.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html#setLocators-net.jini.core.discovery.LookupLocator:A-">setLocators</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html" title="interface in net.jini.discovery">DiscoveryLocatorManagement</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>locators</code> - <code>LookupLocator</code> array consisting of the
locators that will replace the current locators in the
managed set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - this exception occurs when
either <code>null</code> is input to the <code>locators</code>
parameter, or one or more of the elements of the
<code>locators</code> parameter is <code>null</code>.</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html#setLocators-net.jini.core.discovery.LookupLocator:A-"><code>DiscoveryLocatorManagement.setLocators(net.jini.core.discovery.LookupLocator[])</code></a>,
<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#getLocators--"><code>getLocators()</code></a></dd>
</dl>
</li>
</ul>
<a name="removeLocators-net.jini.core.discovery.LookupLocator:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeLocators</h4>
<pre>public&nbsp;void&nbsp;removeLocators(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;locators)</pre>
<div class="block">Deletes a set of locators from the managed set of locators, and discards
any already-discovered lookup service that corresponds to a deleted
locator. For any lookup service that is discarded as a result of an
invocation of this method, a discard notification is sent; and that
lookup service will not be eligible for re-discovery (assuming it is
not currently eligible for discovery through other means, such as
group discovery).
<p>
If the empty array is input, this method takes no action.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html#removeLocators-net.jini.core.discovery.LookupLocator:A-">removeLocators</a></code>&nbsp;in interface&nbsp;<code><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html" title="interface in net.jini.discovery">DiscoveryLocatorManagement</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>locators</code> - <code>LookupLocator</code> array consisting of the
locators that will be removed from the managed set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - this exception occurs when
either <code>null</code> is input to the <code>locators</code>
parameter, or one or more of the elements of the
<code>locators</code> parameter is <code>null</code>.</dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../net/jini/discovery/DiscoveryLocatorManagement.html#removeLocators-net.jini.core.discovery.LookupLocator:A-"><code>DiscoveryLocatorManagement.removeLocators(net.jini.core.discovery.LookupLocator[])</code></a>,
<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.html#addLocators-net.jini.core.discovery.LookupLocator:A-"><code>addLocators(net.jini.core.discovery.LookupLocator[])</code></a></dd>
</dl>
</li>
</ul>
<a name="getDiscoveredLocators--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDiscoveredLocators</h4>
<pre>public&nbsp;<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;getDiscoveredLocators()</pre>
<div class="block">Returns the set of <code>LookupLocator</code> objects representing the
desired lookup services that are currently discovered. If no lookup
services are currently discovered, this method returns the empty array.
This method returns a new array upon each invocation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>LookupLocator</code> array consisting of the elements
from the managed set of locators that correspond to lookup
services that have already been discovered.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
</dl>
</li>
</ul>
<a name="getUndiscoveredLocators--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUndiscoveredLocators</h4>
<pre>public&nbsp;<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;getUndiscoveredLocators()</pre>
<div class="block">Returns the set of <code>LookupLocator</code> objects representing the
desired lookup services that have not yet been discovered. If all
of the desired lookup services are currently discovered, this method
returns the empty array. This method returns a new array upon each
invocation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>LookupLocator</code> array consisting of the elements
from the managed set of locators that correspond to lookup
services that have not yet been discovered.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang">IllegalStateException</a></code> - this exception occurs when
this method is called after the <code>terminate</code>
method has been called.</dd>
</dl>
</li>
</ul>
<a name="discoverLocators-net.jini.core.discovery.LookupLocator:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>discoverLocators</h4>
<pre>private&nbsp;void&nbsp;discoverLocators(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;lcts)</pre>
<div class="block">Initiates the discovery process for the lookup services having the
given locators.</div>
</li>
</ul>
<a name="findReg-net.jini.core.discovery.LookupLocator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findReg</h4>
<pre>private&nbsp;<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a>&nbsp;findReg(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>&nbsp;lct)</pre>
<div class="block">From the sets of elements corresponding to yet-to-be-discovered
locators, this methods finds and returns the instance of LocatorReg
corresponding to the given LookupLocator. This method searches
the set of undiscoveredLocators, and upon finding a matching
LocatorReg object, that object is returned; otherwise, null is
returned.</div>
</li>
</ul>
<a name="findRegFromProxy-net.jini.core.lookup.ServiceRegistrar-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findRegFromProxy</h4>
<pre>private&nbsp;<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>&nbsp;findRegFromProxy(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;proxy)</pre>
<div class="block">This method searches the set of discovered LocatorReg objects
for the element that contains the given ServiceRegistrar object.
Upon finding such an element, the corresponding LookupLocator is
returned; otherwise, null is returned.</div>
</li>
</ul>
<a name="regTryGetProxy-net.jini.discovery.AbstractLookupLocatorDiscovery.LocatorReg-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>regTryGetProxy</h4>
<pre>private&nbsp;boolean&nbsp;regTryGetProxy(<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a>&nbsp;reg)</pre>
<div class="block">Convenience method called from within the DiscoveryTask. Employing
unicast discovery, this method attempts to discover the lookup service
associated with the given LocatorReg. After successfully discovering
the desired lookup service, this method queues the appropriate
event for dissemination to the registered listeners, and then returns
<code>true</code>; otherwise <code>false</code> is returned.</div>
</li>
</ul>
<a name="buildServiceRegistrar--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildServiceRegistrar</h4>
<pre>private&nbsp;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>[]&nbsp;buildServiceRegistrar()</pre>
<div class="block">From each element of the set of LocatorReg objects that correspond
to lookup services that have been discovered, this method extracts
the ServiceRegistrar reference and returns all of the references
in an array of ServiceRegistrar.</div>
</li>
</ul>
<a name="addAndQueueDiscoveryTaskIfAbsent-net.jini.discovery.AbstractLookupLocatorDiscovery.LocatorReg-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAndQueueDiscoveryTaskIfAbsent</h4>
<pre>private&nbsp;void&nbsp;addAndQueueDiscoveryTaskIfAbsent(<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a>&nbsp;reg)</pre>
<div class="block">Adds the given LocatorReg object to the set containing the objects
corresponding to the locators of desired lookup services that have
not yet been discovered, and queues a DiscoveryTask to attempt,
through unicast discovery, to discover the associated lookup service.</div>
</li>
</ul>
<a name="isDiscovered-net.jini.core.discovery.LookupLocator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDiscovered</h4>
<pre>private&nbsp;boolean&nbsp;isDiscovered(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>&nbsp;lct)</pre>
<div class="block">Determines whether or not the lookup service associated with the
given LookupLocator has already been discovered.</div>
</li>
</ul>
<a name="addNotify-java.util.List-java.util.Map-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addNotify</h4>
<pre>private&nbsp;void&nbsp;addNotify(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../net/jini/discovery/DiscoveryListener.html" title="interface in net.jini.discovery">DiscoveryListener</a>&gt;&nbsp;notifies,
<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;&nbsp;groupsMap,
boolean&nbsp;discard)</pre>
<div class="block">Add a notification task to the pending queue, and start an instance of
the Notifier thread if one isn't already running.</div>
</li>
</ul>
<a name="removeDiscoveredLocator-net.jini.core.discovery.LookupLocator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeDiscoveredLocator</h4>
<pre>private&nbsp;<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.LocatorReg.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.LocatorReg</a>&nbsp;removeDiscoveredLocator(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>&nbsp;lct)</pre>
<div class="block">Convenience method used to remove the LocatorReg - corresponding to
the given LookupLocator - from the set of LocatorReg objects that
correspond to lookup services that have already been discovered.</div>
</li>
</ul>
<a name="terminateTaskMgr--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>terminateTaskMgr</h4>
<pre>private&nbsp;void&nbsp;terminateTaskMgr()</pre>
<div class="block">Convenience method that removes all pending and active tasks from the
TaskManager, and removes all pending tasks from the WakeupManager.</div>
</li>
</ul>
<a name="isArrayContains-java.lang.Object:A-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isArrayContains</h4>
<pre>private&nbsp;boolean&nbsp;isArrayContains(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&nbsp;a,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
<div class="block">Determines if the given Object is an element of the given array.</div>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
</dl>
</li>
</ul>
<a name="testSetForNull-net.jini.core.discovery.LookupLocator:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>testSetForNull</h4>
<pre>private&nbsp;void&nbsp;testSetForNull(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;locatorSet)</pre>
<div class="block">This method is used by the public methods of this class that are
specified to throw a <code>NullPointerException</code> when the
set of locators is either <code>null</code> or contains one or
more <code>null</code> elements; in either case, this method
throws a <code>NullPointerException</code> which should be allowed
to propagate outward.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - this exception occurs when
either <code>null</code> is input to the <code>locatorSet</code>
parameter, or one or more of the elements of the
<code>locatorSet</code> parameter is <code>null</code>.</dd>
</dl>
</li>
</ul>
<a name="deepCopy-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deepCopy</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;&nbsp;deepCopy(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&gt;&nbsp;groupsMap)</pre>
<div class="block">Creates and returns a deep copy of the input parameter. This method
assumes the input map is a HashMap of the registrar-to-groups mapping;
and returns a clone not only of the map, but of each key-value pair
contained in the mapping.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>groupsMap</code> - mapping from a set of registrars to the member groups
of each registrar</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>clone of the input map, and of each key-value pair contained
in the input map</dd>
</dl>
</li>
</ul>
<a name="mapRegToGroups-net.jini.core.lookup.ServiceRegistrar-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapRegToGroups</h4>
<pre>private&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&nbsp;mapRegToGroups(<a href="../../../net/jini/core/lookup/ServiceRegistrar.html" title="interface in net.jini.core.lookup">ServiceRegistrar</a>&nbsp;reg,
<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;curGroups)</pre>
<div class="block">Convenience method that creates and returns a mapping of a single
<code>ServiceRegistrar</code> instance to a set of groups.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>reg</code> - instance of <code>ServiceRegistrar</code>
corresponding to the registrar to use as the key
to the mapping</dd>
<dd><code>curGroups</code> - <code>String</code> array containing the current
member groups of the registrar referenced by the
<code>reg</code> parameter; and which is used
as the value of the mapping</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>Map</code> instance containing a single mapping from
a given registrar to its current member groups</dd>
</dl>
</li>
</ul>
<a name="beginDiscovery-net.jini.core.discovery.LookupLocator:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>beginDiscovery</h4>
<pre>void&nbsp;beginDiscovery(<a href="../../../net/jini/core/discovery/LookupLocator.html" title="class in net.jini.core.discovery">LookupLocator</a>[]&nbsp;locators)</pre>
<div class="block">Using the given <code>Configuration</code>, initializes the current
instance of this utility, and initiates the discovery process for
the given set of locators.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>locators</code> - the set of locators to discover</dd>
<dd><code>config</code> - an instance of <code>Configuration</code>, used to
obtain the objects needed to configure this utility</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../net/jini/config/ConfigurationException.html" title="class in net.jini.config">ConfigurationException</a></code> - indicates an exception
occurred while retrieving an item from the given
<code>Configuration</code></dd>
<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - input array contains at least
one <code>null</code> element or <code>null</code> is input
for the configuration</dd>
</dl>
</li>
</ul>
<a name="initEmptyConfig--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initEmptyConfig</h4>
<pre>private static&nbsp;<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.Initializer</a>&nbsp;initEmptyConfig()</pre>
</li>
</ul>
<a name="init-net.jini.config.Configuration-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>init</h4>
<pre>private static&nbsp;<a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.Initializer.html" title="class in net.jini.discovery">AbstractLookupLocatorDiscovery.Initializer</a>&nbsp;init(<a href="../../../net/jini/config/Configuration.html" title="interface in net.jini.config">Configuration</a>&nbsp;config)
throws <a href="../../../net/jini/config/ConfigurationException.html" title="class in net.jini.config">ConfigurationException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../net/jini/config/ConfigurationException.html" title="class in net.jini.config">ConfigurationException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractLookupLocatorDiscovery.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../net/jini/discovery/AbstractLookupDiscoveryManager.ProxyReg.html" title="class in net.jini.discovery"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../net/jini/discovery/AbstractLookupLocatorDiscovery.DiscoveryTask.html" title="class in net.jini.discovery"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?net/jini/discovery/AbstractLookupLocatorDiscovery.html" target="_top">Frames</a></li>
<li><a href="AbstractLookupLocatorDiscovery.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright 2007-2013, 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.</small></p>
</body>
</html>