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