Project

General

Profile

Download (2.59 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2014 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.api.service.molecular;
10

    
11
import java.util.ArrayList;
12
import java.util.List;
13

    
14
import org.apache.log4j.Logger;
15
import org.hibernate.criterion.Criterion;
16
import org.springframework.beans.factory.annotation.Autowired;
17
import org.springframework.stereotype.Service;
18
import org.springframework.transaction.annotation.Transactional;
19

    
20
import eu.etaxonomy.cdm.api.service.AnnotatableServiceBase;
21
import eu.etaxonomy.cdm.api.service.PreferenceServiceImpl;
22
import eu.etaxonomy.cdm.api.service.pager.Pager;
23
import eu.etaxonomy.cdm.api.service.pager.impl.AbstractPagerImpl;
24
import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;
25
import eu.etaxonomy.cdm.model.molecular.Primer;
26
import eu.etaxonomy.cdm.persistence.dao.molecular.IPrimerDao;
27
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
28
import eu.etaxonomy.cdm.persistence.query.MatchMode;
29
import eu.etaxonomy.cdm.persistence.query.OrderHint;
30

    
31
/**
32
 * @author pplitzner
33
 * @since 11.03.2014
34
 *
35
 */
36
@Service
37
@Transactional(readOnly = true)
38
public class PrimerServiceImpl extends AnnotatableServiceBase<Primer, IPrimerDao> implements IPrimerService{
39
    @SuppressWarnings("unused")
40
    private static final Logger logger = Logger.getLogger(PreferenceServiceImpl.class);
41

    
42
    @Override
43
    public List<UuidAndTitleCache<Primer>> getPrimerUuidAndTitleCache() {
44
        return dao.getPrimerUuidAndTitleCache();
45
    }
46
    @Override
47
    public List<UuidAndTitleCache<Primer>> getPrimerUuidAndTitleCache(Integer limitOfInitialElements, String pattern) {
48
        return dao.getPrimerUuidAndTitleCache( limitOfInitialElements, pattern);
49
    }
50
    @Override
51
    @Autowired
52
    protected void setDao(IPrimerDao dao) {
53
        this.dao = dao;
54
    }
55

    
56
    @Override
57
    public Pager<Primer> findByLabel(String queryString, MatchMode matchmode, List<Criterion> criteria, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths){
58
        long numberOfResults = dao.countByTitle(queryString, matchmode, criteria);
59

    
60
        List<Primer> results = new ArrayList<Primer>();
61
        if(AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)) {
62
               results = dao.findByTitle(queryString, matchmode, criteria, pageSize, pageNumber, orderHints, propertyPaths);
63
        }
64

    
65
         return new DefaultPagerImpl<>(pageNumber, numberOfResults, pageSize, results);
66
    }
67
}
(5-5/6)