## LookupDiscoveryManager Utility Requirements

ID | LookupDiscoveryManager Utility Requirement | Section | Comments
| The equals method for this class returns true if and only if two instances of this class refer to the same object. That is, x and y are equal instances of this class if and only if x == y has the value true. | 4.4 |
| If the constructor is invoked with a set of group names and a set of locators in which either or both sets contain duplicate elements (where duplicate locators are determined by calling LookupLocator.equals), the invocation is equivalent to constructing an instance of LookupDiscoveryManager with no duplicates in either set. |  |
| The constructor for the LookupDiscoveryManager takes the following arguments as input: A String array, none of whose elements may be null, and in which each element is the name of a group whose members are lookup services the entity wishes to be discovered |  | Must satisfy LDM2
| If an empty or null array is input to the groups argument, no lookup service will be discovered using the Jini multicast discovery protocol. |  |
| The constructor for the LookupDiscoveryManager takes the following arguments as input: An array of LookupLocator objects, none of whose elements may be null, and in which each element corresponds to a specific lookup service the entity wishes to be discovered |  | Must satisfy LDM2
| If an empty or null array is input to the locators argument, no lookup service will be discovered using the Jini unicast discovery protocol. |  |
| The constructor for the LookupDiscoveryManager takes the following arguments as input: A reference to a DiscoveryListener object that will be notified when a targeted lookup service is discovered or discarded |  |
| The last argument to the constructor is a reference to a listener object that will be registered to receive discovery event notifications. If a null reference is input to this argument, then the client will receive no discovery events. |  |
| This constructor throws IOException. This is because construction of a LookupDiscoveryManager may initiate the multicast discovery process, a process that can throw IOException. |  |