test_class.declarator: testee
test_class.modifier: private
test_class.original_string: private ConstraintAnnotationAttributeHandler testee;
test_class.type: ConstraintAnnotationAttributeHandler
test_class.var_name: testee
test_class.declarator: beanResolver
test_class.modifier: private
test_class.original_string: private BeanResolverStrategy beanResolver;
test_class.type: BeanResolverStrategy
test_class.var_name: beanResolver
test_class.declarator: propertyResolver
test_class.modifier: private
test_class.original_string: private PropertyResolver propertyResolver;
test_class.type: PropertyResolver
test_class.var_name: propertyResolver
test_class.declarator: env
test_class.modifier: private
test_class.original_string: private Environment env;
test_class.type: Environment
test_class.var_name: env
test_class.declarator: t1_str = null
test_class.modifier: @NotNull(message = "Enter a value for t1_str")
  	private final
test_class.original_string: @NotNull(message = "Enter a value for t1_str")
  	private final String t1_str = null;
test_class.type: String
test_class.var_name: t1_str
test_class.declarator: t2_str = null
test_class.modifier: @NotNull
  	private final
test_class.original_string: @NotNull
  	private final String t2_str = null;
test_class.type: String
test_class.var_name: t2_str
test_class.declarator: t3_str = null
test_class.modifier: @NotNull(message = "${spel.validation.message}")
  	private final
test_class.original_string: @NotNull(message = "${spel.validation.message}")
  	private final String t3_str = null;
test_class.type: String
test_class.var_name: t3_str
test_class.file: nimbus-core/src/test/java/com/antheminc/oss/nimbus/domain/config/builder/attributes/ConstraintAnnotationAttributeHandlerTest.java
test_class.identifier: ConstraintAnnotationAttributeHandlerTest
test_case.body: @Test
  	public void testUseCustomMessage() throws Exception {
  		final Field annotatedElement = this.getClass().getDeclaredField("t1_str");
  		final Annotation annotation = annotatedElement.getAnnotation(NotNull.class);
  		final Map<String, Object> actual = this.testee.generateFrom(annotatedElement, annotation);
  		Assert.assertEquals("Enter a value for t1_str", actual.get("message"));
  	}
test_case.class_method_signature: ConstraintAnnotationAttributeHandlerTest.testUseCustomMessage()
test_case.full_signature: @Test public void testUseCustomMessage()
test_case.identifier: testUseCustomMessage
test_case.invocations: getDeclaredField getClass getAnnotation generateFrom assertEquals get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testUseCustomMessage()
focal_class.declarator: ATTRIBUTE_MESSAGE_NAME = "message"
focal_class.modifier: public static final
focal_class.original_string: public static final String ATTRIBUTE_MESSAGE_NAME = "message";
focal_class.type: String
focal_class.var_name: ATTRIBUTE_MESSAGE_NAME
focal_class.declarator: ATTRIBUTE_MESSAGE_VALUE_DEFAULT = ""
focal_class.modifier: public static final
focal_class.original_string: public static final String ATTRIBUTE_MESSAGE_VALUE_DEFAULT = "";
focal_class.type: String
focal_class.var_name: ATTRIBUTE_MESSAGE_VALUE_DEFAULT
focal_class.declarator: DEFAULT_VALIDATION_MESSAGES_PATH = "validationMessages"
focal_class.modifier: public static final
focal_class.original_string: public static final String DEFAULT_VALIDATION_MESSAGES_PATH = "validationMessages";
focal_class.type: String
focal_class.var_name: DEFAULT_VALIDATION_MESSAGES_PATH
focal_class.declarator: JSR_DEFAULT_MESSAGE_REGEX = "\\{javax.validation.constraints.(.*).message\\}"
focal_class.modifier: public static final
focal_class.original_string: public static final String JSR_DEFAULT_MESSAGE_REGEX = "\\{javax.validation.constraints.(.*).message\\}";
focal_class.type: String
focal_class.var_name: JSR_DEFAULT_MESSAGE_REGEX
focal_class.declarator: SPEL_CHAR_KEY = "$"
focal_class.modifier: public static final
focal_class.original_string: public static final String SPEL_CHAR_KEY = "$";
focal_class.type: String
focal_class.var_name: SPEL_CHAR_KEY
focal_class.declarator: REPLACE_REGEX = "\\{(?<messageKey>.*)\\}"
focal_class.modifier: public static final
focal_class.original_string: public static final String REPLACE_REGEX = "\\{(?<messageKey>.*)\\}";
focal_class.type: String
focal_class.var_name: REPLACE_REGEX
focal_class.declarator: ANNOTATION_PREFIX = "@"
focal_class.modifier: public static final
focal_class.original_string: public static final String ANNOTATION_PREFIX = "@";
focal_class.type: String
focal_class.var_name: ANNOTATION_PREFIX
focal_class.declarator: LOG = new JustLogit(ConstraintAnnotationAttributeHandler.class)
focal_class.modifier: private static final
focal_class.original_string: private static final JustLogit LOG = new JustLogit(ConstraintAnnotationAttributeHandler.class);
focal_class.type: JustLogit
focal_class.var_name: LOG
focal_class.declarator: propertyResolver
focal_class.modifier: private final
focal_class.original_string: private final PropertyResolver propertyResolver;
focal_class.type: PropertyResolver
focal_class.var_name: propertyResolver
focal_class.declarator: beanResolver
focal_class.modifier: private final
focal_class.original_string: private final BeanResolverStrategy beanResolver;
focal_class.type: BeanResolverStrategy
focal_class.var_name: beanResolver
focal_class.declarator: env
focal_class.modifier: private final
focal_class.original_string: private final Environment env;
focal_class.type: Environment
focal_class.var_name: env
focal_class.declarator: defaultMessagesBundle
focal_class.modifier: private final
focal_class.original_string: private final ResourceBundle defaultMessagesBundle;
focal_class.type: ResourceBundle
focal_class.var_name: defaultMessagesBundle
focal_class.declarator: replacePattern = Pattern.compile(REPLACE_REGEX)
focal_class.modifier: private
focal_class.original_string: private Pattern replacePattern = Pattern.compile(REPLACE_REGEX);
focal_class.type: Pattern
focal_class.var_name: replacePattern
focal_class.file: nimbus-core/src/main/java/com/antheminc/oss/nimbus/domain/config/builder/attributes/ConstraintAnnotationAttributeHandler.java
focal_class.identifier: ConstraintAnnotationAttributeHandler
focal_class.interfaces: implements AnnotationAttributeHandler
focal_class.class_method_signature: ConstraintAnnotationAttributeHandler.ConstraintAnnotationAttributeHandler(BeanResolverStrategy beanResolver)
focal_class.full_signature: public  ConstraintAnnotationAttributeHandler(BeanResolverStrategy beanResolver)
focal_class.identifier: ConstraintAnnotationAttributeHandler
focal_class.modifiers: public
focal_class.parameters: (BeanResolverStrategy beanResolver)
focal_class.signature:  ConstraintAnnotationAttributeHandler(BeanResolverStrategy beanResolver)
focal_class.class_method_signature: ConstraintAnnotationAttributeHandler.ConstraintAnnotationAttributeHandler(BeanResolverStrategy beanResolver,
  			String defaultValidationMessagesPath)
