This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-validation-examples.git
commit 52e4c8bbcda4e9e8e5865ada464e475adf7eb762 Author: Konrad Windszus <k...@apache.org> AuthorDate: Fri Dec 18 14:50:39 2015 +0000 SLING-5026 - refactor validator interface to allow to set multiple failure messages This closes #117 git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1720802 13f79535-47bb-0310-9956-ffa450edef68 --- .../sling/validation/examples/models/UserModel.java | 9 +++++---- .../validation/examples/servlets/ModifyUserServlet.java | 17 ++++++++--------- .../apps/validationdemo/components/user/user.jsp | 11 ++++------- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/main/java/org/apache/sling/validation/examples/models/UserModel.java b/src/main/java/org/apache/sling/validation/examples/models/UserModel.java index f07c430..5cff7c3 100644 --- a/src/main/java/org/apache/sling/validation/examples/models/UserModel.java +++ b/src/main/java/org/apache/sling/validation/examples/models/UserModel.java @@ -18,7 +18,7 @@ */ package org.apache.sling.validation.examples.models; -import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -27,6 +27,7 @@ import javax.inject.Inject; import org.apache.sling.api.resource.Resource; import org.apache.sling.models.annotations.Model; +import org.apache.sling.validation.ValidationFailure; import org.apache.sling.validation.ValidationResult; import org.apache.sling.validation.ValidationService; import org.apache.sling.validation.model.ValidationModel; @@ -37,7 +38,7 @@ public class UserModel { private static final String INVALID = "INVALID"; private Resource resource; - private Map<String, List<String>> errors = new HashMap<String, List<String>>(); + private List<ValidationFailure> errors = new LinkedList<ValidationFailure>(); @Inject private ValidationService validationService; @@ -74,7 +75,7 @@ public class UserModel { return isAdmin; } - public Map<String, List<String>> getErrors() { + public List<ValidationFailure> getErrors() { return errors; } @@ -84,7 +85,7 @@ public class UserModel { if (model != null) { ValidationResult result = validationService.validate(resource, model); if (!result.isValid()) { - errors = result.getFailureMessages(); + errors = result.getFailures(); } } } diff --git a/src/main/java/org/apache/sling/validation/examples/servlets/ModifyUserServlet.java b/src/main/java/org/apache/sling/validation/examples/servlets/ModifyUserServlet.java index e7a3944..d74657f 100644 --- a/src/main/java/org/apache/sling/validation/examples/servlets/ModifyUserServlet.java +++ b/src/main/java/org/apache/sling/validation/examples/servlets/ModifyUserServlet.java @@ -34,6 +34,7 @@ import org.apache.sling.api.servlets.SlingAllMethodsServlet; import org.apache.sling.commons.json.JSONArray; import org.apache.sling.commons.json.JSONException; import org.apache.sling.commons.json.JSONObject; +import org.apache.sling.validation.ValidationFailure; import org.apache.sling.validation.ValidationResult; import org.apache.sling.validation.ValidationService; import org.apache.sling.validation.model.ValidationModel; @@ -70,16 +71,14 @@ public class ModifyUserServlet extends SlingAllMethodsServlet { JSONObject json = new JSONObject(); try { json.put("success", false); - JSONObject messages = new JSONObject(); - for (Map.Entry<String, List<String>> entry : vr.getFailureMessages().entrySet()) { - String key = entry.getKey(); - JSONArray errors = new JSONArray(); - for (String message : entry.getValue()) { - errors.put(message); - } - messages.put(key, errors); + JSONArray failures = new JSONArray(); + for (ValidationFailure failure : vr.getFailures()) { + JSONObject failureJson = new JSONObject(); + failureJson.put("message", failure.getMessage()); + failureJson.put("location", failure.getLocation()); + failures.put(failureJson); } - json.put("messages", messages); + json.put("failures", failures); response.getWriter().print(json.toString()); response.setStatus(400); } catch (JSONException e) { diff --git a/src/main/resources/SLING-INF/apps/validationdemo/components/user/user.jsp b/src/main/resources/SLING-INF/apps/validationdemo/components/user/user.jsp index 26e1968..bfca1ef 100644 --- a/src/main/resources/SLING-INF/apps/validationdemo/components/user/user.jsp +++ b/src/main/resources/SLING-INF/apps/validationdemo/components/user/user.jsp @@ -19,6 +19,7 @@ java.util.Map, java.util.List, org.apache.sling.api.resource.Resource, + org.apache.sling.validation.ValidationFailure, org.apache.sling.validation.examples.models.UserModel "%> <%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling" %> @@ -46,14 +47,10 @@ </table> <h3>Validation Errors</h3> <% - for (Map.Entry<String, List<String>> entry : user.getErrors().entrySet()) { + for (ValidationFailure error : user.getErrors()) { %> -<span><strong>Key:</strong> <%= entry.getKey() %></span><br> +<span><strong>Key:</strong> <%= error.getLocation() %></span><br> +<span><%= error.getMessage() %></span><br> <% - for (String message : entry.getValue()) { -%> -<span><%= message %></span><br> -<% - } } %> \ No newline at end of file -- To stop receiving notification emails like this one, please contact "commits@sling.apache.org" <commits@sling.apache.org>.