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 }