Project

General

Profile

Download (3.33 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
 * Copyright (C) 2009 EDIT 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
7
 * 1.1 See LICENSE.TXT at the top of this package for the full license terms.
8
 */
9

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

    
12
import io.swagger.annotations.Api;
13

    
14
import java.io.IOException;
15

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

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

    
25
import eu.etaxonomy.cdm.api.service.INameService;
26
import eu.etaxonomy.cdm.api.service.pager.Pager;
27
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
28
import eu.etaxonomy.cdm.persistence.query.MatchMode;
29
import eu.etaxonomy.cdm.remote.controller.util.PagerParameters;
30

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

    
42
    /* (non-Javadoc)
43
     * @see eu.etaxonomy.cdm.remote.controller.BaseListController#setService(eu.etaxonomy.cdm.api.service.IService)
44
     */
45
    @Override
46
    @Autowired
47
    public void setService(INameService service) {
48
        this.service = service;
49
    }
50

    
51
   @RequestMapping(method = RequestMethod.GET, value={"findTitleCache"})
52
    public Pager<TaxonNameBase> doFindTitleCache(
53
            @RequestParam(value = "query", required = true) String query,
54
            @RequestParam(value = "pageNumber", required = false) Integer pageNumber,
55
            @RequestParam(value = "pageSize", required = false) Integer pageSize,
56
            @RequestParam(value = "matchMode", required = false) MatchMode matchMode,
57
            HttpServletRequest request,
58
            HttpServletResponse response
59
            )
60
             throws IOException {
61

    
62
        logger.info("doFind : " + request.getRequestURI() + "?" + request.getQueryString() );
63

    
64
        PagerParameters pagerParams = new PagerParameters(pageSize, pageNumber);
65
        pagerParams.normalizeAndValidate(response);
66

    
67
        return service.findTitleCache(null, query, pagerParams.getPageSize(), pagerParams.getPageIndex(), null, matchMode);
68

    
69
    }
70

    
71
    @RequestMapping(value = "findByName", method = RequestMethod.GET)
72
    public Pager<TaxonNameBase> doFindByName(
73
            @RequestParam(value = "query", required = true) String query,
74
            @RequestParam(value = "pageNumber", required = false) Integer pageNumber,
75
            @RequestParam(value = "pageSize", required = false) Integer pageSize,
76
            @RequestParam(value = "matchMode", required = false) MatchMode matchMode, HttpServletRequest request, HttpServletResponse response)
77
            throws IOException {
78

    
79
        PagerParameters pagerParameters = new PagerParameters(pageSize, pageNumber);
80
        pagerParameters.normalizeAndValidate(response);
81

    
82
        return service.findByTitle(TaxonNameBase.class, query, matchMode, null, pageSize, pageNumber, null, getInitializationStrategy());
83
    }
84

    
85
}
(38-38/63)