package pl.edu.icm.saos.api.search.judgments.services; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import pl.edu.icm.saos.api.search.judgments.parameters.JudgmentsParameters; import pl.edu.icm.saos.api.search.judgments.parameters.Sort; import pl.edu.icm.saos.api.search.parameters.Pagination; import pl.edu.icm.saos.search.search.model.JudgmentCriteria; import pl.edu.icm.saos.search.search.model.JudgmentSearchResult; import pl.edu.icm.saos.search.search.model.Paging; import pl.edu.icm.saos.search.search.model.SearchResults; import pl.edu.icm.saos.search.search.service.SearchService; /** * Provides functionality for searching judgment's indexed documents is the Solr index. * @author pavtel */ @Service public class JudgmentsApiSearchService { @Autowired private SearchService<JudgmentSearchResult, JudgmentCriteria> judgmentsSearchService; @Autowired private JudgmentParametersToCriteriaConverter converter; //------------------------ LOGIC -------------------------- /** * Finds indexed judgment documents that meet the given search criteria (judgmentsParameters). * @param judgmentsParameters search criteria. * @return search result. */ public SearchResults<JudgmentSearchResult> performSearch(JudgmentsParameters judgmentsParameters){ Pagination pagination = judgmentsParameters.getPagination(); Sort sort = judgmentsParameters.getSort(); Paging paging = converter.toPaging(pagination, sort); JudgmentCriteria judgmentCriteria = converter.toCriteria(judgmentsParameters); SearchResults<JudgmentSearchResult> resultSearchResults = judgmentsSearchService.search(judgmentCriteria, paging); return resultSearchResults; } //------------------------ SETTERS -------------------------- public void setJudgmentsSearchService(SearchService<JudgmentSearchResult, JudgmentCriteria> judgmentsSearchService) { this.judgmentsSearchService = judgmentsSearchService; } public void setParametersToCriteriaConverter(JudgmentParametersToCriteriaConverter parametersToCriteriaConverter) { this.converter = parametersToCriteriaConverter; } }