focal_class.full_signature: public  ConstraintAnnotationAttributeHandler(BeanResolverStrategy beanResolver,
  			String defaultValidationMessagesPath)
focal_class.identifier: ConstraintAnnotationAttributeHandler
focal_class.modifiers: public
focal_class.parameters: (BeanResolverStrategy beanResolver,
  			String defaultValidationMessagesPath)
focal_class.signature:  ConstraintAnnotationAttributeHandler(BeanResolverStrategy beanResolver,
  			String defaultValidationMessagesPath)
focal_class.class_method_signature: ConstraintAnnotationAttributeHandler.generateFrom(AnnotatedElement annotatedElement, Annotation annotation)
focal_class.full_signature: @Override public Map<String, Object> generateFrom(AnnotatedElement annotatedElement, Annotation annotation)
focal_class.identifier: generateFrom
focal_class.modifiers: @Override public
focal_class.parameters: (AnnotatedElement annotatedElement, Annotation annotation)
focal_class.return: Map<String, Object>
focal_class.signature: Map<String, Object> generateFrom(AnnotatedElement annotatedElement, Annotation annotation)
focal_class.class_method_signature: ConstraintAnnotationAttributeHandler.resolveMessage(String initialMessageValue, AnnotatedElement annotatedElement,
  			Annotation annotation)
focal_class.full_signature: private String resolveMessage(String initialMessageValue, AnnotatedElement annotatedElement,
  			Annotation annotation)
focal_class.identifier: resolveMessage
focal_class.modifiers: private
focal_class.parameters: (String initialMessageValue, AnnotatedElement annotatedElement,
  			Annotation annotation)
focal_class.return: String
focal_class.signature: String resolveMessage(String initialMessageValue, AnnotatedElement annotatedElement,
  			Annotation annotation)
focal_class.class_method_signature: ConstraintAnnotationAttributeHandler.resolveDefaultMessage(String initialMessageValue, AnnotatedElement annotatedElement,
  			Annotation annotation)
focal_class.full_signature: private String resolveDefaultMessage(String initialMessageValue, AnnotatedElement annotatedElement,
  			Annotation annotation)
focal_class.identifier: resolveDefaultMessage
focal_class.modifiers: private
focal_class.parameters: (String initialMessageValue, AnnotatedElement annotatedElement,
  			Annotation annotation)
focal_class.return: String
focal_class.signature: String resolveDefaultMessage(String initialMessageValue, AnnotatedElement annotatedElement,
  			Annotation annotation)
focal_method.body: @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;
  	}
focal_method.class_method_signature: ConstraintAnnotationAttributeHandler.generateFrom(AnnotatedElement annotatedElement, Annotation annotation)
focal_method.full_signature: @Override public Map<String, Object> generateFrom(AnnotatedElement annotatedElement, Annotation annotation)
focal_method.identifier: generateFrom
focal_method.invocations: getAnnotationAttributes entrySet getValue equals getKey matches getValue resolveMessage getValue put getKey
focal_method.modifiers: @Override public
focal_method.parameters: (AnnotatedElement annotatedElement, Annotation annotation)
focal_method.return: Map<String, Object>
focal_method.signature: Map<String, Object> generateFrom(AnnotatedElement annotatedElement, Annotation annotation)