001/**
002 * Copyright 2005-2018 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.responsibility;
017
018
019import org.kuali.rice.kim.api.common.delegate.DelegateTypeContract;
020
021import java.util.List;
022import java.util.Map;
023
024/**
025 * Contains information related to responsibilities in the kim system.
026 */
027public 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}