package gov.nysenate.openleg.dao.bill.data; import gov.nysenate.openleg.model.bill.ApprovalId; import gov.nysenate.openleg.model.bill.ApprovalMessage; import gov.nysenate.openleg.model.bill.BaseBillId; import gov.nysenate.openleg.model.sobi.SobiFragment; import org.springframework.dao.DataAccessException; import java.util.List; public interface ApprovalDao { /** * Retrieves an approval message based on its year and approval number * @param approvalId * @return * @throws DataAccessException */ public ApprovalMessage getApprovalMessage(ApprovalId approvalId) throws DataAccessException; /** * Retrieves an approval message for a particular base bill * @param baseBillId * @return * @throws DataAccessException */ public ApprovalMessage getApprovalMessage(BaseBillId baseBillId) throws DataAccessException; /** * Gets all approval messages for the given year ordered by approval id number * @param year * @return * @throws DataAccessException */ public List<ApprovalMessage> getApprovalMessages(int year) throws DataAccessException; /** * Updates or inserts the given approval message into the persistence layer * @param approvalMessage * @param sobiFragment */ public void updateApprovalMessage(ApprovalMessage approvalMessage, SobiFragment sobiFragment); /** * Deletes any approval message with the given approval id * @param approvalId */ public void deleteApprovalMessage(ApprovalId approvalId); /** * Deletes any approval message that approves the bill designated by the given base bill id * @param baseBillId */ public void deleteApprovalMessage(BaseBillId baseBillId); }