| 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 | } |