- protected <CDM_BASE> CDM_BASE getCdmBase(HttpServletRequest request, HttpServletResponse response, \r
- List<String> initStrategy, Class<CDM_BASE> clazz) throws IOException {\r
- T obj = null;\r
- try {\r
- UUID uuid = readValueUuid(request, null);\r
- Assert.notNull(uuid, HttpStatusMessage.UUID_MISSING.toString());\r
- \r
- if(initStrategy == null){\r
- // may be null is set to null via the setter\r
- obj = service.find(uuid);\r
- } else { \r
- obj = service.load(uuid, initStrategy);\r
+ @RequestMapping(value = "*", method = RequestMethod.GET)\r
+ public ModelAndView doGetMethod(\r
+ @PathVariable("uuid") UUID uuid,\r
+ // doPage request parametes\r
+ @RequestParam(value = "pageNumber", required = false) Integer pageNumber,\r
+ @RequestParam(value = "pageSize", required = false) Integer pageSize,\r
+ // doList request parametes\r
+ @RequestParam(value = "start", required = false) Integer start,\r
+ @RequestParam(value = "limit", required = false) Integer limit,\r
+ HttpServletRequest request,\r
+ HttpServletResponse response) throws IOException {\r
+ \r
+ ModelAndView modelAndView = new ModelAndView();\r
+ \r
+ String servletPath = request.getServletPath();\r
+ String baseName = FilenameUtils.getBaseName(servletPath);\r
+ \r
+ if(request != null)\r
+ logger.info("doGetMethod()[doGet" + StringUtils.capitalize(baseName) + "] " + request.getServletPath());\r
+ \r
+ // <CUT\r
+// T instance = getCdmBaseInstance(uuid, response, (List<String>)null);\r
+ \r
+ //Class<?> propertyClass = propertyClass(instance, baseName);\r
+ \r
+ Object objectFromProperty = getCdmBaseProperty(uuid, baseName, response);// invokeProperty(instance, baseName, response);\r
+ \r
+ // CUT>\r
+ \r
+ if(objectFromProperty != null){\r
+\r
+ if( Collection.class.isAssignableFrom(objectFromProperty.getClass())){\r
+ // Map types cannot be returned as list or in a pager!\r
+ \r
+ Collection c = (Collection)objectFromProperty;\r
+ if(start != null){\r
+ // return list\r
+ limit = (limit == null ? DEFAULT_PAGE_SIZE : limit);\r
+ Collection sub_c = subCollection(c, start, limit);\r
+ modelAndView.addObject(sub_c);\r
+ \r
+ } else {\r
+ //FIXME use real paging mechanism of according service class instead of subCollection()\r
+ //FIXME use BaseListController.normalizeAndValidatePagerParameters(pageNumber, pageSize, response);\r
+ pageSize = (pageSize == null ? DEFAULT_PAGE_SIZE : pageSize);\r
+ pageNumber = (pageNumber == null ? 0 : pageNumber);\r
+ start = pageNumber * pageSize;\r
+ List sub_c = subCollection(c, start, pageSize);\r
+ Pager p = new DefaultPagerImpl(pageNumber, c.size(), pageSize, sub_c);\r
+ modelAndView.addObject(p);\r
+ }\r
+ \r
+ } else {\r
+ modelAndView.addObject(objectFromProperty); \r