You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2014/11/24 16:13:44 UTC

svn commit: r1641407 - in /sling/trunk/contrib/extensions/validation: api/src/main/java/org/apache/sling/validation/api/ core/src/main/java/org/apache/sling/validation/impl/ core/src/main/java/org/apache/sling/validation/impl/util/ core/src/main/java/o...

Author: kwin
Date: Mon Nov 24 15:13:44 2014
New Revision: 1641407

URL: http://svn.apache.org/r1641407
Log:
SLING-4194 use ValueMap for the validator arguments instead of a simple map

Modified:
    sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java
    sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/Validator.java
    sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ParameterizedValidatorImpl.java
    sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/util/JCRBuilder.java
    sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/validators/RegexValidator.java
    sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/ValidatorTypeUtilTest.java
    sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/DateValidator.java
    sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/ExtendedStringValidator.java
    sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/IntegerValidator.java
    sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringArrayValidator.java
    sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringValidator.java

Modified: sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java?rev=1641407&r1=1641406&r2=1641407&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java (original)
+++ sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java Mon Nov 24 15:13:44 2014
@@ -18,7 +18,7 @@
  */
 package org.apache.sling.validation.api;
 
-import java.util.Map;
+import org.apache.sling.api.resource.ValueMap;
 
 /**
  * Defines a validator instance with information about the type and the parameterization of the validator.
@@ -28,7 +28,7 @@ public interface ParameterizedValidator 
 
     public abstract Validator<?> getValidator();
 
-    public abstract Map<String, String> getParameters();
+    public abstract ValueMap getParameters();
 
     public abstract Class<?> getType();
 

Modified: sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/Validator.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/Validator.java?rev=1641407&r1=1641406&r2=1641407&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/Validator.java (original)
+++ sling/trunk/contrib/extensions/validation/api/src/main/java/org/apache/sling/validation/api/Validator.java Mon Nov 24 15:13:44 2014
@@ -68,5 +68,5 @@ public interface Validator <T> {
      * @return validation error message if validation was not successful, {@code null} otherwise. In case an empty string is returned a generic validation error message is used.
      * @throws org.apache.sling.validation.api.exceptions.SlingValidationException if some expected arguments are missing from the arguments map
      */
-    String validate(T data, ValueMap valueMap, Map<String, String> arguments) throws SlingValidationException;
+    String validate(T data, ValueMap valueMap, ValueMap arguments) throws SlingValidationException;
 }

Modified: sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ParameterizedValidatorImpl.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ParameterizedValidatorImpl.java?rev=1641407&r1=1641406&r2=1641407&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ParameterizedValidatorImpl.java (original)
+++ sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/ParameterizedValidatorImpl.java Mon Nov 24 15:13:44 2014
@@ -1,17 +1,16 @@
 package org.apache.sling.validation.impl;
 
