class ConstraintAnnotationAttributeHandler implements AnnotationAttributeHandler {

	@Override
	public Map<String, Object> generateFrom(AnnotatedElement annotatedElement, Annotation annotation) {
		final AnnotationAttributes annotationAttributes = AnnotationUtils.getAnnotationAttributes(annotatedElement,
				annotation, false, true);
		final HashMap<String, Object> map = new HashMap<>();

		for (final Entry<String, Object> entry : annotationAttributes.entrySet()) {
			Object resolvedValue = entry.getValue();
			if (entry.getKey().equals(ATTRIBUTE_MESSAGE_NAME)
					&& ((String) entry.getValue()).matches(JSR_DEFAULT_MESSAGE_REGEX)) {
				resolvedValue = this.resolveMessage((String) entry.getValue(), annotatedElement, annotation);
			}
			map.put(entry.getKey(), resolvedValue);
		}
		return map;
	}

	public  ConstraintAnnotationAttributeHandler(BeanResolverStrategy beanResolver);
	public  ConstraintAnnotationAttributeHandler(BeanResolverStrategy beanResolver,
			String defaultValidationMessagesPath);

}