Clover Coverage Report - KS LUM API 1.2-M2-SNAPSHOT
Coverage timestamp: Wed Dec 31 1969 19:00:00 EST
../../../../../../img/srcFileCovDistChart0.png 0% of files have more coverage
106   635   91   1.39
30   374   0.86   76
76     1.2  
1    
 
  CourseInfo       Line # 54 106 0% 91 212 0% 0.0
 
No Tests
 
1    /*
2    * Copyright 2009 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 1.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl1.php
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 implied.
13    * See the License for the specific language governing permissions and
14    * limitations under the License.
15    */
16    package org.kuali.student.lum.course.dto;
17   
18    import java.io.Serializable;
19    import java.util.ArrayList;
20    import java.util.Date;
21    import java.util.HashMap;
22    import java.util.List;
23    import java.util.Map;
24   
25    import javax.xml.bind.annotation.XmlAccessType;
26    import javax.xml.bind.annotation.XmlAccessorType;
27    import javax.xml.bind.annotation.XmlAttribute;
28    import javax.xml.bind.annotation.XmlElement;
29    import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
30   
31    import org.kuali.student.common.dto.AmountInfo;
32    import org.kuali.student.common.dto.HasAttributes;
33    import org.kuali.student.common.dto.HasTypeState;
34    import org.kuali.student.common.dto.Idable;
35    import org.kuali.student.common.dto.MetaInfo;
36    import org.kuali.student.common.dto.RichTextInfo;
37    import org.kuali.student.common.dto.TimeAmountInfo;
38    import org.kuali.student.common.versionmanagement.dto.VersionInfo;
39    import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
40    import org.kuali.student.lum.lrc.dto.ResultComponentInfo;
41    import org.kuali.student.lum.lu.dto.CluInstructorInfo;
42   
43    /**
44    * Detailed information about a single course.
45    * For specific usage, check the specific service(s) implementation(s)
46    *
47    * @Author KSContractMojo
48    * @Author Daniel Epstein
49    * @Since Mon Jul 26 14:12:05 EDT 2010
50    * @See <a href="https://test.kuali.org/confluence/display/KULSTU/courseInfo+Structure">CourseInfo</>
51    *
52    */
53    @XmlAccessorType(XmlAccessType.FIELD)
 
