1 /** 2 * Copyright 2005-2011 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl2.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.rice.kim.api.group; 17 18 import org.kuali.rice.core.api.mo.common.GloballyUnique; 19 import org.kuali.rice.core.api.mo.common.Identifiable; 20 import org.kuali.rice.core.api.mo.common.Versioned; 21 import org.kuali.rice.core.api.mo.common.active.Inactivatable; 22 23 import java.util.Map; 24 25 public interface GroupContract extends Versioned, GloballyUnique, Inactivatable, Identifiable { 26 27 /** 28 * This is the namespace code for the Group. 29 * 30 * <p> 31 * This is a namespace code assigned to a Group. Together with name, it makes up another unique identifier for Group 32 * </p> 33 * 34 * @return namespaceCode 35 */ 36 String getNamespaceCode(); 37 38 /** 39 * This is the name for the Group. 40 * 41 * <p> 42 * This is a name assigned to a Group. Together with NamespaceCode, it makes up another unique identifier for Group 43 * </p> 44 * 45 * @return name 46 */ 47 String getName(); 48 49 /** 50 * This a description for the Group. 51 * 52 * <p> 53 * This is a description assigned to a Group. 54 * </p> 55 * 56 * @return description 57 */ 58 String getDescription(); 59 60 /** 61 * This a Kim Type Id for the Group. 62 * 63 * <p> 64 * This links a Kim Type to the Group to allow custom types of Groups. 65 * </p> 66 * 67 * @return description 68 */ 69 String getKimTypeId(); 70 71 /** 72 * This a list of the members of the Group. 73 * 74 * <p> 75 * This returns a list of group members 76 * </p> 77 * 78 * @return members 79 */ 80 //List<? extends GroupMemberContract> getMembers(); 81 82 /*List<? extends PersonContract> getPersonMembers(); 83 84 List<? extends GroupContract> getGroupMembers();*/ 85 86 87 88 89 90 /** 91 * This is a set of Attributes for a Group. 92 * 93 * <p> 94 * This is a set of attributes which are key-label pairs that are defined by the Group's Kim Type. 95 * </p> 96 * 97 * @return attributes 98 */ 99 Map<String, String> getAttributes(); 100 101 }