001/** 002 * Copyright 2005-2017 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.rice.kim.api.role; 017 018import org.kuali.rice.core.api.membership.MemberType; 019import org.kuali.rice.core.api.mo.common.Identifiable; 020import org.kuali.rice.kim.api.common.delegate.DelegateTypeContract; 021 022import java.util.List; 023import java.util.Map; 024/** 025 * This is a contract for RoleMembership. Role members can be Principals, Groups, or other Roles. 026 * Delegates can also be associated with a Role. 027 * 028 * @author Kuali Rice Team (rice.collab@kuali.org) 029 * 030 */ 031 032public interface RoleMembershipContract extends Identifiable { 033 034 String getRoleId(); 035 036 Map<String, String> getQualifier(); 037 038 List<? extends DelegateTypeContract> getDelegates(); 039 040 String getMemberId(); 041 042 MemberType getType(); 043 044 /** 045 * @return String Identifier of the role from which the group or principal was derived. 046 */ 047 String getEmbeddedRoleId(); 048 049 /** 050 * @return String value used to sort the role members into a meaningful order 051 */ 052 String getRoleSortingCode(); 053}