package org.molgenis.ontology.core.service.impl; import org.elasticsearch.common.collect.Lists; import org.molgenis.ontology.core.model.Ontology; import org.molgenis.ontology.core.model.OntologyTerm; import org.molgenis.ontology.core.repository.OntologyRepository; import org.molgenis.ontology.core.repository.OntologyTermRepository; import org.molgenis.ontology.core.service.OntologyService; import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.List; import java.util.Set; import static java.util.Objects.requireNonNull; import static java.util.stream.Collectors.toList; public class OntologyServiceImpl implements OntologyService { private OntologyRepository ontologyRepository; private OntologyTermRepository ontologyTermRepository; @Autowired public OntologyServiceImpl(OntologyRepository ontologyRepository, OntologyTermRepository ontologyTermRepository) { this.ontologyRepository = requireNonNull(ontologyRepository); this.ontologyTermRepository = requireNonNull(ontologyTermRepository); } @Override public List<Ontology> getOntologies() { return ontologyRepository.getOntologies().collect(toList()); } @Override public List<String> getAllOntologiesIds() { final List<String> allOntologiesIds = new ArrayList<String>(); ontologyRepository.getOntologies().forEach(e -> allOntologiesIds.add(e.getId())); return allOntologiesIds; } @Override public Ontology getOntology(String name) { return ontologyRepository.getOntology(name); } @Override public OntologyTerm getOntologyTerm(String iri) { return ontologyTermRepository.getOntologyTerm(iri.split(",")); } @Override public List<OntologyTerm> getAllOntologyTerms(String ontologyIri) { return ontologyTermRepository.getAllOntologyTerms(ontologyIri); } @Override public List<OntologyTerm> findExcatOntologyTerms(List<String> ontologyIds, Set<String> terms, int pageSize) { if (null == terms || terms.size() == 0) { return Lists.<OntologyTerm>newArrayList(); } return ontologyTermRepository.findExcatOntologyTerms(ontologyIds, terms, pageSize); } @Override public List<OntologyTerm> findOntologyTerms(List<String> ontologyIds, Set<String> terms, int pageSize) { if (null == terms || terms.size() == 0) { return Lists.<OntologyTerm>newArrayList(); } return ontologyTermRepository.findOntologyTerms(ontologyIds, terms, pageSize); } @Override public List<OntologyTerm> getChildren(OntologyTerm ontologyTerm) { return ontologyTermRepository.getChildren(ontologyTerm); } @Override public Integer getOntologyTermDistance(OntologyTerm ontologyTerm1, OntologyTerm ontologyTerm2) { return ontologyTermRepository.getOntologyTermDistance(ontologyTerm1, ontologyTerm2); } }