Move enforce-on and since printer to the setResult function
SLING-10577
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/ConfigurationValidator.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/ConfigurationValidator.java
index 6c21962..6358e19 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/ConfigurationValidator.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/ConfigurationValidator.java
@@ -27,6 +27,7 @@
import org.apache.sling.feature.Configuration;
import org.apache.sling.feature.extension.apiregions.api.config.ConfigurableEntity;
import org.apache.sling.feature.extension.apiregions.api.config.ConfigurationDescription;
+import org.apache.sling.feature.extension.apiregions.api.config.DescribableEntity;
import org.apache.sling.feature.extension.apiregions.api.config.FactoryConfigurationDescription;
import org.apache.sling.feature.extension.apiregions.api.config.Mode;
import org.apache.sling.feature.extension.apiregions.api.config.PropertyDescription;
@@ -106,11 +107,11 @@
} else {
if ( desc.getPropertyDescriptions().isEmpty()) {
if ( region == Region.GLOBAL && !desc.isAllowAdditionalProperties() ) {
- setResult(result, validationMode, "Factory configuration is not allowed");
+ setResult(result, validationMode, desc, "Factory configuration is not allowed");
}
} else {
if ( region == Region.GLOBAL && desc.getRegion() == Region.INTERNAL ) {
- setResult(result, validationMode, "Factory configuration is not allowed");
+ setResult(result, validationMode, desc, "Factory configuration is not allowed");
} else {
validateProperties(config, desc, result.getPropertyResults(), region, validationMode);
}
@@ -122,11 +123,11 @@
} else {
if ( desc.getPropertyDescriptions().isEmpty()) {
if ( region == Region.GLOBAL && !desc.isAllowAdditionalProperties() ) {
- setResult(result, validationMode, "Configuration is not allowed");
+ setResult(result, validationMode, desc, "Configuration is not allowed");
}
} else {
if ( region == Region.GLOBAL && desc.getRegion() == Region.INTERNAL ) {
- setResult(result, validationMode, "Configuration is not allowed");
+ setResult(result, validationMode, desc, "Configuration is not allowed");
} else {
validateProperties(config, desc, result.getPropertyResults(), region, validationMode);
}
@@ -135,22 +136,7 @@
}
if ( desc.getDeprecated() != null ) {
- result.getWarnings().add(desc.getDeprecated());
- }
-
- // set postfix to the message if since or enforce-on are set
- String postfixMsg = "";
- if ( desc.getSince() != null ) {
- postfixMsg = postfixMsg.concat(". Since : ").concat(desc.getSince());
- }
- if ( desc.getEnforceOn() != null ) {
- postfixMsg = postfixMsg.concat(". Enforced on : ").concat(desc.getEnforceOn());
- }
- for (int i = 0; i < result.getWarnings().size(); i++) {
- result.getWarnings().set(i, result.getWarnings().get(i) + postfixMsg);
- }
- for (int i = 0; i < result.getErrors().size(); i++) {
- result.getErrors().set(i, result.getErrors().get(i) + postfixMsg);
+ setResult(result, Mode.LENIENT, desc, desc.getDeprecated());
}
return result;
@@ -191,25 +177,35 @@
if ( desc.getInternalPropertyNames().contains(propName ) ) {
if ( propRegion != Region.INTERNAL ) {
- PropertyValidator.setResult(result, null, mode, "Property is not allowed");
+ PropertyValidator.setResult(result, null, mode, desc, "Property is not allowed");
}
} else if ( Constants.SERVICE_RANKING.equalsIgnoreCase(propName) ) {
final Object value = properties.get(propName);
if ( !(value instanceof Integer) ) {
- PropertyValidator.setResult(result, 0, mode, "service.ranking must be of type Integer");
+ PropertyValidator.setResult(result, 0, mode, desc, "service.ranking must be of type Integer");
}
} else if ( !isAllowedProperty(propName) && propRegion != Region.INTERNAL && !desc.isAllowAdditionalProperties() ) {
- PropertyValidator.setResult(result, null, mode, "Property is not allowed");
+ PropertyValidator.setResult(result, null, mode, desc, "Property is not allowed");
}
}
}
}
- static void setResult(final ConfigurationValidationResult result, final Mode validationMode, final String msg) {
+ static void setResult(final ConfigurationValidationResult result, final Mode validationMode,
+ final DescribableEntity desc, final String msg) {
+ // set postfix to the message if since or enforce-on are set
+ String postfixMsg = "";
+ if ( desc != null && desc.getSince() != null ) {
+ postfixMsg = postfixMsg.concat(". Since : ").concat(desc.getSince());
+ }
+ if ( desc != null && desc.getEnforceOn() != null ) {
+ postfixMsg = postfixMsg.concat(". Enforced on : ").concat(desc.getEnforceOn());
+ }
+ String finalMsg = msg + postfixMsg;
if ( validationMode == Mode.STRICT ) {
- result.getErrors().add(msg);
+ result.getErrors().add(finalMsg);
} else if ( validationMode == Mode.LENIENT || validationMode == Mode.DEFINITIVE ) {
- result.getWarnings().add(msg);
+ result.getWarnings().add(finalMsg);
}
if ( validationMode == Mode.DEFINITIVE || validationMode == Mode.SILENT_DEFINITIVE ) {
result.setUseDefaultValue(true);
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/FeatureValidator.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/FeatureValidator.java
index 04f0f23..10a513a 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/FeatureValidator.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/FeatureValidator.java
@@ -132,22 +132,27 @@
result.getConfigurationResults().put(config.getPid(), r);
if ( regionInfo.region != Region.INTERNAL ) {
if ( desc.getOperations().isEmpty() ) {
- ConfigurationValidator.setResult(r, api.getMode(), "No operations allowed for factory configuration");
+ ConfigurationValidator.setResult(r, api.getMode(), desc, "No operations allowed for " +
+ "factory configuration");
} else {
if ( regionInfo.isUpdate && !desc.getOperations().contains(Operation.UPDATE)) {
- ConfigurationValidator.setResult(r, api.getMode(), "Updating of factory configuration is not allowed");
+ ConfigurationValidator.setResult(r, api.getMode(), desc, "Updating of factory " +
+ "configuration is not allowed");
} else if ( !regionInfo.isUpdate && !desc.getOperations().contains(Operation.CREATE)) {
- ConfigurationValidator.setResult(r, api.getMode(), "Creation of factory configuration is not allowed");
+ ConfigurationValidator.setResult(r, api.getMode(), desc, "Creation of factory " +
+ "configuration is not allowed");
}
}
if ( desc.getInternalNames().contains(config.getName())) {
- ConfigurationValidator.setResult(r, api.getMode(), "Factory configuration with name is not allowed");
+ ConfigurationValidator.setResult(r, api.getMode(), desc, "Factory configuration with " +
+ "name is not allowed");
}
}
} else if ( regionInfo.region != Region.INTERNAL && api.getInternalFactoryConfigurations().contains(config.getFactoryPid())) {
final ConfigurationValidationResult cvr = new ConfigurationValidationResult();
- ConfigurationValidator.setResult(cvr, api.getMode(), "Factory configuration is not allowed");
+ ConfigurationValidator.setResult(cvr, api.getMode(), desc, "Factory configuration is not " +
+ "allowed");
result.getConfigurationResults().put(config.getPid(), cvr);
}
} else {
@@ -157,7 +162,7 @@
result.getConfigurationResults().put(config.getPid(), r);
} else if ( regionInfo.region!= Region.INTERNAL && api.getInternalConfigurations().contains(config.getPid())) {
final ConfigurationValidationResult cvr = new ConfigurationValidationResult();
- ConfigurationValidator.setResult(cvr, api.getMode(), "Configuration is not allowed");
+ ConfigurationValidator.setResult(cvr, api.getMode(), desc, "Configuration is not allowed");
result.getConfigurationResults().put(config.getPid(), cvr);
}
}
@@ -180,7 +185,7 @@
result.getFrameworkPropertyResults().put(frameworkProperty, pvr);
} else if ( regionInfo.region != Region.INTERNAL && api.getInternalFrameworkProperties().contains(frameworkProperty) ) {
final PropertyValidationResult pvr = new PropertyValidationResult();
- PropertyValidator.setResult(pvr, null, api.getMode(), "Framework property is not allowed");
+ PropertyValidator.setResult(pvr, null, api.getMode(), null, "Framework property is not allowed");
result.getFrameworkPropertyResults().put(frameworkProperty, pvr);
}
}
diff --git a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/PropertyValidator.java b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/PropertyValidator.java
index f85a2ff..6a586de 100644
--- a/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/PropertyValidator.java
+++ b/src/main/java/org/apache/sling/feature/extension/apiregions/api/config/validation/PropertyValidator.java
@@ -23,16 +23,14 @@
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
-import java.util.Map;
import java.util.regex.Pattern;
-import org.apache.sling.feature.ArtifactId;
+import org.apache.sling.feature.extension.apiregions.api.config.DescribableEntity;
import org.apache.sling.feature.extension.apiregions.api.config.Mode;
import org.apache.sling.feature.extension.apiregions.api.config.Option;
import org.apache.sling.feature.extension.apiregions.api.config.PlaceholderPolicy;
import org.apache.sling.feature.extension.apiregions.api.config.PropertyDescription;
import org.apache.sling.feature.extension.apiregions.api.config.PropertyType;
-import org.apache.sling.feature.extension.apiregions.api.config.Region;
/**
* Validate a configuration property or framework property
@@ -84,7 +82,7 @@
if ( value == null ) {
if ( desc.isRequired() ) {
- setResult(context, "No value provided");
+ setResult(context, desc, "No value provided");
}
} else {
final List<Object> values;
@@ -104,48 +102,43 @@
} else {
// single value
values = null;
- validateValue(context, value);
+ validateValue(context, desc, value);
}
if ( values != null ) {
// array or collection
for(final Object val : values) {
- validateValue(context, val);
+ validateValue(context, desc, val);
}
- validateList(context, values);
+ validateList(context, desc, values);
}
if ( desc.getDeprecated() != null ) {
- context.result.getWarnings().add(desc.getDeprecated());
- }
-
- // set postfix to the message if since or enforce-on are set
- String postfixMsg = "";
- if ( desc.getSince() != null ) {
- postfixMsg = postfixMsg.concat(". Since : ").concat(desc.getSince());
- }
- if ( desc.getEnforceOn() != null ) {
- postfixMsg = postfixMsg.concat(". Enforced on : ").concat(desc.getEnforceOn());
- }
- for (int i = 0; i < context.result.getWarnings().size(); i++) {
- context.result.getWarnings().set(i, context.result.getWarnings().get(i) + postfixMsg);
- }
- for (int i = 0; i < context.result.getErrors().size(); i++) {
- context.result.getErrors().set(i, context.result.getErrors().get(i) + postfixMsg);
+ setResult(context.result, null, Mode.LENIENT, desc, desc.getDeprecated());
}
}
return context.result;
}
- void setResult(final Context context, final String msg) {
- setResult(context.result, context.description.getDefaultValue(), context.validationMode, msg);
+ void setResult(final Context context, final DescribableEntity desc, final String msg) {
+ setResult(context.result, context.description.getDefaultValue(), context.validationMode, desc, msg);
}
- static void setResult(final PropertyValidationResult result, final Object defaultValue, final Mode validationMode, final String msg) {
+ static void setResult(final PropertyValidationResult result, final Object defaultValue, final Mode validationMode,
+ final DescribableEntity desc, final String msg) {
+ // set postfix to the message if since or enforce-on are set
+ String postfixMsg = "";
+ if ( desc != null && desc.getSince() != null ) {
+ postfixMsg = postfixMsg.concat(". Since : ").concat(desc.getSince());
+ }
+ if ( desc != null && desc.getEnforceOn() != null ) {
+ postfixMsg = postfixMsg.concat(". Enforced on : ").concat(desc.getEnforceOn());
+ }
+ String finalMsg = msg + postfixMsg;
if ( validationMode == Mode.STRICT ) {
- result.getErrors().add(msg);
+ result.getErrors().add(finalMsg);
} else if ( validationMode == Mode.LENIENT || validationMode == Mode.DEFINITIVE ) {
- result.getWarnings().add(msg);
+ result.getWarnings().add(finalMsg);
}
if ( validationMode == Mode.DEFINITIVE || validationMode == Mode.SILENT_DEFINITIVE ) {
result.setUseDefaultValue(true);
@@ -155,13 +148,14 @@
/**
* Validate a multi value
- * @param prop The property description
+ * @param context The current context
+ * @param desc describable entity
* @param values The values
- * @param messages The messages to record errors
*/
- void validateList(final Context context, final List<Object> values) {
+ void validateList(final Context context, final DescribableEntity desc, final List<Object> values) {
if ( context.description.getCardinality() > 0 && values.size() > context.description.getCardinality() ) {
- setResult(context, "Array/collection contains too many elements, only " + context.description.getCardinality() + " allowed");
+ setResult(context, desc, "Array/collection contains too many elements, only " + context.description.getCardinality() +
+ " allowed");
}
if ( context.description.getIncludes() != null ) {
for(final String inc : context.description.getIncludes()) {
@@ -173,7 +167,7 @@
}
}
if ( !found ) {
- setResult(context, "Required included value " + inc + " not found");
+ setResult(context, desc, "Required included value " + inc + " not found");
}
}
}
@@ -187,7 +181,7 @@
}
}
if ( found ) {
- setResult(context, "Required excluded value " + exc + " found");
+ setResult(context, desc, "Required excluded value " + exc + " found");
}
}
}
@@ -195,7 +189,7 @@
private static final List<String> PLACEHOLDERS = Arrays.asList("$[env:", "$[secret:", "$[prop:");
- void validateValue(final Context context, final Object value) {
+ void validateValue(final Context context, final DescribableEntity desc, final Object value) {
if ( value != null ) {
// check for placeholder
boolean hasPlaceholder = false;
@@ -210,45 +204,45 @@
}
if ( !hasPlaceholder ) {
switch ( context.description.getType() ) {
- case BOOLEAN : validateBoolean(context, value);
+ case BOOLEAN : validateBoolean(context, desc, value);
break;
- case BYTE : validateByte(context, value);
+ case BYTE : validateByte(context, desc, value);
break;
- case CHARACTER : validateCharacter(context, value);
+ case CHARACTER : validateCharacter(context, desc, value);
break;
- case DOUBLE : validateDouble(context, value);
+ case DOUBLE : validateDouble(context, desc, value);
break;
- case FLOAT : validateFloat(context, value);
+ case FLOAT : validateFloat(context, desc, value);
break;
- case INTEGER : validateInteger(context, value);
+ case INTEGER : validateInteger(context, desc, value);
break;
- case LONG : validateLong(context, value);
+ case LONG : validateLong(context, desc, value);
break;
- case SHORT : validateShort(context, value);
+ case SHORT : validateShort(context, desc, value);
break;
- case STRING : validateRequired(context, value);
+ case STRING : validateRequired(context, desc, value);
break;
- case EMAIL : validateEmail(context, value);
+ case EMAIL : validateEmail(context, desc, value);
break;
- case PASSWORD : validatePassword(context, value, false);
+ case PASSWORD : validatePassword(context, desc, value, false);
break;
- case URL : validateURL(context, value);
+ case URL : validateURL(context, desc, value);
break;
- case PATH : validatePath(context, value);
+ case PATH : validatePath(context, desc, value);
break;
default : context.result.getErrors().add("Unable to validate value - unknown property type : " + context.description.getType());
}
- validateRegex(context, context.description.getRegexPattern(), value);
- validateOptions(context, value);
+ validateRegex(context, desc, context.description.getRegexPattern(), value);
+ validateOptions(context, desc, value);
if ( context.description.getType() != PropertyType.PASSWORD ) {
- validatePlaceholderPolicy(context, value, false);
+ validatePlaceholderPolicy(context, desc, value, false);
}
} else {
// placeholder is present
if ( context.description.getType() == PropertyType.PASSWORD ) {
- validatePassword(context, value, true);
+ validatePassword(context, desc, value, true);
} else if ( context.description.getType() == PropertyType.STRING ) {
- validateRegex(context, context.description.getPlaceholderRegexPattern(), value);
+ validateRegex(context, desc, context.description.getPlaceholderRegexPattern(), value);
// we mark the result as skipped if a regex or options are set or if a value is marked as required.
if ( context.description.getRegex() != null || context.description.getOptions() != null || context.description.isRequired() ) {
@@ -258,206 +252,207 @@
context.result.markSkipped();
}
if ( context.description.getType() != PropertyType.PASSWORD ) {
- validatePlaceholderPolicy(context, value, true);
+ validatePlaceholderPolicy(context, desc, value, true);
}
}
} else {
- setResult(context, "Null value provided for validation");
+ setResult(context, desc, "Null value provided for validation");
}
}
- void validateRequired(final Context context, final Object value) {
+ void validateRequired(final Context context, final DescribableEntity desc, final Object value) {
if ( context.description.isRequired() ) {
final String val = value.toString();
if ( val.isEmpty() ) {
- setResult(context, "Value is required");
+ setResult(context, desc, "Value is required");
}
}
}
- void validateBoolean(final Context context, final Object value) {
+ void validateBoolean(final Context context, final DescribableEntity desc, final Object value) {
if ( ! (value instanceof Boolean) ) {
if ( value instanceof String ) {
final String v = (String)value;
if ( ! v.equalsIgnoreCase("true") && !v.equalsIgnoreCase("false") ) {
- setResult(context, "Boolean value must either be true or false, but not " + value);
+ setResult(context, desc, "Boolean value must either be true or false, but not " + value);
}
} else {
- setResult(context, "Boolean value must either be of type Boolean or String : " + value);
+ setResult(context, desc, "Boolean value must either be of type Boolean or String : " + value);
}
}
}
- void validateByte(final Context context, final Object value) {
+ void validateByte(final Context context, final DescribableEntity desc, final Object value) {
if ( ! (value instanceof Byte) ) {
if ( value instanceof String ) {
final String v = (String)value;
try {
- validateRange(context, Byte.valueOf(v));
+ validateRange(context, desc, Byte.valueOf(v));
} catch ( final NumberFormatException nfe ) {
- setResult(context, "Value is not a valid Byte : " + value);
+ setResult(context, desc,"Value is not a valid Byte : " + value);
}
} else if ( value instanceof Number ) {
- validateRange(context, ((Number)value).byteValue());
+ validateRange(context, desc, ((Number)value).byteValue());
} else {
- setResult(context, "Byte value must either be of type Byte or String : " + value);
+ setResult(context, desc, "Byte value must either be of type Byte or String : " + value);
}
} else {
- validateRange(context, (Byte)value);
+ validateRange(context, desc, (Byte)value);
}
}
- void validateShort(final Context context, final Object value) {
+ void validateShort(final Context context, final DescribableEntity desc, final Object value) {
if ( ! (value instanceof Short) ) {
if ( value instanceof String ) {
final String v = (String)value;
try {
- validateRange(context, Short.valueOf(v));
+ validateRange(context, desc, Short.valueOf(v));
} catch ( final NumberFormatException nfe ) {
- setResult(context, "Value is not a valid Short : " + value);
+ setResult(context, desc, "Value is not a valid Short : " + value);
}
} else if ( value instanceof Number ) {
- validateRange(context, ((Number)value).shortValue());
+ validateRange(context, desc, ((Number)value).shortValue());
} else {
- setResult(context, "Short value must either be of type Short or String : " + value);
+ setResult(context, desc, "Short value must either be of type Short or String : " + value);
}
} else {
- validateRange(context, (Short)value);
+ validateRange(context, desc, (Short)value);
}
}
- void validateInteger(final Context context, final Object value) {
+ void validateInteger(final Context context, final DescribableEntity desc, final Object value) {
if ( ! (value instanceof Integer) ) {
if ( value instanceof String ) {
final String v = (String)value;
try {
- validateRange(context, Integer.valueOf(v));
+ validateRange(context, desc, Integer.valueOf(v));
} catch ( final NumberFormatException nfe ) {
- setResult(context, "Value is not a valid Integer : " + value);
+ setResult(context, desc, "Value is not a valid Integer : " + value);
}
} else if ( value instanceof Number ) {
- validateRange(context, ((Number)value).intValue());
+ validateRange(context, desc, ((Number)value).intValue());
} else {
- setResult(context, "Integer value must either be of type Integer or String : " + value);
+ setResult(context, desc, "Integer value must either be of type Integer or String : " + value);
}
} else {
- validateRange(context, (Integer)value);
+ validateRange(context, desc, (Integer)value);
}
}
- void validateLong(final Context context, final Object value) {
+ void validateLong(final Context context, final DescribableEntity desc, final Object value) {
if ( ! (value instanceof Long) ) {
if ( value instanceof String ) {
final String v = (String)value;
try {
- validateRange(context, Long.valueOf(v));
+ validateRange(context, desc, Long.valueOf(v));
} catch ( final NumberFormatException nfe ) {
- setResult(context, "Value is not a valid Long : " + value);
+ setResult(context, desc, "Value is not a valid Long : " + value);
}
} else if ( value instanceof Number ) {
- validateRange(context, ((Number)value).longValue());
+ validateRange(context, desc, ((Number)value).longValue());
} else {
- setResult(context, "Long value must either be of type Long or String : " + value);
+ setResult(context, desc, "Long value must either be of type Long or String : " + value);
}
} else {
- validateRange(context, (Long)value);
+ validateRange(context, desc, (Long)value);
}
}
- void validateFloat(final Context context, final Object value) {
+ void validateFloat(final Context context, final DescribableEntity desc, final Object value) {
if ( ! (value instanceof Float) ) {
if ( value instanceof String ) {
final String v = (String)value;
try {
- validateRange(context, Float.valueOf(v));
+ validateRange(context, desc, Float.valueOf(v));
} catch ( final NumberFormatException nfe ) {
- setResult(context, "Value is not a valid Float : " + value);
+ setResult(context, desc, "Value is not a valid Float : " + value);
}
} else if ( value instanceof Number ) {
- validateRange(context, ((Number)value).floatValue());
+ validateRange(context, desc, ((Number)value).floatValue());
} else {
- setResult(context, "Float value must either be of type Float or String : " + value);
+ setResult(context, desc, "Float value must either be of type Float or String : " + value);
}
} else {
- validateRange(context, (Float)value);
+ validateRange(context, desc, (Float)value);
}
}
- void validateDouble(final Context context, final Object value) {
+ void validateDouble(final Context context, final DescribableEntity desc, final Object value) {
if ( ! (value instanceof Double) ) {
if ( value instanceof String ) {
final String v = (String)value;
try {
- validateRange(context, Double.valueOf(v));
+ validateRange(context, desc, Double.valueOf(v));
} catch ( final NumberFormatException nfe ) {
- setResult(context, "Value is not a valid Double : " + value);
+ setResult(context, desc, "Value is not a valid Double : " + value);
}
} else if ( value instanceof Number ) {
- validateRange(context, ((Number)value).doubleValue());
+ validateRange(context, desc, ((Number)value).doubleValue());
} else {
- setResult(context, "Double value must either be of type Double or String : " + value);
+ setResult(context, desc, "Double value must either be of type Double or String : " + value);
}
} else {
- validateRange(context, (Double)value);
+ validateRange(context, desc, (Double)value);
}
}
- void validateCharacter(final Context context, final Object value) {
+ void validateCharacter(final Context context, final DescribableEntity desc, final Object value) {
if ( ! (value instanceof Character) ) {
if ( value instanceof String ) {
final String v = (String)value;
if ( v.length() > 1 ) {
- setResult(context, "Value is not a valid Character : " + value);
+ setResult(context, desc, "Value is not a valid Character : " + value);
}
} else {
- setResult(context, "Character value must either be of type Character or String : " + value);
+ setResult(context, desc,"Character value must either be of type Character or String : " + value);
}
}
}
- void validateURL(final Context context, final Object value) {
+ void validateURL(final Context context, final DescribableEntity desc, final Object value) {
final String val = value.toString();
try {
new URL(val);
} catch ( final MalformedURLException mue) {
- setResult(context, "Value is not a valid URL : " + val);
+ setResult(context, desc, "Value is not a valid URL : " + val);
}
}
- void validateEmail(final Context context, final Object value) {
+ void validateEmail(final Context context, final DescribableEntity desc, final Object value) {
final String val = value.toString();
// poor man's validation (should probably use InternetAddress)
if ( !val.contains("@") ) {
- setResult(context, "Not a valid email address " + val);
+ setResult(context, desc, "Not a valid email address " + val);
}
}
- void validatePassword(final Context context, final Object value, final boolean hasPlaceholder) {
+ void validatePassword(final Context context, final DescribableEntity desc, final Object value,
+ final boolean hasPlaceholder) {
if ( !this.isLiveValues() && !hasPlaceholder && context.description.getPlaceholderPolicy() != PlaceholderPolicy.DENY ) {
- setResult(context, "Value for a password must use a placeholder");
+ setResult(context, desc, "Value for a password must use a placeholder");
}
}
- void validatePath(final Context context, final Object value) {
+ void validatePath(final Context context, final DescribableEntity desc, final Object value) {
final String val = value.toString();
// poor man's validation
if ( !val.startsWith("/") ) {
- setResult(context, "Not a valid path " + val);
+ setResult(context, desc, "Not a valid path " + val);
}
}
- void validateRange(final Context context, final Number value) {
+ void validateRange(final Context context, final DescribableEntity desc, final Number value) {
if ( context.description.getRange() != null ) {
if ( context.description.getRange().getMin() != null ) {
if ( value instanceof Float || value instanceof Double ) {
final double min = context.description.getRange().getMin().doubleValue();
if ( value.doubleValue() < min ) {
- setResult(context, "Value " + value + " is too low; should not be lower than " + context.description.getRange().getMin());
+ setResult(context, desc, "Value " + value + " is too low; should not be lower than " + context.description.getRange().getMin());
}
} else {
final long min = context.description.getRange().getMin().longValue();
if ( value.longValue() < min ) {
- setResult(context, "Value " + value + " is too low; should not be lower than " + context.description.getRange().getMin());
+ setResult(context, desc, "Value " + value + " is too low; should not be lower than " + context.description.getRange().getMin());
}
}
}
@@ -465,27 +460,27 @@
if ( value instanceof Float || value instanceof Double ) {
final double max = context.description.getRange().getMax().doubleValue();
if ( value.doubleValue() > max ) {
- setResult(context, "Value " + value + " is too high; should not be higher than " + context.description.getRange().getMax());
+ setResult(context, desc, "Value " + value + " is too high; should not be higher than " + context.description.getRange().getMax());
}
} else {
final long max = context.description.getRange().getMax().longValue();
if ( value.longValue() > max ) {
- setResult(context, "Value " + value + " is too high; should not be higher than " + context.description.getRange().getMax());
+ setResult(context, desc, "Value " + value + " is too high; should not be higher than " + context.description.getRange().getMax());
}
}
}
}
}
- void validateRegex(final Context context, final Pattern pattern, final Object value) {
+ void validateRegex(final Context context, final DescribableEntity desc, final Pattern pattern, final Object value) {
if ( pattern != null ) {
if ( !pattern.matcher(value.toString()).matches() ) {
- setResult(context, "Value " + value + " does not match regex " + pattern.pattern());
+ setResult(context, desc, "Value " + value + " does not match regex " + pattern.pattern());
}
}
}
- void validateOptions(final Context context, final Object value) {
+ void validateOptions(final Context context, final DescribableEntity desc, final Object value) {
if ( context.description.getOptions() != null ) {
boolean found = false;
for(final Option opt : context.description.getOptions()) {
@@ -494,19 +489,20 @@
}
}
if ( !found ) {
- setResult(context, "Value " + value + " does not match provided options");
+ setResult(context, desc, "Value " + value + " does not match provided options");
}
}
}
- void validatePlaceholderPolicy(final Context context, final Object value, final boolean hasPlaceholder) {
+ void validatePlaceholderPolicy(final Context context, final DescribableEntity desc, final Object value,
+ final boolean hasPlaceholder) {
// only check policy if no live values
if ( !this.isLiveValues() ) {
// for policy default and allow nothing needs to be validated
if ( context.description.getPlaceholderPolicy() == PlaceholderPolicy.DENY && hasPlaceholder ) {
- setResult(context, "Placeholder in value is not allowed");
+ setResult(context, desc, "Placeholder in value is not allowed");
} else if ( context.description.getPlaceholderPolicy() == PlaceholderPolicy.REQUIRE && !hasPlaceholder ) {
- setResult(context, "Value must use a placeholder");
+ setResult(context, desc, "Value must use a placeholder");
}
}
}