package jeffaschenk.commons.constraints.annotation;
import jeffaschenk.commons.validation.validators.EmailAddressValidator;
import net.sf.oval.Validator;
import net.sf.oval.configuration.annotation.AbstractAnnotationCheck;
import net.sf.oval.context.OValContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* CheckEmailAddressValidator,
* Custom Validator for checking the Auction Direction.
*
* @author jeffaschenk@gmail.com
* Date: Sep 13, 2010
* Time: 12:49:21 PM
*/
public class CheckEmailAddressValidator extends AbstractAnnotationCheck<CheckEmailAddress> {
/**
* Logging Constant <code>log</code>
*/
protected static Log log = LogFactory.getLog(CheckEmailAddressValidator.class);
boolean nullable = false;
@Override
public void configure(CheckEmailAddress checkEmailAddress) {
this.nullable = checkEmailAddress.nullable();
setMessage(checkEmailAddress.message());
}
/**
* Standard isSatisfied Check for Validation Annotaion
*
* @param validatedObject
* @param valueToValidate
* @param context
* @param validator
* @return boolean indicating isSatisfied or not.
*/
public boolean isSatisfied(Object validatedObject, Object valueToValidate, OValContext context, Validator validator) {
this.requireMessageVariablesRecreation();
if (log.isDebugEnabled()) {
log.debug("Attempting Email Validation for Object:[" + validatedObject.getClass().getSimpleName() + "], Value:[" + valueToValidate + "]");
}
if (nullable) {
return (valueToValidate == null) ? true : EmailAddressValidator.isValidEmailAddress((String) valueToValidate);
} else {
return EmailAddressValidator.isValidEmailAddress((String) valueToValidate);
}
}
}