package gov.nysenate.openleg.processor.hearing;
import gov.nysenate.openleg.dao.base.LimitOffset;
import gov.nysenate.openleg.model.hearing.PublicHearingFile;
import gov.nysenate.openleg.model.hearing.PublicHearingId;
import gov.nysenate.openleg.processor.base.ProcessService;
import java.util.List;
public interface PublicHearingProcessService extends ProcessService
{
/**
* Looks for Public Hearing Files in the incoming directory, moves them
* into an archive directory and saves them to the backing store as pending processing.
* @return
*/
public int collatePublicHearingFiles();
/**
* Retrieves a list of Public Hearing Files that are awaiting processing.
* @param limitOffset Restricts the number retrieved.
* @return
*/
public List<PublicHearingFile> getPendingPublicHearingFiles(LimitOffset limitOffset);
/**
* Reads the content of a Public Hearing File and generates a PublicHearing object.
* The PublicHearing object is saved into the backing store and the Public Hearing File
* is updated to signify it has been processed.
* @param publicHearingFiles The PublicHearingFile to process.
* @see gov.nysenate.openleg.model.hearing.PublicHearing
*/
public int processPublicHearingFiles(List<PublicHearingFile> publicHearingFiles);
/**
* Processes all the Public Hearing Files via calls to
* {@link #getPendingPublicHearingFiles(gov.nysenate.openleg.dao.base.LimitOffset)}
* and {@link #processPublicHearingFiles(java.util.List)}.
*/
public int processPendingPublicHearingFiles();
/**
* Toggle the pending processing status of a Public Hearing File.
* @param publicHearingId
* @param pendingProcessing
*/
public void updatePendingProcessing(PublicHearingId publicHearingId, boolean pendingProcessing);
}