ref #6241 change @date to @since
[cdmlib.git] / cdmlib-remote / src / main / java / eu / etaxonomy / cdm / remote / controller / NameListController.java
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 }