@Override
public String getErrorMessage(Object invalidValue, Locale locale) {
List<String> pathTokens = new ArrayList<>();
pathTokens.add(MESSAGES_KEY);
pathTokens.add(EnumConstraint.NAME);
String key = StringUtils.join(pathTokens, '.');
Object[] params = new Object[] { StringUtils.join(getPossibleValues(), ", ") };
Locale computedLocale = locale != null ? locale : Constraint.MESSAGES_DEFAULT_LANG;
String message = getMessageString(MESSAGES_BUNDLE, key, params, computedLocale);
if (message != null && !message.trim().isEmpty() && !key.equals(message)) {
return message;
} else {
return super.getErrorMessage(invalidValue, computedLocale);
}
}