package gov.nysenate.openleg.processor.transcript;
import gov.nysenate.openleg.dao.base.LimitOffset;
import gov.nysenate.openleg.model.transcript.TranscriptFile;
import gov.nysenate.openleg.model.transcript.TranscriptId;
import gov.nysenate.openleg.processor.base.ProcessService;
import java.util.List;
public interface TranscriptProcessService extends ProcessService
{
/**
* Looks for Transcript files in the incoming directory, moves them into
* an archive directory and saves them to the backing store as pending processing.
*
* @return int - Number of transcript files collated
*/
public int collateTranscriptFiles();
/**
* Retrieves a list of TranscriptFiles that are awaiting processing.
* @param limitOffset Restricts the number retrieved.
*
* @return List<TranscriptFile>
*/
public List<TranscriptFile> getPendingTranscriptFiles(LimitOffset limitOffset);
/**
* Reads the content of a TranscriptFile and generates a Transcript object.
* The Transcript object is saved into the backing store and the TranscriptFile
* is updated to signify it has been processed.
*
* @param transcriptFiles The TranscriptFiles to process.
* @see gov.nysenate.openleg.model.transcript.Transcript
* @see gov.nysenate.openleg.model.transcript.TranscriptFile
*/
public int processTranscriptFiles(List<TranscriptFile> transcriptFiles);
/**
* Processes all pending TranscriptFiles via calls to
* {@link #getPendingTranscriptFiles(gov.nysenate.openleg.dao.base.LimitOffset)}
* and {@link #processTranscriptFiles(java.util.List)}
*/
public int processPendingTranscriptFiles();
/**
* Toggle the pending processing status of a TranscriptFile.
*
* @param transcriptId
* @param pendingProcessing
*/
public void updatePendingProcessing(TranscriptId transcriptId, boolean pendingProcessing);
}