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.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.core.ws.binding.JaxbAttributeMapListAdapter;
34  
35  /**
36   *Information about an external identifier for a person.
37   */ 
38  @XmlAccessorType(XmlAccessType.FIELD)
39  public class PersonReferenceIdInfo implements Serializable, Idable, HasTypeState, HasAttributes {
40  
41      private static final long serialVersionUID = 1L;
42  
43      @XmlElement
44      private String personReferenceId;
45  
46      @XmlElement
47      private String assigningOrg;
48  
49      @XmlElement
50      private Date effectiveDate;
51  
52      @XmlElement
53      private Date expirationDate;
54  
55      @XmlElement
56      @XmlJavaTypeAdapter(JaxbAttributeMapListAdapter.class)
57      private Map<String, String> attributes;
58  
59      @XmlElement
60      private MetaInfo metaInfo;
61  
62      @XmlAttribute
63      private String type;
64  
65      @XmlAttribute
66      private String state;
67  
68      @XmlAttribute
69      private String id;
70  
71      /**
72       * External identifier for a person.
73       */
74      public String getPersonReferenceId() {
75          return personReferenceId;
76      }
77  
78      public void setPersonReferenceId(String personReferenceId) {
79          this.personReferenceId = personReferenceId;
80      }
81  
82      /**
83       * Organizational unit that assigned the reference id (e.g. US government for SSNs, institution code for another institution assigning their student number). This might be the actual OrgId, but are making the type loose to avoid coupling
84       */
85      public String getAssigningOrg() {
86          return assigningOrg;
87      }
88  
89      public void setAssigningOrg(String assigningOrg) {
90          this.assigningOrg = assigningOrg;
91      }
92  
93      /**
94       * Date and time that this person reference identifier 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.
95       */
96      public Date getEffectiveDate() {
97          return effectiveDate;
98      }
99  
100     public void setEffectiveDate(Date effectiveDate) {
101         this.effectiveDate = effectiveDate;
102     }
103 
104     /**
105      * Date and time that this person reference identifier 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.
106      */
107     public Date getExpirationDate() {
108         return expirationDate;
109     }
110 
111     public void setExpirationDate(Date expirationDate) {
112         this.expirationDate = expirationDate;
113     }
114 
115     /**
116      * List of key/value pairs, typically used for dynamic attributes.
117      */
118     public Map<String, String> getAttributes() {
119         if (attributes == null) {
120             attributes = new HashMap<String, String>();
121         }
122         return attributes;
123     }
124 
125     public void setAttributes(Map<String, String> attributes) {
126         this.attributes = attributes;
127     }
128 
129     /**
130      * Create and last update info for the structure.
131      */
132     public MetaInfo getMetaInfo() {
133         return metaInfo;
134     }
135 
136     public void setMetaInfo(MetaInfo metaInfo) {
137         this.metaInfo = metaInfo;
138     }
139 
140     /**
141      * Identifier of the type of reference id (e.g. SSN, SIN, post secondary institution student number, etc.)
142      */
143     public String getType() {
144         return type;
145     }
146 
147     public void setType(String type) {
148         this.type = type;
149     }
150 
151     /**
152      * The current status of the person reference identifier. The values for this field are constrained to those in the personReferenceIdState enumeration. A separate setup operation does not exist for retrieval of the meta data around this value.
153      */
154     public String getState() {
155         return state;
156     }
157 
158     public void setState(String state) {
159         this.state = state;
160     }
161 
162     /**
163      * The page personReferenceIdId Structure does not exist. Optional due to assignment at creation time. Once the person reference has been created, this field should no longer be treated as optional.
164      */
165     public String getId() {
166         return id;
167     }
168 
169     public void setId(String id) {
170         this.id = id;
171     }
172 }