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 java
.io
.IOException
;
13 import java
.util
.List
;
15 import javax
.servlet
.http
.HttpServletRequest
;
16 import javax
.servlet
.http
.HttpServletResponse
;
18 import org
.springframework
.beans
.factory
.annotation
.Autowired
;
19 import org
.springframework
.stereotype
.Controller
;
20 import org
.springframework
.web
.bind
.annotation
.PathVariable
;
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
38 @RequestMapping(value
= {"/name"})
39 public class NameListController
extends IdentifiableListController
<TaxonNameBase
, INameService
> {
42 * @see eu.etaxonomy.cdm.remote.controller.BaseListController#setService(eu.etaxonomy.cdm.api.service.IService)
46 public void setService(INameService service
) {
47 this.service
= service
;
50 @RequestMapping(method
= RequestMethod
.GET
, value
={"findTitleCache"})
51 public Pager
<TaxonNameBase
> doFindTitleCache(
52 @RequestParam(value
= "query", required
= true) String query
,
53 @RequestParam(value
= "pageNumber", required
= false) Integer pageNumber
,
54 @RequestParam(value
= "pageSize", required
= false) Integer pageSize
,
55 @RequestParam(value
= "matchMode", required
= false) MatchMode matchMode
,
56 HttpServletRequest request
,
57 HttpServletResponse response
61 logger
.info("doFind : " + request
.getRequestURI() + "?" + request
.getQueryString() );
63 PagerParameters pagerParams
= new PagerParameters(pageSize
, pageNumber
);
64 pagerParams
.normalizeAndValidate(response
);
66 return (Pager
<TaxonNameBase
>) service
.findTitleCache(null, query
, pagerParams
.getPageSize(), pagerParams
.getPageIndex(), null, matchMode
);
70 @RequestMapping(value
= "findByName", method
= RequestMethod
.GET
)
71 public Pager
<TaxonNameBase
> doFindByName(
72 @RequestParam(value
= "query", required
= true) String query
,
73 @RequestParam(value
= "pageNumber", required
= false) Integer pageNumber
,
74 @RequestParam(value
= "pageSize", required
= false) Integer pageSize
,
75 @RequestParam(value
= "matchMode", required
= false) MatchMode matchMode
, HttpServletRequest request
, HttpServletResponse response
)
78 PagerParameters pagerParameters
= new PagerParameters(pageSize
, pageNumber
);
79 pagerParameters
.normalizeAndValidate(response
);
81 return (Pager
<TaxonNameBase
>) service
.findByTitle(TaxonNameBase
.class, query
, matchMode
, null, pageSize
, pageNumber
, null, DEFAULT_INIT_STRATEGY
);