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.person.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.Idable;
33  import org.kuali.student.common.dto.MetaInfo;
34  import org.kuali.student.core.ws.binding.JaxbAttributeMapListAdapter;
35  
36  /**
37   *Detailed information about a single person.
38   */ 
39  @XmlAccessorType(XmlAccessType.FIELD)
40  public class PersonInfo implements Serializable, Idable, HasAttributes {
41  
42      private static final long serialVersionUID = 1L;
43  
44      @XmlElement
45      private List<String> personTypeKeyList;
46  
47      @XmlElement
48      private List<PersonNameInfo> personNameInfoList;
49  
50      @XmlElement
51      private List<PersonCitizenshipInfo> personCitizenshipInfoList;
52  
53      @XmlElement
54      private List<PersonVisaInfo> personVisaInfoList;
55  
56      @XmlElement
57      private List<PersonResidencyInfo> personResidencyInfoList;
58  
59      @XmlElement
60      private List<PersonEthnicityInfo> personEthnicityInfoList;
61  
62      @XmlElement
63      private Date birthDate;
64  
65      @XmlElement
66      private Boolean isTestPerson;
67  
68      @XmlElement
69      private String gender;
70  
71      @XmlElement
72      private String photo;
73  
74      @XmlElement
75      private Date deceasedDate;
76  
77      @XmlElement
78      private String maritalStatusCode;
79  
80      @XmlElement
81      private String primaryLanguageCode;
82  
83      @XmlElement
84      private String secondaryLanguageCode;
85  
86      @XmlElement
87      private String countryofBirthCode;
88  
89      @XmlElement
90      private String stateofBirth;
91  
92      @XmlElement
93      private String cityofBirth;
94  
95      @XmlElement
96      private String geographicOrigin;
97  
98      @XmlElement
99      private Date effectiveDate;
100 
101     @XmlElement
102     private Date expirationDate;
103 
104     @XmlElement
105     @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
106     private Map<String, String> attributes;
107 
108     @XmlElement
109     private MetaInfo metaInfo;
110 
111     @XmlElement
112     private String state;
113 
114     @XmlAttribute
115     private String id;
116 
117     /**
118      * List of identifiers for types of people.
119      */
120     public List<String> getPersonTypeKeyList() {
121         if (personTypeKeyList == null) {
122             personTypeKeyList = new ArrayList<String>();
123         }
124         return personTypeKeyList;
125     }
126 
127     public void setPersonTypeKeyList(List<String> personTypeKeyList) {
128         this.personTypeKeyList = personTypeKeyList;
129     }
130 
131     /**
132      * List containing information about a person's names.
133      */
134     public List<PersonNameInfo> getPersonNameInfoList() {
135         if (personNameInfoList == null) {
136             personNameInfoList = new ArrayList<PersonNameInfo>();
137         }
138         return personNameInfoList;
139     }
140 
141     public void setPersonNameInfoList(List<PersonNameInfo> personNameInfoList) {
142         this.personNameInfoList = personNameInfoList;
143     }
144 
145     /**
146      * List of detailed information about a person's citizenship.
147      */
148     public List<PersonCitizenshipInfo> getPersonCitizenshipInfoList() {
149         if (personCitizenshipInfoList == null) {
150             personCitizenshipInfoList = new ArrayList<PersonCitizenshipInfo>();
151         }
152         return personCitizenshipInfoList;
153     }
154 
155     public void setPersonCitizenshipInfoList(List<PersonCitizenshipInfo> personCitizenshipInfoList) {
156         this.personCitizenshipInfoList = personCitizenshipInfoList;
157     }
158 
159     /**
160      * List of detailed information about a person's visa.
161      */
162     public List<PersonVisaInfo> getPersonVisaInfoList() {
163         if (personVisaInfoList == null) {
164             personVisaInfoList = new ArrayList<PersonVisaInfo>();
165         }
166         return personVisaInfoList;
167     }
168 
169     public void setPersonVisaInfoList(List<PersonVisaInfo> personVisaInfoList) {
170         this.personVisaInfoList = personVisaInfoList;
171     }
172 
173     /**
174      * List of detailed information about a student's residency.
175      */
176     public List<PersonResidencyInfo> getPersonResidencyInfoList() {
177         if (personResidencyInfoList == null) {
178             personResidencyInfoList = new ArrayList<PersonResidencyInfo>();
179         }
180         return personResidencyInfoList;
181     }
182 
183     public void setPersonResidencyInfoList(List<PersonResidencyInfo> personResidencyInfoList) {
184         this.personResidencyInfoList = personResidencyInfoList;
185     }
186 
187     /**
188      * List of detailed information about a person's ethnicity ( and sub-ethnicity?).
189      */
190     public List<PersonEthnicityInfo> getPersonEthnicityInfoList() {
191         if (personEthnicityInfoList == null) {
192             personEthnicityInfoList = new ArrayList<PersonEthnicityInfo>();
193         }
194         return personEthnicityInfoList;
195     }
196 
197     public void setPersonEthnicityInfoList(List<PersonEthnicityInfo> personEthnicityInfoList) {
198         this.personEthnicityInfoList = personEthnicityInfoList;
199     }
200 
201     /**
202      * Date of birth
203      */
204     public Date getBirthDate() {
205         return birthDate;
206     }
207 
208     public void setBirthDate(Date birthDate) {
209         this.birthDate = birthDate;
210     }
211 
212     /**
213      * Indicates if the record is for a test person
214      */
215     public Boolean getIsTestPerson() {
216         return isTestPerson;
217     }
218 
219     public void setIsTestPerson(Boolean isTestPerson) {
220         this.isTestPerson = isTestPerson;
221     }
222 
223     /**
224      * Gender
225      */
226     public String getGender() {
227         return gender;
228     }
229 
230     public void setGender(String gender) {
231         this.gender = gender;
232     }
233 
234     /**
235      * photo file name (.jpg)
236      */
237     public String getPhoto() {
238         return photo;
239     }
240 
241     public void setPhoto(String photo) {
242         this.photo = photo;
243     }
244 
245     /**
246      * Date of death
247      */
248     public Date getDeceasedDate() {
249         return deceasedDate;
250     }
251 
252     public void setDeceasedDate(Date deceasedDate) {
253         this.deceasedDate = deceasedDate;
254     }
255 
256     /**
257      * Marital status
258      */
259     public String getMaritalStatusCode() {
260         return maritalStatusCode;
261     }
262 
263     public void setMaritalStatusCode(String maritalStatusCode) {
264         this.maritalStatusCode = maritalStatusCode;
265     }
266 
267     /**
268      * Primary Language Code
269      */
270     public String getPrimaryLanguageCode() {
271         return primaryLanguageCode;
272     }
273 
274     public void setPrimaryLanguageCode(String primaryLanguageCode) {
275         this.primaryLanguageCode = primaryLanguageCode;
276     }
277 
278     /**
279      * secondary Language Code
280      */
281     public String getSecondaryLanguageCode() {
282         return secondaryLanguageCode;
283     }
284 
285     public void setSecondaryLanguageCode(String secondaryLanguageCode) {
286         this.secondaryLanguageCode = secondaryLanguageCode;
287     }
288 
289     /**
290      * Country of Birth
291      */
292     public String getCountryofBirthCode() {
293         return countryofBirthCode;
294     }
295 
296     public void setCountryofBirthCode(String countryofBirthCode) {
297         this.countryofBirthCode = countryofBirthCode;
298     }
299 
300     /**
301      * State/Province of Birth.
302      */
303     public String getStateofBirth() {
304         return stateofBirth;
305     }
306 
307     public void setStateofBirth(String stateofBirth) {
308         this.stateofBirth = stateofBirth;
309     }
310 
311     /**
312      * city of Birth.
313      */
314     public String getCityofBirth() {
315         return cityofBirth;
316     }
317 
318     public void setCityofBirth(String cityofBirth) {
319         this.cityofBirth = cityofBirth;
320     }
321 
322     /**
323      * the jurisdiction (county, state, country - however defined by the institution) where a learner lives at the point of application to the institution
324      */
325     public String getGeographicOrigin() {
326         return geographicOrigin;
327     }
328 
329     public void setGeographicOrigin(String geographicOrigin) {
330         this.geographicOrigin = geographicOrigin;
331     }
332 
333     /**
334      * Date and time that this person 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.
335      */
336     public Date getEffectiveDate() {
337         return effectiveDate;
338     }
339 
340     public void setEffectiveDate(Date effectiveDate) {
341         this.effectiveDate = effectiveDate;
342     }
343 
344     /**
345      * Date and time that this person record expires. This is a similar concept to the expiration date on enumerated values. If specified, this should 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.
346      */
347     public Date getExpirationDate() {
348         return expirationDate;
349     }
350 
351     public void setExpirationDate(Date expirationDate) {
352         this.expirationDate = expirationDate;
353     }
354 
355     /**
356      * List of key/value pairs, typically used for dynamic attributes.
357      */
358     public Map<String, String> getAttributes() {
359         if (attributes == null) {
360             attributes = new HashMap<String, String>();
361         }
362         return attributes;
363     }
364 
365     public void setAttributes(Map<String, String> attributes) {
366         this.attributes = attributes;
367     }
368 
369     /**
370      * 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.
371      */
372     public MetaInfo getMetaInfo() {
373         return metaInfo;
374     }
375 
376     public void setMetaInfo(MetaInfo metaInfo) {
377         this.metaInfo = metaInfo;
378     }
379 
380     /**
381      * Indicates the state of this person record
382      */
383     public String getState() {
384         return state;
385     }
386 
387     public void setState(String state) {
388         this.state = state;
389     }
390 
391     /**
392      * Unique identifier for a person record. Optional due to assignment at creation time. Once the person has been created, this field should no longer be treated as optional.
393      */
394     public String getId() {
395         return id;
396     }
397 
398     public void setId(String id) {
399         this.id = id;
400     }
401 }