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.HashMap;
21  import java.util.List;
22  import java.util.Map;
23  
24  import javax.xml.bind.annotation.XmlAccessType;
25  import javax.xml.bind.annotation.XmlAccessorType;
26  import javax.xml.bind.annotation.XmlAttribute;
27  import javax.xml.bind.annotation.XmlElement;
28  import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
29  
30  import org.kuali.student.core.dto.HasAttributes;
31  import org.kuali.student.core.dto.Idable;
32  import org.kuali.student.core.dto.MetaInfo;
33  import org.kuali.student.core.dto.RichTextInfo;
34  import org.kuali.student.core.versionmanagement.dto.VersionInfo;
35  import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
36  import org.kuali.student.lum.course.dto.LoDisplayInfo;
37  import org.kuali.student.lum.lu.dto.AdminOrgInfo;
38  import org.kuali.student.lum.program.dto.assembly.ProgramAtpAssembly;
39  import org.kuali.student.lum.program.dto.assembly.ProgramBasicOrgAssembly;
40  import org.kuali.student.lum.program.dto.assembly.ProgramCodeAssembly;
41  import org.kuali.student.lum.program.dto.assembly.ProgramCommonAssembly;
42  import org.kuali.student.lum.program.dto.assembly.ProgramIdentifierAssembly;
43  import org.kuali.student.lum.program.dto.assembly.ProgramRequirementAssembly;
44  
45  /**
46   * Detailed information about a single credential program, e.g. Baccalaureate, Master, Doctoral, Graduate Certificate, Undergraduate Certificate
47  .
48   *
49   * @Author KSContractMojo
50   * @Author Li Pan
51   * @Since Wed Jun 30 14:55:47 PDT 2010
52   * @See <a href="https://test.kuali.org/confluence/display/KULSTU/credentialProgramInfo+Structure">CredentialProgramInfo</>
53   *
54   */
55  @XmlAccessorType(XmlAccessType.FIELD)
56  public class CredentialProgramInfo implements Serializable, Idable, HasAttributes, ProgramCommonAssembly, ProgramIdentifierAssembly, ProgramAtpAssembly,
57          ProgramCodeAssembly, ProgramBasicOrgAssembly, ProgramRequirementAssembly {
58  
59      private static final long serialVersionUID = 1L;
60  
61      @XmlElement
62      private String shortTitle;
63  
64      @XmlElement
65      private String longTitle;
66      
67      @XmlElement
68      private String transcriptTitle;
69  
70      @XmlElement 
71      private String programLevel;
72      
73      @XmlElement
74      private String code;
75      
76      @XmlElement
77      private String universityClassification;
78  
79      @XmlElement
80      private AdminOrgInfo institution;
81      
82      @XmlElement
83      private List<String> resultOptions;
84      
85      @XmlElement
86      private String startTerm;
87  
88      @XmlElement
89      private String endTerm;
90  
91      @XmlElement
92      private String endProgramEntryTerm;
93  
94      @XmlElement
95      private List<String> divisionsContentOwner;
96      
97      @XmlElement
98      private List<String> divisionsStudentOversight;
99  
100     @XmlElement
101     private List<String> unitsContentOwner;
102     
103     @XmlElement
104     private List<String> unitsStudentOversight;
105 
106     @XmlElement
107     private RichTextInfo descr;
108     
109     @XmlElement
110     private List<LoDisplayInfo> learningObjectives;
111     
112     @XmlElement
113     private List<String> coreProgramIds;
114 
115     @XmlElement
116     private List<String> programRequirements;
117 
118     @XmlElement
119     @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
120     private Map<String, String> attributes;
121 
122     @XmlElement
123     private MetaInfo metaInfo;
124 
125     @XmlElement
126     private VersionInfo versionInfo;
127 
128     @XmlAttribute
129     private String credentialProgramType;
130 
131     @XmlAttribute
132     private String state;
133 
134     @XmlAttribute
135     private String id;
136     
137     public List<String> getCoreProgramIds() {
138         return coreProgramIds;
139     }
140 
141     public void setCoreProgramIds(List<String> coreProgramIds) {
142         this.coreProgramIds = coreProgramIds;
143     }
144 
145     /**
146      * Credential Program Requirements.
147      */
148     public List<String> getProgramRequirements() {
149         if (programRequirements == null) {
150             programRequirements = new ArrayList<String>(0);
151         }
152         return programRequirements;
153     }
154 
155     public void setProgramRequirements(List<String> programRequirements) {
156         this.programRequirements = programRequirements;
157     }
158 
159     /**
160      * List of key/value pairs, typically used for dynamic attributes.
161      */
162     @Override
163     public Map<String, String> getAttributes() {
164         if (attributes == null) {
165             attributes = new HashMap<String, String>();
166         }
167         return attributes;
168     }
169 
170     @Override
171     public void setAttributes(Map<String, String> attributes) {
172         this.attributes = attributes;
173     }
174 
175     /**
176      * 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.
177      */
178     public MetaInfo getMetaInfo() {
179         return metaInfo;
180     }
181 
182     public void setMetaInfo(MetaInfo metaInfo) {
183         this.metaInfo = metaInfo;
184     }
185     
186     
187     public VersionInfo getVersionInfo() {
188 		return versionInfo;
189 	}
190 
191 	public void setVersionInfo(VersionInfo versionInfo) {
192 		this.versionInfo = versionInfo;
193 	}
194 
195 	/**
196      * Unique identifier for a learning unit type. Once set at create time, this field may not be updated.
197      */
198     public String getCredentialProgramType() {
199         return credentialProgramType;
200     }
201 
202     public void setCredentialProgramType(String credentialProgramType) {
203         this.credentialProgramType = credentialProgramType;
204     }
205 
206     /**
207      * The current status of the credential 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.
208      */
209     public String getState() {
210         return state;
211     }
212 
213     public void setState(String state) {
214         this.state = state;
215     }
216 
217     /**
218      * Unique identifier for an Credential 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.
219      */
220     @Override
221     public String getId() {
222         return id;
223     }
224 
225     @Override
226     public void setId(String id) {
227         this.id = id;
228     }
229 
230     /**
231      * Abbreviated name of the Credential program   
232      */
233     public String getShortTitle() {
234         return shortTitle;
235     }
236 
237     public void setShortTitle(String shortTitle) {
238         this.shortTitle = shortTitle;
239     }
240 
241     /**
242      * Full name of the Credential Program  
243      */
244     public String getLongTitle() {
245         return longTitle;
246     }
247 
248     public void setLongTitle(String longTitle) {
249         this.longTitle = longTitle;
250     }
251 
252     /*
253      * Information related to the official identification of the credential program, typically in human readable form. Used to officially reference or publish.  
254      */
255     public String getTranscriptTitle() {
256         return transcriptTitle;
257     }
258 
259     public void setTranscriptTitle(String transcriptTitle) {
260         this.transcriptTitle = transcriptTitle;
261     }
262 
263     @Override
264     public String getDiplomaTitle() {
265         return null;  //To change body of implemented methods use File | Settings | File Templates.
266     }
267 
268     @Override
269     public void setDiplomaTitle(String diplomaTitle) {
270         //To change body of implemented methods use File | Settings | File Templates.
271     }
272 
273     /**
274      * A code that indicates whether this is Graduate, Undergraduage etc    
275      */
276     public String getProgramLevel() {
277         return programLevel;
278     }
279 
280     public void setProgramLevel(String programLevel) {
281         this.programLevel = programLevel;
282     }
283 
284     /**
285      * The composite string that is used to officially reference or publish the Credential program. 
286      */
287     public String getCode() {
288         return code;
289     }
290 
291     public void setCode(String code) {
292         this.code = code;
293     }
294 
295     /**
296      * University specific classification   
297      */
298     public String getUniversityClassification() {
299         return universityClassification;
300     }
301 
302     public void setUniversityClassification(String universityClassification) {
303         this.universityClassification = universityClassification;
304     }
305 
306     /**
307      * Institution owning the program.  
308      */
309     public AdminOrgInfo getInstitution() {
310         return institution;
311     }
312 
313     public void setInstitution(AdminOrgInfo institution) {
314         this.institution = institution;
315     }
316 
317     /**
318      * Result outcomes from taking the Credential program.  
319      */
320     public List<String> getResultOptions() {
321         return resultOptions;
322     }
323 
324     public void setResultOptions(List<String> resultOptions) {
325         this.resultOptions = resultOptions;
326     }
327 
328     /**
329      * The first academic time period that this credential program would be effective. This may not reflect the first "real" academic time period for this program. 
330      */
331     public String getStartTerm() {
332         return startTerm;
333     }
334 
335     public void setStartTerm(String startTerm) {
336         this.startTerm = startTerm;
337     }
338     
339     /**
340      * The last academic time period that this credential program would be effective.   
341      */
342     public String getEndTerm() {
343         return endTerm;
344     }
345 
346     public void setEndTerm(String endTerm) {
347         this.endTerm = endTerm;
348     }
349     
350     /**
351      * The last academic time period that this credential program would be available for enrollment. This may not reflect the last "real" academic time period for this program.    
352      */
353     public String getEndProgramEntryTerm() {
354         return endProgramEntryTerm;
355     }
356 
357     public void setEndProgramEntryTerm(String endProgramEntryTerm) {
358         this.endProgramEntryTerm = endProgramEntryTerm;
359     }
360 
361     /**
362      * Divisions responsible to make changes to the credential program  
363      */
364     public List<String> getDivisionsContentOwner() {
365         return divisionsContentOwner;
366     }
367 
368     public void setDivisionsContentOwner(List<String> divisionsContentOwner) {
369         this.divisionsContentOwner = divisionsContentOwner;
370     }
371 
372     /**
373      * Divisions responsible for student exceptions to the credential program.  
374      */
375     public List<String> getDivisionsStudentOversight() {
376         return divisionsStudentOversight;
377     }
378 
379     public void setDivisionsStudentOversight(List<String> divisionsStudentOversight) {
380         this.divisionsStudentOversight = divisionsStudentOversight;
381     }
382 
383     /*
384      * Unit responsible to make changes to the credential program   
385      */
386     public List<String> getUnitsContentOwner() {
387         return unitsContentOwner;
388     }
389 
390     public void setUnitsContentOwner(List<String> unitsContentOwner) {
391         this.unitsContentOwner = unitsContentOwner;
392     }
393 
394     /**
395      * Unit responsible for student exceptions to the credential program.   
396      */
397     public List<String> getUnitsStudentOversight() {
398         return unitsStudentOversight;
399     }
400 
401     public void setUnitsStudentOversight(List<String> unitsStudentOversight) {
402         this.unitsStudentOversight = unitsStudentOversight;
403     }
404 
405     /**
406      * Narrative description of the Credential program. 
407      */
408     public RichTextInfo getDescr() {
409         return descr;
410     }
411 
412     public void setDescr(RichTextInfo descr) {
413         this.descr = descr;
414     }
415 
416     /**
417      * Learning Objectives associated with this credential program. 
418      */
419     public List<LoDisplayInfo> getLearningObjectives() {
420         return learningObjectives;
421     }
422 
423     public void setLearningObjectives(List<LoDisplayInfo> learningObjectives) {
424         this.learningObjectives = learningObjectives;
425     }
426 
427     @Override
428     public String getType() {
429         return credentialProgramType;
430     }
431 
432     @Override
433     public void setType(String type) {
434         this.credentialProgramType = type;
435     }
436 
437     @Override
438     public String getCip2000Code() {
439         return null;  //To change body of implemented methods use File | Settings | File Templates.
440     }
441 
442     @Override
443     public void setCip2000Code(String cip2000Code) {
444         //To change body of implemented methods use File | Settings | File Templates.
445     }
446 
447     @Override
448     public String getCip2010Code() {
449         return null;  //To change body of implemented methods use File | Settings | File Templates.
450     }
451 
452     @Override
453     public void setCip2010Code(String cip2010Code) {
454         //To change body of implemented methods use File | Settings | File Templates.
455     }
456 
457     @Override
458     public String getHegisCode() {
459         return null;  //To change body of implemented methods use File | Settings | File Templates.
460     }
461 
462     @Override
463     public void setHegisCode(String hegisCode) {
464         //To change body of implemented methods use File | Settings | File Templates.
465     }
466 
467     @Override
468     public String getSelectiveEnrollmentCode() {
469         return null;  //To change body of implemented methods use File | Settings | File Templates.
470     }
471 
472     @Override
473     public void setSelectiveEnrollmentCode(String selectiveEnrollmentCode) {
474         //To change body of implemented methods use File | Settings | File Templates.
475     }
476 }