package org.nextprot.api.core.dao;
import org.nextprot.api.core.domain.Publication;
import java.util.List;
public interface PublicationDao {
/**
* Returns the ids of publications belonging to an entry
* sorted using the 'default algorithm': publication date, type, etc
* @param masterId
* @return
*/
List<Long> findSortedPublicationIdsByMasterId(Long masterId);
/**
* Returns publications belonging to an entry
* sorted using the 'default algorithm': publication date, type, etc
* @param masterId
* @return
*/
List<Publication> findSortedPublicationsByMasterId(Long masterId);
/**
* Find publication id by database and accession.
* For example to get a publication from PubMed given its id
* @param database PubMed
* @param accession 25923089
* @return
*/
Publication findPublicationByDatabaseAndAccession(String database, String accession);
/**
* Finds publication by id
* @param id
* @return
*/
Publication findPublicationById(long id);
/**
* Finds publications by title
* @param title
* @return
*/
List<Publication> findPublicationByTitle(String title);
/**
* Retrieves publication by MD5
* @return
*/
Publication findPublicationByMD5(String md5);
/**
* Retrieves all publications
* @return
*/
List<Long> findAllPublicationsIds();
}