package org.nextprot.api.core.service; import org.nextprot.api.core.domain.Publication; import org.nextprot.api.core.service.annotation.ValidEntry; import java.util.List; public interface PublicationService { /** * Gets publication by id * @param id * @return */ Publication findPublicationById(long id); /** * Gets publication by title case insensitive * @param title * @return */ List<Publication> findPublicationByTitle(String title); /** * Retrieves publications by master identifier * @param masterId * @return */ List<Publication> findPublicationsByMasterId(Long masterId); /** * Retrieves publications by master's unique name * @param uniqueName * @return */ List<Publication> findPublicationsByMasterUniqueName(@ValidEntry String uniqueName); /** * Retrieves publication by MD5 * @return */ Publication findPublicationByMD5(String md5); /** * Retrieves all publications ids * @return */ List<Long> findAllPublicationIds(); /** * Find publication ids 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); }