View Javadoc

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.program.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.core.dto.HasAttributes;
32  import org.kuali.student.core.dto.HasTypeState;
33  import org.kuali.student.core.dto.Idable;
34  import org.kuali.student.core.dto.MetaInfo;
35  import org.kuali.student.core.dto.RichTextInfo;
36  import org.kuali.student.core.dto.TimeAmountInfo;
37  import org.kuali.student.core.versionmanagement.dto.VersionInfo;
38  import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
39  import org.kuali.student.lum.course.dto.LoDisplayInfo;
40  import org.kuali.student.lum.lu.dto.AccreditationInfo;
41  import org.kuali.student.lum.lu.dto.CluInstructorInfo;
42  import org.kuali.student.lum.program.dto.assembly.ProgramAtpAssembly;
43  import org.kuali.student.lum.program.dto.assembly.ProgramCodeAssembly;
44  import org.kuali.student.lum.program.dto.assembly.ProgramCommonAssembly;
45  import org.kuali.student.lum.program.dto.assembly.ProgramCredentialAssembly;
46  import org.kuali.student.lum.program.dto.assembly.ProgramFullOrgAssembly;
47  import org.kuali.student.lum.program.dto.assembly.ProgramIdentifierAssembly;
48  import org.kuali.student.lum.program.dto.assembly.ProgramPublicationAssembly;
49  import org.kuali.student.lum.program.dto.assembly.ProgramRequirementAssembly;
50  
51  /**
52   * Detailed information about a single major discipline program
53   *
54   * @Author KSContractMojo
55   * @Author Li Pan
56   * @Since Wed Jun 30 14:55:53 PDT 2010
57   * @See <a href="https://test.kuali.org/confluence/display/KULSTU/majorDisciplineInfo+Structure">MajorDisciplineInfo</>
58   *
59   */
60  @XmlAccessorType(XmlAccessType.FIELD)
61  public class MajorDisciplineInfo implements Serializable, Idable, HasTypeState, HasAttributes,
62          ProgramCommonAssembly, ProgramIdentifierAssembly, ProgramFullOrgAssembly, ProgramAtpAssembly,
63          ProgramCodeAssembly, ProgramPublicationAssembly, ProgramCredentialAssembly, ProgramRequirementAssembly {
64  
65      private static final long serialVersionUID = 1L;
66  
67      @XmlElement
68      private String intensity;
69  
70      @XmlElement
71      private String referenceURL;
72  
73      @XmlElement
74      private List<CluInstructorInfo> publishedInstructors;
75  
76      @XmlElement
77      private String credentialProgramId;
78  
79      @XmlElement
80      private List<ProgramVariationInfo> variations;
81  
82      @XmlElement
83      private String code;
84  
85      @XmlElement
86      private String cip2000Code;
87  
88      @XmlElement
89      private String cip2010Code;
90  
91      @XmlElement
92      private String hegisCode;
93  
94      @XmlElement
95      private String universityClassification;
96  
97      @XmlElement
98      private String selectiveEnrollmentCode;
99          
100     @XmlElement
101     private List<String> resultOptions;
102 
103     @XmlElement
104     private TimeAmountInfo stdDuration;
105 
106     @XmlElement
107     private String startTerm;
108 
109     @XmlElement
110     private String endTerm;
111 
112     @XmlElement
113     private String endProgramEntryTerm;
114 
115     @XmlElement
116     private String nextReviewPeriod;
117     
118     @XmlElement
119     private Date effectiveDate;
120 
121     @XmlElement
122     private String shortTitle;
123 
124     @XmlElement
125     private String longTitle;
126 
127     @XmlElement
128     private String transcriptTitle;
129 
130     @XmlElement
131     private String diplomaTitle;
132 
133     @XmlElement
134     private RichTextInfo descr;
135 
136     @XmlElement
137     private RichTextInfo catalogDescr;
138 
139     @XmlElement
140     private List<String> catalogPublicationTargets;
141     
142     @XmlElement
143     private List<LoDisplayInfo> learningObjectives;
144 
145     @XmlElement
146     private List<String> campusLocations;
147 
148     @XmlElement
149     private CoreProgramInfo orgCoreProgram;
150 
151     @XmlElement
152     private List<String> programRequirements;
153 
154     @XmlElement
155     private List<AccreditationInfo> accreditingAgencies;    
156 
157     @XmlElement
158     private List<String> divisionsContentOwner;
159     
160     @XmlElement
161     private List<String> divisionsStudentOversight;
162 
163     @XmlElement
164     private List<String> divisionsDeployment;
165 
166     @XmlElement
167     private List<String> divisionsFinancialResources;
168 
169     @XmlElement
170     private List<String> divisionsFinancialControl;
171 
172     @XmlElement
173     private List<String> unitsContentOwner;
174     
175     @XmlElement
176     private List<String> unitsStudentOversight;
177 
178     @XmlElement
179     private List<String> unitsDeployment;
180 
181     @XmlElement
182     private List<String> unitsFinancialResources;
183 
184     @XmlElement
185     private List<String> unitsFinancialControl;
186 
187     @XmlElement
188     @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
189     private Map<String, String> attributes;
190 
191     @XmlElement
192     private MetaInfo metaInfo;
193     
194     @XmlElement
195     private VersionInfo versionInfo;    
196 
197     @XmlAttribute
198     private String type;
199 
200     @XmlAttribute
201     private String state;
202 
203     @XmlAttribute
204     private String id;
205 
206     /**
207      * Indicates if the program is full time, part time, both etc
208      */
209     public String getIntensity() {
210         return intensity;
211     }
212 
213     public void setIntensity(String intensity) {
214         this.intensity = intensity;
215     }
216 
217     /**
218      * An URL for additional information about the Major.
219      */
220     public String getReferenceURL() {
221         return referenceURL;
222     }
223 
224     public void setReferenceURL(String referenceURL) {
225         this.referenceURL = referenceURL;
226     }
227 
228     /**
229      * Instructors associated with this Major. This may not be an exhaustive list, and instead may only be used to indicate potential instructors in publication.
230      */
231     public List<CluInstructorInfo> getPublishedInstructors() {
232         if (publishedInstructors == null) {
233             publishedInstructors = new ArrayList<CluInstructorInfo>(0);
234         }
235         return publishedInstructors;
236     }
237 
238     public void setPublishedInstructors(List<CluInstructorInfo> publishedInstructors) {
239         this.publishedInstructors = publishedInstructors;
240     }
241 
242     /**
243      * Identifier of the credential program under which the major belongs
244      */
245     public String getCredentialProgramId() {
246         return credentialProgramId;
247     }
248 
249     public void setCredentialProgramId(String credentialProgramId) {
250         this.credentialProgramId = credentialProgramId;
251     }
252 
253     /**
254      * Program variations for the Major
255      */
256     public List<ProgramVariationInfo> getVariations() {
257         if (variations == null) {
258             variations = new ArrayList<ProgramVariationInfo>(0);
259         }
260         return variations;
261     }
262 
263     public void setVariations(List<ProgramVariationInfo> variations) {
264         this.variations = variations;
265     }
266 
267     /**
268      * The composite string that is used to officially reference or publish the Major. 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.
269      */
270     public String getCode() {
271         return code;
272     }
273 
274     public void setCode(String code) {
275         this.code = code;
276     }
277 
278     /**
279      * CIP 2000 Code for the Program
280      */
281     public String getCip2000Code() {
282         return cip2000Code;
283     }
284 
285     public void setCip2000Code(String cip2000Code) {
286         this.cip2000Code = cip2000Code;
287     }
288 
289     /**
290      * CIP 2010 Code for the Program
291      */
292     public String getCip2010Code() {
293         return cip2010Code;
294     }
295 
296     public void setCip2010Code(String cip2010Code) {
297         this.cip2010Code = cip2010Code;
298     }
299 
300     /**
301      * HEGIS Code for the Program
302      */
303     public String getHegisCode() {
304         return hegisCode;
305     }
306 
307     public void setHegisCode(String hegisCode) {
308         this.hegisCode = hegisCode;
309     }
310 
311     /**
312      * University specific classification e.g Major(Bacc), Specialization
313      */
314     public String getUniversityClassification() {
315         return universityClassification;
316     }
317 
318     public void setUniversityClassification(String universityClassification) {
319         this.universityClassification = universityClassification;
320     }
321 
322     /**
323      * Specifies if the Major is Selective Major, Limited Enrollment program or Selective Admissions
324      */
325     public String getSelectiveEnrollmentCode() {
326         return selectiveEnrollmentCode;
327     }
328 
329     public void setSelectiveEnrollmentCode(String selectiveEnrollmentCode) {
330         this.selectiveEnrollmentCode = selectiveEnrollmentCode;
331     }
332     
333     /**
334      * The first academic time period that this clu would be effective. This may not reflect the first "real" academic time period for this Major.
335      */
336     public String getStartTerm() {
337         return startTerm;
338     }
339 
340     public void setStartTerm(String startTerm) {
341         this.startTerm = startTerm;
342     }
343 
344     /**
345      * The last academic time period that this Major would be effective.
346      */
347     public String getEndTerm() {
348         return endTerm;
349     }
350 
351     public void setEndTerm(String endTerm) {
352         this.endTerm = endTerm;
353     }
354     
355     public String getNextReviewPeriod() {
356         return nextReviewPeriod;
357     }
358 
359     public void setNextReviewPeriod(String nextReviewPeriod) {
360         this.nextReviewPeriod = nextReviewPeriod;
361     }
362 
363     /**
364      * 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.
365      */
366     public Date getEffectiveDate() {
367         return effectiveDate;
368     }
369 
370     public void setEffectiveDate(Date effectiveDate) {
371         this.effectiveDate = effectiveDate;
372     }
373 
374     /**
375      * Abbreviated name of the Major Discipline
376      */
377     public String getShortTitle() {
378         return shortTitle;
379     }
380 
381     public void setShortTitle(String shortTitle) {
382         this.shortTitle = shortTitle;
383     }
384 
385     /**
386      * Full name of the Major Discipline
387      */
388     public String getLongTitle() {
389         return longTitle;
390     }
391 
392     public void setLongTitle(String longTitle) {
393         this.longTitle = longTitle;
394     }
395 
396     /**
397      * Information related to the official identification of the Major discipline, typically in human readable form. Used to officially reference or publish.
398      */
399     public String getTranscriptTitle() {
400         return transcriptTitle;
401     }
402 
403     public void setTranscriptTitle(String transcriptTitle) {
404         this.transcriptTitle = transcriptTitle;
405     }
406 
407     public String getDiplomaTitle() {
408         return diplomaTitle;
409     }
410 
411     public void setDiplomaTitle(String diplomaTitle) {
412         this.diplomaTitle = diplomaTitle;
413     }
414 
415     /**
416      * Narrative description of the Major.
417      */
418     public RichTextInfo getDescr() {
419         return descr;
420     }
421 
422     public void setDescr(RichTextInfo descr) {
423         this.descr = descr;
424     }
425 
426     /**
427      * Narrative description of the Major that will show up in Catalog
428      */
429     public RichTextInfo getCatalogDescr() {
430         return catalogDescr;
431     }
432 
433     public void setCatalogDescr(RichTextInfo catalogDescr) {
434         this.catalogDescr = catalogDescr;
435     }
436 
437     /**
438      * List of catalog targets where major information will be published.   
439      */
440     public List<String> getCatalogPublicationTargets() {
441         return catalogPublicationTargets;
442     }
443 
444     public void setCatalogPublicationTargets(List<String> catalogPublicationTargets) {
445         this.catalogPublicationTargets = catalogPublicationTargets;
446     }
447 
448     /**
449      * Learning Objectives associated with this Major.
450      */
451     public List<LoDisplayInfo> getLearningObjectives() {
452         if (learningObjectives == null) {
453             learningObjectives = new ArrayList<LoDisplayInfo>(0);
454         }
455         return learningObjectives;
456     }
457 
458     public void setLearningObjectives(List<LoDisplayInfo> learningObjectives) {
459         this.learningObjectives = learningObjectives;
460     }
461 
462     /**
463      * Places where this Major might be offered
464      */
465     public List<String> getCampusLocations() {
466         if (campusLocations == null) {
467             campusLocations = new ArrayList<String>(0);
468         }
469         return campusLocations;
470     }
471 
472     public void setCampusLocations(List<String> campusLocations) {
473         this.campusLocations = campusLocations;
474     }
475 
476     public CoreProgramInfo getOrgCoreProgram() {
477         return orgCoreProgram;
478     }
479 
480     public void setOrgCoreProgram(CoreProgramInfo orgCoreProgram) {
481         this.orgCoreProgram = orgCoreProgram;
482     }
483 
484     /**
485      * Major Discipline Program Requirements.
486      */
487     public List<String> getProgramRequirements() {
488         if (programRequirements == null) {
489             programRequirements = new ArrayList<String>(0);
490         }
491         return programRequirements;
492     }
493 
494     public List<String> getResultOptions() {
495         return resultOptions;
496     }
497 
498     public void setResultOptions(List<String> resultOptions) {
499         this.resultOptions = resultOptions;
500     }
501 
502     public TimeAmountInfo getStdDuration() {
503         return stdDuration;
504     }
505 
506     public void setStdDuration(TimeAmountInfo stdDuration) {
507         this.stdDuration = stdDuration;
508     }
509 
510     public String getEndProgramEntryTerm() {
511         return endProgramEntryTerm;
512     }
513 
514     public void setEndProgramEntryTerm(String endProgramEntryTerm) {
515         this.endProgramEntryTerm = endProgramEntryTerm;
516     }
517 
518     public List<AccreditationInfo> getAccreditingAgencies() {
519         return accreditingAgencies;
520     }
521 
522     public void setAccreditingAgencies(List<AccreditationInfo> accreditingAgencies) {
523         this.accreditingAgencies = accreditingAgencies;
524     }
525 
526     public void setProgramRequirements(List<String> programRequirements) {
527         this.programRequirements = programRequirements;
528     }
529     
530     public List<String> getDivisionsContentOwner() {
531         return divisionsContentOwner;
532     }
533 
534     public void setDivisionsContentOwner(List<String> divisionsContentOwner) {
535         this.divisionsContentOwner = divisionsContentOwner;
536     }
537 
538     public List<String> getDivisionsStudentOversight() {
539         return divisionsStudentOversight;
540     }
541 
542     public void setDivisionsStudentOversight(List<String> divisionsStudentOversight) {
543         this.divisionsStudentOversight = divisionsStudentOversight;
544     }
545 
546     public List<String> getDivisionsDeployment() {
547         return divisionsDeployment;
548     }
549 
550     public void setDivisionsDeployment(List<String> divisionsDeployment) {
551         this.divisionsDeployment = divisionsDeployment;
552     }
553 
554     public List<String> getDivisionsFinancialResources() {
555         return divisionsFinancialResources;
556     }
557 
558     public void setDivisionsFinancialResources(List<String> divisionsFinancialResources) {
559         this.divisionsFinancialResources = divisionsFinancialResources;
560     }
561 
562     public List<String> getDivisionsFinancialControl() {
563         return divisionsFinancialControl;
564     }
565 
566     public void setDivisionsFinancialControl(List<String> divisionsFinancialControl) {
567         this.divisionsFinancialControl = divisionsFinancialControl;
568     }
569 
570     public List<String> getUnitsContentOwner() {
571         return unitsContentOwner;
572     }
573 
574     public void setUnitsContentOwner(List<String> unitsContentOwner) {
575         this.unitsContentOwner = unitsContentOwner;
576     }
577 
578     public List<String> getUnitsStudentOversight() {
579         return unitsStudentOversight;
580     }
581 
582     public void setUnitsStudentOversight(List<String> unitsStudentOversight) {
583         this.unitsStudentOversight = unitsStudentOversight;
584     }
585 
586     public List<String> getUnitsDeployment() {
587         return unitsDeployment;
588     }
589 
590     public void setUnitsDeployment(List<String> unitsDeployment) {
591         this.unitsDeployment = unitsDeployment;
592     }
593 
594     public List<String> getUnitsFinancialResources() {
595         return unitsFinancialResources;
596     }
597 
598     public void setUnitsFinancialResources(List<String> unitsFinancialResources) {
599         this.unitsFinancialResources = unitsFinancialResources;
600     }
601 
602     public List<String> getUnitsFinancialControl() {
603         return unitsFinancialControl;
604     }
605 
606     public void setUnitsFinancialControl(List<String> unitsFinancialControl) {
607         this.unitsFinancialControl = unitsFinancialControl;
608     }
609 
610     /**
611      * List of key/value pairs, typically used for dynamic attributes.
612      */
613     @Override
614     public Map<String, String> getAttributes() {
615         if (attributes == null) {
616             attributes = new HashMap<String, String>();
617         }
618         return attributes;
619     }
620 
621     @Override
622     public void setAttributes(Map<String, String> attributes) {
623         this.attributes = attributes;
624     }
625 
626     /**
627      * 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.
628      */
629     public MetaInfo getMetaInfo() {
630         return metaInfo;
631     }
632 
633     public void setMetaInfo(MetaInfo metaInfo) {
634         this.metaInfo = metaInfo;
635     }
636         
637     /**
638      * Unique identifier for a learning unit type. Once set at create time, this field may not be updated.
639      */
640     @Override
641     public String getType() {
642         return type;
643     }
644 
645     @Override
646     public void setType(String type) {
647         this.type = type;
648     }
649 
650     /**
651      * The current status of the major program. 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.
652      */
653     @Override
654     public String getState() {
655         return state;
656     }
657 
658     @Override
659     public void setState(String state) {
660         this.state = state;
661     }
662 
663     /**
664      * Unique identifier for an Major Discipline Program. This is optional, due to the identifier being set at the time of creation. Once the Program has been created, this should be seen as required.
665      */
666     @Override
667     public String getId() {
668         return id;
669     }
670 
671     @Override
672     public void setId(String id) {
673         this.id = id;
674     }
675 
676     public VersionInfo getVersionInfo() {
677 		return versionInfo;
678 	}
679 
680 	public void setVersionInfo(VersionInfo versionInfo) {
681 		this.versionInfo = versionInfo;
682 	}    
683 }