View Javadoc

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 }