001 /* 002 * Copyright 2011 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 */ 016 package org.kuali.kfs.module.ar.businessobject; 017 018 import java.sql.Date; 019 import java.util.LinkedHashMap; 020 021 import org.apache.ojb.broker.PersistenceBroker; 022 import org.apache.ojb.broker.PersistenceBrokerException; 023 import org.kuali.kfs.module.ar.document.service.CustomerAddressService; 024 import org.kuali.rice.kns.bo.Country; 025 import org.kuali.kfs.sys.context.SpringContext; 026 import org.kuali.rice.kns.service.CountryService; 027 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase; 028 029 /** 030 * @author Kuali Nervous System Team (kualidev@oncourse.iu.edu) 031 */ 032 public class CustomerAddress extends PersistableBusinessObjectBase implements Comparable<CustomerAddress> { 033 034 private String customerNumber; 035 private Integer customerAddressIdentifier; 036 private String customerAddressName; 037 private String customerLine1StreetAddress; 038 private String customerLine2StreetAddress; 039 private String customerCityName; 040 private String customerStateCode; 041 private String customerZipCode; 042 private String customerCountryCode; 043 private String customerAddressInternationalProvinceName; 044 private String customerInternationalMailCode; 045 private String customerEmailAddress; 046 private String customerAddressTypeCode; 047 private Date customerAddressEndDate; 048 049 private CustomerAddressType customerAddressType; 050 private Customer customer; 051 private Country customerCountry; 052 053 /** 054 * Default constructor. 055 */ 056 public CustomerAddress() { 057 058 } 059 060 /** 061 * Gets the customerNumber attribute. 062 * 063 * @return Returns the customerNumber 064 */ 065 public String getCustomerNumber() { 066 return customerNumber; 067 } 068 069 /** 070 * Sets the customerNumber attribute. 071 * 072 * @param customerNumber The customerNumber to set. 073 */ 074 public void setCustomerNumber(String customerNumber) { 075 this.customerNumber = customerNumber; 076 } 077 078 079 /** 080 * Gets the customerAddressIdentifier attribute. 081 * 082 * @return Returns the customerAddressIdentifier 083 */ 084 public Integer getCustomerAddressIdentifier() { 085 return customerAddressIdentifier; 086 } 087 088 /** 089 * Sets the customerAddressIdentifier attribute. 090 * 091 * @param customerAddressIdentifier The customerAddressIdentifier to set. 092 */ 093 public void setCustomerAddressIdentifier(Integer customerAddressIdentifier) { 094 this.customerAddressIdentifier = customerAddressIdentifier; 095 } 096 097 098 /** 099 * Gets the customerAddressName attribute. 100 * 101 * @return Returns the customerAddressName 102 */ 103 public String getCustomerAddressName() { 104 return customerAddressName; 105 } 106 107 /** 108 * Sets the customerAddressName attribute. 109 * 110 * @param customerAddressName The customerAddressName to set. 111 */ 112 public void setCustomerAddressName(String customerAddressName) { 113 this.customerAddressName = customerAddressName; 114 } 115 116 117 /** 118 * Gets the customerLine1StreetAddress attribute. 119 * 120 * @return Returns the customerLine1StreetAddress 121 */ 122 public String getCustomerLine1StreetAddress() { 123 return customerLine1StreetAddress; 124 } 125 126 /** 127 * Sets the customerLine1StreetAddress attribute. 128 * 129 * @param customerLine1StreetAddress The customerLine1StreetAddress to set. 130 */ 131 public void setCustomerLine1StreetAddress(String customerLine1StreetAddress) { 132 this.customerLine1StreetAddress = customerLine1StreetAddress; 133 } 134 135 136 /** 137 * Gets the customerLine2StreetAddress attribute. 138 * 139 * @return Returns the customerLine2StreetAddress 140 */ 141 public String getCustomerLine2StreetAddress() { 142 return customerLine2StreetAddress; 143 } 144 145 /** 146 * Sets the customerLine2StreetAddress attribute. 147 * 148 * @param customerLine2StreetAddress The customerLine2StreetAddress to set. 149 */ 150 public void setCustomerLine2StreetAddress(String customerLine2StreetAddress) { 151 this.customerLine2StreetAddress = customerLine2StreetAddress; 152 } 153 154 155 /** 156 * Gets the customerCityName attribute. 157 * 158 * @return Returns the customerCityName 159 */ 160 public String getCustomerCityName() { 161 return customerCityName; 162 } 163 164 /** 165 * Sets the customerCityName attribute. 166 * 167 * @param customerCityName The customerCityName to set. 168 */ 169 public void setCustomerCityName(String customerCityName) { 170 this.customerCityName = customerCityName; 171 } 172 173 174 /** 175 * Gets the customerStateCode attribute. 176 * 177 * @return Returns the customerStateCode 178 */ 179 public String getCustomerStateCode() { 180 return customerStateCode; 181 } 182 183 /** 184 * Sets the customerStateCode attribute. 185 * 186 * @param customerStateCode The customerStateCode to set. 187 */ 188 public void setCustomerStateCode(String customerStateCode) { 189 this.customerStateCode = customerStateCode; 190 } 191 192 193 /** 194 * Gets the customerZipCode attribute. 195 * 196 * @return Returns the customerZipCode 197 */ 198 public String getCustomerZipCode() { 199 return customerZipCode; 200 } 201 202 /** 203 * Sets the customerZipCode attribute. 204 * 205 * @param customerZipCode The customerZipCode to set. 206 */ 207 public void setCustomerZipCode(String customerZipCode) { 208 this.customerZipCode = customerZipCode; 209 } 210 211 /** 212 * Gets the customerAddressInternationalProvinceName attribute. 213 * 214 * @return Returns the customerAddressInternationalProvinceName. 215 */ 216 public String getCustomerAddressInternationalProvinceName() { 217 return customerAddressInternationalProvinceName; 218 } 219 220 /** 221 * Sets the customerAddressInternationalProvinceName attribute value. 222 * 223 * @param customerAddressInternationalProvinceName The customerAddressInternationalProvinceName to set. 224 */ 225 public void setCustomerAddressInternationalProvinceName(String customerAddressInternationalProvinceName) { 226 this.customerAddressInternationalProvinceName = customerAddressInternationalProvinceName; 227 } 228 229 /** 230 * Gets the customerCountryCode attribute. 231 * 232 * @return Returns the customerCountryCode. 233 */ 234 public String getCustomerCountryCode() { 235 return customerCountryCode; 236 } 237 238 /** 239 * Sets the customerCountryCode attribute value. 240 * 241 * @param customerCountryCode The customerCountryCode to set. 242 */ 243 public void setCustomerCountryCode(String customerCountryCode) { 244 this.customerCountryCode = customerCountryCode; 245 } 246 247 /** 248 * Gets the customerInternationalMailCode attribute. 249 * 250 * @return Returns the customerInternationalMailCode 251 */ 252 public String getCustomerInternationalMailCode() { 253 return customerInternationalMailCode; 254 } 255 256 /** 257 * Sets the customerInternationalMailCode attribute. 258 * 259 * @param customerInternationalMailCode The customerInternationalMailCode to set. 260 */ 261 public void setCustomerInternationalMailCode(String customerInternationalMailCode) { 262 this.customerInternationalMailCode = customerInternationalMailCode; 263 } 264 265 /** 266 * Gets the customerEmailAddress attribute. 267 * 268 * @return Returns the customerEmailAddress 269 */ 270 public String getCustomerEmailAddress() { 271 return customerEmailAddress; 272 } 273 274 /** 275 * Sets the customerEmailAddress attribute. 276 * 277 * @param customerEmailAddress The customerEmailAddress to set. 278 */ 279 public void setCustomerEmailAddress(String customerEmailAddress) { 280 this.customerEmailAddress = customerEmailAddress; 281 } 282 283 284 /** 285 * Gets the customerAddressTypeCode attribute. 286 * 287 * @return Returns the customerAddressTypeCode 288 */ 289 public String getCustomerAddressTypeCode() { 290 return customerAddressTypeCode; 291 } 292 293 /** 294 * Sets the customerAddressTypeCode attribute. 295 * 296 * @param customerAddressTypeCode The customerAddressTypeCode to set. 297 */ 298 public void setCustomerAddressTypeCode(String customerAddressTypeCode) { 299 this.customerAddressTypeCode = customerAddressTypeCode; 300 } 301 302 303 /** 304 * Gets the customerAddressEndDate attribute. 305 * 306 * @return Returns the customerAddressEndDate 307 */ 308 public Date getCustomerAddressEndDate() { 309 return customerAddressEndDate; 310 } 311 312 /** 313 * Sets the customerAddressEndDate attribute. 314 * 315 * @param customerAddressEndDate The customerAddressEndDate to set. 316 */ 317 public void setCustomerAddressEndDate(Date customerAddressEndDate) { 318 this.customerAddressEndDate = customerAddressEndDate; 319 } 320 321 /** 322 * Gets the customerAddressType attribute. 323 * 324 * @return Returns the customerAddressType 325 */ 326 public CustomerAddressType getCustomerAddressType() { 327 return customerAddressType; 328 } 329 330 /** 331 * Sets the customerAddressType attribute. 332 * 333 * @param customerAddressType The customerAddressType to set. 334 * @deprecated 335 */ 336 public void setCustomerAddressType(CustomerAddressType customerAddressType) { 337 this.customerAddressType = customerAddressType; 338 } 339 340 /** 341 * Gets the customer attribute. 342 * 343 * @return Returns the customer. 344 */ 345 public Customer getCustomer() { 346 return customer; 347 } 348 349 /** 350 * Sets the customer attribute value. 351 * 352 * @param customer The customer to set. 353 * @deprecated 354 */ 355 public void setCustomer(Customer customer) { 356 this.customer = customer; 357 } 358 359 /** 360 * Gets the customerCountry attribute. 361 * 362 * @return Returns the customerCountry. 363 */ 364 public Country getCustomerCountry() { 365 customerCountry = SpringContext.getBean(CountryService.class).getByPrimaryIdIfNecessary(customerCountryCode, customerCountry); 366 return customerCountry; 367 } 368 369 /** 370 * Sets the customerCountry attribute value. 371 * 372 * @param customerCountry The customerCountry to set. 373 * @deprecated 374 */ 375 public void setCustomerCountry(Country customerCountry) { 376 this.customerCountry = customerCountry; 377 } 378 379 /** 380 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper() 381 */ 382 @SuppressWarnings("unchecked") 383 protected LinkedHashMap toStringMapper() { 384 LinkedHashMap m = new LinkedHashMap(); 385 m.put("customerNumber", this.customerNumber); 386 if (this.customerAddressIdentifier != null) { 387 m.put("customerAddressIdentifier", this.customerAddressIdentifier.toString()); 388 } 389 return m; 390 } 391 392 393 /** 394 * @see java.lang.Comparable#compareTo(java.lang.Object) 395 */ 396 public int compareTo(CustomerAddress address) { 397 if (this.getCustomerNumber() != null && address.getCustomerNumber() != null && !this.getCustomerNumber().equalsIgnoreCase(address.getCustomerNumber())) { 398 return -1; 399 } 400 if (this.getCustomerAddressName() != null && address.getCustomerAddressName() != null && !this.getCustomerAddressName().equalsIgnoreCase(address.getCustomerAddressName())) { 401 return -1; 402 } 403 if (this.getCustomerLine1StreetAddress() != null && address.getCustomerLine1StreetAddress() != null && !this.getCustomerLine1StreetAddress().equalsIgnoreCase(address.getCustomerLine1StreetAddress())) { 404 return -1; 405 } 406 if (this.getCustomerLine2StreetAddress() != null && address.getCustomerLine2StreetAddress() != null && !this.getCustomerLine2StreetAddress().equalsIgnoreCase(address.getCustomerLine2StreetAddress()) 407 || (this.getCustomerLine2StreetAddress() == null && address.getCustomerLine2StreetAddress() != null) || (this.getCustomerLine2StreetAddress() != null && address.getCustomerLine2StreetAddress() == null)) { 408 return -1; 409 } 410 if (this.getCustomerCityName() != null && address.getCustomerCityName() != null && !this.getCustomerCityName().equalsIgnoreCase(address.getCustomerCityName())) { 411 return -1; 412 } 413 if (this.getCustomerStateCode() != null && address.getCustomerStateCode() != null && !this.getCustomerStateCode().equalsIgnoreCase(address.getCustomerStateCode()) 414 || (this.getCustomerStateCode() == null && address.getCustomerStateCode() != null) || (this.getCustomerStateCode() != null && address.getCustomerStateCode() == null)) { 415 return -1; 416 } 417 if (this.getCustomerZipCode() != null && address.getCustomerZipCode() != null && !this.getCustomerZipCode().equalsIgnoreCase(address.getCustomerZipCode()) 418 || (this.getCustomerZipCode() == null && address.getCustomerZipCode() != null) || (this.getCustomerZipCode() != null && address.getCustomerZipCode() == null)) { 419 return -1; 420 } 421 if (this.getCustomerCountryCode() != null && address.getCustomerCountryCode() != null && !this.getCustomerCountryCode().equalsIgnoreCase(address.getCustomerCountryCode())) { 422 return -1; 423 } 424 if (this.getCustomerAddressInternationalProvinceName() != null && address.getCustomerAddressInternationalProvinceName() != null && !this.getCustomerAddressInternationalProvinceName().equalsIgnoreCase(address.getCustomerAddressInternationalProvinceName()) 425 || (this.getCustomerAddressInternationalProvinceName() == null && address.getCustomerAddressInternationalProvinceName() != null) || (this.getCustomerAddressInternationalProvinceName() != null && address.getCustomerAddressInternationalProvinceName() == null)) { 426 return -1; 427 } 428 if (this.getCustomerEmailAddress() != null && address.getCustomerEmailAddress() != null && !this.getCustomerEmailAddress().equalsIgnoreCase(address.getCustomerEmailAddress()) 429 || (this.getCustomerEmailAddress() == null && address.getCustomerEmailAddress() != null) || (this.getCustomerEmailAddress() != null && address.getCustomerEmailAddress() == null)) { 430 return -1; 431 } 432 if (this.getCustomerAddressTypeCode() != null && address.getCustomerAddressTypeCode() != null && !this.getCustomerAddressTypeCode().equalsIgnoreCase(address.getCustomerAddressTypeCode()) 433 || (this.getCustomerAddressTypeCode() == null && address.getCustomerAddressTypeCode() != null) || (this.getCustomerAddressTypeCode() != null && address.getCustomerAddressTypeCode() == null)) { 434 return -1; 435 } 436 if (this.getCustomerAddressIdentifier() != null && address.getCustomerAddressIdentifier() != null && this.getCustomerAddressIdentifier().compareTo(address.getCustomerAddressIdentifier())!= 0 437 || (this.getCustomerAddressIdentifier() == null && address.getCustomerAddressIdentifier() != null) || (this.getCustomerAddressIdentifier() != null && address.getCustomerAddressIdentifier() == null)) { 438 return -1; 439 } 440 return 0; 441 } 442 443 @Override 444 public void beforeInsert(PersistenceBroker persistenceBroker) throws PersistenceBrokerException { 445 super.beforeInsert(persistenceBroker); 446 CustomerAddressService customerAddressService = SpringContext.getBean(CustomerAddressService.class); 447 int customerAddressIdentifier = customerAddressService.getNextCustomerAddressIdentifier(); 448 this.setCustomerAddressIdentifier(customerAddressIdentifier); 449 } 450 451 }