3 * Copyright (C) 2009 EDIT European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.remote
.controller
;
12 import io
.swagger
.annotations
.Api
;
14 import java
.io
.IOException
;
16 import javax
.servlet
.http
.HttpServletRequest
;
17 import javax
.servlet
.http
.HttpServletResponse
;
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
;
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
;
32 * TODO write controller documentation
34 * @author a.kohlbecker
39 @RequestMapping(value
= {"/name"})
40 public class NameListController
extends IdentifiableListController
<TaxonNameBase
, INameService
> {
43 * @see eu.etaxonomy.cdm.remote.controller.BaseListController#setService(eu.etaxonomy.cdm.api.service.IService)
47 public void setService(INameService service
) {
48 this.service
= service
;
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
62 logger
.info("doFind : " + request
.getRequestURI() + "?" + request
.getQueryString() );
64 PagerParameters pagerParams
= new PagerParameters(pageSize
, pageNumber
);
65 pagerParams
.normalizeAndValidate(response
);
67 return service
.findTitleCache(null, query
, pagerParams
.getPageSize(), pagerParams
.getPageIndex(), null, matchMode
);
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
)
79 PagerParameters pagerParameters
= new PagerParameters(pageSize
, pageNumber
);
80 pagerParameters
.normalizeAndValidate(response
);
82 return service
.findByTitle(TaxonNameBase
.class, query
, matchMode
, null, pageSize
, pageNumber
, null, getInitializationStrategy());