1 /*
2 * Copyright 2011 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the
5 * "License"); you may not use this file except in compliance with the
6 * License. You may obtain a copy of the License at
7 *
8 * http://www.osedu.org/licenses/ECL-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13 * implied. See the License for the specific language governing
14 * permissions and limitations under the License.
15 */
16
17 package org.kuali.student.enrollment.courseregistration.infc;
18
19 import org.kuali.rice.core.api.util.type.KualiDecimal;
20
21 import org.kuali.student.r2.common.infc.Relationship;
22
23 import java.util.Date;
24
25
26 /**
27 * Course Registration is the consolidated view of the details of a
28 * student's relation with a course.
29 *
30 * The CourseRegistration is created only upon the successful
31 * registration of the student into the course as a result of a
32 * RegistrationRequest, and not after waitlist or any other type of
33 * relation with the course.
34 */
35
36 public interface CourseRegistration
37 extends Relationship {
38
39 /**
40 * The person Id for the course registration.
41 *
42 * @name Person Id
43 * @readOnly
44 * @required
45 * @impl Lpr.personId
46 */
47 public String getPersonId();
48
49 /**
50 * The Id of the term that governs this registration.
51 *
52 * Note: this typically is the same as the termId on the
53 * associated Course Offering but may be different. This is
54 * especially true if the Course Offering term is a mini within
55 * the main or non-standard term.
56 *
57 * @name Term Id
58 * @readOnly
59 * @required
60 * @impl Lpr.atpId
61 */
62 public String getTermId();
63
64 /**
65 * The Course Offering Id for this course registration.
66 *
67 * @name Course Offering Id
68 * @readOnly
69 * @required
70 * @impl Lpr.LuiId
71 */
72 public String getCourseOfferingId();
73
74 /**
75 * The registration group Id for this course registration.
76 *
77 * @name Registration Group Id
78 * @readOnly
79 * @required
80 * @impl Lpr.LuiId
81 */
82 public String getRegistrationGroupId();
83
84 /**
85 * The number of credits for which the student
86 * registered. Typically, this number should be in the range
87 * defined at the CourseOffering or RegistrationGroup.
88 *
89 * This value is a number represented as a string.
90 *
91 * @name Credits
92 * @impl Lpr.ResultValuesGroup.ResultValuesKeys there should be a
93 * single predefined ResultValuesKey for every valid credit
94 * value within a range of allowable credits. Consult the
95 * ResultValuesGroup Type for credit value types.
96 */
97 public KualiDecimal getCredits();
98
99 /**
100 * The Id for the Grading Option for which the student
101 * registered. Typically, this option should be in the allowable
102 * range defined at the CourseOffering or RegistrationGroup.
103 *
104 * @name Grading Option Id
105 * @impl Lpr.ResultValuesGroup consult the ResultValuesGroup Type
106 * for grading system options
107 */
108 public String getGradingOptionId();
109
110 /**
111 * The Last Attendance Date.
112 *
113 * @name Last Attendance Date
114 */
115 public Date getLastAttendanceDate();
116
117 /**
118 * The code of the crosslisted course.
119 *
120 * For example if ENGL255 is actual course crosslisted with WMST255,
121 * when WMST255 is added id will be the one of ENGL255, and code
122 * WMST255 will be saved in crossList field (for displaying purpose)
123 *
124 * @name Cross Listed Course Code
125 */
126 public String getCrossListedCode();
127 }