Coverage Report - org.kuali.rice.kim.impl.entity.address.EntityAddressBo
 
Classes in this File Line Coverage Branch Coverage Complexity
EntityAddressBo
55%
32/58
16%
4/24
0
 
 1  
 package org.kuali.rice.kim.impl.entity.address
 2  
 
 3  
 import javax.persistence.CascadeType
 4  
 import javax.persistence.Column
 5  
 import javax.persistence.Entity
 6  
 import javax.persistence.FetchType
 7  
 import javax.persistence.Id
 8  
 import javax.persistence.JoinColumn
 9  
 import javax.persistence.ManyToOne
 10  
 import javax.persistence.Table
 11  
 import javax.persistence.Transient
 12  
 import org.hibernate.annotations.Type
 13  
 import org.kuali.rice.kim.api.KimConstants
 14  
 import org.kuali.rice.kim.api.entity.address.EntityAddress
 15  
 import org.kuali.rice.kim.api.entity.address.EntityAddressContract
 16  
 import org.kuali.rice.kim.api.entity.privacy.EntityPrivacyPreferences
 17  
 import org.kuali.rice.kim.api.services.KimApiServiceLocator
 18  
 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase
 19  
 
 20  
 /**
 21  
  * @author Kuali Rice Team (rice.collab@kuali.org)
 22  
  */
 23  
 @Entity
 24  
 @Table(name = "KRIM_ENTITY_ADDR_T")
 25  
 public class EntityAddressBo extends PersistableBusinessObjectBase implements EntityAddressContract {
 26  
     private static final long serialVersionUID = 1L;
 27  
 
 28  
         @Id
 29  
         @Column(name = "ENTITY_ADDR_ID")
 30  
         String id
 31  
 
 32  
         @Column(name = "ENTITY_ID")
 33  
         String entityId
 34  
 
 35  
         @Column(name = "ADDR_TYP_CD")
 36  
         String addressTypeCode
 37  
 
 38  
         @Column(name = "ENT_TYP_CD")
 39  
         String entityTypeCode
 40  
 
 41  
         @Column(name = "CITY_NM")
 42  
         String cityName
 43  
 
 44  
         @Column(name = "POSTAL_STATE_CD")
 45  
         String stateCode
 46  
 
 47  
         @Column(name = "POSTAL_CD")
 48  
         String postalCode
 49  
 
 50  
         @Column(name = "POSTAL_CNTRY_CD")
 51  
         String countryCode
 52  
 
 53  
         @Column(name = "ADDR_LINE_1")
 54  
         String line1
 55  
 
 56  
         @Column(name = "ADDR_LINE_2")
 57  
         String line2
 58  
 
 59  
         @Column(name = "ADDR_LINE_3")
 60  
         String line3
 61  
 
 62  
     @Type(type="yes_no")
 63  
         @Column(name="DFLT_IND")
 64  
         boolean defaultValue;
 65  
 
 66  
     @Type(type="yes_no")
 67  
         @Column(name="ACTV_IND")
 68  
     boolean active;
 69  
 
 70  
 
 71  
         @ManyToOne(targetEntity=EntityAddressTypeBo.class, fetch=FetchType.EAGER, cascade=[])
 72  
         @JoinColumn(name = "ADDR_TYP_CD", insertable = false, updatable = false)
 73  
         EntityAddressTypeBo addressType;
 74  
 
 75  
         @Transient
 76  
     boolean suppressAddress;
 77  
 
 78  
   /*
 79  
    * Converts a mutable EntityAddressBo to an immutable EntityAddress representation.
 80  
    * @param bo
 81  
    * @return an immutable EntityAddress
 82  
    */
 83  
   static EntityAddress to(EntityAddressBo bo) {
 84  1
     if (bo == null) { return null }
 85  1
     return EntityAddress.Builder.create(bo).build()
 86  
   }
 87  
 
 88  
   /**
 89  
    * Creates a EntityAddressBo business object from an immutable representation of a EntityAddress.
 90  
    * @param an immutable EntityAddress
 91  
    * @return a EntityAddressBo
 92  
    */
 93  
   static EntityAddressBo from(EntityAddress immutable) {
 94  1
     if (immutable == null) {return null}
 95  
 
 96  1
     EntityAddressBo bo = new EntityAddressBo()
 97  1
     bo.active = immutable.active
 98  1
     bo.entityTypeCode = immutable.entityTypeCode
 99  1
     if (immutable.addressType != null) {
 100  0
             bo.addressTypeCode = immutable.addressType.code
 101  
           }
 102  1
     bo.addressType = EntityAddressTypeBo.from(immutable.addressType)
 103  1
     bo.defaultValue = immutable.defaultValue
 104  1
     bo.line1 = immutable.line1Unmasked
 105  1
     bo.line2 = immutable.line2Unmasked
 106  1
     bo.line3 = immutable.line3Unmasked
 107  1
     bo.cityName = immutable.cityNameUnmasked
 108  1
     bo.stateCode = immutable.stateCodeUnmasked
 109  1
     bo.countryCode = immutable.countryCodeUnmasked
 110  1
     bo.postalCode = immutable.postalCodeUnmasked
 111  1
     bo.id = immutable.id
 112  1
     bo.entityId = immutable.entityId
 113  1
     bo.active = immutable.active
 114  1
     bo.versionNumber = immutable.versionNumber
 115  
 
 116  1
     return bo;
 117  
   }
 118  
 
 119  
 
 120  
     @Override
 121  
     EntityAddressTypeBo getAddressType() {
 122  1
         return addressType
 123  
     }
 124  
 
 125  
     public void setAddressType(EntityAddressTypeBo addressType) {
 126  1
         this.addressType = addressType
 127  
     }
 128  
 
 129  
     @Override
 130  
     boolean isSuppressAddress() {
 131  1
         if (this.suppressAddress == null) {
 132  0
             EntityPrivacyPreferences privacy = KimApiServiceLocator.getIdentityService().getEntityPrivacyPreferences(getEntityId())
 133  0
             if (privacy != null) {
 134  0
                this.suppressAddress = privacy.isSuppressAddress()
 135  
             } else {
 136  0
                 this.suppressAddress = false
 137  
             }
 138  
         }
 139  
 
 140  1
         return suppressAddress;
 141  
     }
 142  
 
 143  
     @Override
 144  
     String getLine1() {
 145  0
         if (isSuppressAddress()) {
 146  0
             return KimConstants.RestrictedMasks.RESTRICTED_DATA_MASK;
 147  
         }
 148  0
         return this.line1;
 149  
 
 150  
     }
 151  
 
 152  
     @Override
 153  
     String getLine2() {
 154  0
         if (isSuppressAddress()) {
 155  0
             return KimConstants.RestrictedMasks.RESTRICTED_DATA_MASK;
 156  
         }
 157  0
         return this.line2;
 158  
     }
 159  
 
 160  
     @Override
 161  
     String getLine3() {
 162  0
         if (isSuppressAddress()) {
 163  0
             return KimConstants.RestrictedMasks.RESTRICTED_DATA_MASK;
 164  
         }
 165  0
         return this.line3;
 166  
     }
 167  
 
 168  
     @Override
 169  
     String getCityName() {
 170  0
         if (isSuppressAddress()) {
 171  0
             return KimConstants.RestrictedMasks.RESTRICTED_DATA_MASK;
 172  
         }
 173  0
         return this.cityName;
 174  
     }
 175  
 
 176  
     @Override
 177  
     String getStateCode() {
 178  0
         if (isSuppressAddress()) {
 179  0
             return KimConstants.RestrictedMasks.RESTRICTED_DATA_MASK_CODE;
 180  
         }
 181  0
         return this.stateCode;
 182  
     }
 183  
 
 184  
     @Override
 185  
     String getPostalCode() {
 186  0
         if (isSuppressAddress()) {
 187  0
             return KimConstants.RestrictedMasks.RESTRICTED_DATA_MASK_ZIP;
 188  
         }
 189  0
         return this.postalCode;
 190  
     }
 191  
 
 192  
     @Override
 193  
     String getCountryCode() {
 194  0
         if (isSuppressAddress()) {
 195  0
             return KimConstants.RestrictedMasks.RESTRICTED_DATA_MASK_CODE;
 196  
         }
 197  0
         return this.countryCode;
 198  
     }
 199  
 
 200  
     @Override
 201  
     String getLine1Unmasked() {
 202  1
         return line1
 203  
     }
 204  
     @Override
 205  
     String getLine2Unmasked() {
 206  1
         return line2
 207  
     }
 208  
     @Override
 209  
     String getLine3Unmasked() {
 210  1
         return line3
 211  
     }
 212  
     @Override
 213  
     String getCityNameUnmasked() {
 214  1
         return cityName
 215  
     }
 216  
     @Override
 217  
     String getStateCodeUnmasked() {
 218  1
         return stateCode
 219  
     }
 220  
     @Override
 221  
     String getPostalCodeUnmasked() {
 222  1
         return postalCode
 223  
     }
 224  
     @Override
 225  
     String getCountryCodeUnmasked() {
 226  1
         return countryCode
 227  
     }
 228  
 }