View Javadoc

1   /**
2    * Copyright 2005-2012 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  
19  import org.kuali.rice.core.api.membership.MemberType;
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.InactivatableFromTo;
24  /**
25   *
26   * This is a contract for a GroupMember
27   *
28   * A principal or group is considered to be a "member" of a group if it is either directly assigned to the group or
29   * indirectly assigned (via a nested group membership).
30   *
31   * @author Kuali Rice Team (rice.collab@kuali.org)
32   *
33   */
34  public interface GroupMemberContract extends Versioned, GloballyUnique, InactivatableFromTo, Identifiable {
35  
36      /**
37       * This is the id for the Group.
38       *
39       * <p>
40       * This is a id assigned to a Group.  It defines the group this group member belongs to.
41       * </p>
42       *
43       * @return groupId
44       */
45      String getGroupId();
46  
47      /**
48       * This is the member id for the Group Member.
49       *
50       * <p>
51       * This is a id value that defines the Group Member.  This value is either a Principal Id or Group Id
52       * depending on the type code
53       * </p>
54       *
55       * @return memberId
56       */
57      String getMemberId();
58  
59      /**
60       * This is the type code for the Group Member.
61       *
62       * <p>
63       * This is a value that defines the type of Group Member.  This value determines whether memberId is
64       * either a Principal Id or Group Id
65       * </p>
66       *
67       * @return typeCode
68       */
69      MemberType getType();
70  }