protected void doRun()

in src/main/java/org/apache/sling/validation/testservices/internal/ValidationPostOperation.java [55:81]


    protected void doRun(SlingHttpServletRequest request, PostResponse response, List<Modification> changes) {
        if (response instanceof ValidationPostResponse) {
            final Map<String, Object> base = new LinkedHashMap<>();
            final ValueMapDecorator valueMap = new ValueMapDecorator(base);
            final Enumeration<String> names = request.getParameterNames();
            while (names.hasMoreElements()) {
                final String name = names.nextElement();
                valueMap.put(name, request.getRequestParameter(name).getString());
            }

            RequestParameter parameter = request.getRequestParameter("sling:resourceType");
            if (parameter != null && !"".equals(parameter.getString())) {
                final String resourceType = parameter.getString();
                final String resourcePath = request.getRequestPathInfo().getResourcePath();
                final ValidationModel validationModel = validationService.getValidationModel(resourceType, resourcePath, false);
                if (validationModel != null) {
                    final ValidationResult validationResult = validationService.validate(valueMap, validationModel);
                    final ValidationPostResponse validationPostResponse = (ValidationPostResponse) response;
                    validationPostResponse.setValidationResult(validationResult);
                } else {
                    logger.error("No validation model for resourceType {} and resourcePath {} ", resourceType, resourcePath);
                }
            } else {
                logger.error("resource type is empty");
            }
        }
    }