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.core.ws.binding.JaxbAttributeMapListAdapter;
36  
37  /**
38   * Detailed information about a single minor program
39   *
40   * @Author KSContractMojo
41   * @Author Li Pan
42   * @Since Wed Jun 30 14:56:15 PDT 2010
43   * @See <a href="https://test.kuali.org/confluence/display/KULSTU/minorDisciplineInfo+Structure">MinorDisciplineInfo</>
44   *
45   */
46  @XmlAccessorType(XmlAccessType.FIELD)
47  public class MinorDisciplineInfo implements Serializable, Idable, HasTypeState, HasAttributes {
48  
49      private static final long serialVersionUID = 1L;
50  
51      @XmlElement
52      private String credentialProgramId;
53  
54      @XmlElement
55      private List<String> programRequirements;
56  
57      @XmlElement
58      @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
59      private Map<String, String> attributes;
60  
61      @XmlElement
62      private MetaInfo metaInfo;
63  
64      @XmlAttribute
65      private String type;
66  
67      @XmlAttribute
68      private String state;
69  
70      @XmlAttribute
71      private String id;
72  
73      /**
74       * Identifier of the credential program under which the minor belongs
75       */
76      public String getCredentialProgramId() {
77          return credentialProgramId;
78      }
79  
80      public void setCredentialProgramId(String credentialProgramId) {
81          this.credentialProgramId = credentialProgramId;
82      }
83  
84      /**
85       * Minor Discipline Program Requirements.
86       */
87      public List<String> getProgramRequirements() {
88          if (programRequirements == null) {
89              programRequirements = new ArrayList<String>(0);
90          }
91          return programRequirements;
92      }
93  
94      public void setProgramRequirements(List<String> programRequirements) {
95          this.programRequirements = programRequirements;
96      }
97  
98      /**
99       * 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 }