X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/blobdiff_plain/45e7ca8a70457a80c8bc1c83f663157d610d4c1c..6ab939077b75134f676560103ea6fac26c6fa3d8:/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionController.java?ds=sidebyside diff --git a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionController.java b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionController.java index 1608c52ef3..bcaf226a26 100644 --- a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionController.java +++ b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DescriptionController.java @@ -25,24 +25,28 @@ import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import eu.etaxonomy.cdm.api.service.IDescriptionService; import eu.etaxonomy.cdm.api.service.IFeatureTreeService; import eu.etaxonomy.cdm.api.service.pager.Pager; + import eu.etaxonomy.cdm.model.common.Annotation; import eu.etaxonomy.cdm.model.common.Language; -import eu.etaxonomy.cdm.model.common.Representation; +import eu.etaxonomy.cdm.model.description.CategoricalData; import eu.etaxonomy.cdm.model.description.DescriptionBase; import eu.etaxonomy.cdm.model.description.DescriptionElementBase; import eu.etaxonomy.cdm.model.description.Feature; import eu.etaxonomy.cdm.model.description.FeatureTree; +import eu.etaxonomy.cdm.model.description.StateData; import eu.etaxonomy.cdm.model.description.TaxonDescription; import eu.etaxonomy.cdm.model.description.TextData; import eu.etaxonomy.cdm.model.location.NamedAreaLevel; +import eu.etaxonomy.cdm.persistence.query.MatchMode; +import eu.etaxonomy.cdm.remote.controller.util.PagerParameters; import eu.etaxonomy.cdm.remote.editor.NamedAreaLevelPropertyEditor; import eu.etaxonomy.cdm.remote.editor.UUIDListPropertyEditor; -import eu.etaxonomy.cdm.remote.editor.UUIDPropertyEditor; import eu.etaxonomy.cdm.remote.editor.UuidList; import eu.etaxonomy.cdm.remote.l10n.LocaleContext; @@ -73,6 +77,17 @@ public class DescriptionController extends BaseController TAXONDESCRIPTION_INIT_STRATEGY = Arrays.asList(new String []{ + "$", + "elements.$", + "elements.sources.citation.authorTeam", + "elements.sources.nameUsedInSource.originalNameString", + "elements.multilanguageText", + "elements.media", + }); + @InitBinder @Override public void initBinder(WebDataBinder binder) { @@ -105,13 +120,28 @@ public class DescriptionController extends BaseController getAnnotations( + public Pager doGetDescriptionElementAnnotations( @PathVariable("descriptionelement_uuid") UUID uuid, HttpServletRequest request, HttpServletResponse response) throws IOException { - logger.info("getAnnotations() - " + request.getServletPath()); + logger.info("doGetDescriptionElementAnnotations() - " + request.getServletPath()); DescriptionElementBase annotatableEntity = service.getDescriptionElementByUuid(uuid); if(annotatableEntity == null){ HttpStatusMessage.UUID_INVALID.send(response); @@ -123,6 +153,59 @@ public class DescriptionController extends BaseController states = ((CategoricalData)descriptionElement).getStates(); + mv.addObject(states); + return mv; + } + + + + @RequestMapping(value = "/descriptionElement/find", method = RequestMethod.GET) + public Pager doFindDescriptionElements( + @RequestParam(value = "query", required = true) String queryString, + @RequestParam(value = "type", required = false) Class type, + @RequestParam(value = "pageSize", required = false) Integer pageSize, + @RequestParam(value = "pageNumber", required = false) Integer pageNumber, + @RequestParam(value = "matchMode", required = false) MatchMode matchMode, + HttpServletRequest request, + HttpServletResponse response + ) + throws IOException { + + logger.info("doFindDescriptionElements : " + request.getRequestURI() + "?" + request.getQueryString() ); + + PagerParameters pagerParams = new PagerParameters(pageSize, pageNumber); + pagerParams.normalizeAndValidate(response); + + Pager pager = service.searchElements(type, queryString, pageSize, pageNumber, null, DEFAULT_INIT_STRATEGY); + + return pager; + } + /* @RequestMapping(value = "{uuid_list}/namedAreaTree", method = RequestMethod.GET) public NamedAreaTree doGetOrderedDistributions( @@ -172,16 +255,12 @@ public class DescriptionController extends BaseController