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 }