Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
Exemption |
|
| 1.0;1 |
1 | /** | |
2 | * Copyright 2010 The Kuali Foundation Licensed under the | |
3 | * Educational Community License, Version 2.0 (the "License"); you may | |
4 | * not use this file except in compliance with the License. You may | |
5 | * obtain a copy of the License at | |
6 | * | |
7 | * http://www.osedu.org/licenses/ECL-2.0 | |
8 | * | |
9 | * Unless required by applicable law or agreed to in writing, | |
10 | * software distributed under the License is distributed on an "AS IS" | |
11 | * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express | |
12 | * or implied. See the License for the specific language governing | |
13 | * permissions and limitations under the License. | |
14 | */ | |
15 | ||
16 | package org.kuali.student.r2.core.exemption.infc; | |
17 | ||
18 | import java.util.Date; | |
19 | import org.kuali.student.r2.common.infc.IdEntity; | |
20 | ||
21 | ||
22 | /** | |
23 | * Information about an Exemption. | |
24 | * | |
25 | * Extra data qualifies the exemption to a particular scope, such as for a | |
26 | * particular Course or Program. | |
27 | * | |
28 | * There can only be one override structure per exemption. The | |
29 | * override structure available in this Exemption is constrained by | |
30 | * the Exemption Type. | |
31 | * | |
32 | * @author tom | |
33 | * @since Tue Jun 14 14:22:34 EDT 2011 | |
34 | */ | |
35 | public interface Exemption extends IdEntity { | |
36 | ||
37 | /** | |
38 | * The Id of the Exemption Request. | |
39 | * | |
40 | * @name Exemption Request Id | |
41 | * @required | |
42 | * @readOnly | |
43 | */ | |
44 | public String getExemptionRequestId(); | |
45 | ||
46 | /** | |
47 | * The id of a Process that is being exempted in the | |
48 | * the exemption is applied. | |
49 | * | |
50 | * Together with the check this identifies which instruction(s) to skip or | |
51 | * or data to be overridden when the process is being evaluated. | |
52 | * | |
53 | * @name Process Id | |
54 | */ | |
55 | public String getProcessId(); | |
56 | ||
57 | /** | |
58 | * The Id of a Check that indicates to what Check in the Process | |
59 | * the exemption is applied. | |
60 | * | |
61 | * @name Check Id | |
62 | */ | |
63 | public String getCheckKey(); | |
64 | ||
65 | ||
66 | /** | |
67 | * The Id of the Person who was exempted. | |
68 | * | |
69 | * This is the same as the person id on the request. | |
70 | * | |
71 | * @name Person Id | |
72 | * @required | |
73 | * @readOnly | |
74 | * @impl on creates this should be copied from the request and stored on the exemption | |
75 | * @impl on updates this field should not be updated | |
76 | */ | |
77 | public String getPersonId(); | |
78 | ||
79 | /** | |
80 | * The date this exemption becomes effective. | |
81 | * | |
82 | * If not supplied it should default to today's date. | |
83 | * | |
84 | * @name Effective Date | |
85 | * @requred | |
86 | */ | |
87 | public Date getEffectiveDate(); | |
88 | ||
89 | /** | |
90 | * The date this exemption expires. | |
91 | * | |
92 | * @name Expiration Date | |
93 | */ | |
94 | public Date getExpirationDate(); | |
95 | ||
96 | /** | |
97 | * The number of times this Exemption may be used. | |
98 | * | |
99 | * Should be a positive integer or left null to indicate there is no limit. | |
100 | * | |
101 | * @name Use Limit | |
102 | */ | |
103 | public Integer getUseLimit(); | |
104 | ||
105 | /** | |
106 | * The number of times this Exemption was marked as used. | |
107 | * | |
108 | * Null means that it has not been used or is not being tracked because there is | |
109 | * no corresponding limit. | |
110 | * | |
111 | * @name Use Count | |
112 | */ | |
113 | public Integer getUseCount(); | |
114 | ||
115 | /** | |
116 | * The data for a date override. | |
117 | * | |
118 | * @name Date Override | |
119 | */ | |
120 | public DateOverride getDateOverride(); | |
121 | ||
122 | /** | |
123 | * The data for a milestone override. | |
124 | * | |
125 | * @name Milestone Override | |
126 | */ | |
127 | public MilestoneOverride getMilestoneOverride(); | |
128 | ||
129 | /** | |
130 | * The data for a learning result override. | |
131 | * | |
132 | * @name Learning Result Override | |
133 | */ | |
134 | public LearningResultOverride getLearningResultOverride(); | |
135 | } |