package gov.nysenate.openleg.service.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 java.util.List; public interface ApprovalDataService { /** * Retrieves a approval message with the given approval id * @param approvalId * @return * @throws ApprovalNotFoundException */ public ApprovalMessage getApprovalMessage(ApprovalId approvalId) throws ApprovalNotFoundException; /** * Retrieves a approval message for the given base bill * @param baseBillId * @return * @throws ApprovalNotFoundException */ public ApprovalMessage getApprovalMessage(BaseBillId baseBillId) throws ApprovalNotFoundException; /** * Retrieves all approval messages for a given year ordered by approval id number * @param year * @return * @throws ApprovalNotFoundException */ public List<ApprovalMessage> getApprovalMessages(int year) throws ApprovalNotFoundException; /** * Updates or inserts the given approval message * @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); }