001 package org.kuali.ole.patron.api; 002 003 import org.apache.commons.collections.CollectionUtils; 004 import org.apache.commons.lang.StringUtils; 005 import org.kuali.api.jaxb.DateAdapter; 006 import org.kuali.rice.core.api.CoreConstants; 007 import org.kuali.rice.core.api.mo.AbstractDataTransferObject; 008 import org.kuali.rice.core.api.mo.ModelBuilder; 009 import org.kuali.rice.kim.api.KimConstants; 010 import org.kuali.rice.kim.api.identity.address.EntityAddress; 011 import org.kuali.rice.kim.api.identity.address.EntityAddressContract; 012 import org.kuali.rice.kim.api.identity.email.EntityEmail; 013 import org.kuali.rice.kim.api.identity.email.EntityEmailContract; 014 import org.kuali.rice.kim.api.identity.entity.Entity; 015 import org.kuali.rice.kim.api.identity.name.EntityName; 016 import org.kuali.rice.kim.api.identity.phone.EntityPhone; 017 import org.kuali.rice.kim.api.identity.phone.EntityPhoneContract; 018 import org.w3c.dom.Element; 019 020 import javax.xml.bind.annotation.*; 021 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; 022 import java.io.Serializable; 023 import java.util.ArrayList; 024 import java.util.Collection; 025 import java.util.Date; 026 import java.util.List; 027 028 /** 029 * Created with IntelliJ IDEA. 030 * User: ? 031 * Date: 5/24/12 032 * Time: 8:26 PM 033 * To change this template use File | Settings | File Templates. 034 */ 035 @XmlRootElement(name = OlePatronDefinition.Constants.ROOT_ELEMENT_NAME) 036 @XmlAccessorType(XmlAccessType.NONE) 037 @XmlType(name = OlePatronDefinition.Constants.TYPE_NAME, propOrder = { 038 OlePatronDefinition.Elements.PATRON_ID, 039 OlePatronDefinition.Elements.BARCODE, 040 OlePatronDefinition.Elements.BORROWER_TYPE, 041 OlePatronDefinition.Elements.ACITVE_INICATOR, 042 OlePatronDefinition.Elements.GENERAL_BLOCK, 043 OlePatronDefinition.Elements.PAGING_PRIVILEGE, 044 OlePatronDefinition.Elements.COURTESY_NOTICE, 045 OlePatronDefinition.Elements.DELIVERYPRIVILEGE, 046 OlePatronDefinition.Elements.EXPIRATION_DATE, 047 OlePatronDefinition.Elements.ACTIVATION_DATE, 048 OlePatronDefinition.Elements.OLE_BORROWER_TYPE, 049 OlePatronDefinition.Elements.PHONES, 050 OlePatronDefinition.Elements.ADDRESSES, 051 OlePatronDefinition.Elements.NAME, 052 OlePatronDefinition.Elements.EMAILS, 053 OlePatronDefinition.Elements.NOTES, 054 OlePatronDefinition.Elements.LOST_BARCODES, 055 OlePatronDefinition.Elements.OLE_ENTITY_ADDRESSES, 056 OlePatronDefinition.Elements.GENERAL_BLOCK_NOTES, 057 OlePatronDefinition.Elements.PATRON_AFFILIATIONS, 058 OlePatronDefinition.Elements.OLE_PROXY_PATRON_DOCS, 059 // OlePatronDefinition.Elements.OLE_PATRON_DOCS, 060 OlePatronDefinition.Elements.OLE_SOURCE, 061 OlePatronDefinition.Elements.OLE_STATISTICAL_CAT, 062 OlePatronDefinition.Elements.OLE_ADDRESSES, 063 OlePatronDefinition.Elements.OLE_PATRON_LOCAL_IDS, 064 CoreConstants.CommonElements.VERSION_NUMBER, 065 //CoreConstants.CommonElements.OBJECT_ID, 066 CoreConstants.CommonElements.FUTURE_ELEMENTS 067 }) 068 public final class OlePatronDefinition extends AbstractDataTransferObject implements OlePatronContract{ 069 070 private static final long serialVersionUID = 1L; 071 072 @XmlElement(name = Elements.PATRON_ID, required = false) 073 private final String olePatronId; 074 075 @XmlElement(name = Elements.BARCODE, required = false) 076 private final String barcode; 077 078 @XmlElement(name = Elements.BORROWER_TYPE, required = false) 079 private final String borrowerType; 080 081 @XmlElement(name = Elements.ACITVE_INICATOR, required = false) 082 private final boolean activeIndicator; 083 084 @XmlElement(name = Elements.GENERAL_BLOCK, required = false) 085 private final boolean generalBlock; 086 087 @XmlElement(name = Elements.PAGING_PRIVILEGE, required = false) 088 private final boolean pagingPrivilege; 089 090 @XmlElement(name = Elements.COURTESY_NOTICE, required = false) 091 private final boolean courtesyNotice; 092 093 @XmlElement(name = Elements.DELIVERYPRIVILEGE, required = false) 094 private final boolean deliveryPrivilege; 095 096 @XmlElement(name = Elements.EXPIRATION_DATE, required = false) 097 @XmlJavaTypeAdapter(value=DateAdapter.class, type=Date.class) 098 private final Date expirationDate; 099 100 @XmlElement(name = Elements.ACTIVATION_DATE, required = false) 101 @XmlJavaTypeAdapter(value=DateAdapter.class, type=Date.class) 102 private final Date activationDate; 103 104 @XmlElementWrapper(name = Elements.PHONES, required = false) 105 @XmlElement(name = Elements.PHONE, required = false) 106 private final List<EntityPhone> phones; 107 108 @XmlElementWrapper(name = Elements.ADDRESSES, required = false) 109 @XmlElement(name = Elements.ADDRESS, required = false) 110 private final List<EntityAddress> addresses; 111 112 @XmlElement(name = Elements.NAME, required = false) 113 private final EntityName name; 114 115 @XmlElementWrapper(name = Elements.EMAILS, required = false) 116 @XmlElement(name = Elements.EMAIL, required = false) 117 private final List<EntityEmail> emails; 118 119 @XmlElementWrapper(name = Elements.NOTES, required = false) 120 @XmlElement(name = Elements.NOTE, required = false) 121 private final List<OlePatronNotesDefinition> notes; 122 123 @XmlElementWrapper(name = Elements.LOST_BARCODES, required = false) 124 @XmlElement(name = Elements.LOST_BARCODE, required = false) 125 private final List<OlePatronLostBarcodeDefinition> lostBarcodes; 126 127 @XmlElementWrapper(name = Elements.OLE_ENTITY_ADDRESSES, required = false) 128 @XmlElement(name = Elements.OLE_ENTITY_ADDRESS, required = false) 129 private final List<OleEntityAddressDefinition> oleEntityAddressBo; 130 131 @XmlElementWrapper(name = Elements.PATRON_AFFILIATIONS, required = false) 132 @XmlElement(name = Elements.PATRON_AFFILIATION, required = false) 133 private final List<OlePatronAffiliationDefinition> patronAffiliations; 134 135 @XmlElementWrapper(name = Elements.OLE_PROXY_PATRON_DOCS, required = false) 136 @XmlElement(name = Elements.OLE_PROXY_PATRON_DOC, required = false) 137 private final List<OleProxyPatronDefinition> oleProxyPatronDocuments; 138 139 @XmlElementWrapper(name = Elements.OLE_ADDRESSES, required = false) 140 @XmlElement(name = Elements.OLE_ADDRESS, required = false) 141 private final List<OleAddressDefinition> oleAddresses; 142 143 @XmlElement(name = Elements.GENERAL_BLOCK_NOTES, required = false) 144 private final String generalBlockNotes; 145 146 @XmlElement(name = Elements.OLE_SOURCE, required = false) 147 private final String source; 148 149 150 @XmlElement(name = Elements.OLE_STATISTICAL_CAT, required = false) 151 private final String statisticalCategory; 152 153 @XmlElementWrapper(name = Elements.OLE_PATRON_LOCAL_IDS, required = false) 154 @XmlElement(name = Elements.OLE_PATRON_LOCAL_ID, required = false) 155 private final List<OlePatronLocalIdentificationDefinition> olePatronLocalIds; 156 157 @XmlElement(name = Elements.OLE_BORROWER_TYPE, required = false) 158 private final OleBorrowerTypeDefinition oleBorrowerType; 159 160 //@XmlElement(name = Elements.ENTITY, required = false) 161 private final Entity entity; 162 163 @XmlElement(name = CoreConstants.CommonElements.VERSION_NUMBER, required = false) 164 private final Long versionNumber; 165 166 /*@XmlElement(name = CoreConstants.CommonElements.OBJECT_ID, required = false) 167 private final String objectId;*/ 168 @SuppressWarnings("unused") 169 @XmlAnyElement 170 private final Collection<Element> _futureElements = null; 171 172 public OlePatronDefinition() { 173 this.olePatronId = null; 174 this.barcode = null; 175 this.borrowerType = null; 176 this.activeIndicator = false; 177 this.generalBlock = false; 178 this.pagingPrivilege = false; 179 this.courtesyNotice = false; 180 this.deliveryPrivilege = false; 181 this.expirationDate = null; 182 this.activationDate = null; 183 184 this.phones = null; 185 this.addresses = null; 186 this.name = null; 187 this.emails = null; 188 this.notes = null; 189 this.lostBarcodes = null; 190 this.oleEntityAddressBo = null; 191 this.patronAffiliations = null; 192 this.oleBorrowerType = null; 193 this.entity = null; 194 this.generalBlockNotes = null; 195 this.oleProxyPatronDocuments = null; 196 //this.olePatronDocuments = null; 197 this.source = null; 198 this.statisticalCategory = null; 199 this.oleAddresses = null; 200 this.olePatronLocalIds = null; 201 this.versionNumber = null; 202 //this.objectId = null; 203 } 204 205 206 private OlePatronDefinition(Builder builder) { 207 this.olePatronId = builder.getOlePatronId(); 208 this.barcode = builder.getBarcode(); 209 this.borrowerType = builder.getBorrowerType(); 210 this.activeIndicator = builder.isActiveIndicator(); 211 this.generalBlock = builder.isGeneralBlock(); 212 this.pagingPrivilege = builder.isPagingPrivilege(); 213 this.courtesyNotice = builder.isCourtesyNotice(); 214 this.deliveryPrivilege = builder.isDeliveryPrivilege(); 215 this.expirationDate = builder.getExpirationDate(); 216 this.activationDate = builder.getActivationDate(); 217 this.generalBlockNotes = builder.getGeneralBlockNotes(); 218 this.source = builder.getSource(); 219 this.statisticalCategory = builder.getStatisticalCategory(); 220 this.oleBorrowerType = builder.getOleBorrowerType().build(); 221 222 this.addresses = new ArrayList<EntityAddress>(); 223 if (!CollectionUtils.isEmpty(builder.getAddresses())) { 224 for (EntityAddress.Builder address : builder.getAddresses()) { 225 this.addresses.add(address.build()); 226 } 227 } 228 229 this.emails = new ArrayList<EntityEmail>(); 230 if (!CollectionUtils.isEmpty(builder.getEmails())) { 231 for (EntityEmail.Builder email : builder.getEmails()) { 232 this.emails.add(email.build()); 233 } 234 } 235 this.phones = new ArrayList<EntityPhone>(); 236 if (!CollectionUtils.isEmpty(builder.getPhones())) { 237 for (EntityPhone.Builder phoneNumber : builder.getPhones()) { 238 this.phones.add(phoneNumber.build()); 239 } 240 } 241 this.name = builder.getName().build(); 242 243 this.notes = new ArrayList<OlePatronNotesDefinition>(); 244 if (!CollectionUtils.isEmpty(builder.getNotes())) { 245 for (OlePatronNotesDefinition.Builder note : builder.getNotes()) { 246 this.notes.add(note.build()); 247 } 248 } 249 250 this.lostBarcodes = new ArrayList<OlePatronLostBarcodeDefinition>(); 251 if (!CollectionUtils.isEmpty(builder.getLostBarcodes())) { 252 for (OlePatronLostBarcodeDefinition.Builder lostBarcode : builder.getLostBarcodes()) { 253 this.lostBarcodes.add(lostBarcode.build()); 254 } 255 } 256 257 this.oleEntityAddressBo = new ArrayList<OleEntityAddressDefinition>(); 258 if (!CollectionUtils.isEmpty(builder.getOleEntityAddressBo())) { 259 for (OleEntityAddressDefinition.Builder oleEntityAddress : builder.getOleEntityAddressBo()) { 260 this.oleEntityAddressBo.add(oleEntityAddress.build()); 261 } 262 } 263 264 this.patronAffiliations= new ArrayList<OlePatronAffiliationDefinition>(); 265 if (!CollectionUtils.isEmpty(builder.getPatronAffiliations())) { 266 for (OlePatronAffiliationDefinition.Builder oleAffiliation : builder.getPatronAffiliations()) { 267 this.patronAffiliations.add(oleAffiliation.build()); 268 } 269 } 270 271 this.oleProxyPatronDocuments= new ArrayList<OleProxyPatronDefinition>(); 272 if (!CollectionUtils.isEmpty(builder.getOleProxyPatronDocuments())) { 273 for (OleProxyPatronDefinition.Builder oleProxyPatron : builder.getOleProxyPatronDocuments()) { 274 this.oleProxyPatronDocuments.add(oleProxyPatron.build()); 275 } 276 } 277 278 this.oleAddresses= new ArrayList<OleAddressDefinition>(); 279 if (!CollectionUtils.isEmpty(builder.getOleAddresses())) { 280 for (OleAddressDefinition.Builder oleAddress : builder.getOleAddresses()) { 281 this.oleAddresses.add(oleAddress.build()); 282 } 283 } 284 285 this.olePatronLocalIds= new ArrayList<OlePatronLocalIdentificationDefinition>(); 286 if (!CollectionUtils.isEmpty(builder.getOlePatronLocalIds())) { 287 for (OlePatronLocalIdentificationDefinition.Builder olePatronLocalIds: builder.getOlePatronLocalIds()) { 288 this.olePatronLocalIds.add(olePatronLocalIds.build()); 289 } 290 } 291 292 this.entity = builder.getEntity().build(); 293 294 this.versionNumber = builder.getVersionNumber(); 295 //this.objectId = builder.getObjectId(); 296 } 297 298 @Override 299 public String getOlePatronId() { 300 return this.olePatronId; 301 } 302 303 @Override 304 public String getBarcode() { 305 return this.barcode; 306 } 307 308 @Override 309 public String getBorrowerType() { 310 return this.borrowerType; 311 } 312 313 @Override 314 public boolean isActiveIndicator() { 315 return this.activeIndicator; 316 } 317 318 @Override 319 public boolean isGeneralBlock() { 320 return this.generalBlock; 321 } 322 323 @Override 324 public boolean isPagingPrivilege() { 325 return this.pagingPrivilege; 326 } 327 328 @Override 329 public boolean isCourtesyNotice() { 330 return this.courtesyNotice; 331 } 332 333 @Override 334 public boolean isDeliveryPrivilege() { 335 return this.deliveryPrivilege; 336 } 337 338 @Override 339 public Date getExpirationDate() { 340 return this.expirationDate; 341 } 342 343 @Override 344 public Date getActivationDate() { 345 return this.activationDate; 346 } 347 348 @Override 349 public List<EntityAddress> getAddresses() { 350 return this.addresses; 351 } 352 353 @Override 354 public List<EntityEmail> getEmails() { 355 return this.emails; 356 } 357 358 @Override 359 public EntityName getName() { 360 return this.name; 361 } 362 363 @Override 364 public List<EntityPhone> getPhones() { 365 return this.phones; 366 } 367 368 @Override 369 public List<OleEntityAddressDefinition> getOleEntityAddressBo() { 370 return this.oleEntityAddressBo; 371 } 372 373 @Override 374 public List<OlePatronAffiliationDefinition> getPatronAffiliations() { 375 return this.patronAffiliations; 376 } 377 378 @Override 379 public List<OleProxyPatronDefinition> getOleProxyPatronDocuments() { 380 return this.oleProxyPatronDocuments; 381 } 382 383 @Override 384 public List<OleAddressDefinition> getOleAddresses() { 385 return this.oleAddresses; 386 } 387 388 @Override 389 public List<OlePatronLocalIdentificationDefinition> getOlePatronLocalIds() { 390 return this.olePatronLocalIds; 391 } 392 393 @Override 394 public String getGeneralBlockNotes() { 395 return this.generalBlockNotes; 396 } 397 398 @Override 399 public String getSource() { 400 return this.source; 401 } 402 403 @Override 404 public String getStatisticalCategory() { 405 return this.statisticalCategory; 406 } 407 408 @Override 409 public Entity getEntity() { 410 return this.entity; 411 } 412 413 @Override 414 public String getId() { 415 return this.olePatronId; 416 } 417 418 /* @Override 419 public boolean isActive() { 420 return this.activeIndicator; 421 }*/ 422 423 @Override 424 public Long getVersionNumber() { 425 return this.versionNumber; 426 } 427 428 @Override 429 public List<OlePatronNotesDefinition> getNotes() { 430 return this.notes; 431 } 432 433 @Override 434 public List<OlePatronLostBarcodeDefinition> getLostBarcodes() { 435 return this.lostBarcodes; 436 } 437 438 //@Override 439 public OleBorrowerTypeDefinition getOleBorrowerType() { 440 return this.oleBorrowerType; 441 } 442 443 public static class Builder 444 implements Serializable, ModelBuilder, OlePatronContract 445 { 446 private String olePatronId; 447 private String barcode; 448 private String borrowerType; 449 private boolean activeIndicator; 450 private boolean generalBlock; 451 private boolean pagingPrivilege; 452 private boolean courtesyNotice; 453 private boolean deliveryPrivilege; 454 private Date expirationDate; 455 private Date activationDate; 456 private Date invalidBarcodeNumEffDate; 457 private String generalBlockNotes; 458 private String source; 459 private String statisticalCategory; 460 private String addressSource; 461 462 private List<EntityPhone.Builder> phones; 463 private List<EntityAddress.Builder> addresses; 464 private EntityName.Builder name; 465 private List<EntityEmail.Builder> emails; 466 private List<OlePatronNotesDefinition.Builder> notes; 467 private List<OlePatronLostBarcodeDefinition.Builder> lostBarcodes; 468 private OleBorrowerTypeDefinition.Builder oleBorrowerType; 469 private OleSourceDefinition.Builder sourceBo; 470 private OleStatisticalCategoryDefinition.Builder statisticalCategoryBo; 471 private Entity.Builder entity; 472 private List<OleEntityAddressDefinition.Builder> oleEntityAddressBo; 473 private List<OlePatronAffiliationDefinition.Builder> patronAffiliations; 474 private List<OleProxyPatronDefinition.Builder> oleProxyPatronDocuments; 475 private List<OlePatronDefinition.Builder> olePatronDocuments; 476 private List<OlePatronLocalIdentificationDefinition.Builder> olePatronLocalIds; 477 private List<OleAddressDefinition.Builder> oleAddresses; 478 479 private Long versionNumber; 480 private String objectId; 481 482 private Builder() { } 483 484 public static Builder create() { 485 return new Builder(); 486 } 487 488 public static Builder create(OlePatronContract contract) { 489 if(contract == null) { 490 throw new IllegalArgumentException("contract was null"); 491 } 492 Builder builder = create(); 493 if (contract.getOlePatronId() != null) { 494 builder.setOlePatronId(contract.getOlePatronId()); 495 } 496 if(contract.getBarcode() != null) { 497 builder.setBarcode(contract.getBarcode()); 498 } 499 if(contract.getBorrowerType() != null) { 500 builder.setBorrowerType(contract.getBorrowerType()); 501 } 502 if(contract.isActiveIndicator()) { 503 builder.setActiveIndicator(contract.isActiveIndicator()); 504 builder.setActive(contract.isActiveIndicator()); 505 } 506 if(contract.isGeneralBlock()) { 507 builder.setGeneralBlock(contract.isGeneralBlock()); 508 } 509 if(contract.isDeliveryPrivilege()) { 510 builder.setDeliveryPrivilege(contract.isDeliveryPrivilege()); 511 } 512 if(contract.isPagingPrivilege()) { 513 builder.setPagingPrivilege(contract.isPagingPrivilege()); 514 } 515 if(contract.isCourtesyNotice()) { 516 builder.setCourtesyNotice(contract.isCourtesyNotice()); 517 } 518 if(contract.getExpirationDate() != null) { 519 builder.setExpirationDate(contract.getExpirationDate()); 520 } 521 if(contract.getActivationDate() != null) { 522 builder.setActivationDate(contract.getActivationDate()); 523 } 524 if(contract.getGeneralBlockNotes() != null) { 525 builder.setGeneralBlockNotes(contract.getGeneralBlockNotes()); 526 } 527 if(contract.getSource()!= null) { 528 builder.setSource(contract.getSource()); 529 } 530 if(contract.getStatisticalCategory()!= null) { 531 builder.setStatisticalCategory(contract.getStatisticalCategory()); 532 } 533 if (contract.getEntity() != null) { 534 builder.setEntity(Entity.Builder.create(contract.getEntity())); 535 } 536 builder.addresses = new ArrayList<EntityAddress.Builder>(); 537 if (!CollectionUtils.isEmpty(contract.getAddresses())) { 538 for (EntityAddressContract addressContract : contract.getAddresses()) { 539 builder.addresses.add(EntityAddress.Builder.create(addressContract)); 540 } 541 } 542 else if(contract.getEntity() != null) { 543 if(!CollectionUtils.isEmpty(contract.getEntity().getEntityTypeContactInfos()) && 544 !CollectionUtils.isEmpty(contract.getEntity().getEntityTypeContactInfos().get(0).getAddresses())) { 545 for (EntityAddressContract addressContract : contract.getEntity().getEntityTypeContactInfos().get(0).getAddresses()) { 546 builder.addresses.add(EntityAddress.Builder.create(addressContract)); 547 } 548 } 549 550 } 551 builder.emails = new ArrayList<EntityEmail.Builder>(); 552 if (!CollectionUtils.isEmpty(contract.getEmails())) { 553 for (EntityEmailContract emailContract : contract.getEmails()) { 554 builder.emails.add(EntityEmail.Builder.create(emailContract)); 555 } 556 } 557 else if(contract.getEntity() != null) { 558 if(!CollectionUtils.isEmpty(contract.getEntity().getEntityTypeContactInfos()) && 559 !CollectionUtils.isEmpty(contract.getEntity().getEntityTypeContactInfos().get(0).getEmailAddresses())) { 560 for (EntityEmailContract emailContract : contract.getEntity().getEntityTypeContactInfos().get(0).getEmailAddresses()) { 561 builder.emails.add(EntityEmail.Builder.create(emailContract)); 562 } 563 } 564 565 } 566 builder.phones = new ArrayList<EntityPhone.Builder>(); 567 if (!CollectionUtils.isEmpty(contract.getPhones())) { 568 for (EntityPhoneContract phoneContract : contract.getPhones()) { 569 builder.phones.add(EntityPhone.Builder.create(phoneContract)); 570 } 571 } 572 else if(contract.getEntity() != null) { 573 if(!CollectionUtils.isEmpty(contract.getEntity().getEntityTypeContactInfos()) && 574 !CollectionUtils.isEmpty(contract.getEntity().getEntityTypeContactInfos().get(0).getPhoneNumbers())) { 575 for (EntityPhoneContract phoneContract : contract.getEntity().getEntityTypeContactInfos().get(0).getPhoneNumbers()) { 576 builder.phones.add(EntityPhone.Builder.create(phoneContract)); 577 } 578 } 579 580 } 581 builder.oleEntityAddressBo = new ArrayList<OleEntityAddressDefinition.Builder>(); 582 if (!CollectionUtils.isEmpty(contract.getOleEntityAddressBo())) { 583 for (OleEntityAddressContract oleEntityAddressContract : contract.getOleEntityAddressBo()) { 584 builder.oleEntityAddressBo.add(OleEntityAddressDefinition.Builder.create(oleEntityAddressContract)); 585 } 586 } 587 builder.oleAddresses = new ArrayList<OleAddressDefinition.Builder>(); 588 if (!CollectionUtils.isEmpty(contract.getOleAddresses())) { 589 for (OleAddressContract oleAddressContract : contract.getOleAddresses()) { 590 builder.oleAddresses.add(OleAddressDefinition.Builder.create(oleAddressContract)); 591 } 592 } 593 if (contract.getName() != null && contract.getName().getFirstName() != null) { 594 builder.setName(EntityName.Builder.create(contract.getName())); 595 } 596 else if(contract.getEntity() != null) { 597 if(!CollectionUtils.isEmpty(contract.getEntity().getNames())) { 598 builder.setName(EntityName.Builder.create(contract.getEntity().getNames().get(0))); 599 } 600 601 } 602 if(contract.getOleBorrowerType() != null) { 603 builder.setOleBorrowerType(OleBorrowerTypeDefinition.Builder.create(contract.getOleBorrowerType())); 604 } 605 builder.notes = new ArrayList<OlePatronNotesDefinition.Builder>(); 606 if (!CollectionUtils.isEmpty(contract.getNotes())) { 607 for(OlePatronNotesContract noteContract : contract.getNotes()) { 608 builder.notes.add(OlePatronNotesDefinition.Builder.create(noteContract)); 609 } 610 } 611 builder.lostBarcodes = new ArrayList<OlePatronLostBarcodeDefinition.Builder>(); 612 if (!CollectionUtils.isEmpty(contract.getLostBarcodes())) { 613 for(OlePatronLostBarcodeContract lostBarcodeContract : contract.getLostBarcodes()) { 614 builder.lostBarcodes.add(OlePatronLostBarcodeDefinition.Builder.create(lostBarcodeContract)); 615 } 616 } 617 builder.patronAffiliations = new ArrayList<OlePatronAffiliationDefinition.Builder>(); 618 if (!CollectionUtils.isEmpty(contract.getPatronAffiliations())) { 619 for(OlePatronAffiliationContract affiliationContract : contract.getPatronAffiliations()) { 620 builder.patronAffiliations.add(OlePatronAffiliationDefinition.Builder.create(affiliationContract)); 621 } 622 } 623 624 builder.oleProxyPatronDocuments = new ArrayList<OleProxyPatronDefinition.Builder>(); 625 if (!CollectionUtils.isEmpty(contract.getOleProxyPatronDocuments())) { 626 for(OleProxyPatronContract proxyContract : contract.getOleProxyPatronDocuments()) { 627 builder.oleProxyPatronDocuments.add(OleProxyPatronDefinition.Builder.create(proxyContract)); 628 } 629 } 630 builder.olePatronLocalIds = new ArrayList<OlePatronLocalIdentificationDefinition.Builder>(); 631 if (!CollectionUtils.isEmpty(contract.getOlePatronLocalIds())) { 632 for(OlePatronLocalIdentificationContract patornLocalIdContract : contract.getOlePatronLocalIds()) { 633 builder.olePatronLocalIds.add(OlePatronLocalIdentificationDefinition.Builder.create(patornLocalIdContract)); 634 } 635 } 636 builder.setVersionNumber(contract.getVersionNumber()); 637 /*builder.setObjectId(contract.getObjectId()); 638 builder.setActive(contract.isActive());*/ 639 builder.setId(contract.getId()); 640 return builder; 641 } 642 643 644 public OlePatronDefinition build() { 645 return new OlePatronDefinition(this); 646 } 647 648 @Override 649 public String getOlePatronId() { 650 return olePatronId; 651 } 652 653 public void setOlePatronId(String olePatronId) { 654 this.olePatronId = olePatronId; 655 } 656 657 @Override 658 public String getBarcode() { 659 return barcode; 660 } 661 662 public void setBarcode(String barcode) { 663 this.barcode = barcode; 664 } 665 666 @Override 667 public String getBorrowerType() { 668 return borrowerType; 669 } 670 671 672 public void setBorrowerType(String borrowerType) { 673 this.borrowerType = borrowerType; 674 } 675 676 @Override 677 public boolean isActiveIndicator() { 678 return activeIndicator; 679 } 680 681 public void setActiveIndicator(boolean activeIndicator) { 682 this.activeIndicator = activeIndicator; 683 } 684 685 @Override 686 public boolean isGeneralBlock() { 687 return generalBlock; 688 } 689 690 public void setGeneralBlock(boolean generalBlock) { 691 this.generalBlock = generalBlock; 692 } 693 694 @Override 695 public boolean isPagingPrivilege() { 696 return pagingPrivilege; 697 } 698 699 public void setPagingPrivilege(boolean pagingPrivilege) { 700 this.pagingPrivilege = pagingPrivilege; 701 } 702 703 @Override 704 public boolean isCourtesyNotice() { 705 return courtesyNotice; 706 } 707 708 public void setCourtesyNotice(boolean courtesyNotice) { 709 this.courtesyNotice = courtesyNotice; 710 } 711 712 @Override 713 public boolean isDeliveryPrivilege() { 714 return deliveryPrivilege; 715 } 716 717 public void setDeliveryPrivilege(boolean deliveryPrivilege) { 718 this.deliveryPrivilege = deliveryPrivilege; 719 } 720 721 @Override 722 public Date getExpirationDate() { 723 return expirationDate; 724 } 725 726 public void setExpirationDate(Date expirationDate) { 727 this.expirationDate = expirationDate; 728 } 729 730 @Override 731 public Date getActivationDate() { 732 return activationDate; 733 } 734 735 public void setActivationDate(Date activationDate) { 736 this.activationDate = activationDate; 737 } 738 739 @Override 740 public List<EntityPhone.Builder> getPhones() { 741 return phones; 742 } 743 744 public void setPhones(List<EntityPhone.Builder> phones) { 745 this.phones = phones; 746 } 747 748 @Override 749 public List<EntityAddress.Builder> getAddresses() { 750 return addresses; 751 } 752 753 public void setAddresses(List<EntityAddress.Builder> addresses) { 754 this.addresses = addresses; 755 } 756 757 public List<OleProxyPatronDefinition.Builder> getOleProxyPatronDocuments() { 758 return oleProxyPatronDocuments; 759 } 760 761 public void setOleProxyPatronDocuments(List<OleProxyPatronDefinition.Builder> oleProxyPatronDocuments) { 762 this.oleProxyPatronDocuments = oleProxyPatronDocuments; 763 } 764 765 @Override 766 public EntityName.Builder getName() { 767 return name; 768 } 769 770 public void setName(EntityName.Builder name) { 771 this.name = name; 772 } 773 774 @Override 775 public List<EntityEmail.Builder> getEmails() { 776 return emails; 777 } 778 779 public void setEmails(List<EntityEmail.Builder> emails) { 780 this.emails = emails; 781 } 782 783 784 public List<OlePatronNotesDefinition.Builder> getNotes() { 785 return notes; 786 } 787 788 public void setNotes(List<OlePatronNotesDefinition.Builder> notes) { 789 this.notes = notes; 790 } 791 792 public List<OlePatronLostBarcodeDefinition.Builder> getLostBarcodes() { 793 return lostBarcodes; 794 } 795 796 public void setLostBarcodes(List<OlePatronLostBarcodeDefinition.Builder> lostBarcodes) { 797 this.lostBarcodes = lostBarcodes; 798 } 799 800 public OleBorrowerTypeDefinition.Builder getOleBorrowerType() { 801 return oleBorrowerType; 802 } 803 804 public void setOleBorrowerType(OleBorrowerTypeDefinition.Builder oleBorrowerType) { 805 this.oleBorrowerType = oleBorrowerType; 806 } 807 808 public Date getInvalidBarcodeNumEffDate() { 809 return invalidBarcodeNumEffDate; 810 } 811 812 public void setInvalidBarcodeNumEffDate(Date invalidBarcodeNumEffDate) { 813 this.invalidBarcodeNumEffDate = invalidBarcodeNumEffDate; 814 } 815 816 public String getGeneralBlockNotes() { 817 return generalBlockNotes; 818 } 819 820 public void setGeneralBlockNotes(String generalBlockNotes) { 821 this.generalBlockNotes = generalBlockNotes; 822 } 823 824 @Override 825 public Entity.Builder getEntity() { 826 return entity; 827 } 828 829 public void setEntity(Entity.Builder entity) { 830 this.entity = entity; 831 } 832 833 public List<OleEntityAddressDefinition.Builder> getOleEntityAddressBo() { 834 return oleEntityAddressBo; 835 } 836 837 public void setOleEntityAddressBo(List<OleEntityAddressDefinition.Builder> oleEntityAddressBo) { 838 this.oleEntityAddressBo = oleEntityAddressBo; 839 } 840 841 public List<OlePatronAffiliationDefinition.Builder> getPatronAffiliations() { 842 return patronAffiliations; 843 } 844 845 public void setPatronAffiliations(List<OlePatronAffiliationDefinition.Builder> patronAffiliations) { 846 this.patronAffiliations = patronAffiliations; 847 } 848 849 public List<OlePatronLocalIdentificationDefinition.Builder> getOlePatronLocalIds() { 850 return olePatronLocalIds; 851 } 852 853 public void setOlePatronLocalIds(List<OlePatronLocalIdentificationDefinition.Builder> olePatronLocalIds) { 854 this.olePatronLocalIds = olePatronLocalIds; 855 } 856 857 public List<OlePatronDefinition.Builder> getOlePatronDocuments() { 858 return olePatronDocuments; 859 } 860 861 public void setOlePatronDocuments(List<OlePatronDefinition.Builder> olePatronDocuments) { 862 this.olePatronDocuments = olePatronDocuments; 863 } 864 865 public String getSource() { 866 return source; 867 } 868 869 public void setSource(String source) { 870 this.source = source; 871 } 872 873 public String getStatisticalCategory() { 874 return statisticalCategory; 875 } 876 877 public void setStatisticalCategory(String statisticalCategory) { 878 this.statisticalCategory = statisticalCategory; 879 } 880 881 public OleSourceDefinition.Builder getSourceBo() { 882 return sourceBo; 883 } 884 885 public void setSourceBo(OleSourceDefinition.Builder sourceBo) { 886 this.sourceBo = sourceBo; 887 } 888 889 public OleStatisticalCategoryDefinition.Builder getStatisticalCategoryBo() { 890 return statisticalCategoryBo; 891 } 892 893 public void setStatisticalCategoryBo(OleStatisticalCategoryDefinition.Builder statisticalCategoryBo) { 894 this.statisticalCategoryBo = statisticalCategoryBo; 895 } 896 897 public String getAddressSource() { 898 return addressSource; 899 } 900 901 public void setAddressSource(String addressSource) { 902 this.addressSource = addressSource; 903 } 904 905 public List<OleAddressDefinition.Builder> getOleAddresses() { 906 return oleAddresses; 907 } 908 909 public void setOleAddresses(List<OleAddressDefinition.Builder> oleAddresses) { 910 this.oleAddresses = oleAddresses; 911 } 912 913 @Override 914 public Long getVersionNumber() { 915 return versionNumber; 916 } 917 918 public void setVersionNumber(Long versionNumber) { 919 this.versionNumber = versionNumber; 920 } 921 922 /*@Override 923 public String getObjectId() { 924 return objectId; 925 }*/ 926 927 public void setObjectId(String objectId) { 928 this.objectId = objectId; 929 } 930 931 @Override 932 public String getId() { 933 return this.olePatronId; 934 } 935 936 public boolean isActive() { 937 return this.activeIndicator; 938 } 939 940 public void setActive(boolean active) { 941 this.activeIndicator = active; 942 } 943 944 public void setId(String id) { 945 if (StringUtils.isWhitespace(id)) { 946 throw new IllegalArgumentException("id is blank"); 947 } 948 this.olePatronId = id; 949 } 950 } 951 952 static class Constants { 953 954 final static String ROOT_ELEMENT_NAME = "olePatron"; 955 final static String TYPE_NAME = "OlePatronType"; 956 final static String[] HASH_CODE_EQUALS_EXCLUDE = new String[] {CoreConstants.CommonElements.FUTURE_ELEMENTS }; 957 } 958 959 static class Elements { 960 final static String PATRON_ID = "olePatronId"; 961 //final static String ENTITY_ID = "entityId"; 962 final static String BARCODE = "barcode"; 963 final static String BORROWER_TYPE = "borrowerType"; 964 final static String ACITVE_INICATOR = "activeIndicator"; 965 final static String GENERAL_BLOCK = "generalBlock"; 966 final static String PAGING_PRIVILEGE = "pagingPrivilege"; 967 final static String COURTESY_NOTICE = "courtesyNotice"; 968 final static String DELIVERYPRIVILEGE = "deliveryPrivilege"; 969 final static String EXPIRATION_DATE ="expirationDate"; 970 final static String ACTIVATION_DATE ="activationDate"; 971 972 final static String PHONES = "phones"; 973 final static String PHONE = "phone"; 974 final static String ADDRESSES = "addresses"; 975 final static String ADDRESS = "address"; 976 final static String NAME = "name"; 977 final static String EMAILS = "emails"; 978 final static String EMAIL = "email"; 979 final static String NOTES = "notes"; 980 final static String NOTE = "note"; 981 final static String LOST_BARCODES = "lostBarcodes"; 982 final static String LOST_BARCODE = "lostBarcode"; 983 final static String OLE_BORROWER_TYPE = "oleBorrowerType"; 984 final static String ENTITY = "entity"; 985 final static String OLE_ENTITY_ADDRESSES = "oleEntityAddressBo"; 986 final static String OLE_ENTITY_ADDRESS = "oleEntityAddress"; 987 final static String GENERAL_BLOCK_NOTES = "generalBlockNotes"; 988 final static String PATRON_AFFILIATIONS = "patronAffiliations"; 989 final static String PATRON_AFFILIATION = "patronAffiliation"; 990 final static String OLE_PROXY_PATRON_DOCS = "oleProxyPatronDocuments"; 991 final static String OLE_PROXY_PATRON_DOC = "oleProxyPatronDocument"; 992 //final static String OLE_PATRON_DOCS = "olePatronDocuments"; 993 //final static String OLE_PATRON_DOC = "olePatronDocument"; 994 final static String OLE_SOURCE = "source"; 995 final static String OLE_STATISTICAL_CAT = "statisticalCategory"; 996 final static String OLE_ADDRESSES = "oleAddresses"; 997 final static String OLE_ADDRESS = "oleAddress"; 998 final static String OLE_PATRON_LOCAL_IDS = "olePatronLocalIds"; 999 final static String OLE_PATRON_LOCAL_ID = "olePatronLocalId"; 1000 1001 } 1002 public static class Cache { 1003 public static final String NAME = KimConstants.Namespaces.KIM_NAMESPACE_2_0 + "/" + OlePatronDefinition.Constants.TYPE_NAME; 1004 } 1005 }