1 /* 2 * Copyright 2013 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.bundledoffering.infc; 18 19 import org.kuali.student.r2.common.infc.IdEntity; 20 21 import java.util.List; 22 23 24 /** 25 * Bundled Offering is a set of Registration Groups for which a 26 * student is registered together. A Bundled Offering is an offering 27 * of a canonical CourseBundle. 28 */ 29 30 public interface BundledOffering 31 extends IdEntity { 32 33 /** 34 * The CourseBundle identifier from which this BundledOffering is 35 * offered. 36 * 37 * @return the course bundle Id 38 * @name Course Bundle Id 39 * @required 40 * @readOnly 41 */ 42 public String getCourseBundleId(); 43 44 /** 45 * The Term identifier in which this BundledOffering is offered. 46 * 47 * @return the term Id 48 * @name Term Id 49 * @required 50 * @readOnly 51 */ 52 public String getTermId(); 53 54 /** 55 * Identifies the number of a bundled offering as reflected in the 56 * course catalog. This typically must be unique across all 57 * courses offered during that term. If the user wants to create 58 * two separate offerings for the same course they must modify 59 * this code to make it unique. For example: An on-line offering 60 * of the course might have an "O" appended to it to distinguish 61 * it from the face to face offering, i.e. ENG101 and ENG101O 62 * Initially copied from the course catalog but then, depending on 63 * the configuration it may be updatable. Often this field is 64 * configured so that it is not not directly updatable but rather 65 * is calculated from it's two constituent parts, the subject area 66 * and the course number suffix. For example: Subject Area = "ENG" 67 * and Suffix = "101" then code = "ENG101" 68 * 69 * @name Bundled Offering Code 70 * @impl initialially this is copied from the course catalog code but then 71 * is subsequently stored in the lui as lui.officialIdentifier.code 72 */ 73 public String getBundledOfferingCode(); 74 75 /** 76 * Identifies the department and/subject code of the course as 77 * reflected in the course catalog. Initially copied from the 78 * course catalog but then, depending on the configuration it may 79 * be updatable. In most configurations this should not be 80 * updatable. Often used in the calculation of the courseCode. 81 * 82 * @name Subject Area Org Id 83 * @impl initially copied from the canonical course bundle but 84 * then stored in the Lui as lui.officialIdentifier.division 85 */ 86 public String getSubjectAreaOrgId(); 87 88 /** 89 * A suffix of the course number as reflected in the college 90 * catalog. This is the "number" portion of the course 91 * code. Initially copied from the course catalog but then, 92 * depending on the configuration it may be updatable. This field 93 * is often configured to be updatable but the updates typically 94 * simply append something like an "O" for on-line to it to 95 * differentiate multiple course offerings for the same 96 * course. Often used in the calculation of the courseCode. 97 * 98 * @name Bundled Offering Code Suffix 99 * @impl initially copied from the canonical course bundle but 100 * then stored in the Lui as 101 * lui.officialIdentifier.suffixCode 102 */ 103 public String getBundledOfferingCodeSuffix(); 104 105 /** 106 * The identifiers of the administrative organizations for the 107 * bundled offering. This organization is typically the units 108 * deployment organization as the content is managed within the 109 * individual course offerings. 110 * 111 * @return the Id of the administrative organization 112 * @name Admin Org Ids 113 * @impl initalized from canonical course bundle units deployment 114 * but then stored in lui.unitsDeployment 115 */ 116 public List<String> getAdminOrgIds(); 117 118 /** 119 * The identifiers for the FormatOfferings to be included in this 120 * bundled offering. These determine the valid RegistrationGroups 121 * and may be specified earlier in the offering process. 122 * 123 * @return the Ids of the format offerings 124 * @name Format Offering Ids 125 * @impl stored as LuiLuiRelations 126 */ 127 public List<String> getFormatOfferingIds(); 128 129 /** 130 * The identifiers for the RegistrationGroups included in this 131 * bundled offering. The RegistrationGroups are constrained by the 132 * FormatOfferings. 133 * 134 * @return the Ids of the registration groups 135 * @name Registration Group Ids 136 * @impl stored as LuiLuiRelations 137 */ 138 public List<String> getRegistrationGroupIds(); 139 }