package gov.nysenate.openleg.dao.transcript; import gov.nysenate.openleg.dao.base.LimitOffset; import gov.nysenate.openleg.model.transcript.TranscriptFile; import java.io.IOException; import java.util.List; public interface TranscriptFileDao { /** * Get TranscriptFiles residing in the incoming transcripts directory. * * @param limOff Specifies the maximum number of TranscriptFiles to fetch * @return List of TranscriptFile objects * @throws IOException * @see TranscriptFile */ public List<TranscriptFile> getIncomingTranscriptFiles(LimitOffset limOff) throws IOException; /** * Retrieves a list of TranscriptFiles that are awaiting processing. * i.e. {@link TranscriptFile#pendingProcessing} is true. * * @param limOff Specifies the maximum number of TranscriptFiles to fetch * @return List<TranscriptFile> */ public List<TranscriptFile> getPendingTranscriptFiles(LimitOffset limOff); /** * Updates the backing store with the given instance or inserts it * if the record doesn't already exist. * * @param transcriptFile The {@link TranscriptFile} instance to be updated. */ public void updateTranscriptFile(TranscriptFile transcriptFile); /** * Moves the TranscriptFile to an archived directory. Ensures that this TranscriptFile is not processed * again by future calls to {@link #getIncomingTranscriptFiles(LimitOffset)}. * * @param transcriptFile The TranscriptFile instance to be archived. * @throws IOException * @see TranscriptFile */ public void archiveAndUpdateTranscriptFile(TranscriptFile transcriptFile) throws IOException; }