package org.talend.esb.client.app.validation;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
public class DateNotInPastValidator implements
ConstraintValidator<DateNotInPast, String> {
public static final String DEFAULT_FORMAT = DateFormatValidator.DEFAULT_FORMAT;
private String format;
@Override
public void initialize(DateNotInPast constraintAnnotation) {
format = constraintAnnotation.format();
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null || value.trim().isEmpty()) {
return true;
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
try {
Date c = new Date();
Date d = sdf.parse(value);
return (d.after(c) || value.equals(sdf.format(c)));
} catch (ParseException e) {
// validation only in case of proper date format
return true;
}
}
}