Clover Coverage Report - Kuali Student 1.2-M5-SNAPSHOT (Aggregated)
Coverage timestamp: Mon Aug 29 2011 05:04:27 EDT
../../../../../../img/srcFileCovDistChart10.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 2 99.1% 0.990566
 
  (15)
 
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  48 toggle public String getCode() {
178  48 return code;
179    }
180   
 
181  63 toggle public void setCode(String code) {
182  63 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  97 toggle public String getCourseNumberSuffix() {
189  97 return courseNumberSuffix;
190    }
191   
 
192  61 toggle public void setCourseNumberSuffix(String courseNumberSuffix) {
193  61 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  74 toggle public String getLevel() {
203  74 return level;
204    }
205   
 
206  62 toggle public void setLevel(String level) {
207  62 this.level = level;
208    }
209   
210    /**
211    * Abbreviated name of the Course
212    */
 
213  48 toggle public String getCourseTitle() {
214  48 return courseTitle;
215    }
216   
 
217  61 toggle public void setCourseTitle(String courseTitle) {
218  61 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  47 toggle public String getTranscriptTitle() {
225  47 return transcriptTitle;
226    }
227   
 
228  61 toggle public void setTranscriptTitle(String transcriptTitle) {
229  61 this.transcriptTitle = transcriptTitle;
230    }
231   
232    /**
233    * Narrative description of the Course.
234    */
 
235  48 toggle public RichTextInfo getDescr() {
236  48 return descr;
237    }
238   
 
239  63 toggle public void setDescr(RichTextInfo descr) {
240  63 this.descr = descr;
241    }
242   
243    /**
244    *
245    */
 
246  95 toggle public List<FormatInfo> getFormats() {
247  95 if (formats == null) {
248  15 formats = new ArrayList<FormatInfo>(0);
249    }
250  95 return formats;
251    }
252   
 
253  17 toggle public void setFormats(List<FormatInfo> formats) {
254  17 this.formats = formats;
255    }
256   
257    /**
258    * Terms in which this Course is typically offered.
259    */
 
260  50 toggle public List<String> getTermsOffered() {
261  50 if (termsOffered == null) {
262  1 termsOffered = new ArrayList<String>(0);
263    }
264  50 return termsOffered;
265    }
266   
 
267  61 toggle public void setTermsOffered(List<String> termsOffered) {
268  61 this.termsOffered = termsOffered;
269    }
270   
271    /**
272    * The standard duration of the Course.
273    */
 
274  47 toggle public TimeAmountInfo getDuration() {
275  47 return duration;
276    }
277   
 
278  61 toggle public void setDuration(TimeAmountInfo duration) {
279  61 this.duration = duration;
280    }
281   
282    /**
283    *
284    */
 
285  54 toggle public List<CourseJointInfo> getJoints() {
286  54 if (joints == null) {
287  27 joints = new ArrayList<CourseJointInfo>(0);
288    }
289  54 return joints;
290    }
291   
 
292  0 toggle public void setJoints(List<CourseJointInfo> joints) {
293  0 this.joints = joints;
294    }
295   
296    /**
297    *
298    */
 
299  56 toggle public List<CourseCrossListingInfo> getCrossListings() {
300  56 if (crossListings == null) {
301  16 crossListings = new ArrayList<CourseCrossListingInfo>(0);
302    }
303  56 return crossListings;
304    }
305   
 
306  46 toggle public void setCrossListings(List<CourseCrossListingInfo> crossListings) {
307  46 this.crossListings = crossListings;
308    }
309   
310    /**
311    *
312    */
 
313  54 toggle public List<CourseVariationInfo> getVariations() {
314  54 if (variations == null) {
315  1 variations = new ArrayList<CourseVariationInfo>(0);
316    }
317  54 return variations;
318    }
319   
 
320  61 toggle public void setVariations(List<CourseVariationInfo> variations) {
321  61 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  118 toggle public String getSubjectArea() {
328  118 return subjectArea;
329    }
330   
 
331  62 toggle public void setSubjectArea(String subjectArea) {
332  62 this.subjectArea = subjectArea;
333    }
334   
335    /**
336    * Places where this course might be offered
337    */
 
338  48 toggle public List<String> getCampusLocations() {
339  48 if (campusLocations == null) {
340  1 campusLocations = new ArrayList<String>(0);
341    }
342  48 return campusLocations;
343    }
344   
 
345  61 toggle public void setCampusLocations(List<String> campusLocations) {
346  61 this.campusLocations = campusLocations;
347    }
348   
349    /**
350    * The expected level of out of class time commitment between the student and the course.
351    */
 
352  46 toggle public AmountInfo getOutOfClassHours() {
353  46 return outOfClassHours;
354    }
355   
 
356  61 toggle public void setOutOfClassHours(AmountInfo outOfClassHours) {
357  61 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  47 toggle public CluInstructorInfo getPrimaryInstructor() {
364  47 return primaryInstructor;
365    }
366   
 
367  61 toggle public void setPrimaryInstructor(CluInstructorInfo primaryInstructor) {
368  61 this.primaryInstructor = primaryInstructor;
369    }
370   
371    /**
372    * Instructors associated with this course.
373    */
 
374  46 toggle public List<CluInstructorInfo> getInstructors() {
375  46 if (instructors == null) {
376  1 instructors = new ArrayList<CluInstructorInfo>(0);
377    }
378  46 return instructors;
379    }
380   
 
381  106 toggle public void setInstructors(List<CluInstructorInfo> instructors) {
382  106 this.instructors = instructors;
383    }
384   
385   
 
386  92 toggle public List<String> getUnitsDeployment() {
387  92 if(unitsDeployment == null){
388  15 unitsDeployment = new ArrayList<String>(0);
389    }
390  92 return unitsDeployment;
391    }
392   
393    /**
394    * Narrative description of overall course fee justification.
395    */
 
396  49 toggle public RichTextInfo getFeeJustification() {
397  49 return feeJustification;
398   
399    }
400   
401   
 
402  61 toggle public void setUnitsDeployment(List<String> unitsDeployment) {
403  61 this.unitsDeployment = unitsDeployment;
404    }
405   
 
406  61 toggle public void setFeeJustification(RichTextInfo feeJustification) {
407  61 this.feeJustification = feeJustification;
408   
409    }
410   
 
411  112 toggle public List<String> getUnitsContentOwner() {
412  112 if(unitsContentOwner == null){
413  15 unitsContentOwner = new ArrayList<String>(0);
414    }
415  112 return unitsContentOwner;
416    }
417   
418    /**
419    * Fees information associated with this Course.
420    */
 
421  73 toggle public List<CourseFeeInfo> getFees() {
422  73 if (fees == null) {
423  1 fees = new ArrayList<CourseFeeInfo>(0);
424    }
425  73 return fees;
426   
427    }
428   
 
429  61 toggle public void setUnitsContentOwner(List<String> unitsContentOwner) {
430  61 this.unitsContentOwner = unitsContentOwner;
431    }
432   
 
433  61 toggle public void setFees(List<CourseFeeInfo> fees) {
434  61 this.fees = fees;
435    }
436   
437    /**
438    * Revenue information associated with this Course.
439    */
 
440  62 toggle public List<CourseRevenueInfo> getRevenues() {
441  62 if (revenues == null) {
442  1 revenues = new ArrayList<CourseRevenueInfo>(0);
443    }
444  62 return revenues;
445    }
446   
 
447  64 toggle public void setRevenues(List<CourseRevenueInfo> revenues) {
448  64 this.revenues = revenues;
449    }
450   
451    /**
452    * Expenditure information associated with this Course.
453    */
 
454  204 toggle public CourseExpenditureInfo getExpenditure() {
455  204 return expenditure;
456    }
457   
 
458  31 toggle public void setExpenditure(CourseExpenditureInfo expenditure) {
459  31 this.expenditure = expenditure;
460    }
461   
462    /**
463    * Learning Objectives associated with this Course.
464    */
 
465  74 toggle public List<LoDisplayInfo> getCourseSpecificLOs() {
466  74 if (courseSpecificLOs == null) {
467  15 courseSpecificLOs = new ArrayList<LoDisplayInfo>(0);
468    }
469  74 return courseSpecificLOs;
470    }
471   
 
472  17 toggle public void setCourseSpecificLOs(List<LoDisplayInfo> courseSpecificLOs) {
473  17 this.courseSpecificLOs = courseSpecificLOs;
474    }
475   
476    /**
477    * Grading opitons available for the course
478    */
 
479  102 toggle public List<String> getGradingOptions() {
480  102 if (gradingOptions == null) {
481  1 gradingOptions = new ArrayList<String>(0);
482    }
483  102 return gradingOptions;
484    }
485   
 
486  30 toggle public void setGradingOptions(List<String> gradingOptions) {
487  30 this.gradingOptions = gradingOptions;
488    }
489   
490    /**
491    * Credit outcomes from taking the course
492    */
 
493  166 toggle public List<ResultComponentInfo> getCreditOptions() {
494  166 if (creditOptions == null) {
495  1 creditOptions = new ArrayList<ResultComponentInfo>(0);
496    }
497  166 return creditOptions;
498    }
499   
 
500  31 toggle public void setCreditOptions(List<ResultComponentInfo> creditOptions) {
501  31 this.creditOptions = creditOptions;
502    }
503   
504    /**
505    * Flag to indicate the course as a special topics course
506    */
 
507  50 toggle public boolean isSpecialTopicsCourse() {
508  50 return specialTopicsCourse;
509    }
510   
 
511  67 toggle public void setSpecialTopicsCourse(boolean specialTopicsCourse) {
512  67 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  50 toggle public boolean isPilotCourse() {
519  50 return pilotCourse;
520    }
521   
 
522  67 toggle public void setPilotCourse(boolean pilotCourse) {
523  67 this.pilotCourse = pilotCourse;
524    }
525   
526    /**
527    * The first academic time period that this Course would be effective.
528    */
 
529  102 toggle public String getStartTerm() {
530  102 return startTerm;
531    }
532   
 
533  69 toggle public void setStartTerm(String startTerm) {
534  69 this.startTerm = startTerm;
535    }
536   
537    /**
538    * The last academic time period that this Course would be effective.
539    */
 
540  103 toggle public String getEndTerm() {
541  103 return endTerm;
542    }
543   
 
544  69 toggle public void setEndTerm(String endTerm) {
545  69 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  46 toggle public Date getEffectiveDate() {
552  46 return effectiveDate;
553    }
554   
 
555  78 toggle public void setEffectiveDate(Date effectiveDate) {
556  78 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  46 toggle public Date getExpirationDate() {
563  46 return expirationDate;
564    }
565   
 
566  78 toggle public void setExpirationDate(Date expirationDate) {
567  78 this.expirationDate = expirationDate;
568    }
569   
570    /**
571    * List of key/value pairs, typically used for dynamic attributes.
572    */
 
573  117 toggle public Map<String, String> getAttributes() {
574  117 if (attributes == null) {
575  1 attributes = new HashMap<String, String>();
576    }
577  117 return attributes;
578    }
579   
 
580  63 toggle public void setAttributes(Map<String, String> attributes) {
581  63 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  48 toggle public MetaInfo getMetaInfo() {
588  48 return metaInfo;
589    }
590   
 
591  45 toggle public void setMetaInfo(MetaInfo metaInfo) {
592  45 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  25 toggle public String getType() {
599  25 return type;
600    }
601   
 
602  61 toggle public void setType(String type) {
603  61 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  442 toggle public String getState() {
610  442 return state;
611    }
612   
 
613  63 toggle public void setState(String state) {
614  63 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  161 toggle public String getId() {
621  161 return id;
622    }
623   
 
624  75 toggle public void setId(String id) {
625  75 this.id = id;
626    }
627   
 
628  70 toggle public VersionInfo getVersionInfo() {
629  70 return versionInfo;
630    }
631   
 
632  61 toggle public void setVersionInfo(VersionInfo versionInfo) {
633  61 this.versionInfo = versionInfo;
634    }
635    }