Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
Course |
|
| 1.0;1 |
1 | package org.kuali.student.r2.lum.course.infc; | |
2 | ||
3 | import java.util.Date; | |
4 | import java.util.List; | |
5 | ||
6 | import org.kuali.student.r2.common.infc.Amount; | |
7 | import org.kuali.student.r2.common.infc.IdEntity; | |
8 | import org.kuali.student.r2.common.infc.RichText; | |
9 | import org.kuali.student.r2.common.infc.TimeAmount; | |
10 | import org.kuali.student.r2.core.versionmanagement.infc.Version; | |
11 | ||
12 | import org.kuali.student.r2.lum.clu.infc.CluInstructor; | |
13 | ||
14 | /** | |
15 | * Detailed information about a single course. For specific usage, check the | |
16 | * specific service(s) implementation(s) | |
17 | **/ | |
18 | ||
19 | public interface Course extends IdEntity { | |
20 | ||
21 | /** | |
22 | * Identifier used to officially reference or publish the | |
23 | * course. | |
24 | * | |
25 | * The code is typically unique within a specified context or time period but | |
26 | * it is not intended as a database key or id. | |
27 | * | |
28 | * It may have an internal structure that each Institution may | |
29 | * want to enforce. This structure may be composed from the other parts of | |
30 | * the structure such as Level amp; Division, but may include items such as | |
31 | * the type of the course and whether it has a lab or not. | |
32 | * | |
33 | * @name code | |
34 | */ | |
35 | public String getCode(); | |
36 | ||
37 | /** | |
38 | * The "extra" portion of the code, which usually corresponds with the most | |
39 | * detailed part of the number. Ex. at MIT we might map Division to subject | |
40 | * area(Ex:6) but overall we need to say the code is 6.120. This field would | |
41 | * represent the 120 part. | |
42 | * | |
43 | * @name Course Number Suffix | |
44 | */ | |
45 | public String getCourseNumberSuffix(); | |
46 | ||
47 | /** | |
48 | * A code that indicates what level 100, 200 or upper division, lower | |
49 | * division etc | |
50 | * | |
51 | * @name Level | |
52 | */ | |
53 | public String getLevel(); | |
54 | ||
55 | /** | |
56 | * Abbreviated name of the Course | |
57 | * | |
58 | * @name Course Title | |
59 | */ | |
60 | public String getCourseTitle(); | |
61 | ||
62 | /** | |
63 | * Information related to the official identification of the credit course, | |
64 | * typically in human readable form. Used to officially reference or | |
65 | * publish. | |
66 | * | |
67 | * @name Transcript Title | |
68 | */ | |
69 | public String getTranscriptTitle(); | |
70 | ||
71 | /** | |
72 | * Course Formats | |
73 | * | |
74 | * @name Formats | |
75 | */ | |
76 | public List<? extends Format> getFormats(); | |
77 | ||
78 | /** | |
79 | * Terms in which this Course is typically offered. | |
80 | * | |
81 | * @name Terms Offered | |
82 | */ | |
83 | public List<String> getTermsOffered(); | |
84 | ||
85 | /** | |
86 | * The standard duration of the Course. | |
87 | * | |
88 | * @name Duration | |
89 | */ | |
90 | public TimeAmount getDuration(); | |
91 | ||
92 | /** | |
93 | * Joint Courses | |
94 | * | |
95 | * @name Joints | |
96 | */ | |
97 | public List<? extends CourseJoint> getJoints(); | |
98 | ||
99 | /** | |
100 | * Cross Listed Courses | |
101 | * | |
102 | * @name Cross Listings | |
103 | */ | |
104 | public List<? extends CourseCrossListing> getCrossListings(); | |
105 | ||
106 | /** | |
107 | * Variations | |
108 | * | |
109 | * @name Variations | |
110 | */ | |
111 | public List<? extends CourseVariation> getVariations(); | |
112 | ||
113 | /** | |
114 | * The Study Subject Area is used to identify the area of study associated | |
115 | * with the course. It may be a general study area (e.g. Chemistry) or very | |
116 | * specific (e.g. Naval Architecture). | |
117 | * | |
118 | * @name Subject Area | |
119 | */ | |
120 | public String getSubjectArea(); | |
121 | ||
122 | /** | |
123 | * Places where this course might be offered | |
124 | * | |
125 | * @name Campus Locations | |
126 | */ | |
127 | public List<String> getCampusLocations(); | |
128 | ||
129 | /** | |
130 | * The expected level of out of class time commitment between the student | |
131 | * and the course. | |
132 | * | |
133 | * @name Out of Class Hours | |
134 | */ | |
135 | public Amount getOutOfClassHours(); | |
136 | ||
137 | /** | |
138 | * Primary potential instructor for the course. This is primarily for use in | |
139 | * advertising the course and may not be the actual instructor. | |
140 | * | |
141 | * @name Primary Instructor | |
142 | */ | |
143 | public CluInstructor getPrimaryInstructor(); | |
144 | ||
145 | /** | |
146 | * Instructors associated with this course. | |
147 | * | |
148 | * @name Instructors | |
149 | */ | |
150 | public List<? extends CluInstructor> getInstructors(); | |
151 | ||
152 | /** | |
153 | * Units Responsible for Deploying this course | |
154 | * @name Units Deployment | |
155 | */ | |
156 | public List<String> getUnitsDeployment(); | |
157 | ||
158 | /** | |
159 | * Narrative description of overall course fee justification. | |
160 | * | |
161 | * @name Fee Justification | |
162 | */ | |
163 | public RichText getFeeJustification(); | |
164 | ||
165 | /** | |
166 | * Units Responsible for overseeing the content of this course | |
167 | * @name Units Content Owner | |
168 | */ | |
169 | public List<String> getUnitsContentOwner(); | |
170 | ||
171 | /** | |
172 | * Fees information associated with this Course. | |
173 | * | |
174 | * @name Fees | |
175 | */ | |
176 | public List<? extends CourseFee> getFees(); | |
177 | ||
178 | /** | |
179 | * Revenue information associated with this Course. | |
180 | * | |
181 | * @name Revenues | |
182 | */ | |
183 | public List<? extends CourseRevenue> getRevenues(); | |
184 | ||
185 | /** | |
186 | * Expenditure information associated with this Course. | |
187 | * | |
188 | * @name Expenditure | |
189 | */ | |
190 | public CourseExpenditure getExpenditure(); | |
191 | ||
192 | /** | |
193 | * Learning Objectives associated with this Course. | |
194 | * | |
195 | * @name Course Specific Learning Objectives | |
196 | */ | |
197 | public List<? extends LoDisplay> getCourseSpecificLOs(); | |
198 | ||
199 | /** | |
200 | * Grading options available for the course | |
201 | * | |
202 | * @name Grading Options | |
203 | */ | |
204 | public List<String> getGradingOptions(); | |
205 | ||
206 | /** | |
207 | * Credit outcomes from taking the course | |
208 | * | |
209 | * @name Credit Options | |
210 | */ | |
211 | public List<String> getCreditOptions(); | |
212 | ||
213 | /** | |
214 | * Flag to indicate the course as a special topics course | |
215 | * | |
216 | * @name Special Topics Course? | |
217 | */ | |
218 | public Boolean isSpecialTopicsCourse(); | |
219 | ||
220 | /** | |
221 | * Flag to indicate a one-time or pilot course, which is likely to have | |
222 | * expedited approval process | |
223 | * | |
224 | * @name Pilot Course? | |
225 | */ | |
226 | public Boolean isPilotCourse(); | |
227 | ||
228 | /** | |
229 | * The first academic time period that this Course would be effective. | |
230 | * | |
231 | * @name Start Term | |
232 | */ | |
233 | public String getStartTerm(); | |
234 | ||
235 | /** | |
236 | * The last academic time period that this Course would be effective. | |
237 | * | |
238 | * @name End Term | |
239 | */ | |
240 | public String getEndTerm(); | |
241 | ||
242 | /** | |
243 | * Date and time the Course became effective. This is a similar concept to | |
244 | * the effective date on enumerated values. When an expiration date has been | |
245 | * specified, this field must be less than or equal to the expiration date. | |
246 | * | |
247 | * @name Effective Date | |
248 | */ | |
249 | public Date getEffectiveDate(); | |
250 | ||
251 | /** | |
252 | * Date and time that this Course expires. This is a similar concept to the | |
253 | * expiration date on enumerated values. If specified, this should be | |
254 | * greater than or equal to the effective date. If this field is not | |
255 | * specified, then no expiration date has been currently defined and should | |
256 | * automatically be considered greater than the effective date. | |
257 | * | |
258 | * @name Expiration Date | |
259 | */ | |
260 | public Date getExpirationDate(); | |
261 | ||
262 | /** | |
263 | * Version of this course | |
264 | * | |
265 | * @name Version | |
266 | */ | |
267 | public Version getVersionInfo (); | |
268 | ||
269 | } |