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