001/** 002 * Copyright 2005-2017 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.rice.kim.api.identity.personal; 017 018import org.kuali.rice.core.api.mo.common.GloballyUnique; 019import org.kuali.rice.core.api.mo.common.Versioned; 020 021import java.util.List; 022 023/** 024 * This is a contract for EntityBioDemographics and represents the 025 * demographic information of an Entity. 026 * 027 * @author Kuali Rice Team (rice.collab@kuali.org) 028 */ 029 030 031public interface EntityBioDemographicsContract extends Versioned, GloballyUnique { 032 public static final String BIRTH_DATE_FORMAT = "yyyy-MM-dd"; 033 public static final String DECEASED_DATE_FORMAT = "yyyy-MM-dd"; 034 035 /** 036 * Gets this {@link EntityBioDemographicsContract}'s identity id. 037 * @return the identity id for this {@link EntityBioDemographicsContract}, or null if none has been assigned. 038 */ 039 String getEntityId(); 040 041 /** 042 * Gets this {@link EntityBioDemographicsContract}'s deceased date. 043 * @return the deceased date for this {@link EntityBioDemographicsContract}, or null if none has been assigned. 044 */ 045 String getDeceasedDate(); 046 047 /** 048 * Gets this {@link EntityBioDemographicsContract}'s birth date. 049 * @return the birth date for this {@link EntityBioDemographicsContract}, or null if none has been assigned. 050 */ 051 String getBirthDate(); 052 053 /** 054 * Gets this {@link EntityBioDemographicsContract}'s gender code. 055 * @return the gender code for this {@link EntityBioDemographicsContract}, or null if none has been assigned. 056 */ 057 String getGenderCode(); 058 059 /** 060 * Gets this {@link EntityBioDemographicsContract}'s marital status code. 061 * @return the marital status code for this {@link EntityBioDemographicsContract}, or null if none has been assigned. 062 */ 063 String getMaritalStatusCode(); 064 065 /** 066 * Gets this {@link EntityBioDemographicsContract}'s primary language code. 067 * @return the primary language code for this {@link EntityBioDemographicsContract}, or null if none has been assigned. 068 */ 069 String getPrimaryLanguageCode(); 070 071 /** 072 * Gets this {@link EntityBioDemographicsContract}'s secondary language code. 073 * @return the secondary language code for this {@link EntityBioDemographicsContract}, or null if none has been assigned. 074 */ 075 String getSecondaryLanguageCode(); 076 077 /** 078 * Gets this {@link EntityBioDemographicsContract}'s country of birth code. 079 * Corresponds to PESC BirthCountry. 080 * @return the country of birth code for this {@link EntityBioDemographicsContract}, or null if none has been assigned. 081 */ 082 String getBirthCountry(); 083 084 /** 085 * Gets this {@link EntityBioDemographicsContract}'s birth state or extra-state jurisdiction code. Corresponds to PESC BirthStateProvinceCode. 086 * @return the birth state code for this {@link EntityBioDemographicsContract}, or null if none has been assigned. 087 */ 088 String getBirthStateProvinceCode(); 089 090 /** 091 * Gets this {@link EntityBioDemographicsContract}'s city of birth. Corresponds to PESC BirthCity. 092 * @return the city of birth for this {@link EntityBioDemographicsContract}, or null if none has been assigned. 093 */ 094 String getBirthCity(); 095 096 /** 097 * Gets this {@link EntityBioDemographicsContract}'s geographic origin. 098 * @return the geographic origin for this {@link EntityBioDemographicsContract}, or null if none has been assigned. 099 */ 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}