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.purap.service.impl;
017    
018    import java.util.ArrayList;
019    import java.util.Collection;
020    import java.util.HashMap;
021    import java.util.List;
022    import java.util.Map;
023    
024    import org.kuali.kfs.module.purap.PurapPropertyConstants;
025    import org.kuali.kfs.module.purap.businessobject.PurchaseOrderSensitiveData;
026    import org.kuali.kfs.module.purap.businessobject.SensitiveData;
027    import org.kuali.kfs.module.purap.businessobject.SensitiveDataAssignment;
028    import org.kuali.kfs.module.purap.businessobject.SensitiveDataAssignmentDetail;
029    import org.kuali.kfs.module.purap.dataaccess.SensitiveDataDao;
030    import org.kuali.kfs.module.purap.document.dataaccess.PurchaseOrderDao;
031    import org.kuali.kfs.module.purap.service.SensitiveDataService;
032    import org.kuali.kfs.sys.context.SpringContext;
033    import org.kuali.rice.kns.service.BusinessObjectService;
034    
035    public class SensitiveDataServiceImpl implements SensitiveDataService {
036        private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(SensitiveDataServiceImpl.class);
037        
038        private SensitiveDataDao sensitiveDataDao;
039        private PurchaseOrderDao purchaseOrderDao;
040    
041        public void setPurchaseOrderDao(PurchaseOrderDao purchaseOrderDao) {
042            this.purchaseOrderDao = purchaseOrderDao;
043        }
044    
045        public SensitiveDataDao getSensitiveDataDao() {
046            return sensitiveDataDao;
047        }
048    
049        public void setSensitiveDataDao(SensitiveDataDao sensitiveDataDao) {
050            this.sensitiveDataDao = sensitiveDataDao;
051        }
052    
053        /**
054         * @see org.kuali.kfs.integration.service.SensitiveDataService#getSensitiveDataByCode(java.lang.String)
055         */
056        public SensitiveData getSensitiveDataByCode(String sensitiveDataCode) {
057            LOG.debug("getSensitiveDataByCode(String) started");        
058            Map<String, Object> primaryKeys = new HashMap<String, Object>();
059            primaryKeys.put("sensitiveDataCode", sensitiveDataCode);
060            return (SensitiveData)SpringContext.getBean(BusinessObjectService.class).findByPrimaryKey(SensitiveData.class, primaryKeys);
061        }
062    
063        /**
064         * @see org.kuali.kfs.module.purap.service.SensitiveDataService#getAllSensitiveDatas()
065         */
066        public List<SensitiveData> getAllSensitiveDatas() {
067            LOG.debug("getSensitiveDataByPoId(Integer) started");     
068            
069            List<SensitiveData> sds = new ArrayList<SensitiveData>();
070            Collection<SensitiveData> sdColl = SpringContext.getBean(BusinessObjectService.class).findAll(SensitiveData.class);
071            for (Object sd: sdColl) {
072                sds.add((SensitiveData)sd);
073            }
074            
075            return sds;
076        }
077        
078        public List<SensitiveData> getSensitiveDatasAssignedByRelatedDocId(Integer accountsPayablePurchasingDocumentLinkIdentifier) {
079            Integer poId = purchaseOrderDao.getPurchaseOrderIdForCurrentPurchaseOrderByRelatedDocId(accountsPayablePurchasingDocumentLinkIdentifier);
080            return getSensitiveDatasAssignedByPoId(poId);
081        }
082        
083        /**
084         * @see org.kuali.kfs.module.purap.service.SensitiveDataService#getSensitiveDatasAssignedByPoId()
085         */
086        public List<SensitiveData> getSensitiveDatasAssignedByPoId(Integer poId) {
087            LOG.debug("getSensitiveDatasAssignedByPoId(Integer) started");        
088            return sensitiveDataDao.getSensitiveDatasAssignedByPoId(poId);
089        }
090    
091        /**
092         * @see org.kuali.kfs.module.purap.service.SensitiveDataService#getSensitiveDatasAssignedByReqId(Integer)
093         */
094        public List<SensitiveData> getSensitiveDatasAssignedByReqId(Integer reqId) {
095            LOG.debug("getSensitiveDatasAssignedByReqId(Integer) started");        
096            return sensitiveDataDao.getSensitiveDatasAssignedByReqId(reqId);
097        }
098    
099        /**
100         * @see org.kuali.kfs.module.purap.service.SensitiveDataService#deletePurchaseOrderSensitiveDatas(Integer)
101         */
102        public void deletePurchaseOrderSensitiveDatas(Integer poId) {
103            LOG.debug("deletePurchaseOrderSensitiveDatas(Integer) started");
104            sensitiveDataDao.deletePurchaseOrderSensitiveDatas(poId);
105        }
106    
107        /**
108         * @see org.kuali.kfs.module.purap.service.SensitiveDataService#savePurchaseOrderSensitiveDatas(List<PurchaseOrderSensitiveData>)
109         */
110        public void savePurchaseOrderSensitiveDatas(List<PurchaseOrderSensitiveData> posds) {
111            LOG.debug("savePurchaseOrderSensitiveDatas(List<PurchaseOrderSensitiveData>) started");
112            sensitiveDataDao.savePurchaseOrderSensitiveDatas(posds);
113        }
114    
115        /**
116         * @see org.kuali.kfs.module.purap.service.SensitiveDataService#getLastSensitiveDataAssignment(Integer)
117         */
118        public SensitiveDataAssignment getLastSensitiveDataAssignment(Integer poId) {
119            LOG.debug("getLastSensitiveDataAssignment(Integer) started");
120            return sensitiveDataDao.getLastSensitiveDataAssignment(poId);
121        }
122        
123        /**
124         * @see org.kuali.kfs.module.purap.service.SensitiveDataService#getLastSensitiveDataAssignmentId(Integer)
125         */
126        public Integer getLastSensitiveDataAssignmentId(Integer poId) {
127            LOG.debug("getLastSensitiveDataAssignmentId(Integer) started");
128            return getLastSensitiveDataAssignment(poId).getSensitiveDataAssignmentIdentifier();
129        }
130        
131        /**
132         * @see org.kuali.kfs.module.purap.service.SensitiveDataService#saveSensitiveDataAssignment(SensitiveDataAssignment)
133         */
134        public void saveSensitiveDataAssignment(SensitiveDataAssignment sda) {
135            LOG.debug("saveSensitiveDataAssignment(SensitiveDataAssignment) started");
136            sensitiveDataDao.saveSensitiveDataAssignment(sda);
137        }
138    
139        /**
140         * @see org.kuali.kfs.module.purap.service.SensitiveDataService#getLastSensitiveDataAssignmentDetails(Integer)
141         */
142        public List<SensitiveDataAssignmentDetail> getLastSensitiveDataAssignmentDetails(Integer poId) {
143            LOG.debug("getLastSensitiveDataAssignmentDetails(Integer) started");
144            Integer sdaId = getLastSensitiveDataAssignmentId(poId);
145            Map<String, Object> fieldValues = new HashMap<String, Object>();
146            fieldValues.put("sensitiveDataAssignmentIdentifier", sdaId);
147            return (List<SensitiveDataAssignmentDetail>)SpringContext.getBean(BusinessObjectService.class).findMatching(SensitiveDataAssignmentDetail.class, fieldValues);
148        }
149        
150        /**
151         * @see org.kuali.kfs.module.purap.service.SensitiveDataService#saveSensitiveDataAssignmentDetails(List<SensitiveDataAssignmentDetail>)
152         */
153        public void saveSensitiveDataAssignmentDetails(List<SensitiveDataAssignmentDetail> sdads) {
154            LOG.debug("saveSensitiveDataAssignmentDetails(List<SensitiveDataAssignmentDetail>) started");
155            sensitiveDataDao.saveSensitiveDataAssignmentDetails(sdads);
156        }
157    
158        
159    }