Project

General

Profile

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

    
9
package eu.etaxonomy.cdm.remote.controller;
10

    
11
import java.io.IOException;
12
import java.util.ArrayList;
13
import java.util.Collection;
14
import java.util.List;
15

    
16
import javax.servlet.http.HttpServletRequest;
17
import javax.servlet.http.HttpServletResponse;
18

    
19
import org.apache.log4j.Logger;
20
import org.springframework.beans.factory.annotation.Autowired;
21
import org.springframework.stereotype.Controller;
22
import org.springframework.web.bind.annotation.RequestMapping;
23
import org.springframework.web.bind.annotation.RequestMethod;
24
import org.springframework.web.bind.annotation.RequestParam;
25

    
26
import eu.etaxonomy.cdm.api.service.INameService;
27
import eu.etaxonomy.cdm.api.service.dto.TypeDesignationStatusFilter;
28
import eu.etaxonomy.cdm.api.service.l10n.LocaleContext;
29
import eu.etaxonomy.cdm.api.service.pager.Pager;
30
import eu.etaxonomy.cdm.model.name.TaxonName;
31
import eu.etaxonomy.cdm.persistence.dao.common.Restriction;
32
import eu.etaxonomy.cdm.persistence.query.MatchMode;
33
import eu.etaxonomy.cdm.remote.controller.util.PagerParameters;
34
import io.swagger.annotations.Api;
35

    
36
/**
37
 * TODO write controller documentation
38
 *
39
 * @author a.kohlbecker
40
 * @since 24.03.2009
41
 */
42
@Controller
43
@Api("name")
44
@RequestMapping(value = {"/name"})
45
public class NameListController extends AbstractIdentifiableListController<TaxonName, INameService> {
46

    
47
    private static final Logger logger = Logger.getLogger(NameListController.class);
48

    
49
    @Autowired
50
    private LocaleContext localeContext;
51

    
52

    
53
    @Override
54
    @Autowired
55
    public void setService(INameService service) {
56
        this.service = service;
57
    }
58

    
59
    @RequestMapping(method = RequestMethod.GET, value={"findTitleCache"})
60
    public Pager<String> doFindTitleCache(
61
            @RequestParam(value = "query", required = true) String query,
62
            @RequestParam(value = "pageNumber", required = false) Integer pageNumber,
63
            @RequestParam(value = "pageSize", required = false) Integer pageSize,
64
            @RequestParam(value = "matchMode", required = false) MatchMode matchMode,
65
            HttpServletRequest request,
66
            HttpServletResponse response
67
            )
68
             throws IOException {
69

    
70
        logger.info("doFindTitleCache() " + requestPathAndQuery(request));
71

    
72
        PagerParameters pagerParams = new PagerParameters(pageSize, pageNumber);
73
        pagerParams.normalizeAndValidate(response);
74
        return service.findTitleCache(null, query, pagerParams.getPageSize(), pagerParams.getPageIndex(), null, matchMode);
75
    }
76

    
77
    @RequestMapping(value = "findByName", method = RequestMethod.GET)
78
    public Pager<TaxonName> doFindByName(
79
            @RequestParam(value = "query", required = true) String query,
80
            @RequestParam(value = "pageNumber", required = false) Integer pageNumber,
81
            @RequestParam(value = "pageSize", required = false) Integer pageSize,
82
            @RequestParam(value = "matchMode", required = false) MatchMode matchMode, HttpServletRequest request, HttpServletResponse response)
83
            throws IOException {
84

    
85
        logger.info("doFindByName() " + requestPathAndQuery(request));
86

    
87
        PagerParameters pagerParameters = new PagerParameters(pageSize, pageNumber);
88
        pagerParameters.normalizeAndValidate(response);
89

    
90
        return service.findByTitleWithRestrictions(TaxonName.class, query, matchMode, null, pageSize, pageNumber, null, getInitializationStrategy());
91
    }
92

    
93
    @RequestMapping(
94
            value = {"typeDesignationStatusFilterTerms"},
95
            method = RequestMethod.GET)
96
    public Collection<TypeDesignationStatusFilter> doGetTypeDesignationStatusFilterTermsInUse(
97
            HttpServletRequest request, HttpServletResponse response)throws IOException {
98

    
99
        logger.info("doGetTypeDesignationStatusFilterTermsInUse() " + requestPathAndQuery(request));
100
        return service.getTypeDesignationStatusFilterTerms(localeContext.getLanguages());
101

    
102
    }
103

    
104
    @Override
105
    protected Pager<TaxonName> pageByRestrictions(Class<TaxonName> type, List<String> initStrategy, OrderHintPreset orderBy,
106
            PagerParameters pagerParameters, ArrayList<Restriction<?>> restrictions) {
107
        return service.page(type, restrictions, pagerParameters.getPageSize(), pagerParameters.getPageIndex(), orderBy.orderHints(), initStrategy, false);
108
    }
109
}
(36-36/76)