View Javadoc

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 }