1 /* 2 * Copyright 2006-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 17 package org.kuali.rice.kim.api.group; 18 19 import org.kuali.rice.core.api.mo.common.Attributes; 20 import org.kuali.rice.core.api.mo.common.GloballyUnique; 21 import org.kuali.rice.core.api.mo.common.Identifiable; 22 import org.kuali.rice.core.api.mo.common.Versioned; 23 import org.kuali.rice.core.api.mo.common.active.Inactivatable; 24 import org.kuali.rice.kim.api.common.attribute.KimAttributeDataContract; 25 26 import java.util.List; 27 28 public interface GroupContract extends Versioned, GloballyUnique, Inactivatable, Identifiable { 29 30 /** 31 * This is the namespace code for the Group. 32 * 33 * <p> 34 * This is a namespace code assigned to a Group. Together with name, it makes up another unique identifier for Group 35 * </p> 36 * 37 * @return namespaceCode 38 */ 39 String getNamespaceCode(); 40 41 /** 42 * This is the name for the Group. 43 * 44 * <p> 45 * This is a name assigned to a Group. Together with NamespaceCode, it makes up another unique identifier for Group 46 * </p> 47 * 48 * @return name 49 */ 50 String getName(); 51 52 /** 53 * This a description for the Group. 54 * 55 * <p> 56 * This is a description assigned to a Group. 57 * </p> 58 * 59 * @return description 60 */ 61 String getDescription(); 62 63 /** 64 * This a Kim Type Id for the Group. 65 * 66 * <p> 67 * This links a Kim Type to the Group to allow custom types of Groups. 68 * </p> 69 * 70 * @return description 71 */ 72 String getKimTypeId(); 73 74 /** 75 * This a list of the members of the Group. 76 * 77 * <p> 78 * This returns a list of group members 79 * </p> 80 * 81 * @return members 82 */ 83 //List<? extends GroupMemberContract> getMembers(); 84 85 /*List<? extends PersonContract> getPersonMembers(); 86 87 List<? extends GroupContract> getGroupMembers();*/ 88 89 90 91 92 93 /** 94 * This is a set of Attributes for a Group. 95 * 96 * <p> 97 * This is a set of attributes which are key-label pairs that are defined by the Group's Kim Type. 98 * </p> 99 * 100 * @return attributes 101 */ 102 Attributes getAttributes(); 103 104 }