## LookupLocatorDiscovery Utility Requirements

ID | LookupLocatorDiscovery Utility Requirement | Section | Comments
| Each instance of the LookupLocatorDiscovery class must behave as if it operates independently of all other instances. | 3.4 |
| The equals method for this class returns true if and only if two instances of this class refer to the same object. | " |
| The constructor of the LookupLocatorDiscovery class takes a single input parameter: a set of locators, none of whose elements may be null. |  |
| Invoking the constructor with an input array that contains duplicate locators (as determined by LookupLocator.equals) is equivalent to performing the invocation with the duplicates removed from the array. |  |
| Discovery typically starts as soon as an instance of this class is created, and ends when the terminate method is called. |  |
| Discovery typically starts as soon as an instance of this class is created, and ends when the terminate method is called. |  |
| However, if null is passed to the constructor, discovery will not be started until either the setLocators or addLocators method is called with a non-empty set. |  |
| However, if the empty set is passed to the constructor, discovery will not be started until either the setLocators or addLocators method is called with a non-empty set. |  |
| The getDiscoveredLocators method returns the set of LookupLocator objects representing the desired lookup services that have already been discovered. |  |
| The getDiscoveredLocators … If the set is empty, this method will return the empty array. |  |
| The getDiscoveredLocators … This method takes no arguments as input, and will return a new array upon each invocation. |  |
| The getUndiscoveredLocators method returns the set of LookupLocator objects representing the desired lookup services that have not yet been discovered. |  |
| The getUndiscoveredLocators … If the set is empty, this method will return the empty array. |  |
| The getUndiscoveredLocators … This method takes no arguments as input, and will return a new array upon each invocation. |  |