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 }