Project

General

Profile

Download (3.17 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

    
13
import javax.servlet.http.HttpServletRequest;
14
import javax.servlet.http.HttpServletResponse;
15

    
16
import org.springframework.beans.factory.annotation.Autowired;
17
import org.springframework.stereotype.Controller;
18
import org.springframework.web.bind.annotation.RequestMapping;
19
import org.springframework.web.bind.annotation.RequestMethod;
20
import org.springframework.web.bind.annotation.RequestParam;
21

    
22
import eu.etaxonomy.cdm.api.service.INameService;
23
import eu.etaxonomy.cdm.api.service.pager.Pager;
24
import eu.etaxonomy.cdm.model.name.TaxonName;
25
import eu.etaxonomy.cdm.persistence.query.MatchMode;
26
import eu.etaxonomy.cdm.remote.controller.util.PagerParameters;
27
import io.swagger.annotations.Api;
28

    
29
/**
30
 * TODO write controller documentation
31
 *
32
 * @author a.kohlbecker
33
 * @since 24.03.2009
34
 */
35
@Controller
36
@Api("name")
37
@RequestMapping(value = {"/name"})
38
public class NameListController extends AbstractIdentifiableListController<TaxonName, INameService> {
39

    
40
    @Override
41
    @Autowired
42
    public void setService(INameService service) {
43
        this.service = service;
44
    }
45

    
46
    @RequestMapping(method = RequestMethod.GET, value={"findTitleCache"})
47
    public Pager<TaxonName> doFindTitleCache(
48
            @RequestParam(value = "query", required = true) String query,
49
            @RequestParam(value = "pageNumber", required = false) Integer pageNumber,
50
            @RequestParam(value = "pageSize", required = false) Integer pageSize,
51
            @RequestParam(value = "matchMode", required = false) MatchMode matchMode,
52
            HttpServletRequest request,
53
            HttpServletResponse response
54
            )
55
             throws IOException {
56

    
57
        logger.info("doFind : " + request.getRequestURI() + "?" + request.getQueryString() );
58

    
59
        PagerParameters pagerParams = new PagerParameters(pageSize, pageNumber);
60
        pagerParams.normalizeAndValidate(response);
61

    
62
        return service.findTitleCache(null, query, pagerParams.getPageSize(), pagerParams.getPageIndex(), null, matchMode);
63
    }
64

    
65
    @RequestMapping(value = "findByName", method = RequestMethod.GET)
66
    public Pager<TaxonName> doFindByName(
67
            @RequestParam(value = "query", required = true) String query,
68
            @RequestParam(value = "pageNumber", required = false) Integer pageNumber,
69
            @RequestParam(value = "pageSize", required = false) Integer pageSize,
70
            @RequestParam(value = "matchMode", required = false) MatchMode matchMode, HttpServletRequest request, HttpServletResponse response)
71
            throws IOException {
72

    
73
        PagerParameters pagerParameters = new PagerParameters(pageSize, pageNumber);
74
        pagerParameters.normalizeAndValidate(response);
75

    
76
        return service.findByTitle(TaxonName.class, query, matchMode, null, pageSize, pageNumber, null, getInitializationStrategy());
77
    }
78
}
(39-39/67)