001    /**
002     * Copyright 2005-2012 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     */
016    package org.kuali.rice.kim.api.role;
017    
018    import org.kuali.rice.core.api.membership.MemberType;
019    import org.kuali.rice.core.api.mo.common.GloballyUnique;
020    import org.kuali.rice.core.api.mo.common.Identifiable;
021    import org.kuali.rice.core.api.mo.common.Versioned;
022    import org.kuali.rice.core.api.mo.common.active.InactivatableFromTo;
023    
024    import java.util.List;
025    import java.util.Map;
026    
027    public interface RoleMemberContract extends Versioned, GloballyUnique, InactivatableFromTo, Identifiable {
028        /**
029         * This is the member id for the Role Member.
030         *
031         * <p>
032         * This is a id value that defines the Role Member.  This value is either a Principal Id, Group Id, or Role Id
033         * depending on the type code
034         * </p>
035         *
036         * @return memberId
037         */
038        String getMemberId();
039    
040        /**
041         * This is the type code for the Role Member.
042         *
043         * <p>
044         * This is a value that defines the type of Role Member.  This value determines whether memberId is
045         * either a Principal Id, Group Id, or Role Id
046         * </p>
047         *
048         * @return typeCode
049         */
050        MemberType getType();
051    
052        /**
053         * This is the id for the Role.
054         *
055         * <p>
056         * This is a id assigned to a Role.  It defines the role this role member belongs to.
057         * </p>
058         *
059         * @return roleId
060         */
061        String getRoleId();
062    
063        /**
064         * This returns specific attributes to be set on a Role Member in order to match permission and responsibilitys.
065         * These attributes match the attributes set to a KimType
066         *
067         * @return attributes
068         */
069        Map<String, String> getAttributes();
070    
071        /**
072         * This returns a list of role responsibility actions assigned to a role member
073         *
074         * @return roleRspActions
075         */
076        List<? extends RoleResponsibilityActionContract> getRoleRspActions();
077    
078        String getMemberName();
079    
080        String getMemberNamespaceCode();
081    }