2 * Copyright (C) 2009 EDIT European Distributed Institute of Taxonomy
3 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.cdm
.remote
.controller
;
11 import java
.io
.IOException
;
13 import javax
.servlet
.http
.HttpServletRequest
;
14 import javax
.servlet
.http
.HttpServletResponse
;
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
;
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
;
30 * TODO write controller documentation
32 * @author a.kohlbecker
37 @RequestMapping(value
= {"/name"})
38 public class NameListController
extends AbstractIdentifiableListController
<TaxonName
, INameService
> {
42 public void setService(INameService service
) {
43 this.service
= service
;
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
57 logger
.info("doFind : " + request
.getRequestURI() + "?" + request
.getQueryString() );
59 PagerParameters pagerParams
= new PagerParameters(pageSize
, pageNumber
);
60 pagerParams
.normalizeAndValidate(response
);
62 return service
.findTitleCache(null, query
, pagerParams
.getPageSize(), pagerParams
.getPageIndex(), null, matchMode
);
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
)
73 PagerParameters pagerParameters
= new PagerParameters(pageSize
, pageNumber
);
74 pagerParameters
.normalizeAndValidate(response
);
76 return service
.findByTitle(TaxonName
.class, query
, matchMode
, null, pageSize
, pageNumber
, null, getInitializationStrategy());