package fr.openwide.core.basicapp.web.application.common.converter;
import java.util.Locale;
import org.apache.wicket.util.convert.ConversionException;
import org.apache.wicket.util.convert.converter.AbstractConverter;
import org.springframework.util.StringUtils;
import fr.openwide.core.basicapp.core.business.common.model.EmailAddress;
import fr.openwide.core.commons.util.validator.AnyTldEmailAddressValidator;
public final class EmailAddressConverter extends AbstractConverter<EmailAddress> {
private static final long serialVersionUID = -2929883038769154563L;
@Override
public EmailAddress convertToObject(String value, Locale locale) throws ConversionException {
String trimmedValue = StringUtils.trimAllWhitespace(value);
if (StringUtils.hasText(trimmedValue)) {
if (!AnyTldEmailAddressValidator.getInstance().isValid(trimmedValue)) {
throw newConversionException("Invalid email format", value, locale)
.setResourceKey("common.validator.email");
}
return new EmailAddress(trimmedValue);
}
return null;
}
@Override
public String convertToString(EmailAddress value, Locale locale) {
if (value == null) {
return null;
}
return value.getValue();
}
@Override
protected Class<EmailAddress> getTargetType() {
return EmailAddress.class;
}
}