Coverage Report - org.kuali.student.enrollment.courseregistration.infc.RegRequestItem
 
Classes in this File Line Coverage Branch Coverage Complexity
RegRequestItem
N/A
N/A
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  
 }