View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation Licensed under the
3    * Educational Community License, Version 2.0 (the "License"); you may
4    * not use this file except in compliance with the License. You may
5    * obtain a copy of the License at
6    *
7    * http://www.osedu.org/licenses/ECL-2.0
8    *
9    * Unless required by applicable law or agreed to in writing,
10   * software distributed under the License is distributed on an "AS IS"
11   * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12   * or implied. See the License for the specific language governing
13   * permissions and limitations under the License.
14   */
15  
16  package org.kuali.student.core.atp.dto;
17  
18  import java.io.Serializable;
19  import java.util.Date;
20  import java.util.HashMap;
21  import java.util.Map;
22  
23  import javax.xml.bind.annotation.XmlAccessType;
24  import javax.xml.bind.annotation.XmlAccessorType;
25  import javax.xml.bind.annotation.XmlAttribute;
26  import javax.xml.bind.annotation.XmlElement;
27  import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
28  
29  import org.kuali.student.common.dto.HasAttributes;
30  import org.kuali.student.common.dto.HasTypeState;
31  import org.kuali.student.common.dto.Idable;
32  import org.kuali.student.common.dto.MetaInfo;
33  import org.kuali.student.common.dto.RichTextInfo;
34  import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
35  
36  /**
37   *Information about an academic time period.
38   */ 
39  @XmlAccessorType(XmlAccessType.FIELD)
40  public class AtpInfo implements Serializable, Idable, HasTypeState, HasAttributes {
41  
42      private static final long serialVersionUID = 1L;
43  
44      @XmlElement
45      private String name;
46  
47      @XmlElement
48      private RichTextInfo desc;
49  
50      @XmlElement
51      private Date startDate;
52  
53      @XmlElement
54      private Date endDate;
55  
56      @XmlElement
57      @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
58      private Map<String,String> attributes;
59  
60      @XmlElement
61      private MetaInfo metaInfo;
62  
63      @XmlAttribute
64      private String type;
65  
66      @XmlAttribute
67      private String state;
68  
69      @XmlAttribute(name="key")
70      private String id;
71  
72      /**
73       * Friendly name for the academic time period
74       */
75      public String getName() {
76          return name;
77      }
78  
79      public void setName(String name) {
80          this.name = name;
81      }
82  
83      /**
84       * Narrative description of an academic time period
85       */
86      public RichTextInfo getDesc() {
87          return desc;
88      }
89  
90      public void setDesc(RichTextInfo desc) {
91          this.desc = desc;
92      }
93  
94      /**
95       * Date and time the academic time period became effective. This does not provide a bound on date ranges or milestones associated with this time period, but instead indicates the time period proper. 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.
96       */
97      public Date getStartDate() {
98          return startDate;
99      }
100 
101     public void setStartDate(Date startDate) {
102         this.startDate = startDate;
103     }
104 
105     /**
106      * Date and time the academic time period expires. This does not provide a bound on date ranges or milestones associated with this time period, but instead indicates the time period proper. If specified, this must be greater than or equal to the effective date. If this field is not specified, then no expiration date has been currently defined and should automatically be considered greater than the effective date.
107      */
108     public Date getEndDate() {
109         return endDate;
110     }
111 
112     public void setEndDate(Date endDate) {
113         this.endDate = endDate;
114     }
115 
116     /**
117      * List of key/value pairs, typically used for dynamic attributes.
118      */
119     public Map<String,String> getAttributes() {
120         if (attributes == null) {
121             attributes = new HashMap<String,String>();
122         }
123         return attributes;
124     }
125 
126     public void setAttributes(Map<String,String> attributes) {
127         this.attributes = attributes;
128     }
129 
130     /**
131      * 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.
132      */
133     public MetaInfo getMetaInfo() {
134         return metaInfo;
135     }
136 
137     public void setMetaInfo(MetaInfo metaInfo) {
138         this.metaInfo = metaInfo;
139     }
140 
141     /**
142      * Unique identifier for an academic time period type.
143      */
144     public String getType() {
145         return type;
146     }
147 
148     public void setType(String type) {
149         this.type = type;
150     }
151 
152     /**
153      * The current status of the academic time period. The values for this field are constrained to those in the atpState enumeration. A separate setup operation does not exist for retrieval of the meta data around this value.
154      */
155     public String getState() {
156         return state;
157     }
158 
159     public void setState(String state) {
160         this.state = state;
161     }
162 
163     /**
164      * Unique identifier for an Academic Time Period (ATP).
165      */
166     public String getId() {
167         return id;
168     }
169 
170     public void setId(String id) {
171         this.id = id;
172     }
173 }