54    public class CourseInfo implements Serializable, Idable, HasTypeState, HasAttributes {
55   
56    private static final long serialVersionUID = 1L;
57   
58    @XmlElement
59    private String code;
60   
61    @XmlElement
62    private String courseNumberSuffix;
63   
64    @XmlElement
65    private String level;
66   
67    @XmlElement
68    private String courseTitle;
69   
70    @XmlElement
71    private String transcriptTitle;
72   
73    @XmlElement
74    private RichTextInfo descr;
75   
76    @XmlElement
77    private List<FormatInfo> formats;
78   
79    @XmlElement
80    private List<String> termsOffered;
81   
82    @XmlElement
83    private TimeAmountInfo duration;
84   
85    @XmlElement
86    private List<CourseJointInfo> joints;
87   
88    @XmlElement
89    private List<CourseCrossListingInfo> crossListings;
90   
91    @XmlElement
92    private List<CourseVariationInfo> variations;
93   
94    @XmlElement
95    private String subjectArea;
96   
97    @XmlElement
98    private List<String> campusLocations;
99   
100    @XmlElement
101    private AmountInfo outOfClassHours;
102   
103    @XmlElement
104    private CluInstructorInfo primaryInstructor;
105   
106    @XmlElement
107    private List<CluInstructorInfo> instructors;
108   
109    @XmlElement
110   
111    private List<String> unitsDeployment;
112   
113    private RichTextInfo feeJustification;
114   
115   
116    @XmlElement
117    private List<String> unitsContentOwner;
118   
119    private List<CourseFeeInfo> fees;
120   
121   
122    @XmlElement
123    private List<CourseRevenueInfo> revenues;
124   
125    @XmlElement
126    private CourseExpenditureInfo expenditure;
127   
128    @XmlElement
129    private List<LoDisplayInfo> courseSpecificLOs;
130   
131    @XmlElement
132    private List<String> gradingOptions;
133   
134    @XmlElement
135    private List<ResultComponentInfo> creditOptions;
136   
137    @XmlElement
138    private boolean specialTopicsCourse;
139   
140    @XmlElement
141    private boolean pilotCourse;
142   
143    @XmlElement
144    private String startTerm;
145   
146    @XmlElement
147    private String endTerm;
148   
149    @XmlElement
150    private Date effectiveDate;
151   
152    @XmlElement
153    private Date expirationDate;
154   
155    @XmlElement
156    @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
157    private Map<String, String> attributes;
158   
159    @XmlElement
160    private MetaInfo metaInfo;
161   
162    @XmlElement
163    private VersionInfo versionInfo;
164   
165    @XmlAttribute
166    private String type;
167   
168    @XmlAttribute
169    private String state;
170   
171    @XmlAttribute
172    private String id;
173   
174    /**
175    * The composite string that is used to officially reference or publish the CLU. Note it may have an internal structure that each Institution may want to enforce. This structure may be composed from the other parts of the structure such as Level amp; Division, but may include items such as cluType.
176    */
 
177  0 toggle public String getCode() {
178  0 return code;
179    }
180   
 
181  0 toggle public void setCode(String code) {
182  0 this.code = code;
183    }
184   
185    /**
186    * The "extra" portion of the code, which usually corresponds with the most detailed part of the number. Ex. at MIT we might map Division to subject area(Ex:6) but overall we need to say the code is 6.120. This field would represent the 120 part.
187    */
 
188  0 toggle public String getCourseNumberSuffix() {
189  0 return courseNumberSuffix;
190    }
191   
 
192  0 toggle public void setCourseNumberSuffix(String courseNumberSuffix) {
193  0 this.courseNumberSuffix = courseNumberSuffix;
194    }
195   
196    /**
197    *
198    * A code that indicates what level 100, 200 or upper division, lower division etc
199    *
200    * @return
201    */
 
202  0 toggle public String getLevel() {
203  0 return level;
204    }
205   
 
206  0 toggle public void setLevel(String level) {
207  0 this.level = level;
208    }
209   
210    /**
211    * Abbreviated name of the Course
212    */
 
213  0 toggle public String getCourseTitle() {
214  0 return courseTitle;
215    }
216   
 
217  0 toggle public void setCourseTitle(String courseTitle) {
218  0 this.courseTitle = courseTitle;
219    }
220   
221    /**
222    * Information related to the official identification of the credit course, typically in human readable form. Used to officially reference or publish.
223    */
 
224  0 toggle public String getTranscriptTitle() {
225  0 return transcriptTitle;
226    }
227   
 
228  0 toggle public void setTranscriptTitle(String transcriptTitle) {
229  0 this.transcriptTitle = transcriptTitle;
230    }
231   
232    /**
233    * Narrative description of the Course.
234    */
 
235  0 toggle public RichTextInfo getDescr() {
236  0 return descr;
237    }
238   
 
239  0 toggle public void setDescr(RichTextInfo descr) {
240  0 this.descr = descr;
241    }
242   
243    /**
244    *
245    */
 
246  0 toggle public List<FormatInfo> getFormats() {
247  0 if (formats == null) {
248  0 formats = new ArrayList<FormatInfo>(0);
249    }
250  0 return formats;
251    }
252   
 
253  0 toggle public void setFormats(List<FormatInfo> formats) {
254  0 this.formats = formats;
255    }
256   
257    /**
258    * Terms in which this Course is typically offered.
259    */
 
260  0 toggle public List<String> getTermsOffered() {
261  0 if (termsOffered == null) {
262  0 termsOffered = new ArrayList<String>(0);
263    }
264  0 return termsOffered;
265    }
266   
 
267  0 toggle public void setTermsOffered(List<String> termsOffered) {
268  0 this.termsOffered = termsOffered;
269    }
270   
271    /**
272    * The standard duration of the Course.
273    */
 
274  0 toggle public TimeAmountInfo getDuration() {
275  0 return duration;
276    }
277   
 
278  0 toggle public void setDuration(TimeAmountInfo duration) {
279  0 this.duration = duration;
280    }
281   
282    /**
283    *
284    */
 
285  0 toggle public List<CourseJointInfo> getJoints() {
286  0 if (joints == null) {
287  0 joints = new ArrayList<CourseJointInfo>(0);
288    }
289  0 return joints;
290    }
291   
 
292  0 toggle public void setJoints(List<CourseJointInfo> joints) {
293  0 this.joints = joints;
294    }
295   
296    /**
297    *
298    */
 
299  0 toggle public List<CourseCrossListingInfo> getCrossListings() {
300  0 if (crossListings == null) {
301  0 crossListings = new ArrayList<CourseCrossListingInfo>(0);
302    }
303  0 return crossListings;
304    }
305   
 
306  0 toggle public void setCrossListings(List<CourseCrossListingInfo> crossListings) {
307  0 this.crossListings = crossListings;
308    }
309   
310    /**
311    *
312    */
 
313  0 toggle public List<CourseVariationInfo> getVariations() {
314  0 if (variations == null) {
315  0 variations = new ArrayList<CourseVariationInfo>(0);
316    }
317  0 return variations;
318    }
319   
 
320  0 toggle public void setVariations(List<CourseVariationInfo> variations) {
321  0 this.variations = variations;
322    }
323   
324    /**
325    * The Study Subject Area is used to identify the area of study associated with the course. It may be a general study area (e.g. Chemistry) or very specific (e.g. Naval Architecture).
326    */
 
327  0 toggle public String getSubjectArea() {
328  0 return subjectArea;
329    }
330   
 
331  0 toggle public void setSubjectArea(String subjectArea) {
332  0 this.subjectArea = subjectArea;
333    }
334   
335    /**
336    * Places where this course might be offered
337    */
 
338  0 toggle public List<String> getCampusLocations() {
339  0 if (campusLocations == null) {
340  0 campusLocations = new ArrayList<String>(0);
341    }
342  0 return campusLocations;
343    }
344   
 
345  0 toggle public void setCampusLocations(List<String> campusLocations) {
346  0 this.campusLocations = campusLocations;
347    }
348   
349    /**
350    * The expected level of out of class time commitment between the student and the course.
351    */
 
352  0 toggle public AmountInfo getOutOfClassHours() {
353  0 return outOfClassHours;
354    }
355   
 
356  0 toggle public void setOutOfClassHours(AmountInfo outOfClassHours) {
357  0 this.outOfClassHours = outOfClassHours;
358    }
359   
360    /**
361    * Primary potential instructor for the clu. This is primarily for use in advertising the course and may not be the actual instructor.
362    */
 
363  0 toggle public CluInstructorInfo getPrimaryInstructor() {
364  0 return primaryInstructor;
365    }
366   
 
367  0 toggle public void setPrimaryInstructor(CluInstructorInfo primaryInstructor) {
368  0 this.primaryInstructor = primaryInstructor;
369    }
370   
371    /**
372    * Instructors associated with this course.
373    */
 
374  0 toggle public List<CluInstructorInfo> getInstructors() {
375  0 if (instructors == null) {
376  0 instructors = new ArrayList<CluInstructorInfo>(0);
377    }
378  0 return instructors;
379    }
380   
 
381  0 toggle public void setInstructors(List<CluInstructorInfo> instructors) {
382  0 this.instructors = instructors;
383    }
384   
385   
 
386  0 toggle public List<String> getUnitsDeployment() {
387  0 if(unitsDeployment == null){
388  0 unitsDeployment = new ArrayList<String>(0);
389    }
390  0 return unitsDeployment;
391    }
392   
393    /**
394    * Narrative description of overall course fee justification.
395    */
 
396  0 toggle public RichTextInfo getFeeJustification() {
397  0 return feeJustification;
398   
399    }
400   
401   
 
402  0 toggle public void setUnitsDeployment(List<String> unitsDeployment) {
403  0 this.unitsDeployment = unitsDeployment;
404    }
405   
 
406  0 toggle public void setFeeJustification(RichTextInfo feeJustification) {
407  0 this.feeJustification = feeJustification;
408   
409    }
410   
 
411  0 toggle public List<String> getUnitsContentOwner() {
412  0 if(unitsContentOwner == null){
413  0 unitsContentOwner = new ArrayList<String>(0);
414    }
415  0 return unitsContentOwner;
416    }
417   
418    /**
419    * Fees information associated with this Course.
420    */
 
421  0 toggle public List<CourseFeeInfo> getFees() {
422  0 if (fees == null) {
423  0 fees = new ArrayList<CourseFeeInfo>(0);
424    }
425  0 return fees;
426   
427    }
428   
 
429  0 toggle public void setUnitsContentOwner(List<String> unitsContentOwner) {
430  0 this.unitsContentOwner = unitsContentOwner;
431    }
432   
 
433  0 toggle public void setFees(List<CourseFeeInfo> fees) {
434  0 this.fees = fees;
435    }
436   
437    /**
438    * Revenue information associated with this Course.
439    */
 
440  0 toggle public List<CourseRevenueInfo> getRevenues() {
441  0 if (revenues == null) {
442  0 revenues = new ArrayList<CourseRevenueInfo>(0);
443    }
444  0 return revenues;
445    }
446   
 
447  0 toggle public void setRevenues(List<CourseRevenueInfo> revenues) {
448  0 this.revenues = revenues;
449    }
450   
451    /**
452    * Expenditure information associated with this Course.
453    */
 
454  0 toggle public CourseExpenditureInfo getExpenditure() {
455  0 return expenditure;
456    }
457   
 
458  0 toggle public void setExpenditure(CourseExpenditureInfo expenditure) {
459  0 this.expenditure = expenditure;
460    }
461   
462    /**
463    * Learning Objectives associated with this Course.
464    */
 
465  0 toggle public List<LoDisplayInfo> getCourseSpecificLOs() {
466  0 if (courseSpecificLOs == null) {
467  0 courseSpecificLOs = new ArrayList<LoDisplayInfo>(0);
468    }
469  0 return courseSpecificLOs;
470    }
471   
 
472  0 toggle public void setCourseSpecificLOs(List<LoDisplayInfo> courseSpecificLOs) {
473  0 this.courseSpecificLOs = courseSpecificLOs;
474    }
475   
476    /**
477    * Grading opitons available for the course
478    */
 
479  0 toggle public List<String> getGradingOptions() {
480  0 if (gradingOptions == null) {
481  0 gradingOptions = new ArrayList<String>(0);
482    }
483  0 return gradingOptions;
484    }
485   
 
486  0 toggle public void setGradingOptions(List<String> gradingOptions) {
487  0 this.gradingOptions = gradingOptions;
488    }
489   
490    /**
491    * Credit outcomes from taking the course
492    */
 
493  0 toggle public List<ResultComponentInfo> getCreditOptions() {
494  0 if (creditOptions == null) {
495  0 creditOptions = new ArrayList<ResultComponentInfo>(0);
496    }
497  0 return creditOptions;
498    }
499   
 
500  0 toggle public void setCreditOptions(List<ResultComponentInfo> creditOptions) {
501  0 this.creditOptions = creditOptions;
502    }
503   
504    /**
505    * Flag to indicate the course as a special topics course
506    */
 
507  0 toggle public boolean isSpecialTopicsCourse() {
508  0 return specialTopicsCourse;
509    }
510   
 
511  0 toggle public void setSpecialTopicsCourse(boolean specialTopicsCourse) {
512  0 this.specialTopicsCourse = specialTopicsCourse;
513    }
514   
515    /**
516    * Flag to indicate a one-time or pilot course, which is likely to have expedited approval process
517    */
 
518  0 toggle public boolean isPilotCourse() {
519  0 return pilotCourse;
520    }
521   
 
522  0 toggle public void setPilotCourse(boolean pilotCourse) {
523  0 this.pilotCourse = pilotCourse;
524    }
525   
526    /**
527    * The first academic time period that this Course would be effective.
528    */
 
529  0 toggle public String getStartTerm() {
530  0 return startTerm;
531    }
532   
 
533  0 toggle public void setStartTerm(String startTerm) {
534  0 this.startTerm = startTerm;
535    }
536   
537    /**
538    * The last academic time period that this Course would be effective.
539    */
 
540  0 toggle public String getEndTerm() {
541  0 return endTerm;
542    }
543   
 
544  0 toggle public void setEndTerm(String endTerm) {
545  0 this.endTerm = endTerm;
546    }
547   
548    /**
549    * Date and time the Course became effective. This is a similar concept to the effective date on enumerated values. When an expiration date has been specified, this field must be less than or equal to the expiration date.
550    */
 
551  0 toggle public Date getEffectiveDate() {
552  0 return effectiveDate;
553    }
554   
 
555  0 toggle public void setEffectiveDate(Date effectiveDate) {
556  0 this.effectiveDate = effectiveDate;
557    }
558   
559    /**
560    * Date and time that this Course expires. This is a similar concept to the expiration date on enumerated values. If specified, this should be greater than or equal to the effective date. If this field is not specified, then no expiration date has been currently defined and should automatically be considered greater than the effective date.
561    */
 
562  0 toggle public Date getExpirationDate() {
563  0 return expirationDate;
564    }
565   
 
566  0 toggle public void setExpirationDate(Date expirationDate) {
567  0 this.expirationDate = expirationDate;
568    }
569   
570    /**
571    * List of key/value pairs, typically used for dynamic attributes.
572    */
 
573  0 toggle public Map<String, String> getAttributes() {
574  0 if (attributes == null) {
575  0 attributes = new HashMap<String, String>();
576    }
577  0 return attributes;
578    }
579   
 
580  0 toggle public void setAttributes(Map<String, String> attributes) {
581  0 this.attributes = attributes;
582    }
583   
584    /**
585    * Create and last update info for the structure. This is optional and treated as read only since the data is set by the internals of the service during maintenance operations.
586    */
 
587  0 toggle public MetaInfo getMetaInfo() {
588  0 return metaInfo;
589    }
590   
 
591  0 toggle public void setMetaInfo(MetaInfo metaInfo) {
592  0 this.metaInfo = metaInfo;
593    }
594   
595    /**
596    * Unique identifier for a learning unit type. Once set at create time, this field may not be updated.
597    */
 
598  0 toggle public String getType() {
599  0 return type;
600    }
601   
 
602  0 toggle public void setType(String type) {
603  0 this.type = type;
604    }
605   
606    /**
607    * The current status of the course. The values for this field are constrained to those in the luState enumeration. A separate setup operation does not exist for retrieval of the meta data around this value. This field may not be updated through updating this structure and must instead be updated through a dedicated operation.
608    */
 
609  0 toggle public String getState() {
610  0 return state;
611    }
612   
 
613  0 toggle public void setState(String state) {
614  0 this.state = state;
615    }
616   
617    /**
618    * Unique identifier for a Course. This is optional, due to the identifier being set at the time of creation. Once the Course has been created, this should be seen as required.
619    */
 
620  0 toggle public String getId() {
621  0 return id;
622    }
623   
 
624  0 toggle public void setId(String id) {
625  0 this.id = id;
626    }
627   
 
628  0 toggle public VersionInfo getVersionInfo() {
629  0 return versionInfo;
630    }
631   
 
632  0 toggle public void setVersionInfo(VersionInfo versionInfo) {
633  0 this.versionInfo = versionInfo;
634    }
635    }