1 /**
2 * Copyright 2005-2011 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.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/ecl2.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.rice.kim.api.identity.personal;
17
18 import org.joda.time.DateTime;
19 import org.kuali.rice.core.api.mo.common.GloballyUnique;
20 import org.kuali.rice.core.api.mo.common.Versioned;
21
22 import java.util.Date;
23
24
25 public interface EntityBioDemographicsContract extends Versioned, GloballyUnique {
26 public static final String BIRTH_DATE_FORMAT = "yyyy-MM-dd";
27 public static final String DECEASED_DATE_FORMAT = "yyyy-MM-dd";
28
29 /**
30 * Gets this {@link EntityBioDemographicsContract}'s identity id.
31 * @return the identity id for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
32 */
33 String getEntityId();
34
35 /**
36 * Gets this {@link EntityBioDemographicsContract}'s deceased date.
37 * @return the deceased date for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
38 */
39 String getDeceasedDate();
40
41 /**
42 * Gets this {@link EntityBioDemographicsContract}'s birth date.
43 * @return the birth date for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
44 */
45 String getBirthDate();
46
47 /**
48 * Gets this {@link EntityBioDemographicsContract}'s gender code.
49 * @return the gender code for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
50 */
51 String getGenderCode();
52
53 /**
54 * Gets this {@link EntityBioDemographicsContract}'s marital status code.
55 * @return the marital status code for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
56 */
57 String getMaritalStatusCode();
58
59 /**
60 * Gets this {@link EntityBioDemographicsContract}'s primary language code.
61 * @return the primary language code for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
62 */
63 String getPrimaryLanguageCode();
64
65 /**
66 * Gets this {@link EntityBioDemographicsContract}'s secondary language code.
67 * @return the secondary language code for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
68 */
69 String getSecondaryLanguageCode();
70
71 /**
72 * Gets this {@link EntityBioDemographicsContract}'s country of birth code.
73 * Corresponds to PESC BirthCountry.
74 * @return the country of birth code for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
75 */
76 String getBirthCountry();
77
78 /**
79 * Gets this {@link EntityBioDemographicsContract}'s birth state or extra-state jurisdiction code. Corresponds to PESC BirthStateProvinceCode.
80 * @return the birth state code for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
81 */
82 String getBirthStateProvinceCode();
83
84 /**
85 * Gets this {@link EntityBioDemographicsContract}'s city of birth. Corresponds to PESC BirthCity.
86 * @return the city of birth for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
87 */
88 String getBirthCity();
89
90 /**
91 * Gets this {@link EntityBioDemographicsContract}'s geographic origin.
92 * @return the geographic origin for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
93 */
94 String getGeographicOrigin();
95
96 /**
97 * Gets this {@link EntityBioDemographicsContract}'s unmasked birth date.
98 * @return the unmasked birth date for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
99 */
100 String getBirthDateUnmasked();
101
102 /**
103 * Gets this {@link EntityBioDemographicsContract}'s current age based on birth date if present. Age calculation uses
104 * deceased date if present.
105 * @return the calculated age for this {@link EntityBioDemographicsContract}, or null if {@link org.kuali.rice.kim.api.identity.personal.EntityBioDemographicsContract#getBirthDate()} is unpresent, suppressed, or there is a calculation error.
106 */
107 Integer getAge();
108
109 /**
110 * Gets this {@link EntityBioDemographicsContract}'s unmasked gender code.
111 * @return the unmasked gender code for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
112 */
113 String getGenderCodeUnmasked();
114
115 /**
116 * Gets this {@link EntityBioDemographicsContract}'s unmasked martial status code.
117 * @return the unmasked martial status code for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
118 */
119 String getMaritalStatusCodeUnmasked();
120
121 /**
122 * Gets this {@link EntityBioDemographicsContract}'s unmasked primary language code.
123 * @return the unmasked primary language code for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
124 */
125 String getPrimaryLanguageCodeUnmasked();
126
127 /**
128 * Gets this {@link EntityBioDemographicsContract}'s unmasked secondary language code.
129 * @return the unmasked secondary language code for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
130 */
131 String getSecondaryLanguageCodeUnmasked();
132
133 /**
134 * Gets this {@link EntityBioDemographicsContract}'s unmasked country of birth code.
135 * @return the unmasked country of birth code for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
136 */
137 String getBirthCountryUnmasked();
138
139 /**
140 * Gets this {@link EntityBioDemographicsContract}'s unmasked birth state or extra-state jurisdiction code. Corresponds to PESC BirthStateProvinceCode.
141 * @return the unmaksed birth state code for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
142 */
143 String getBirthStateProvinceCodeUnmasked();
144
145 /**
146 * Gets this {@link EntityBioDemographicsContract}'s unmasked city of birth. Corresponds to PESC BirthCity.
147 * @return the unmasked city of birth for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
148 */
149 String getBirthCityUnmasked();
150
151 /**
152 * Gets this {@link EntityBioDemographicsContract}'s unmasked geographic origin.
153 * @return the unmasked geographic origin for this {@link EntityBioDemographicsContract}, or null if none has been assigned.
154 */
155 String getGeographicOriginUnmasked();
156
157 /**
158 * Get the note associated with this {@link EntityBioDemographicsContract}
159 * Corresponds to PESC NoteMessage
160 * @return the message associated with this EntityName
161 */
162 String getNoteMessage();
163
164 /**
165 * Get the {@link EntityBioDemographicsContract}'s gender change code
166 * Corresponds to PESC GenderChangeCode
167 * @return the gender change code or null if no change
168 */
169 String getGenderChangeCode();
170
171 /**
172 * Get the {@link EntityBioDemographicsContract}'s gender change code
173 * Corresponds to PESC GenderChangeCode
174 * @return the gender change code or null if no change
175 */
176 String getGenderChangeCodeUnmasked();
177
178 /**
179 * Returns a boolean value that determines if personal fields should be suppressed.
180 * @return boolean value that determines if personal fields should be suppressed.
181 */
182 boolean isSuppressPersonal();
183 }