/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package uk.ac.ebi.ep.data.service; import com.mysema.query.types.Predicate; import java.util.List; import java.util.Optional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import uk.ac.ebi.ep.data.domain.QUniprotEntry; import uk.ac.ebi.ep.data.domain.UniprotEntry; import uk.ac.ebi.ep.data.repositories.UniprotEntryRepository; /** * * @author joseph */ @Transactional @Service public class UniprotEntryService { @Autowired private UniprotEntryRepository repository; @Transactional(readOnly = true) public Optional<UniprotEntry> findByAccession(String accession) { return Optional.ofNullable(repository.findByAccession(accession)); } @Transactional(readOnly = true) public UniprotEntry findByUniProtAccession(String accession) { return repository.findOne(isAccession(accession)); } @Transactional(readOnly = true) public List<String> findAllUniprotAccessions() { return repository.findAccessions(); } @Transactional(readOnly = true) public List<UniprotEntry> findUniprotEntries() { return repository.findUniprotEntries(); } @Transactional(readOnly = true) public List<UniprotEntry> findByNamePrefixes(List<String> namePrefixes) { return repository.findEnzymesByNamePrefixes(namePrefixes); } @Transactional(readOnly = true) public List<UniprotEntry> findEnzymesByAccessions(List<String> accessions) { return repository.findSummariesByAccessions(accessions); } private static Predicate isAccession(String accession) { QUniprotEntry enzyme = QUniprotEntry.uniprotEntry; return enzyme.accession.equalsIgnoreCase(accession); } }