-import java.util.Map;
-
+import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.validation.api.ParameterizedValidator;
 import org.apache.sling.validation.api.Validator;
 import org.apache.sling.validation.impl.util.ValidatorTypeUtil;
 
 public class ParameterizedValidatorImpl implements ParameterizedValidator {
     private final Validator<?> validator;
-    private final Map<String, String> parameters;
+    private final ValueMap parameters;
     private final Class<?> type;
     
-    public ParameterizedValidatorImpl(Validator<?> validator, Map<String, String> parameters) {
+    public ParameterizedValidatorImpl(Validator<?> validator, ValueMap parameters) {
         super();
         this.validator = validator;
         this.parameters = parameters;
@@ -31,7 +30,7 @@ public class ParameterizedValidatorImpl 
      * @see org.apache.sling.validation.impl.ParameterizedValidator#getParameters()
      */
     @Override
-    public Map<String, String> getParameters() {
+    public ValueMap getParameters() {
         return parameters;
     }
     

Modified: sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/util/JCRBuilder.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/util/JCRBuilder.java?rev=1641407&r1=1641406&r2=1641407&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/util/JCRBuilder.java (original)
+++ sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/util/JCRBuilder.java Mon Nov 24 15:13:44 2014
@@ -28,6 +28,7 @@ import java.util.Set;
 
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ValueMap;
+import org.apache.sling.api.wrappers.ValueMapDecorator;
 import org.apache.sling.commons.osgi.PropertiesUtil;
 import org.apache.sling.validation.api.ChildResource;
 import org.apache.sling.validation.api.ParameterizedValidator;
@@ -72,7 +73,7 @@ public class JCRBuilder {
                         }
                         // get type of validator
                         String[] validatorArguments = validatorProperties.get(Constants.VALIDATOR_ARGUMENTS, String[].class);
-                        Map<String, String> validatorArgumentsMap = new HashMap<String, String>();
+                        Map<String, Object> validatorArgumentsMap = new HashMap<String, Object>();
                         if (validatorArguments != null) {
                             for (String arg : validatorArguments) {
                                 String[] keyValuePair = arg.split("=");
@@ -82,7 +83,7 @@ public class JCRBuilder {
                                 validatorArgumentsMap.put(keyValuePair[0], keyValuePair[1]);
                             }
                         }
-                        parameterizedValidators.add(new ParameterizedValidatorImpl(v, validatorArgumentsMap));
+                        parameterizedValidators.add(new ParameterizedValidatorImpl(v, new ValueMapDecorator(validatorArgumentsMap)));
                     }
                 }
                 ResourceProperty f = new ResourcePropertyImpl(fieldName, propertyMultiple, parameterizedValidators);

Modified: sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/validators/RegexValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/validators/RegexValidator.java?rev=1641407&r1=1641406&r2=1641407&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/validators/RegexValidator.java (original)
+++ sling/trunk/contrib/extensions/validation/core/src/main/java/org/apache/sling/validation/impl/validators/RegexValidator.java Mon Nov 24 15:13:44 2014
@@ -18,15 +18,15 @@
  */
 package org.apache.sling.validation.impl.validators;
 
+import java.util.regex.Pattern;
+
+import org.apache.commons.lang3.StringUtils;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.validation.api.Validator;
 import org.apache.sling.validation.api.exceptions.SlingValidationException;
 
-import java.util.Map;
-import java.util.regex.Pattern;
-
 /**
  * Performs regular expressions validation on the supplied data with the help of the {@link Pattern} class. This {@code Validator} expects a
  * mandatory parameter in the arguments map: {@link RegexValidator#REGEX_PARAM}.
@@ -38,13 +38,13 @@ public class RegexValidator implements V
     public static final String REGEX_PARAM = "regex";
 
     @Override
-    public String validate(String data, ValueMap valueMap, Map<String, String> arguments)
+    public String validate(String data, ValueMap valueMap, ValueMap arguments)
             throws SlingValidationException {
         if (arguments == null) {
             throw new SlingValidationException("Cannot perform data validation with null parameters");
         }
-        String regex = arguments.get(REGEX_PARAM);
-        if (regex == null) {
+        String regex = arguments.get(REGEX_PARAM, "");
+        if (StringUtils.isEmpty(regex)) {
             throw new SlingValidationException("Mandatory " + REGEX_PARAM + " is missing from the arguments map.");
         }
         Pattern pattern = Pattern.compile(regex);
@@ -54,6 +54,4 @@ public class RegexValidator implements V
         return "Property does not match the pattern " + regex;
     }
 
-   
-    
 }

Modified: sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/ValidatorTypeUtilTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/ValidatorTypeUtilTest.java?rev=1641407&r1=1641406&r2=1641407&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/ValidatorTypeUtilTest.java (original)
+++ sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/ValidatorTypeUtilTest.java Mon Nov 24 15:13:44 2014
@@ -60,7 +60,7 @@ public class ValidatorTypeUtilTest {
     private class InnerStringValidator implements Validator<String> {
 
         @Override
-        public String validate(String data, ValueMap valueMap, Map<String, String> arguments)
+        public String validate(String data, ValueMap valueMap, ValueMap arguments)
                 throws SlingValidationException {
             return null;
         }
@@ -77,7 +77,7 @@ public class ValidatorTypeUtilTest {
     public void testGetValidatorTypeWithAnonymousClass() {
         Assert.assertThat((Class<String>)ValidatorTypeUtil.getValidatorType(new Validator<String>() {
             @Override
-            public String validate(String data, ValueMap valueMap, Map<String, String> arguments)
+            public String validate(String data, ValueMap valueMap, ValueMap arguments)
                     throws SlingValidationException {
                 return null;
             }
@@ -95,7 +95,7 @@ public class ValidatorTypeUtilTest {
     public void testGetValidatorTypeWithCollectionType() {
         ValidatorTypeUtil.getValidatorType(new Validator<Collection<String>>() {
             @Override
-            public String validate(Collection<String> data, ValueMap valueMap, Map<String, String> arguments)
+            public String validate(Collection<String> data, ValueMap valueMap, ValueMap arguments)
                     throws SlingValidationException {
                 return null;
             }
@@ -104,7 +104,7 @@ public class ValidatorTypeUtilTest {
     
     private class InnerStringValidatorWithAdditionalBaseClass extends GenericTypeParameterBaseClass<Integer> implements Validator<String> {
         @Override
-        public String validate(String data, ValueMap valueMap, Map<String, String> arguments)
+        public String validate(String data, ValueMap valueMap, ValueMap arguments)
                 throws SlingValidationException {
             return null;
         }

Modified: sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/DateValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/DateValidator.java?rev=1641407&r1=1641406&r2=1641407&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/DateValidator.java (original)
+++ sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/DateValidator.java Mon Nov 24 15:13:44 2014
@@ -19,7 +19,6 @@
 package org.apache.sling.validation.impl.util.examplevalidators;
 
 import java.util.Date;
-import java.util.Map;
 
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.validation.api.Validator;
@@ -28,7 +27,7 @@ import org.apache.sling.validation.api.e
 public class DateValidator implements Validator<Date> {
 
     @Override
-    public String validate(Date data, ValueMap valueMap, Map<String, String> arguments) throws SlingValidationException {
+    public String validate(Date data, ValueMap valueMap, ValueMap arguments) throws SlingValidationException {
         return null;
     }
 

Modified: sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/ExtendedStringValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/ExtendedStringValidator.java?rev=1641407&r1=1641406&r2=1641407&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/ExtendedStringValidator.java (original)
+++ sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/ExtendedStringValidator.java Mon Nov 24 15:13:44 2014
@@ -18,29 +18,24 @@
  */
 package org.apache.sling.validation.impl.util.examplevalidators;
 
-import java.util.Map;
-
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.validation.api.exceptions.SlingValidationException;
 
 public class ExtendedStringValidator extends AbstractValidatorWithAdditionalType<Boolean, String, Integer> {
 
     @Override
-    public String validate(String data, ValueMap valueMap, Map<String, String> arguments)
+    public String validate(String data, ValueMap valueMap, ValueMap arguments)
             throws SlingValidationException {
-        // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Boolean getA() {
-        // TODO Auto-generated method stub
         return null;
     }
 
     @Override
     public Integer getB() {
-        // TODO Auto-generated method stub
         return null;
     }
 

Modified: sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/IntegerValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/IntegerValidator.java?rev=1641407&r1=1641406&r2=1641407&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/IntegerValidator.java (original)
+++ sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/IntegerValidator.java Mon Nov 24 15:13:44 2014
@@ -18,8 +18,6 @@
  */
 package org.apache.sling.validation.impl.util.examplevalidators;
 
-import java.util.Map;
-
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.validation.api.Validator;
 import org.apache.sling.validation.api.exceptions.SlingValidationException;
@@ -27,7 +25,7 @@ import org.apache.sling.validation.api.e
 public class IntegerValidator implements Validator<Integer> {
 
     @Override
-    public String validate(Integer data, ValueMap valueMap, Map<String, String> arguments)
+    public String validate(Integer data, ValueMap valueMap, ValueMap arguments)
             throws SlingValidationException {
         return null;
     }

Modified: sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringArrayValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringArrayValidator.java?rev=1641407&r1=1641406&r2=1641407&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringArrayValidator.java (original)
+++ sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringArrayValidator.java Mon Nov 24 15:13:44 2014
@@ -18,8 +18,6 @@
  */
 package org.apache.sling.validation.impl.util.examplevalidators;
 
-import java.util.Map;
-
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.validation.api.Validator;
 import org.apache.sling.validation.api.exceptions.SlingValidationException;
@@ -27,7 +25,7 @@ import org.apache.sling.validation.api.e
 public class StringArrayValidator implements Validator<String[]> {
 
     @Override
-    public String validate(String[] data, ValueMap valueMap, Map<String, String> arguments)
+    public String validate(String[] data, ValueMap valueMap, ValueMap arguments)
             throws SlingValidationException {
         return null;
     }

Modified: sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringValidator.java?rev=1641407&r1=1641406&r2=1641407&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringValidator.java (original)
+++ sling/trunk/contrib/extensions/validation/core/src/test/java/org/apache/sling/validation/impl/util/examplevalidators/StringValidator.java Mon Nov 24 15:13:44 2014
@@ -18,8 +18,6 @@
  */
 package org.apache.sling.validation.impl.util.examplevalidators;
 
-import java.util.Map;
-
 import org.apache.sling.api.resource.ValueMap;
 import org.apache.sling.validation.api.Validator;
 import org.apache.sling.validation.api.exceptions.SlingValidationException;
@@ -27,7 +25,7 @@ import org.apache.sling.validation.api.e
 public class StringValidator implements Validator<String> {
 
     @Override
-    public String validate(String data, ValueMap valueMap, Map<String, String> arguments)
+    public String validate(String data, ValueMap valueMap, ValueMap arguments)
             throws SlingValidationException {
         return null;
     }