1 /** 2007, Digitalis Informatica. All rights reserved. 2 * 3 * Distribuicao e Gestao de Informatica, Lda. 4 * Estrada de Paco de Arcos num.9 - Piso -1 5 * 2780-666 Paco de Arcos 6 * Telefone: (351) 21 4408990 7 * Fax: (351) 21 4408999 8 * http://www.digitalis.pt 9 */ 10 11 package pt.digitalis.dif.controller.security.objects; 12 13 import java.util.Map; 14 import java.util.Set; 15 16 import pt.digitalis.dif.exception.security.IdentityManagerException; 17 18 /** 19 * Defines the expected behavior of a DIF group of users. 20 * 21 * @author Rodrigo Gonçalves <a href="mailto:rgoncalves@digitalis.pt">rgoncalves@digitalis.pt</a><br/> 22 * @author Pedro Viegas <a href="mailto:pviegas@digitalis.pt">pviegas@digitalis.pt</a> 23 * @created 2007/12/04 24 */ 25 public interface IDIFGroup extends Cloneable { 26 27 /** 28 * Returns the group id. 29 * 30 * @return the group id 31 */ 32 public String getID(); 33 34 /** 35 * Sets a new id for the group. 36 * 37 * @param newGroupId 38 * the new group id 39 */ 40 public void setID(String newGroupId); 41 42 /** 43 * Returns the group name. 44 * 45 * @return the group name 46 */ 47 public String getName(); 48 49 /** 50 * Sets a new name for the group. 51 * 52 * @param newName 53 * the new group name 54 */ 55 public void setName(String newName); 56 57 /** 58 * Returns the group description. 59 * 60 * @return the group description 61 */ 62 public String getDescription(); 63 64 /** 65 * Sets a new description for the group. 66 * 67 * @param newDescription 68 * the new group description 69 */ 70 public void setDescription(String newDescription); 71 72 /** 73 * Returns the parent group ID. 74 * 75 * @return the parent group id 76 */ 77 public String getParentGroupID(); 78 79 /** 80 * Sets a new parent for the group. 81 * 82 * @param newParent 83 * the new parent group 84 */ 85 public void setParentGroupID(String newParent); 86 87 /** 88 * Returns the parent group. 89 * 90 * @return the parent group 91 * @throws IdentityManagerException if the parent group can't be found on the identity manager 92 */ 93 public IDIFGroup getParentGroup() throws IdentityManagerException; 94 95 /** 96 * Retrieves the list of users associated with this group 97 * 98 * @return the groups 99 * @throws IdentityManagerException 100 * if the users can't be found on the identity manager 101 */ 102 public Map<String, IDIFUser> getUsers() throws IdentityManagerException; 103 104 /** 105 * Retrieves the list of user IDs associated with this group 106 * 107 * @return the groups 108 * @throws IdentityManagerException 109 * if the users can't be found on the identity manager 110 */ 111 public Set<String> getUserIDs() throws IdentityManagerException; 112 113 /** 114 * Returns a new clone of the current group 115 * 116 * @return the clone object 117 */ 118 public IDIFGroup cloneGroup(); 119 120 /** 121 * A default group is a group that is created by the default configuration of the application. As such it cannot be 122 * deleted. Only disabled. 123 * 124 * @return T if the user is a default group 125 */ 126 public boolean isDefault(); 127 128 /** 129 * Sets the group as a 'default group'. 130 * 131 * @param isDefault T if the group must be set as a default group, F otherwise 132 */ 133 public void setDefault(boolean isDefault); 134 }