X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/blobdiff_plain/88670522ede01f9e4b55618589cc5eb9b70b4758..e773b6b9d8f8f969d9f92246846c44f9ad08ff23:/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/NameListController.java diff --git a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/NameListController.java b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/NameListController.java index b57b4d78bc..529ce2e060 100644 --- a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/NameListController.java +++ b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/NameListController.java @@ -2,34 +2,81 @@ /** * Copyright (C) 2009 EDIT European Distributed Institute of Taxonomy * http://www.e-taxonomy.eu - * + * * The contents of this file are subject to the Mozilla Public License Version * 1.1 See LICENSE.TXT at the top of this package for the full license terms. */ package eu.etaxonomy.cdm.remote.controller; +import java.io.IOException; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import eu.etaxonomy.cdm.api.service.INameService; +import eu.etaxonomy.cdm.api.service.pager.Pager; import eu.etaxonomy.cdm.model.name.TaxonNameBase; +import eu.etaxonomy.cdm.persistence.query.MatchMode; +import eu.etaxonomy.cdm.remote.controller.util.PagerParameters; /** + * TODO write controller documentation + * * @author a.kohlbecker * @date 24.03.2009 */ @Controller -@RequestMapping(value = {"/*/name.*", "/*/name"}) -public class NameListController extends BaseListController { - - /* (non-Javadoc) - * @see eu.etaxonomy.cdm.remote.controller.BaseListController#setService(eu.etaxonomy.cdm.api.service.IService) - */ - @Override - @Autowired - public void setService(INameService service) { - this.service = service; - } +@RequestMapping(value = {"/name"}) +public class NameListController extends IdentifiableListController { + + /* (non-Javadoc) + * @see eu.etaxonomy.cdm.remote.controller.BaseListController#setService(eu.etaxonomy.cdm.api.service.IService) + */ + @Override + @Autowired + public void setService(INameService service) { + this.service = service; + } + + @RequestMapping(method = RequestMethod.GET, value={"findTitleCache"}) + public Pager doFindTitleCache( + @RequestParam(value = "query", required = true) String query, + @RequestParam(value = "pageNumber", required = false) Integer pageNumber, + @RequestParam(value = "pageSize", required = false) Integer pageSize, + @RequestParam(value = "matchMode", required = false) MatchMode matchMode, + HttpServletRequest request, + HttpServletResponse response + ) + throws IOException { + + logger.info("doFind : " + request.getRequestURI() + "?" + request.getQueryString() ); + + PagerParameters pagerParams = new PagerParameters(pageSize, pageNumber); + pagerParams.normalizeAndValidate(response); + + return service.findTitleCache(null, query, pagerParams.getPageSize(), pagerParams.getPageIndex(), null, matchMode); + + } + + @RequestMapping(value = "findByName", method = RequestMethod.GET) + public Pager doFindByName( + @RequestParam(value = "query", required = true) String query, + @RequestParam(value = "pageNumber", required = false) Integer pageNumber, + @RequestParam(value = "pageSize", required = false) Integer pageSize, + @RequestParam(value = "matchMode", required = false) MatchMode matchMode, HttpServletRequest request, HttpServletResponse response) + throws IOException { + + PagerParameters pagerParameters = new PagerParameters(pageSize, pageNumber); + pagerParameters.normalizeAndValidate(response); + + return service.findByTitle(TaxonNameBase.class, query, matchMode, null, pageSize, pageNumber, null, getInitializationStrategy()); + } + } \ No newline at end of file