Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
RegRequestItem |
|
| 1.0;1 |
1 | package org.kuali.student.enrollment.courseregistration.infc; | |
2 | ||
3 | import org.kuali.student.r2.common.infc.Entity; | |
4 | import org.kuali.student.r2.common.infc.IdEntity; | |
5 | ||
6 | /** | |
7 | * Represents a single reg group in the request to register. This request is | |
8 | * also used to request waitlist or drop a course. It has transaction type of | |
9 | * either ADD, DROP, SWAP or UPDATE to represent adding (waitlisting, | |
10 | * holdlisting), dropping courses or persisting an item from the reg cart with | |
11 | * changes to it. It has other options like grading and credit options that a | |
12 | * student can specify while registering. There will be options like | |
13 | * okToWaitlist, okToHoldList, okToExceptionList which will help specify if the | |
14 | * student wants to go to a waitlist/holdlist in case there's no seat | |
15 | * availability for the course. A request to waitlist a course should always | |
16 | * have okToWaitlist set to true, same for hold or exception lists. | |
17 | * <P> | |
18 | * ************POSSIBLE SCENARIOS******************************* 1. Register for | |
19 | * course - {@link RegRequestItem} Type is ADD , newRegGroupId is the reg group | |
20 | * to be registered for 2. Register for course but waitlist if seat not | |
21 | * available OR waitlist for course - same as above and okToWaitlist is true 3. | |
22 | * Swap between reg group within same course offering - Type is swap, both new | |
23 | * and existing reg group Ids populated. new is to be the one replaced with the | |
24 | * old one. Reg groups are in the same course offering. 4.Save reg request - | |
25 | * Type is UPDATE and newRegGroupId is populated | |
26 | * | |
27 | * @author Kuali Student Team (sambit) | |
28 | */ | |
29 | public interface RegRequestItem extends IdEntity { | |
30 | ||
31 | /** | |
32 | * The possible types of RegRequestItem are ADD, DROP, SWAP or UPDATE. Those | |
33 | * types represent adding (waitlisting, holdlisting), dropping courses or | |
34 | * persisting an item from the reg cart with changes to it. | |
35 | * | |
36 | * @see org.kuali.student.r2.common.infc.HasType#getTypeKey() | |
37 | */ | |
38 | @Override | |
39 | public String getTypeKey(); | |
40 | ||
41 | /** | |
42 | * Represents the state of this request - NEW, DRAFT, SUBMITTED, FAILED etc | |
43 | * | |
44 | * @see org.kuali.student.r2.common.infc.HasState#getStateKey() | |
45 | */ | |
46 | @Override | |
47 | public String getStateKey(); | |
48 | ||
49 | /** | |
50 | * Return the id of the student to be registered | |
51 | * | |
52 | * @return | |
53 | */ | |
54 | ||
55 | public String getStudentId(); | |
56 | ||
57 | /** | |
58 | * Returns the id of the RegGroup for this item. This is populated for ADD, | |
59 | * DROP, UPDATE and SWAP types of RegRequestItem | |
60 | * | |
61 | * @return | |
62 | */ | |
63 | public String getNewRegGroupId(); | |
64 | ||
65 | /** | |
66 | * Returns the existing reg group id. The existing reg group field is | |
67 | * populated if we have DROP or SWAP types of Request item. | |
68 | * | |
69 | * @return | |
70 | */ | |
71 | public String getExistingRegGroupId(); | |
72 | ||
73 | /** | |
74 | * If the course is full and there is a waitlist, is it okay to be placed in | |
75 | * the waitlist for the course | |
76 | */ | |
77 | public Boolean getOkToWaitlist(); | |
78 | ||
79 | /** | |
80 | * If the student does not meet one of the requirements for the course but | |
81 | * there is a list for such students because the requirement ends at a | |
82 | * future date, is it okay to be placed in such a list. | |
83 | * | |
84 | * @return | |
85 | */ | |
86 | public Boolean getOkToHoldList(); | |
87 | ||
88 | /** | |
89 | * Specify the preferred grading option for the course e.g. pass/fail since | |
90 | * the course allows to specify such options | |
91 | * | |
92 | * @return | |
93 | */ | |
94 | public String getGradingOptionKey(); | |
95 | ||
96 | /** | |
97 | * Specify the preferred credit option e.g credit/ no-credit for the course | |
98 | * because the course. | |
99 | * | |
100 | * @return | |
101 | */ | |
102 | public String getCreditOptionKey(); | |
103 | ||
104 | } |