// $Id$\r
/**\r
* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
* http://www.e-taxonomy.eu\r
-* \r
+*\r
* The contents of this file are subject to the Mozilla Public License Version 1.1\r
* See LICENSE.TXT at the top of this package for the full license terms.\r
*/\r
\r
package eu.etaxonomy.cdm.remote.controller;\r
\r
+import java.io.IOException;\r
+import java.util.Map;\r
+import java.util.UUID;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.stereotype.Controller;\r
+import org.springframework.web.bind.annotation.PathVariable;\r
import org.springframework.web.bind.annotation.RequestMapping;\r
+import org.springframework.web.servlet.ModelAndView;\r
\r
import eu.etaxonomy.cdm.api.service.IAgentService;\r
import eu.etaxonomy.cdm.api.service.pager.Pager;\r
-import eu.etaxonomy.cdm.database.UpdatableRoutingDataSource;\r
import eu.etaxonomy.cdm.model.agent.AgentBase;\r
import eu.etaxonomy.cdm.model.common.Annotation;\r
\r
* Methods mapped at type level, inherited from super classes ({@link BaseController}):\r
* <blockquote>\r
* URI: <b>/{datasource-name}/agent/name/{agent-uuid}</b>\r
- * \r
+ *\r
* Get the {@link AgentBase} instance identified by the <code>{agent-uuid}</code>.\r
* The returned AgentBase is initialized by\r
* the default initialization strategy: {@link #DEFAULT_INIT_STRATEGY}\r
* </blockquote>\r
* <blockquote>\r
* URI: <b>/{datasource-name}/agent/name/{agent-uuid}/annotation</b>\r
- * \r
+ *\r
* Returns a {@link Pager} on the {@link Annotation}s for the {@link AgentBase} instance identified by the\r
* <code>{agent-uuid}</code>.\r
* The returned AgentBase instances are initialized by\r
* the following strategy: {@link #ANNOTATION_INIT_STRATEGY}\r
* </blockquote>\r
- * \r
+ *\r
* @author a.kohlbecker\r
* @date 24.03.2009\r
*/\r
@Controller\r
@RequestMapping(value = {"/agent/{uuid}"})\r
-public class AgentController extends AnnotatableController<AgentBase, IAgentService>\r
+public class AgentController extends BaseController<AgentBase, IAgentService>\r
{\r
\r
- \r
+\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.remote.controller.GenericController#setService(eu.etaxonomy.cdm.api.service.IService)\r
*/\r
this.service = service;\r
}\r
\r
+ /**\r
+ * This method is only needed for\r
+ * {@link eu.etaxonomy.cdm.model.agent.TeamOrPersonBase} or sub classes\r
+ * which are also handled by this controller.\r
+ *\r
+ * The method\r
+ * {@link eu.etaxonomy.cdm.model.agent.TeamOrPersonBase#getTitleCache() } is\r
+ * annotated with @Transient and thus it is not automatically made available\r
+ * by the BaseController.\r
+ *\r
+ * @param uuid\r
+ * @param request\r
+ * @param response\r
+ * @return\r
+ * @throws IOException\r
+ */\r
+ @RequestMapping(value = {"titleCache"})\r
+ public ModelAndView doGetTitleCache(@PathVariable("uuid") UUID uuid,\r
+ HttpServletRequest request, HttpServletResponse response) throws IOException {\r
+ ModelAndView mv = new ModelAndView();\r
+ AgentBase agentbase = service.load(uuid);\r
+ mv.addObject(agentbase.getTitleCache());\r
+ return mv;\r
+\r
+ }\r
+\r
}\r