001/** 002 * Copyright 2005-2016 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.impl.identity.address; 017 018import java.sql.Timestamp; 019 020import javax.persistence.Column; 021import javax.persistence.MappedSuperclass; 022import javax.persistence.Transient; 023 024import org.joda.time.DateTime; 025import org.kuali.rice.kim.api.KimApiConstants; 026import org.kuali.rice.kim.api.identity.address.EntityAddressContract; 027import org.kuali.rice.kim.api.identity.privacy.EntityPrivacyPreferences; 028import org.kuali.rice.kim.api.services.KimApiServiceLocator; 029import org.kuali.rice.krad.bo.DataObjectBase; 030import org.kuali.rice.krad.data.jpa.converters.BooleanYNConverter; 031 032@MappedSuperclass 033public abstract class EntityAddressBase extends DataObjectBase implements EntityAddressContract { 034 private static final long serialVersionUID = -7550286656495828391L; 035 036 @Column(name = "ENTITY_ID") 037 private String entityId; 038 @Column(name = "ADDR_TYP_CD") 039 private String addressTypeCode; 040 @Column(name = "ENT_TYP_CD") 041 private String entityTypeCode; 042 @Column(name = "CITY") 043 private String city; 044 @Column(name = "STATE_PVC_CD") 045 private String stateProvinceCode; 046 @Column(name = "POSTAL_CD") 047 private String postalCode; 048 @Column(name = "POSTAL_CNTRY_CD") 049 private String countryCode; 050 @Column(name = "ATTN_LINE") 051 private String attentionLine; 052 @Column(name = "ADDR_LINE_1") 053 private String line1; 054 @Column(name = "ADDR_LINE_2") 055 private String line2; 056 @Column(name = "ADDR_LINE_3") 057 private String line3; 058 @javax.persistence.Convert(converter=BooleanYNConverter.class) 059 @Column(name = "DFLT_IND") 060 private boolean defaultValue; 061 @javax.persistence.Convert(converter=BooleanYNConverter.class) 062 @Column(name = "ACTV_IND") 063 private boolean active; 064 @Column(name = "ADDR_FMT") 065 private String addressFormat; 066 @Column(name = "MOD_DT") 067 private Timestamp modifiedDate; 068 @Column(name = "VALID_DT") 069 private Timestamp validatedDate; 070 @javax.persistence.Convert(converter=BooleanYNConverter.class) 071 @Column(name = "VALID_IND") 072 private boolean validated; 073 @Column(name = "NOTE_MSG") 074 private String noteMessage; 075 @Transient private boolean suppressAddress; 076 077 078 @Override 079 public boolean isSuppressAddress() { 080 try { 081 EntityPrivacyPreferences privacy = 082 KimApiServiceLocator.getIdentityService().getEntityPrivacyPreferences(getEntityId()); 083 if (privacy != null) { 084 this.suppressAddress = privacy.isSuppressAddress(); 085 } else { 086 this.suppressAddress = false; 087 } 088 } catch (NullPointerException e) { 089 return false; 090 } catch (ClassCastException c) { 091 return false; 092 } 093 094 095 return suppressAddress; 096 } 097 098 @Override 099 public String getAttentionLine() { 100 if (isSuppressAddress()) { 101 return KimApiConstants.RestrictedMasks.RESTRICTED_DATA_MASK; 102 } 103 104 return this.attentionLine; 105 } 106 107 @Override 108 public String getLine1() { 109 if (isSuppressAddress()) { 110 return KimApiConstants.RestrictedMasks.RESTRICTED_DATA_MASK; 111 } 112 113 return this.line1; 114 } 115 116 @Override 117 public String getLine2() { 118 if (isSuppressAddress()) { 119 return KimApiConstants.RestrictedMasks.RESTRICTED_DATA_MASK; 120 } 121 122 return this.line2; 123 } 124 125 @Override 126 public String getLine3() { 127 if (isSuppressAddress()) { 128 return KimApiConstants.RestrictedMasks.RESTRICTED_DATA_MASK; 129 } 130 131 return this.line3; 132 } 133 134 @Override 135 public String getCity() { 136 if (isSuppressAddress()) { 137 return KimApiConstants.RestrictedMasks.RESTRICTED_DATA_MASK; 138 } 139 140 return this.city; 141 } 142 143 @Override 144 public String getStateProvinceCode() { 145 if (isSuppressAddress()) { 146 return KimApiConstants.RestrictedMasks.RESTRICTED_DATA_MASK_CODE; 147 } 148 149 return this.stateProvinceCode; 150 } 151 152 @Override 153 public String getPostalCode() { 154 if (isSuppressAddress()) { 155 return KimApiConstants.RestrictedMasks.RESTRICTED_DATA_MASK_ZIP; 156 } 157 158 return this.postalCode; 159 } 160 161 @Override 162 public String getCountryCode() { 163 if (isSuppressAddress()) { 164 return KimApiConstants.RestrictedMasks.RESTRICTED_DATA_MASK_CODE; 165 } 166 167 return this.countryCode; 168 } 169 170 @Override 171 public String getAttentionLineUnmasked() { 172 return attentionLine; 173 } 174 175 @Override 176 public String getLine1Unmasked() { 177 return line1; 178 } 179 180 @Override 181 public String getLine2Unmasked() { 182 return line2; 183 } 184 185 @Override 186 public String getLine3Unmasked() { 187 return line3; 188 } 189 190 @Override 191 public String getCityUnmasked() { 192 return city; 193 } 194 195 @Override 196 public String getStateProvinceCodeUnmasked() { 197 return stateProvinceCode; 198 } 199 200 @Override 201 public String getPostalCodeUnmasked() { 202 return postalCode; 203 } 204 205 @Override 206 public String getCountryCodeUnmasked() { 207 return countryCode; 208 } 209 210 @Override 211 public DateTime getModifiedDate() { 212 return modifiedDate != null ? new DateTime(modifiedDate.getTime()) : null; 213 } 214 215 public Timestamp getModifiedTimestamp() { 216 return modifiedDate; 217 } 218 219 @Override 220 public DateTime getValidatedDate() { 221 return validatedDate != null ? new DateTime(validatedDate.getTime()) : null; 222 } 223 224 public Timestamp getValidatedTimestamp() { 225 return validatedDate; 226 } 227 228 @Override 229 public String getEntityId() { 230 return entityId; 231 } 232 233 public void setEntityId(String entityId) { 234 this.entityId = entityId; 235 } 236 237 public String getAddressTypeCode() { 238 return addressTypeCode; 239 } 240 241 public void setAddressTypeCode(String addressTypeCode) { 242 this.addressTypeCode = addressTypeCode; 243 } 244 245 @Override 246 public String getEntityTypeCode() { 247 return entityTypeCode; 248 } 249 250 public void setEntityTypeCode(String entityTypeCode) { 251 this.entityTypeCode = entityTypeCode; 252 } 253 254 public void setCity(String city) { 255 this.city = city; 256 } 257 258 public void setStateProvinceCode(String stateProvinceCode) { 259 this.stateProvinceCode = stateProvinceCode; 260 } 261 262 public void setPostalCode(String postalCode) { 263 this.postalCode = postalCode; 264 } 265 266 public void setCountryCode(String countryCode) { 267 this.countryCode = countryCode; 268 } 269 270 public void setAttentionLine(String attentionLine) { 271 this.attentionLine = attentionLine; 272 } 273 274 public void setLine1(String line1) { 275 this.line1 = line1; 276 } 277 278 public void setLine2(String line2) { 279 this.line2 = line2; 280 } 281 282 public void setLine3(String line3) { 283 this.line3 = line3; 284 } 285 286 public boolean getDefaultValue() { 287 return defaultValue; 288 } 289 290 @Override 291 public boolean isDefaultValue() { 292 return defaultValue; 293 } 294 295 public void setDefaultValue(boolean defaultValue) { 296 this.defaultValue = defaultValue; 297 } 298 299 public boolean getActive() { 300 return active; 301 } 302 303 @Override 304 public boolean isActive() { 305 return active; 306 } 307 308 public void setActive(boolean active) { 309 this.active = active; 310 } 311 312 @Override 313 public String getAddressFormat() { 314 return addressFormat; 315 } 316 317 public void setAddressFormat(String addressFormat) { 318 this.addressFormat = addressFormat; 319 } 320 321 public void setModifiedDate(DateTime modifiedDate) { 322 if ( modifiedDate != null ) { 323 this.modifiedDate = new Timestamp(modifiedDate.getMillis()); 324 } else { 325 this.modifiedDate = null; 326 } 327 } 328 329 public void setModifiedTimestamp( Timestamp modifiedDate ) { 330 this.modifiedDate = modifiedDate; 331 } 332 333 public void setValidatedDate(DateTime validatedDate) { 334 if ( validatedDate != null ) { 335 this.validatedDate = new Timestamp(validatedDate.getMillis()); 336 } else { 337 this.validatedDate = null; 338 } 339 } 340 341 public void setValidatedTimestamp( Timestamp validatedDate ) { 342 this.validatedDate = validatedDate; 343 } 344 345 public boolean getValidated() { 346 return validated; 347 } 348 349 @Override 350 public boolean isValidated() { 351 return validated; 352 } 353 354 public void setValidated(boolean validated) { 355 this.validated = validated; 356 } 357 358 @Override 359 public String getNoteMessage() { 360 return noteMessage; 361 } 362 363 public void setNoteMessage(String noteMessage) { 364 this.noteMessage = noteMessage; 365 } 366 367 public boolean getSuppressAddress() { 368 return suppressAddress; 369 } 370 371 public void setSuppressAddress(boolean suppressAddress) { 372 this.suppressAddress = suppressAddress; 373 } 374}