1 /** 2 * Copyright 2005-2015 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 }