1 package org.kuali.student.enrollment.courseoffering.infc; 2 3 import org.kuali.student.r2.common.infc.IdNamelessEntity; 4 import org.kuali.student.r2.common.infc.KeyName; 5 import org.kuali.student.r2.common.infc.RichText; 6 7 import java.util.List; 8 9 10 public interface CourseOfferingDisplay extends IdNamelessEntity { 11 12 13 14 /** 15 * Custom Descr for the course Offering 16 * @name Course Offering Description 17 * @readOnly 18 */ 19 public RichText getDescr(); 20 21 /** 22 * A unique identifier assigned to all approved courses that exist 23 * in the catalog This is not updatable once initialized. 24 * 25 * @name Course Id 26 * @readOnly 27 * @required 28 * @impl this maps the the version dependent id as the offering 29 * must point to one and only one version of the 30 * course. Maps to cluId in Lui. 31 */ 32 public String getCourseId(); 33 34 35 /** 36 * Academic term of course offering 37 * 38 * @name Term Id 39 * @readOnly 40 * @required 41 * @impl set during the #createCourseOffering and then maps to 42 * the aptKey on the Lui 43 */ 44 public String getTermId(); 45 46 47 /** 48 * Identifies the number of a course as reflected in the course catalog. 49 * This typically must be unique across all courses offered during that 50 * term. If the user wants to create two separate offerings for the same 51 * course they must modify this code to make it unique. For example: An 52 * on-line offering of the course might have an "O" appended to it to 53 * distinguish it from the face to face offering, i.e. ENG101 and ENG101O 54 * Initially copied from the course catalog but then, depending on the 55 * configuration it may be updatable. Often this field is configured so that 56 * it is not not directly updatable but rather is calculated from it's two 57 * constituent parts, the subject area and the course number suffix. For 58 * example: Subject Area = "ENG" and Suffix = "101" then code = "ENG101" 59 * 60 * @name Course Offering Code 61 * @readOnly 62 */ 63 public String getCourseOfferingCode(); 64 65 /** 66 * Identifies the department and/subject code of the course as reflected in 67 * the course catalog. Initially copied from the course catalog but then, 68 * depending on the configuration it may be updatable. In most 69 * configurations this should not be updatable. Often used in the 70 * calculation of the courseCode 71 * 72 * @name Subject Area 73 * @readOnly 74 */ 75 public String getSubjectArea(); 76 77 /** 78 * Name of the course used in the college catalog. Initially copied from the 79 * course catalog but then, depending on the configuration it may be 80 * updatable. For regular courses this is not generally allowed to be 81 * updated on the offering, but for special topics courses this is often 82 * overridden to capture the particular topic being taught offered this 83 * term. Note: the configuration of the validation for titles is typically 84 * restricted to exclude line breaks. This may have to be loosened as some 85 * schools may want the particular topic to appear on a 2nd line. For 86 * example: SPECIAL TOPICS: AN EXPLORATION OF DEEP SPACE ARTIFACTS 87 * 88 * @name Course Title 89 * @readOnly 90 \ */ 91 public String getCourseOfferingTitle(); 92 93 94 95 96 /** 97 * The name of the Type that the Course Offering or the underlying LUI 98 * is of. 99 * 100 * @name Type name 101 * @readOnly 102 * @impl Name of the type the CO Info is of, read from TypeInfo object 103 */ 104 public String getTypeName(); 105 106 /** 107 * The name of the State that the Course Offering or the underlying LUI 108 * is in. 109 * 110 * @name State Name Owner 111 * @readOnly 112 * @impl Name of the state the CO Info is in, read from StateInfo object 113 */ 114 public String getStateName(); 115 116 /** 117 * The display value of the credit, this is derived by fetching the result value groups for the credit option tied 118 * to the course offering and concatenating the values of the options. 119 * 120 * @name Credit Option 121 * @impl copy from CO.creditOptionId and CO.creditOptionName 122 * @readOnly 123 */ 124 public KeyName getCreditOption(); 125 126 /** 127 * The options/scales that indicate the allowable grades within a 128 * grading scheme that can be awarded. Typically, the values here 129 * are constrained by the values on the canonical course. If the 130 * value is set here then the Clu must have a grading option set 131 * on the canonical activity. For example: an id might point to 132 * Pass/Fail or Letter Graded option. 133 * 134 * @name Grading Option 135 * @impl copy from Co.gradingOptionId and Co.gradingOptionName 136 * @readOnly 137 */ 138 public KeyName getGradingOption(); 139 140 /** 141 * Code for the term the course offering is in 142 * 143 * @name Term Code 144 * @readOnly 145 */ 146 public String getTermCode(); 147 148 149 /** 150 * Name of the Term the Course Offering is in 151 * 152 * @name Term Name 153 * @readOnly 154 */ 155 public String getTermName(); 156 157 /** 158 * The options/scales that indicate the allowable grades within a grading 159 * scheme in which an eligible student can register. This list of options 160 * includes the Grading Option Id (such as kuali.rvg.passfail) plus any 161 * additional grading schemes, such as P/F or Audit. 162 * 163 * @name Student Registration Grading Options 164 */ 165 public List<? extends KeyName> getStudentRegistrationGradingOptions(); 166 167 /** 168 * Indicates that the Course Offering is an Honors option 169 * 170 * @name Is Honors Offering 171 * @readOnly 172 * @impl 'H' icon displayed if true 173 */ 174 public Boolean getIsHonorsOffering(); 175 176 }