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;
017    
018    import java.util.List;
019    
020    import org.kuali.kfs.module.purap.businessobject.PurchaseOrderSensitiveData;
021    import org.kuali.kfs.module.purap.businessobject.SensitiveData;
022    import org.kuali.kfs.module.purap.businessobject.SensitiveDataAssignment;
023    import org.kuali.kfs.module.purap.businessobject.SensitiveDataAssignmentDetail;
024    
025    public interface SensitiveDataDao {    
026    
027        /**
028         * Gets all sensitive data entries assigned to the specified purchase order.
029         * @param poId the ID of the specified purchase order
030         * @return a list of sensitive data entries assigned to the PO
031         */
032        public List<SensitiveData> getSensitiveDatasAssignedByPoId(Integer poId);
033        
034        /**
035         * Gets all sensitive data entries assigned to the specified purchase order.
036         * @param reqId the ID of the requisition that's associated with the purchase order
037         * @return a list of sensitive data entries assigned to the PO
038         */
039        public List<SensitiveData> getSensitiveDatasAssignedByReqId(Integer reqId);
040        
041        /**
042         * Deletes all sensitive data entries assigned to the specified purchase order.
043         * @param poId the ID of the PO
044         */
045        public void deletePurchaseOrderSensitiveDatas(Integer poId);
046            
047        /**
048         * Saves the specified list of PurchaseOrderSensitiveData objects into the database.
049         * @param posds the PurchaseOrderSensitiveData objects to be saved
050         */
051        public void savePurchaseOrderSensitiveDatas(List<PurchaseOrderSensitiveData> posds);    
052        
053        /**
054         * Gets the latest sensitive data assignment for the specified purchase order.
055         * @param poId the ID of the specified PO
056         * @return the latest sensitive data assignment for the PO
057         */
058        public SensitiveDataAssignment getLastSensitiveDataAssignment(Integer poId);
059    
060        /**
061         * Saves the specified SensitiveDataAssignment object into the database.
062         * @param sda the SensitiveDataAssignment object to be saved
063         */
064        public void saveSensitiveDataAssignment(SensitiveDataAssignment sda);
065        
066        /**
067         * Saves the specified list of SensitiveDataAssignmentDetail objects into the database.
068         * @param sdads the SensitiveDataAssignmentDetail objects to be saved
069         */
070        public void saveSensitiveDataAssignmentDetails(List<SensitiveDataAssignmentDetail> sdads);
071    
072        //public void savePurchaseOrderSensitiveData(String poId, String reqId, String sensitiveDataCode);   
073        //public void savePurchaseOrderSensitiveData(PurchaseOrderSensitiveData posd);
074        //public Integer getSensitiveDataAssignmentId(Integer poId);
075        //public void saveSensitiveDataAssignment(String sdaId, String poId, String userId, Date date);
076        //public void saveSensitiveDataAssignmentDetail(String sdaId, String sensitiveDataCode);
077        //public void saveSensitiveDataAssignmentDetail(SensitiveDataAssignmentDetail sdad);
078        
079    }