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