1 /* 2 * Copyright 2011 The Kuali Foundation Licensed under the 3 * Educational Community License, Version 2.0 (the "License"); you may 4 * not use this file except in compliance with the License. You may 5 * obtain a copy of the License at 6 * 7 * http://www.osedu.org/licenses/ECL-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, 10 * software distributed under the License is distributed on an "AS IS" 11 * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 12 * or implied. See the License for the specific language governing 13 * permissions and limitations under the License. 14 */ 15 package org.kuali.student.r2.lum.clu.infc; 16 17 import org.kuali.student.r2.common.infc.Amount; 18 import org.kuali.student.r2.common.infc.HasEffectiveDates; 19 import org.kuali.student.r2.common.infc.IdNamelessEntity; 20 import org.kuali.student.r2.common.infc.TimeAmount; 21 import org.kuali.student.r2.core.versionmanagement.infc.Version; 22 23 import java.util.List; 24 import org.kuali.student.r2.common.infc.RichText; 25 26 /** 27 * Detailed information about a single CLU. 28 * 29 * @Author Sri komandur@uw.edu 30 */ 31 public interface Clu extends IdNamelessEntity, HasEffectiveDates { 32 33 /** 34 * Information related to the official identification of the clu, typically 35 * in human readable form. Used to officially reference or publish. 36 * 37 * @name Official Identifier 38 * @readOnly 39 * @required 40 */ 41 public CluIdentifier getOfficialIdentifier(); 42 43 /** 44 * Narrative description of the CLU, used for the catalog. 45 * 46 * @name Description 47 */ 48 public RichText getDescr(); 49 50 /** 51 * Information related to alternate identifications of the clu, typically in 52 * human readable form. Used to reference or publish. 53 * 54 * @name Alternate Identifiers 55 * @readOnly 56 */ 57 public List<? extends CluIdentifier> getAlternateIdentifiers(); 58 59 /** 60 * The Study Subject Area is used to identify the area of study associated 61 * with the clu. It may be a general study area (e.g. Chemistry) or very 62 * specific (e.g. Naval Architecture) depending on the level of specificity 63 * of the clu. 64 * 65 * @name Study Subject Area 66 */ 67 public String getStudySubjectArea(); 68 69 /** 70 * Information around the accreditation of the clu. 71 * 72 * @name Accreditations 73 */ 74 public List<? extends Accreditation> getAccreditations(); 75 76 /** 77 * Places where this clu might be offered 78 * 79 * @name Campus Location Keys 80 */ 81 public List<String> getCampusLocations(); 82 83 /** 84 * Admin Orgs associated with this clu 85 * 86 * @name Admin Orgs 87 */ 88 public List<? extends AdminOrg> getAdminOrgs(); 89 90 /** 91 * Primary potential instructor for the clu. This is primarily for use in 92 * advertising the clu and may not be the actual instructor. 93 * 94 * @name Primary Instructor 95 */ 96 public CluInstructor getPrimaryInstructor(); 97 98 /** 99 * Instructors associated with this clu. This may not be an exhaustive list, 100 * and instead may only be used to indicate potential instructors in 101 * publication. 102 * 103 * @name Instructors 104 */ 105 public List<? extends CluInstructor> getInstructors(); 106 107 /* 108 * The expected level of time commitment between the student and the CLU meetings. 109 * @name Intensity 110 */ 111 public Amount getIntensity(); 112 113 /** 114 * The standard duration of the learning unit. 115 * 116 * @name Std Duration 117 */ 118 public TimeAmount getStdDuration(); 119 120 /** 121 * Indicates if the CLU can be used to instantiate LUIs (offerings). 122 * 123 * @name is Can Create Lui 124 */ 125 public Boolean getCanCreateLui(); 126 127 /** 128 * An URL for additional information about the CLU. This could be a 129 * reference to a document which might in turn have references to other 130 * documents (e.g. course syllabus provided by the faculty or department, 131 * standard schedule of classes, etc.). 132 * 133 * @name Reference URL 134 */ 135 public String getReferenceURL(); 136 137 /** 138 * List of LU code info structures. These are structures so that many 139 * different types of codes can be associated with the clu. This allows them 140 * to be put into categories. 141 * 142 * @name Lu Codes 143 */ 144 public List<? extends LuCode> getLuCodes(); 145 146 /** 147 * When the next review should be 148 * 149 * @name Next Review Period 150 */ 151 public String getNextReviewPeriod(); 152 153 /** 154 * Indicates if Luis generated from this Clu are intended to be enrolled in 155 * by Students directly 156 * 157 * @name is Enrollable 158 */ 159 public Boolean getIsEnrollable(); 160 161 /** 162 * The academic time period types in which this CLU is typically offered. 163 * Standard usage would equate to terms. 164 * 165 * @name Offered Atp Types 166 */ 167 public List<String> getOfferedAtpTypes(); 168 169 /** 170 * Indicates if the CLU has an Early Drop Deadline (EDD). Certain courses 171 * are designated as such to maximize access to courses that have 172 * historically experienced high demand and high attrition. Default is 173 * "false". 174 * 175 * @name is Has Early Drop Deadline 176 */ 177 public Boolean getIsHasEarlyDropDeadline(); 178 179 /** 180 * Default enrollment estimate for this CLU. 181 * 182 * @name Default Enrollment Estimate 183 */ 184 public int getDefaultEnrollmentEstimate(); 185 186 /** 187 * Default maximum enrollment for this CLU. 188 * 189 * @name Default Maximum Enrollment 190 */ 191 public int getDefaultMaximumEnrollment(); 192 193 /** 194 * Indicates if the CLU may be hazardous for students with disabilities. 195 * Would default to "false". 196 * 197 * @name is Hazardous For Disabled Students 198 */ 199 public Boolean getIsHazardousForDisabledStudents(); 200 201 /** 202 * Fee information associated with this CLU. 203 * 204 * @name Fee Info 205 */ 206 public CluFee getFeeInfo(); 207 208 /** 209 * Accounting information associated with this CLU. 210 * 211 * @name Account Info 212 */ 213 public CluAccounting getAccountingInfo(); 214 215 /** 216 * Version information associated with this CLU 217 * 218 * @name Version 219 */ 220 public Version getVersion(); 221 222 /** 223 * The expected first academic time period that this clu would be effective. 224 * This may not reflect the first "real" academic time period for this clu. 225 * 226 * @name Expected First Atp 227 */ 228 public String getExpectedFirstAtp(); 229 230 /** 231 * The last academic time period that this clu would be effective. 232 * 233 * @name Last Atp 234 */ 235 public String getLastAtp(); 236 237 /** 238 * The last academic time period that this clu would be available for 239 * enrollment. This may not reflect the last "real" academic time period for 240 * this clu. 241 * 242 * @name Last Admit Atp 243 */ 244 public String getLastAdmitAtp(); 245 }