package net.sourceforge.seqware.common.business;
import java.util.List;
import net.sourceforge.seqware.common.dao.StudyDAO;
import net.sourceforge.seqware.common.model.File;
import net.sourceforge.seqware.common.model.Registration;
import net.sourceforge.seqware.common.model.Study;
/**
* <p>
* StudyService interface.
* </p>
*
* @author boconnor
* @version $Id: $Id
*/
public interface StudyService {
/** Constant <code>NAME="StudyService"</code> */
public static final String NAME = "StudyService";
/**
* <p>
* setStudyDAO.
* </p>
*
* @param studyDAO
* a {@link net.sourceforge.seqware.common.dao.StudyDAO} object.
*/
public void setStudyDAO(StudyDAO studyDAO);
/**
* <p>
* insert.
* </p>
*
* @param study
* a {@link net.sourceforge.seqware.common.model.Study} object.
* @return a {@link java.lang.Integer} object.
*/
public Integer insert(Study study);
/**
* <p>
* insert.
* </p>
*
* @param registration
* a {@link net.sourceforge.seqware.common.model.Registration} object.
* @param study
* a {@link net.sourceforge.seqware.common.model.Study} object.
* @return a {@link java.lang.Integer} object.
*/
public Integer insert(Registration registration, Study study);
/**
* <p>
* update.
* </p>
*
* @param study
* a {@link net.sourceforge.seqware.common.model.Study} object.
*/
public void update(Study study);
/**
* <p>
* update.
* </p>
*
* @param registration
* a {@link net.sourceforge.seqware.common.model.Registration} object.
* @param study
* a {@link net.sourceforge.seqware.common.model.Study} object.
*/
public void update(Registration registration, Study study);
/**
* <p>
* updateOwners.
* </p>
*
* @param swAccession
* a {@link java.lang.Integer} object.
*/
public void updateOwners(Integer swAccession);
/**
* <p>
* delete.
* </p>
*
* @param study
* @param deleteRealFiles
*/
public void delete(Study study, boolean deleteRealFiles);
/**
* <p>
* merge.
* </p>
*
* @param study
* a {@link net.sourceforge.seqware.common.model.Study} object.
*/
public void merge(Study study);
/**
* <p>
* list.
* </p>
*
* @param registration
* a {@link net.sourceforge.seqware.common.model.Registration} object.
* @return a {@link java.util.List} object.
*/
public List<Study> list(Registration registration);
/**
* <p>
* list.
* </p>
*
* @param registration
* a {@link net.sourceforge.seqware.common.model.Registration} object.
* @param isAcs
* a {@link java.lang.Boolean} object.
* @return a {@link java.util.List} object.
*/
public List<Study> list(Registration registration, Boolean isAcs);
/**
* <p>
* listMyShared.
* </p>
*
* @param registration
* a {@link net.sourceforge.seqware.common.model.Registration} object.
* @param isAcs
* a {@link java.lang.Boolean} object.
* @return a {@link java.util.List} object.
*/
public List<Study> listMyShared(Registration registration, Boolean isAcs);
/**
* <p>
* listSharedWithMe.
* </p>
*
* @param registration
* a {@link net.sourceforge.seqware.common.model.Registration} object.
* @return a {@link java.util.List} object.
*/
public List<Study> listSharedWithMe(Registration registration);
/**
* <p>
* listSharedWithMe.
* </p>
*
* @param registration
* a {@link net.sourceforge.seqware.common.model.Registration} object.
* @param isAcs
* a {@link java.lang.Boolean} object.
* @return a {@link java.util.List} object.
*/
public List<Study> listSharedWithMe(Registration registration, Boolean isAcs);
/**
* <p>
* findByTitle.
* </p>
*
* @param title
* a {@link java.lang.String} object.
* @return a {@link net.sourceforge.seqware.common.model.Study} object.
*/
public List<Study> findByTitle(String title);
/**
* <p>
* findByID.
* </p>
*
* @param expID
* a {@link java.lang.Integer} object.
* @return a {@link net.sourceforge.seqware.common.model.Study} object.
*/
public Study findByID(Integer expID);
/**
* <p>
* findBySWAccession.
* </p>
*
* @param swAccession
* a {@link java.lang.Integer} object.
* @return a {@link net.sourceforge.seqware.common.model.Study} object.
*/
public Study findBySWAccession(Integer swAccession);
/**
* <p>
* findByOwnerID.
* </p>
*
* @param registrationId
* a {@link java.lang.Integer} object.
* @return a {@link java.util.List} object.
*/
public List<Study> findByOwnerID(Integer registrationId);
/**
* <p>
* findByCriteria.
* </p>
*
* @param criteria
* a {@link java.lang.String} object.
* @param isCaseSens
* a boolean.
* @return a {@link java.util.List} object.
*/
public List<Study> 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<Study> findByCriteria(String criteria);
/**
* <p>
* hasTitleBeenUsed.
* </p>
*
* @param oldTitle
* a {@link java.lang.String} object.
* @param newTitle
* a {@link java.lang.String} object.
* @return a boolean.
*/
public boolean hasTitleBeenUsed(String oldTitle, String newTitle);
/**
* <p>
* getFiles.
* </p>
*
* @param studyId
* a {@link java.lang.Integer} object.
* @return a {@link java.util.List} object.
*/
public List<File> getFiles(Integer studyId);
/**
* <p>
* isHasFile.
* </p>
*
* @param studyId
* a {@link java.lang.Integer} object.
* @return a boolean.
*/
public boolean isHasFile(Integer studyId);
/**
* <p>
* listWithHasFile.
* </p>
*
* @param list
* a {@link java.util.List} object.
* @return a {@link java.util.List} object.
*/
public List<Study> listWithHasFile(List<Study> list);
/**
* <p>
* getFiles.
* </p>
*
* @param studyId
* a {@link java.lang.Integer} object.
* @param metaType
* a {@link java.lang.String} object.
* @return a {@link java.util.List} object.
*/
public List<File> getFiles(Integer studyId, String metaType);
/**
* <p>
* isHasFile.
* </p>
*
* @param studyId
* a {@link java.lang.Integer} object.
* @param metaType
* a {@link java.lang.String} object.
* @return a boolean.
*/
public boolean isHasFile(Integer studyId, String metaType);
/**
* <p>
* listWithHasFile.
* </p>
*
* @param list
* a {@link java.util.List} object.
* @param metaType
* a {@link java.lang.String} object.
* @return a {@link java.util.List} object.
*/
public List<Study> listWithHasFile(List<Study> list, String metaType);
/**
* <p>
* listStudyHasFile.
* </p>
*
* @param registration
* a {@link net.sourceforge.seqware.common.model.Registration} object.
* @param metaType
* a {@link java.lang.String} object.
* @param isAcs
* a {@link java.lang.Boolean} object.
* @return a {@link java.util.List} object.
*/
public List<Study> listStudyHasFile(Registration registration, String metaType, Boolean isAcs);
/**
* <p>
* updateDetached.
* </p>
*
* @param study
* a {@link net.sourceforge.seqware.common.model.Study} object.
* @return a {@link net.sourceforge.seqware.common.model.Study} object.
*/
public Study updateDetached(Study study);
/**
* <p>
* updateDetached.
* </p>
*
* @param registration
* a {@link net.sourceforge.seqware.common.model.Registration} object.
* @param study
* a {@link net.sourceforge.seqware.common.model.Study} object.
* @return a {@link net.sourceforge.seqware.common.model.Study} object.
*/
public Study updateDetached(Registration registration, Study study);
/**
* <p>
* list.
* </p>
*
* @return a {@link java.util.List} object.
*/
public List<Study> list();
/**
* <p>
* getRunningCount.
* </p>
*
* @param study
* a {@link net.sourceforge.seqware.common.model.Study} object.
* @return a int.
*/
public int getRunningCount(Study study);
/**
* <p>
* getFinishedCount.
* </p>
*
* @param study
* a {@link net.sourceforge.seqware.common.model.Study} object.
* @return a int.
*/
public int getFinishedCount(Study study);
/**
* <p>
* getFailedCount.
* </p>
*
* @param study
* a {@link net.sourceforge.seqware.common.model.Study} object.
* @return a int.
*/
public int getFailedCount(Study study);
}
// ex:sw=4:ts=4: