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.dataaccess.impl; 017 018 import java.util.ArrayList; 019 import java.util.Collection; 020 import java.util.Iterator; 021 import java.util.List; 022 023 import org.apache.ojb.broker.query.Criteria; 024 import org.apache.ojb.broker.query.QueryByCriteria; 025 import org.kuali.kfs.module.purap.businessobject.ElectronicInvoiceLoadSummary; 026 import org.kuali.kfs.module.purap.businessobject.PurchaseOrderSensitiveData; 027 import org.kuali.kfs.module.purap.businessobject.SensitiveData; 028 import org.kuali.kfs.module.purap.businessobject.SensitiveDataAssignment; 029 import org.kuali.kfs.module.purap.businessobject.SensitiveDataAssignmentDetail; 030 import org.kuali.kfs.module.purap.dataaccess.SensitiveDataDao; 031 import org.kuali.kfs.module.purap.document.PaymentRequestDocument; 032 import org.kuali.rice.kns.dao.impl.PlatformAwareDaoBaseOjb; 033 034 public class SensitiveDataDaoOjb extends PlatformAwareDaoBaseOjb implements SensitiveDataDao { 035 036 private static org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(SensitiveDataDaoOjb.class); 037 038 public SensitiveDataDaoOjb() { 039 super(); 040 } 041 042 /** 043 * @see org.kuali.kfs.integration.service.SensitiveDataDaoe#getSensitiveDatasAssignedByPoId(java.lang.Integer) 044 */ 045 public List<SensitiveData> getSensitiveDatasAssignedByPoId(Integer poId) { 046 LOG.debug("getSensitiveDatasAssignedByPoId(Integer) started"); 047 048 Criteria criteria = new Criteria(); 049 criteria.addEqualTo("purapDocumentIdentifier", poId); 050 Collection<PurchaseOrderSensitiveData> posdColl = getPersistenceBrokerTemplate().getCollectionByQuery(new QueryByCriteria(PurchaseOrderSensitiveData.class, criteria)); 051 List<SensitiveData> sdList = new ArrayList<SensitiveData>(); 052 for (PurchaseOrderSensitiveData posd : posdColl) { 053 sdList.add(posd.getSensitiveData()); 054 } 055 056 return sdList; 057 } 058 059 /** 060 * @see org.kuali.kfs.integration.service.SensitiveDataDaoe#getSensitiveDatasAssignedByReqId(java.lang.Integer) 061 */ 062 public List<SensitiveData> getSensitiveDatasAssignedByReqId(Integer reqId) { 063 LOG.debug("getSensitiveDatasAssignedByReqId(Integer) started"); 064 065 Criteria criteria = new Criteria(); 066 criteria.addEqualTo("requisitionIdentifier", reqId); 067 Collection<PurchaseOrderSensitiveData> posdColl = getPersistenceBrokerTemplate().getCollectionByQuery(new QueryByCriteria(PurchaseOrderSensitiveData.class, criteria)); 068 List<SensitiveData> sdList = new ArrayList<SensitiveData>(); 069 for (PurchaseOrderSensitiveData posd : posdColl) { 070 sdList.add(posd.getSensitiveData()); 071 } 072 073 return sdList; 074 } 075 076 /** 077 * @see org.kuali.kfs.integration.service.SensitiveDataDaoe#deletePurchaseOrderSensitiveDatas(java.lang.Integer) 078 */ 079 public void deletePurchaseOrderSensitiveDatas(Integer poId) { 080 LOG.debug("deletePurchaseOrderSensitiveDatas(Integer) started"); 081 Criteria criteria = new Criteria(); 082 criteria.addEqualTo("purapDocumentIdentifier", poId); 083 getPersistenceBrokerTemplate().deleteByQuery(new QueryByCriteria(PurchaseOrderSensitiveData.class, criteria)); 084 } 085 086 /** 087 * @see org.kuali.kfs.integration.service.SensitiveDataDaoe#savePurchaseOrderSensitiveDatas(List<PurchaseOrderSensitiveData>) 088 */ 089 public void savePurchaseOrderSensitiveDatas(List<PurchaseOrderSensitiveData> posds) { 090 LOG.debug("savePurchaseOrderSensitiveDatas(List<PurchaseOrderSensitiveData>) started"); 091 if (posds == null) 092 return; 093 for (PurchaseOrderSensitiveData posd : posds) { 094 getPersistenceBrokerTemplate().store(posd); 095 } 096 } 097 098 /** 099 * @see org.kuali.kfs.integration.service.SensitiveDataDaoe#getLastSensitiveDataAssignment(java.lang.Integer) 100 */ 101 public SensitiveDataAssignment getLastSensitiveDataAssignment(Integer poId) { 102 LOG.debug("getLastSensitiveDataAssignment(Integer) started"); 103 104 Criteria criteria = new Criteria(); 105 criteria.addEqualTo("purapDocumentIdentifier", poId); 106 Collection<SensitiveDataAssignment> sdaColl = getPersistenceBrokerTemplate().getCollectionByQuery(new QueryByCriteria(SensitiveDataAssignment.class, criteria)); 107 108 // look for the greatest assignment ID, which will be the latest one for this PO 109 int max = 0; 110 SensitiveDataAssignment lastsda = null; 111 for (SensitiveDataAssignment sda : sdaColl) { 112 if (sda.getSensitiveDataAssignmentIdentifier() >= max) { 113 max = sda.getSensitiveDataAssignmentIdentifier(); 114 lastsda = sda; 115 } 116 } 117 118 return lastsda; 119 } 120 121 /* 122 public Integer getLastSensitiveDataAssignmentId(Integer poId) { 123 LOG.debug("getLastSensitiveDataAssignmentId(Integer) started"); 124 125 Criteria criteria = new Criteria(); 126 criteria.addEqualTo("purapDocumentIdentifier", poId); 127 Collection sdaColl = getPersistenceBrokerTemplate().getCollectionByQuery(new QueryByCriteria(SensitiveDataAssignment.class, criteria)); 128 if (sdaColl == null || sdaColl.isEmpty()) 129 return null; 130 else { 131 SensitiveDataAssignment sda = (SensitiveDataAssignment)sdaColl.toArray()[0]; 132 return sda.getSensitiveDataAssignmentIdentifier(); 133 } 134 } 135 */ 136 137 /** 138 * @see org.kuali.kfs.integration.service.SensitiveDataDaoe#saveSensitiveDataAssignment(SensitiveDataAssignment) 139 */ 140 public void saveSensitiveDataAssignment(SensitiveDataAssignment sda) { 141 LOG.debug("saveSensitiveDataAssignment(SensitiveDataAssignment) started"); 142 getPersistenceBrokerTemplate().store(sda); 143 } 144 145 /** 146 * @see org.kuali.kfs.integration.service.SensitiveDataDaoe#saveSensitiveDataAssignmentDetails(List<SensitiveDataAssignmentDetail>) 147 */ 148 public void saveSensitiveDataAssignmentDetails(List<SensitiveDataAssignmentDetail> sdads) { 149 LOG.debug("saveSensitiveDataAssignmentDetails(List<SensitiveDataAssignmentDetail>) started"); 150 if (sdads == null) 151 return; 152 for (SensitiveDataAssignmentDetail sda : sdads) { 153 getPersistenceBrokerTemplate().store(sda); 154 } 155 } 156 157 }