## DiscoveryGroupManagement Interface Requirements

ID | DiscoveryGroupManagement Interface Requirement | Section | Comments
| The methods that modify the managed set of groups each take a single input parameter: a String array, none of whose elements may be null. | 2.4.1 | Func. Tests: DMAR
| The empty set is denoted by the empty array, | " | IF Tests: DGMIF Func. Tests: DMAR, DGMAR1, DGMAR2
| … and “no set” is indicated by null. No set indicates that all lookup services within the multicast radius of the implementation object should be discovered. | " | IF Tests: DGMIF Func. Tests: DMAR, , DGMAR2
| Invoking any of these methods with an input array that contains duplicate group names is equivalent to performing the invocation with the duplicates removed from the array. | " | IF Tests: DGMIF Func. Tests: DMAR, , DGMAR2
| The getGroups method returns an array consisting of the names of the groups in the managed set. | " | IF Tests: DGMIF Func. Tests: DMAR, DGMAR1, DGMAR2
| The getGroups … If the managed set of groups is empty, this method will return the empty array. | " | IF Tests: DGMIF Func. Tests: DMAR, DGMAR2
| The getGroups … This method takes no arguments as input, and will return a new array upon each invocation. | " | IF Tests: DGMIF, Func. Tests: DGMAR2
| The addGroups method adds a set of group names to the managed set. | " | IF Tests: DGMIF, Func. Tests: DGMAR2
| The addGroups … Once a new name is added to the managed set, attempts will be made to discover all (as yet) undiscovered lookup services that are members of the group having that name. | " | IF Tests: Func. Tests: DGMAR2
| The addGroups … The entity must have DiscoveryPermission on each of the groups in the new set or a SecurityException will be propagated through this method. | " |
| The addGroups … This method throws IOException. This is because an invocation of this method may result in the re-initiation of the discovery process, a process that can throw IOException when socket allocation occurs. | " |
| The addGroups … This method throws an UnsupportedOperationException if there is no managed set of groups to augment. | " | IF Tests: DGMIF Func. Tests: DGMAR2
| The addGroups … If null is input, this method throws a NullPointerException. | " | IF Tests: DGMIF Func. Tests: DGMAR2
| The addGroups … If the empty array is input, the managed set of groups will not change. | " | IF Tests: DGMIF Func. Tests: DGMAR2
| The setGroups method replaces all of the group names in the managed set with names from a new set. | " | IF Tests: DGMIF Func. Tests: DGMAR2
| The setGroups … Once a new group name has been placed in the managed set, the entity will not be notified for lookup services belonging to that group that have already been discovered. |  | Func. Tests: DGMAR2
| The setGroups … Attempts to discover all (as yet) undiscovered lookup services belonging to that group will continue to be made. |  | Func. Tests: DGMAR2
| The setGroups … If null is input to setGroups, then attempts will be made to discover all (as yet) undiscovered lookup services located within the multicast radius of the implementation object. |  | Func. Tests: DMAR, DGMAR1, DGMAR2
| The setGroups … If the empty array is input, then group discovery will cease. |  | Func. Tests: DMAR, DGMAR1, DGMAR2
| The setGroups … The entity must have DiscoveryPermission on each of the groups in the new set or a SecurityException will be propagated through this method. |  |
| This method throws IOException. This is because an invocation of this method may result in the re-initiation of the discovery process, a process that can throw IOException when socket allocation occurs. |  |
| The removeGroups method deletes a set of group names from the managed set of groups. |  | IF Tests: DGMIF Func. Tests: DGMAR2
| The removeGroups … This method throws an UnsupportedOperationException if there is no managed set of groups from which to remove elements. |  | IF Tests: DGMIF Func. Tests: DGMAR2
| The removeGroups … If null is input to removeGroups, a NullPointerException will be thrown. If the empty array is input, the managed set of groups will not change. |  | IF Tests: DGMIF Func. Tests: DGMAR2
| The removeGroups … If the empty array is input, the managed set of groups will not change. |  | IF Tests: DGMIF Func. Tests: DGMAR2
| Any already-discovered lookup service that is a member of one or more group(s) removed from the managed set by either setGroups or removeGroups will be discarded and will not be eligible for discovery; |  | Func. Tests: DMAR Func. Tests: DGMAR2