/** * Returns a request parameter.<br> * In addition the method fixes problems with incorrect UTF-8 characters returned by the servlet engine. * All character data is converted from ISO-8859-1 to UTF-8 if not '_charset_' parameter is provided. * @param request Request. * @param param Parameter name. * @return Parameter value or null if it is not set. */ public static @Nullable String get(@NotNull ServletRequest request, @NotNull String param) { return get(request, param, null); }
/** * Returns a request parameter as enum value. * @param <T> Enum type * @param request Request. * @param param Parameter name. * @param enumClass Enum class * @param defaultValue Default value. * @return Parameter value or the default value if it is not set or an invalid enum value. */ @SuppressWarnings("unchecked") public static <T extends Enum> @Nullable T getEnum(@NotNull ServletRequest request, @NotNull String param, @NotNull Class<T> enumClass, @Nullable T defaultValue) { String value = RequestParam.get(request, param); if (StringUtils.isNotEmpty(value)) { try { return (T)Enum.valueOf(enumClass, value); } catch (IllegalArgumentException ex) { // ignore, return default } } return defaultValue; }
/** * Can be overridden by subclasses to filter page list via page filter. * If not overridden it supports defining a page filter via "predicate" request attribute. * @param request Request * @return Page filter or null if no filtering applies */ protected PageFilter getPageFilter(SlingHttpServletRequest request) { // check for predicate filter String predicateName = RequestParam.get(request, RP_PREDICATE); if (StringUtils.isNotEmpty(predicateName)) { PredicateProvider predicateProvider = getPredicateProvider(); if (predicateProvider == null) { throw new RuntimeException("PredicateProvider service not available."); } Predicate predicate = predicateProvider.getPredicate(predicateName); if (predicate == null) { throw new RuntimeException("Predicate '" + predicateName + "' not available."); } return new PredicatePageFilter(predicate, true, true); } return null; }
/** * Determine root resource to list its children. (use resource for root page because root node does not have to be a * page but can be e.g. a nt:folder node) * @param request Request * @return Root resource or null if invalid resource was referenced */ protected final Resource getRootResource(SlingHttpServletRequest request) { String path = RequestParam.get(request, RP_PATH); if (StringUtils.isEmpty(path) && request.getResource() != null) { path = request.getResource().getPath(); } if (StringUtils.isNotEmpty(path)) { path = StringUtils.removeEnd(path, "/" + JcrConstants.JCR_CONTENT); return request.getResourceResolver().getResource(path); } return null; }
Page resourcePage = pageManager.getContainingPage(resource); String versionLabel = RequestParam.get(request, DiffService.REQUEST_PARAM_DIFF_TO);