package edu.stanford.sulair.dlss.dor.dao;
import java.util.List;
import edu.stanford.sulair.dlss.dor.admin.Process;
public interface ProcessDao {
List<Process> findProcessesByDruidAndDatastream(String repository, String druid, String datastream);
void persistProcess(Process p);
Process findProcess(String repository, String druid, String datastream, String name);
void deleteProcessesByRepoDruidAndWorkflowName(String repository, String druid, String workflowName);
List<String> findWaitingDruids(String repository, String datastream, String waitingProcessName);
List<String> findWaitingDruidsByDatastreamNameAndCompleted(String repository, String datastream,
String waitingProcessName, String completedProcessName);
List<String> findCompletedDruids(String repository, String datastream, String completedProcessName);
List<Process> findErrorProcessesByDatastreamAndName(String repository, String datastream, String errorProcessName);
List<String> findWaitingDruidsWithTwoCompletedProcesses(String repository, String datastream,
String waitingProcessName, String completed1, String completed2);
List<Process> findLifecycleCompletedProcesses(String repository, String druid);
List<String> findQueuedDruids(String repository, String datastream, String queuedProcessName);
int countWaitingDruids(String repository, String datastream, String waitingProcessName);
int countWaitingDruidsByDatastreamNameAndCompleted(String repository, String datastream,
String waitingProcessName, String completedProcessName);
int countWaitingDruidsWithTwoCompletedProcesses(String repository, String datastream,
String waitingProcessName, String completed1, String completed2);
int countCompletedDruids(String repository, String datastream, String completedProcessName);
int countErrorProcessesByDatastreamAndName(String repository, String datastream, String errorProcessName);
int countQueuedDruids(String repository, String datastream, String queuedProcessName);
}