in src/main/java/org/apache/sling/validation/impl/ValidationServiceImpl.java [305:327]
private void validateValueMap(ValueMap valueMap, Resource resource, @NotNull String relativePath, @NotNull Collection<ResourceProperty> resourceProperties,
@NotNull CompositeValidationResult result, @NotNull ResourceBundle defaultResourceBundle) {
if (valueMap == null) {
throw new IllegalArgumentException("ValueMap may not be null");
}
for (ResourceProperty resourceProperty : resourceProperties) {
Pattern pattern = resourceProperty.getNamePattern();
if (pattern != null) {
boolean foundMatch = false;
for (String key : valueMap.keySet()) {
if (pattern.matcher(key).matches()) {
foundMatch = true;
validatePropertyValue(key, valueMap, resource, relativePath, resourceProperty, result, defaultResourceBundle);
}
}
if (!foundMatch && resourceProperty.isRequired()) {
result.addFailure(relativePath, configuration.defaultSeverity(), defaultResourceBundle, I18N_KEY_MISSING_REQUIRED_PROPERTY_MATCHING_PATTERN, pattern.toString());
}
} else {
validatePropertyValue(resourceProperty.getName(), valueMap, resource, relativePath, resourceProperty, result, defaultResourceBundle);
}
}
}