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.RichText;
5
6 import java.util.List;
7
8
9 public interface CourseOfferingDisplay extends IdNamelessEntity {
10
11
12
13 /**
14 * Custom Descr for the course Offering
15 * @name Course Offering Description
16 */
17 public RichText getDescr();
18
19 /**
20 * A unique identifier assigned to all approved courses that exist
21 * in the catalog This is not updatable once initialized.
22 *
23 * @name Course Id
24 * @readOnly
25 * @required
26 * @impl this maps the the version dependent id as the offering
27 * must point to one and only one version of the
28 * course. Maps to cluId in Lui.
29 */
30 public String getCourseId();
31
32
33 /**
34 * Academic term of course offering
35 *
36 * @name Term Id
37 * @readOnly
38 * @required
39 * @impl set during the #createCourseOffering and then maps to
40 * the aptKey on the Lui
41 */
42 public String getTermId();
43
44
45 /**
46 * Identifies the number of a course as reflected in the course catalog.
47 * This typically must be unique across all courses offered during that
48 * term. If the user wants to create two separate offerings for the same
49 * course they must modify this code to make it unique. For example: An
50 * on-line offering of the course might have an "O" appended to it to
51 * distinguish it from the face to face offering, i.e. ENG101 and ENG101O
52 * Initially copied from the course catalog but then, depending on the
53 * configuration it may be updatable. Often this field is configured so that
54 * it is not not directly updatable but rather is calculated from it's two
55 * constituent parts, the subject area and the course number suffix. For
56 * example: Subject Area = "ENG" and Suffix = "101" then code = "ENG101"
57 *
58 * @name Course Offering Code
59 * @readOnly
60 */
61 public String getCourseOfferingCode();
62
63 /**
64 * Identifies the department and/subject code of the course as reflected in
65 * the course catalog. Initially copied from the course catalog but then,
66 * depending on the configuration it may be updatable. In most
67 * configurations this should not be updatable. Often used in the
68 * calculation of the courseCode
69 *
70 * @name Subject Area
71 * @readOnly
72 */
73 public String getSubjectArea();
74
75 /**
76 * Name of the course used in the college catalog. Initially copied from the
77 * course catalog but then, depending on the configuration it may be
78 * updatable. For regular courses this is not generally allowed to be
79 * updated on the offering, but for special topics courses this is often
80 * overridden to capture the particular topic being taught offered this
81 * term. Note: the configuration of the validation for titles is typically
82 * restricted to exclude line breaks. This may have to be loosened as some
83 * schools may want the particular topic to appear on a 2nd line. For
84 * example: SPECIAL TOPICS: AN EXPLORATION OF DEEP SPACE ARTIFACTS
85 *
86 * @name Course Title
87 * @readOnly
88 \ */
89 public String getCourseOfferingTitle();
90
91
92
93
94 /**
95 * The name of the Type that the Course Offering or the underlying LUI
96 * is of.
97 *
98 * @name Type name
99 * @readOnly on updates
100 * @impl Name of the type the CO Info is of, read from TypeInfo object
101 */
102 public String getTypeName();
103
104 /**
105 * The name of the State that the Course Offering or the underlying LUI
106 * is in.
107 *
108 * @name State Name Owner
109 * @readOnly on updates
110 * @impl Name of the state the CO Info is in, read from StateInfo object
111 */
112 public String getStateName();
113
114 /**
115 * The display value of the credit, this is derived by fetching the result value groups for the credit option tied
116 * to the course offering and concatenating the values of the options.
117 *
118 * @name Display Credit
119 * @impl Get the credit option values and concatenate to a single field
120 * @readOnly on updates
121 */
122 public String getDisplayCredit();
123
124 /**
125 * The display value of the grading options, this is derived by fetching the result value groups for the grading option tied
126 * to the course offering and concatenating the values of the options.
127 *
128 * @name Display Grading
129 * @impl Get the credit option values and concatenate to a single field
130 * @readOnly on updates
131 */
132 public String getDisplayGrading();
133
134 /**
135 * Activty offering types for the course offering
136 *
137 * @name Actvity Offering Types
138 * @impl Get the format offering for the course offering and then the activity types from the Format offering
139 * @readOnly on updates
140 */
141 public List<String> getActivtyOfferingTypes();
142
143 /**
144 * Code for the term the course offering is in
145 *
146 * @name Term Code
147 * @readOnly on updates
148 */
149 public String getTermCode();
150
151
152
153 /**
154 * Name of the Term the Course Offering is in
155 *
156 * @name Term Name
157 * @readOnly on updates
158 */
159 public String getTermName();
160
161 }