001 /*
002 * Copyright 2009 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 1.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl1.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.student.lum.program.dto;
017
018 import java.io.Serializable;
019 import java.util.ArrayList;
020 import java.util.Date;
021 import java.util.HashMap;
022 import java.util.List;
023 import java.util.Map;
024
025 import javax.xml.bind.annotation.XmlAccessType;
026 import javax.xml.bind.annotation.XmlAccessorType;
027 import javax.xml.bind.annotation.XmlAttribute;
028 import javax.xml.bind.annotation.XmlElement;
029 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
030
031 import org.kuali.student.common.dto.HasAttributes;
032 import org.kuali.student.common.dto.HasTypeState;
033 import org.kuali.student.common.dto.Idable;
034 import org.kuali.student.common.dto.MetaInfo;
035 import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
036
037 /**
038 * Detailed information about a single minor program
039 *
040 * @Author KSContractMojo
041 * @Author Li Pan
042 * @Since Wed Jun 30 14:56:15 PDT 2010
043 * @See <a href="https://test.kuali.org/confluence/display/KULSTU/minorDisciplineInfo+Structure">MinorDisciplineInfo</>
044 *
045 */
046 @XmlAccessorType(XmlAccessType.FIELD)
047 public class MinorDisciplineInfo implements Serializable, Idable, HasTypeState, HasAttributes {
048
049 private static final long serialVersionUID = 1L;
050
051 @XmlElement
052 private String credentialProgramId;
053
054 @XmlElement
055 private List<String> programRequirements;
056
057 @XmlElement
058 @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
059 private Map<String, String> attributes;
060
061 @XmlElement
062 private MetaInfo metaInfo;
063
064 @XmlAttribute
065 private String type;
066
067 @XmlAttribute
068 private String state;
069
070 @XmlAttribute
071 private String id;
072
073 /**
074 * Identifier of the credential program under which the minor belongs
075 */
076 public String getCredentialProgramId() {
077 return credentialProgramId;
078 }
079
080 public void setCredentialProgramId(String credentialProgramId) {
081 this.credentialProgramId = credentialProgramId;
082 }
083
084 /**
085 * Minor Discipline Program Requirements.
086 */
087 public List<String> getProgramRequirements() {
088 if (programRequirements == null) {
089 programRequirements = new ArrayList<String>(0);
090 }
091 return programRequirements;
092 }
093
094 public void setProgramRequirements(List<String> programRequirements) {
095 this.programRequirements = programRequirements;
096 }
097
098 /**
099 * List of key/value pairs, typically used for dynamic attributes.
100 */
101 public Map<String, String> getAttributes() {
102 if (attributes == null) {
103 attributes = new HashMap<String, String>();
104 }
105 return attributes;
106 }
107
108 public void setAttributes(Map<String, String> attributes) {
109 this.attributes = attributes;
110 }
111
112 /**
113 * 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.
114 */
115 public MetaInfo getMetaInfo() {
116 return metaInfo;
117 }
118
119 public void setMetaInfo(MetaInfo metaInfo) {
120 this.metaInfo = metaInfo;
121 }
122
123 /**
124 * Unique identifier for a learning unit type. Once set at create time, this field may not be updated.
125 */
126 public String getType() {
127 return type;
128 }
129
130 public void setType(String type) {
131 this.type = type;
132 }
133
134 /**
135 * 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.
136 */
137 public String getState() {
138 return state;
139 }
140
141 public void setState(String state) {
142 this.state = state;
143 }
144
145 /**
146 * Unique identifier for an Minor Discipline. 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.
147 */
148 public String getId() {
149 return id;
150 }
151
152 public void setId(String id) {
153 this.id = id;
154 }
155 }