001package org.kuali.ole.service.impl;
002
003import org.kuali.ole.ingest.OlePatronRecordHandler;
004import org.kuali.ole.deliver.bo.OlePatronDocument;
005import org.kuali.ole.deliver.bo.OlePatronDocuments;
006import org.kuali.ole.service.OlePatronWebService;
007import org.kuali.rice.krad.service.BusinessObjectService;
008import org.kuali.rice.krad.service.KRADServiceLocator;
009
010import java.util.ArrayList;
011import java.util.Collection;
012import java.util.List;
013
014/**
015 * Created with IntelliJ IDEA.
016 * User: ?
017 * Date: 2/19/13
018 * Time: 6:02 PM
019 * To change this template use File | Settings | File Templates.
020 */
021public class OlePatronWebServiceImpl implements OlePatronWebService {
022
023    private BusinessObjectService businessObjectService;
024    private OlePatronRecordHandler olePatronRecordHandler;
025
026    /**
027     *   Returns the businessObjectService instance.
028     *   If it is not null  returns existing businessObjectService else creates new
029     * @return  businessObjectService
030     */
031    protected BusinessObjectService getBusinessObjectService() {
032        if (businessObjectService == null) {
033            businessObjectService = KRADServiceLocator.getBusinessObjectService();
034        }
035        return businessObjectService;
036    }
037
038    public OlePatronRecordHandler getOlePatronRecordHandler() {
039        if (null == olePatronRecordHandler) {
040            olePatronRecordHandler = new OlePatronRecordHandler();
041        }
042        return olePatronRecordHandler;
043    }
044
045    /**
046     * Sets the olePatronRecordHandler which is of type OlePatronRecordHandler
047     * @param olePatronRecordHandler(OlePatronRecordHandler)
048     */
049    public void setOlePatronRecordHandler(OlePatronRecordHandler olePatronRecordHandler) {
050        this.olePatronRecordHandler = olePatronRecordHandler;
051    }
052
053    @Override
054    public String getPatronRecords() {
055
056        String patronXML = new String();
057        StringBuffer patronRecords = new StringBuffer();
058        OlePatronDocuments olePatronDocuments = new OlePatronDocuments();
059
060        List<OlePatronDocument> olePatronDocumentList = new ArrayList<OlePatronDocument>();
061        Collection<OlePatronDocument> olePatronDocumentRecords = getBusinessObjectService().findAll(OlePatronDocument.class);
062        for (OlePatronDocument olePatronDocument : olePatronDocumentRecords) {
063           olePatronDocument.setFirstName(olePatronDocument.getEntity().getNames().get(0).getFirstName());
064           olePatronDocument.setLastName(olePatronDocument.getEntity().getNames().get(0).getLastName());
065           olePatronDocument.setBorrowerType(olePatronDocument.getOleBorrowerType().getBorrowerTypeName());
066           olePatronDocumentList.add(olePatronDocument);
067           olePatronDocuments.setOlePatronDocuments(olePatronDocumentList);
068        }
069        patronXML = getOlePatronRecordHandler().generatePatronXML(olePatronDocuments);
070        return patronXML;
071    }
072
073}