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 }