package gov.nysenate.openleg.service.bill.data; import gov.nysenate.openleg.model.bill.BaseBillId; import gov.nysenate.openleg.model.bill.VetoId; import gov.nysenate.openleg.model.bill.VetoMessage; import gov.nysenate.openleg.model.sobi.SobiFragment; import java.util.Map; public interface VetoDataService { /** * Get a specific veto via its veto number * * @param vetoId * @return VetoMessage * @throws VetoNotFoundException if the veto cannot be found */ public VetoMessage getVetoMessage(VetoId vetoId) throws VetoNotFoundException; /** * Retrieves a chronologically ordered list of vetoes corresponding to the given bill * * @param baseBillId * @return List<VetoMessage> * @throws VetoNotFoundException if no vetoes are found */ public Map<VetoId,VetoMessage> getBillVetoes(BaseBillId baseBillId) throws VetoNotFoundException; /** * Updates or inserts the given vetoMessage * * @param sobiFragment * @param vetoMessage */ public void updateVetoMessage(VetoMessage vetoMessage, SobiFragment sobiFragment); /** * Deletes a veto message specified by the given veto id * @param vetoId */ public void deleteVetoMessage(VetoId vetoId); /** * Deletes all veto messages for the bill designated by the given base bill id * @param baseBillId */ public void deleteBillVetoes(BaseBillId baseBillId); }