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;
}