/*
* 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 java.util.List;
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.EnzymePortalDisease;
import uk.ac.ebi.ep.data.repositories.DiseaseRepository;
import uk.ac.ebi.ep.data.search.model.Disease;
/**
*
* @author joseph
*/
@Transactional
@Service
public class DiseaseService {
@Autowired
private DiseaseRepository repository;
@Transactional
public EnzymePortalDisease addDisease(EnzymePortalDisease d) {
return repository.saveAndFlush(d);
}
@Transactional
public List<EnzymePortalDisease> addDiseases(List<EnzymePortalDisease> d) {
return repository.save(d);
}
@Transactional(readOnly = true)
public EnzymePortalDisease findById(Long id) {
return repository.findOne(id);
}
@Transactional(readOnly = true)
public List<EnzymePortalDisease> findDiseases() {
return repository.findAll();
}
@Transactional(readOnly = true)
public List<EnzymePortalDisease> findDiseasesByNamePrefix(List<String> namePrefixes) {
return repository.findDiseasesByNamePrefixes(namePrefixes);
}
@Transactional(readOnly = true)
public List<EnzymePortalDisease> findDiseasesByAccessions(List<String> accessions) {
return repository.findDiseasesByAccessions(accessions);
}
@Transactional(readOnly = true)
public List<Disease> findDiseasesByAccession(String accession) {
return repository.findDiseasesByAccession(accession);
}
/**
*
* @param diseaseName formated name e.g name = String.format(%%%s%%,diseaseName)
* @return matched diseases
*/
@Transactional(readOnly = true)
public List<Disease> findDiseasesLike(String diseaseName){
return repository.findDiseasesNameLike(diseaseName);
}
}