1 /*
2 * Copyright 2010 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.courseoffering.infc;
18
19 import java.util.List;
20
21 import org.kuali.student.r2.common.infc.IdEntity;
22
23 /**
24 * Registration group are the physical entities that students will try
25 * to register into. A RegistrationGroup is used to group individual
26 * activity offerings based on the canonical format.
27 *
28 * @author Kamal
29 */
30
31 public interface RegistrationGroup
32 extends IdEntity {
33
34 /**
35 * Canonical format to which this registration group belong to.
36 *
37 * @name Format Id
38 * @impl This maps the the version dependent id of the format
39 * clu. Stored as cluId in Lui.
40 * @required
41 * @readOnly
42 */
43 public String getFormatOfferingId();
44
45 /**
46 * Course offering for this registration group.
47 *
48 * @name CourseOffering Id
49 * @required
50 * @readOnly
51 * @impl Maps to the lui Id of the courseOffering retrieved from
52 * luiluirelation of type courseoffering to registration
53 * group.
54 */
55 public String getCourseOfferingId();
56
57 /**
58 * Academic term the registration group is being offered
59 * in. Should be same as CourseOffering unless changed, then must
60 * be nested term of courseOffering.
61 *
62 * @name Term id
63 * @readOnly
64 * @required
65 * @impl maps to Lui.getAtpId()
66 */
67 public String getTermId();
68
69 /**
70 * Uniquely identifies an instance of the course for the purposes
71 * of registration. This code is unique for a given term, thus, no
72 * two registration groups in the same term shares the same registration
73 * code.
74 *
75 * By contrast, the [name] field (this is inherited from IdEntity) is used to store
76 * a registration group code that is unique only within a course offering.
77 * Thus, no two registration groups would share the same registration group
78 * code within the same course offering (in a given term).
79 *
80 * @name Registration Code
81 * @impl maps to lui code in Lui
82 */
83 public String getRegistrationCode();
84
85 /**
86 * Activity Offerings for the registration group. This list should
87 * be constrained by the canonical format and the activity
88 * offerings listed in the course offering.
89 *
90 * @name ActivityOffering Ids
91 * @impl Maps to the lui Ids of the activityOffering retrieved
92 * from luiluirelation of type activityOffering to
93 * registration group.
94 */
95 public List<String> getActivityOfferingIds();
96
97 /**
98 * Tests if this registration group wa sthe product of an
99 * automatic generation. manually created registration groups
100 * return false for this.
101 *
102 * @name Is Generated
103 */
104 public Boolean getIsGenerated();
105 }