package net.sourceforge.seqware.common.business; import java.util.List; import java.util.Map; import java.util.Set; import java.util.SortedSet; import net.sourceforge.seqware.common.dao.WorkflowRunDAO; import net.sourceforge.seqware.common.model.File; import net.sourceforge.seqware.common.model.IUS; import net.sourceforge.seqware.common.model.Processing; import net.sourceforge.seqware.common.model.Registration; import net.sourceforge.seqware.common.model.Sample; import net.sourceforge.seqware.common.model.Workflow; import net.sourceforge.seqware.common.model.WorkflowRun; import net.sourceforge.seqware.common.model.WorkflowRunParam; /** * <p> * WorkflowRunService interface. * </p> * * @author boconnor * @version $Id: $Id */ public interface WorkflowRunService { /** Constant <code>NAME="WorkflowRunService"</code> */ public static final String NAME = "WorkflowRunService"; /** * <p> * setWorkflowRunDAO. * </p> * * @param workflowRunDAO * a {@link net.sourceforge.seqware.common.dao.WorkflowRunDAO} object. */ public void setWorkflowRunDAO(WorkflowRunDAO workflowRunDAO); /** * Inserts a new WorkflowRun and returns its sw_accession number. * * @param workflowRun * Workflow run to be inserted. * @return The SeqWare Accession number for the newly inserted workflow. */ public Integer insert(WorkflowRun workflowRun); /** * <p> * insert. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @param workflowRun * a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. * @return a {@link java.lang.Integer} object. */ public Integer insert(Registration registration, WorkflowRun workflowRun); /** * <p> * update. * </p> * * @param workflowRun * a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. */ public void update(WorkflowRun workflowRun); /** * <p> * delete. * </p> * * @param workflowRun * @param deleteRealFiles */ public void delete(WorkflowRun workflowRun, boolean deleteRealFiles); /** * <p> * insert. * </p> * * @param workflowRun * a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. * @param workflowRunParams * a {@link java.util.SortedSet} object. * @param allSelectedFiles * a {@link java.util.Map} object. * @return a {@link java.lang.Integer} object. */ public Integer insert(WorkflowRun workflowRun, SortedSet<WorkflowRunParam> workflowRunParams, Map<String, List<File>> allSelectedFiles); /** * <p> * insert. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @param workflowRun * a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. * @param workflowRunParams * a {@link java.util.SortedSet} object. * @param allSelectedFiles * a {@link java.util.Map} object. * @return a {@link java.lang.Integer} object. */ public Integer insert(Registration registration, WorkflowRun workflowRun, SortedSet<WorkflowRunParam> workflowRunParams, Map<String, List<File>> allSelectedFiles); /** * <p> * update. * </p> * * @param workflowRun * a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. * @param laneIds * a {@link java.util.List} object. */ public void update(WorkflowRun workflowRun, List<Integer> laneIds); /** * <p> * update. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @param workflowRun * a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. * @param laneIds * a {@link java.util.List} object. */ public void update(Registration registration, WorkflowRun workflowRun, List<Integer> laneIds); /** * <p> * update. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @param workflowRun * a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. */ public void update(Registration registration, WorkflowRun workflowRun); /** * <p> * list. * </p> * * @return a {@link java.util.List} object. */ public List<WorkflowRun> list(); /** * <p> * list. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @return a {@link java.util.List} object. */ public List<WorkflowRun> list(Registration registration); /** * <p> * listMyShared. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @return a {@link java.util.List} object. */ public List<WorkflowRun> listMyShared(Registration registration); /** * <p> * listSharedWithMe. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @return a {@link java.util.List} object. */ public List<WorkflowRun> listSharedWithMe(Registration registration); /** * <p> * listSharedWithMeWithSample. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @return a {@link java.util.List} object. */ public List<WorkflowRun> listSharedWithMeWithSample(Registration registration); /** * <p> * listRunning. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @return a {@link java.util.List} object. */ public List<WorkflowRun> listRunning(Registration registration); /** * <p> * list. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @param isAsc * a {@link java.lang.Boolean} object. * @return a {@link java.util.List} object. */ public List<WorkflowRun> list(Registration registration, Boolean isAsc); /** * <p> * listMyShared. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @param isAsc * a {@link java.lang.Boolean} object. * @return a {@link java.util.List} object. */ public List<WorkflowRun> listMyShared(Registration registration, Boolean isAsc); /** * <p> * listSharedWithMe. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @param isAsc * a {@link java.lang.Boolean} object. * @return a {@link java.util.List} object. */ public List<WorkflowRun> listSharedWithMe(Registration registration, Boolean isAsc); /** * <p> * listRunning. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @param isAsc * a {@link java.lang.Boolean} object. * @return a {@link java.util.List} object. */ public List<WorkflowRun> listRunning(Registration registration, Boolean isAsc); /** * <p> * findByName. * </p> * * @param name * a {@link java.lang.String} object. * @return a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. */ public WorkflowRun findByName(String name); /** * <p> * findByID. * </p> * * @param wfrID * a {@link java.lang.Integer} object. * @return a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. */ public WorkflowRun findByID(Integer wfrID); /** * <p> * findByIDWithIUS. * </p> * * @param wfrID * a {@link java.lang.Integer} object. * @return a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. */ public WorkflowRun findByIDWithIUS(Integer wfrID); /** * <p> * findByIDWithIUSAndRunningWR. * </p> * * @param wfrID * a {@link java.lang.Integer} object. * @return a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. */ public WorkflowRun findByIDWithIUSAndRunningWR(Integer wfrID); /** * <p> * findBySWAccession. * </p> * * @param swAccession * a {@link java.lang.Integer} object. * @return a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. */ public WorkflowRun findBySWAccession(Integer swAccession); /** * <p> * findByOwnerID. * </p> * * @param registrationID * a {@link java.lang.Integer} object. * @return a {@link java.util.List} object. */ public List<WorkflowRun> findByOwnerID(Integer registrationID); /** * <p> * getRootProcessing. * </p> * * @param wfrId * a {@link java.lang.Integer} object. * @return a {@link net.sourceforge.seqware.common.model.Processing} object. */ public Processing getRootProcessing(Integer wfrId); /** * <p> * getFiles. * </p> * * @param wfrId * a {@link java.lang.Integer} object. * @return a {@link java.util.List} object. */ public List<File> getFiles(Integer wfrId); /** * <p> * listWithHasFile. * </p> * * @param list * a {@link java.util.List} object. * @return a {@link java.util.List} object. */ public List<WorkflowRun> listWithHasFile(List<WorkflowRun> list); /** * <p> * updateDetached. * </p> * * @param workflowRun * a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. * @return a {@link net.sourceforge.seqware.common.model.WorkflowRun} object. */ public WorkflowRun updateDetached(WorkflowRun workflowRun); /** * <p> * findByCriteria. * </p> * * @param criteria * a {@link java.lang.String} object. * @param isCaseSens * a boolean. * @return a {@link java.util.List} object. */ public List<WorkflowRun> findByCriteria(String criteria, boolean isCaseSens); /** * <p> * findByCriteria. * </p> * * @param criteria * a {@link java.lang.String} object. * @return a {@link java.util.List} object. */ public List<WorkflowRun> findByCriteria(String criteria); /** * <p> * listRelatedWorkflows. * </p> * * @param registration * a {@link net.sourceforge.seqware.common.model.Registration} object. * @return a {@link java.util.List} object. */ public List<Workflow> listRelatedWorkflows(Registration registration); /** * <p> * findRunsForIUS. * </p> * * @param ius * a {@link net.sourceforge.seqware.common.model.IUS} object. * @return a {@link java.util.Set} object. */ public Set<WorkflowRun> findRunsForIUS(IUS ius); /** * Find all the workflow runs for the specific sample. This function doesn't look into the nested samples. * * @param sample * a {@link net.sourceforge.seqware.common.model.Sample} object. * @return a {@link java.util.Set} object. */ public Set<WorkflowRun> findRunsForSample(Sample sample); /** * <p> * findFiles. * </p> * * @param swAccession * a {@link java.lang.Integer} object. * @return a {@link java.util.List} object. */ public List<File> findFiles(Integer swAccession); }