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>.

Reply via email to