001    /**
002     * Copyright 2005-2013 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.responsibility;
017    
018    
019    import org.kuali.rice.kim.api.common.delegate.DelegateTypeContract;
020    
021    import java.util.List;
022    import java.util.Map;
023    
024    /**
025     * Contains information related to responsibilities in the kim system.
026     */
027    public interface ResponsibilityActionContract {
028    
029        /**
030         * The principalId the responsibility action is associated with.
031         * <p>
032         * Can be null as long as the {@link #getGroupId()} is not null.
033         * </p>
034         * <p>
035         * When this is set the {@link #getGroupId()} will not be.
036         * </p>
037         * @return the principalId
038         */
039        String getPrincipalId();
040    
041        /**
042         * The groupId the responsibility action is associated with.
043         *
044         * <p>
045         * Can be null as long as the {@link #getPrincipalId()} is not null.
046         * </p>
047         * <p>
048         * When this is set the {@link #getPrincipalId()} will not be.
049         * </p>
050         *
051         * @return the groupId
052         */
053            String getGroupId();
054    
055        /**
056         * The roleResponsibilityActionId the responsibility action is associated with.  Can be null.
057         *
058         * @return the roleResponsibilityActionId
059         */
060            String getRoleResponsibilityActionId();
061    
062        /**
063         * The parallelRoutingGroupingCode the responsibility action is associated with.  Can be null.
064         *
065         * @return the parallelRoutingGroupingCode
066         */
067        String getParallelRoutingGroupingCode();
068    
069        /**
070         * The actionTypeCode the responsibility action is associated with.  Can be null.
071         *
072         * @return the actionTypeCode
073         */
074        String getActionTypeCode();
075    
076        /**
077         * The actionPolicyCode the responsibility action is associated with.  Can be null.
078         *
079         * @return the actionPolicyCode
080         */
081            String getActionPolicyCode();
082    
083        /**
084         * The priorityNumber the responsibility action is associated with.  Can be null.
085         *
086         * @return the priorityNumber
087         */
088        Integer getPriorityNumber();
089    
090        /**
091         * The memberRoleId the responsibility action is associated with.  Cannot be null or blank.
092         *
093         * @return the memberRoleId
094         */
095            String getMemberRoleId();
096    
097        /**
098         * The responsibilityName the responsibility action is associated with.  Cannot be null or blank.
099         *
100         * @return the responsibilityName
101         */
102            String getResponsibilityName();
103    
104        /**
105         * The responsibilityId the responsibility action is associated with.  Cannot be null or blank.
106         *
107         * @return the responsibilityId
108         */
109        String getResponsibilityId();
110    
111        /**
112         * The responsibilityNamespaceCode the responsibility action is associated with.  Cannot be null or blank.
113         *
114         * @return the responsibilityNamespaceCode
115         */
116        String getResponsibilityNamespaceCode();
117    
118        /**
119         * Whether is responsibility action is a force action.
120         * @return true if is a force action
121         */
122            boolean isForceAction();
123    
124        /**
125         * The qualifying attributes for the responsibility action.  Cannot be null.
126         * @return attributes
127         */
128            Map<String, String> getQualifier();
129    
130        /**
131         * The delegates for this responsibility action. Cannot be null but can be an empty list.
132         * @return delegates
133         */
134            List<? extends DelegateTypeContract> getDelegates();
135    
136        /**
137         * The roleId the responsibility action is associated with.  Cannot be null or blank.
138         *
139         * @return the roleId
140         */
141        String getRoleId();
142    }