001package org.kuali.ole.deliver.bo;
002
003import org.apache.commons.collections.CollectionUtils;
004import org.apache.commons.lang3.StringUtils;
005import org.kuali.ole.deliver.api.OlePatronLostBarcodeContract;
006import org.kuali.ole.deliver.api.OlePatronLostBarcodeDefinition;
007import org.kuali.ole.sys.context.SpringContext;
008import org.kuali.rice.kim.api.identity.Person;
009import org.kuali.rice.kim.api.identity.PersonService;
010import org.kuali.rice.krad.bo.PersistableBusinessObjectBase;
011import org.kuali.rice.krad.service.KRADServiceLocator;
012
013import java.sql.Date;
014import java.sql.Timestamp;
015import java.util.HashMap;
016import java.util.List;
017import java.util.Map;
018
019/**
020 * OlePatronDocument provides OlePatronDocument information through getter and setter.
021 */
022public class OlePatronLostBarcode extends PersistableBusinessObjectBase implements OlePatronLostBarcodeContract {
023
024    private String olePatronLostBarcodeId;
025    private String olePatronId;
026    private Timestamp invalidOrLostBarcodeEffDate;
027    private String invalidOrLostBarcodeNumber;
028    private OlePatronDocument olePatronDocument;
029    private boolean revertBarcode;
030    private String status;
031    private String description;
032    private String operatorId;
033    private String operatorName;
034    private boolean active;
035    public String getOlePatronLostBarcodeId() {
036        return olePatronLostBarcodeId;
037    }
038
039    public void setOlePatronLostBarcodeId(String olePatronLostBarcodeId) {
040        this.olePatronLostBarcodeId = olePatronLostBarcodeId;
041    }
042
043    public String getOlePatronId() {
044        return olePatronId;
045    }
046
047    public void setOlePatronId(String olePatronId) {
048        this.olePatronId = olePatronId;
049    }
050
051    @Override
052    public Timestamp getInvalidOrLostBarcodeEffDate() {
053        return invalidOrLostBarcodeEffDate;
054    }
055
056    public void setInvalidOrLostBarcodeEffDate(Timestamp invalidOrLostBarcodeEffDate) {
057        this.invalidOrLostBarcodeEffDate = invalidOrLostBarcodeEffDate;
058    }
059
060    public String getInvalidOrLostBarcodeNumber() {
061        return invalidOrLostBarcodeNumber;
062    }
063
064    public void setInvalidOrLostBarcodeNumber(String invalidOrLostBarcodeNumber) {
065        this.invalidOrLostBarcodeNumber = invalidOrLostBarcodeNumber;
066    }
067
068    public OlePatronDocument getOlePatronDocument() {
069        if (null == olePatronDocument) {
070                String patronId = getOlePatronId();
071                if (StringUtils.isNotEmpty(patronId)) {
072                    Map<String, String> parameterMap = new HashMap<>();
073                    parameterMap.put("olePatronId", patronId);
074                    olePatronDocument = KRADServiceLocator.getBusinessObjectService().findByPrimaryKey(OlePatronDocument.class, parameterMap);
075                }
076        }
077        return olePatronDocument;
078    }
079
080    public void setOlePatronDocument(OlePatronDocument olePatronDocument) {
081        this.olePatronDocument = olePatronDocument;
082    }
083
084    /**
085     * This method converts the PersistableBusinessObjectBase OlePatronNotes into immutable object OlePatronNotesDefinition
086     *
087     * @param bo
088     * @return OlePatronNotesDefinition
089     */
090    public static OlePatronLostBarcodeDefinition to(org.kuali.ole.deliver.bo.OlePatronLostBarcode bo) {
091        if (bo == null) {
092            return null;
093        }
094        return OlePatronLostBarcodeDefinition.Builder.create(bo).build();
095    }
096
097    /**
098     * This method converts the immutable object OlePatronNotesDefinition into PersistableBusinessObjectBase OlePatronNotes
099     *
100     * @param im
101     * @return bo
102     */
103    public static org.kuali.ole.deliver.bo.OlePatronLostBarcode from(OlePatronLostBarcodeDefinition im) {
104        if (im == null) {
105            return null;
106        }
107
108        org.kuali.ole.deliver.bo.OlePatronLostBarcode bo = new org.kuali.ole.deliver.bo.OlePatronLostBarcode();
109        bo.olePatronLostBarcodeId = im.getOlePatronLostBarcodeId();
110        bo.olePatronId = im.getOlePatronId();
111        //bo.olePatron = OlePatronDocument.from(im.getOlePatron());
112        bo.invalidOrLostBarcodeEffDate = im.getInvalidOrLostBarcodeEffDate();
113        bo.invalidOrLostBarcodeNumber = im.getInvalidOrLostBarcodeNumber();
114        bo.versionNumber = im.getVersionNumber();
115
116        return bo;
117    }
118
119    public boolean isRevertBarcode() {
120        return revertBarcode;
121    }
122
123    public void setRevertBarcode(boolean revertBarcode) {
124        this.revertBarcode = revertBarcode;
125    }
126
127    @Override
128    public String getId() {
129        return this.olePatronLostBarcodeId;
130    }
131
132    public String getStatus() {
133        return status;
134    }
135
136    public void setStatus(String status) {
137        this.status = status;
138    }
139
140    public String getDescription() {
141        return description;
142    }
143
144    public void setDescription(String description) {
145        this.description = description;
146    }
147
148    public boolean isActive() {
149        return active;
150    }
151
152    public void setActive(boolean active) {
153        this.active = active;
154    }
155
156    public String getOperatorId() {
157        getOperatorName();
158        return operatorId;
159    }
160
161    public void setOperatorId(String operatorId) {
162        this.operatorId = operatorId;
163    }
164
165    public String getOperatorName() {
166        if(!StringUtils.isNotBlank(operatorName)) {
167            Person people = SpringContext.getBean(PersonService.class).getPerson(operatorId);
168            operatorName = people.getPrincipalName();
169        }
170        return operatorName;
171    }
172
173    public void setOperatorName(String operatorName) {
174        this.operatorName = operatorName;
175    }
176}