package com.venky.swf.db.annotations.column.validations.processors;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import com.venky.core.util.ObjectUtil;
import com.venky.swf.db.annotations.column.COLUMN_DEF;
import com.venky.swf.db.annotations.column.defaulting.StandardDefault;
import com.venky.swf.exceptions.MultiException;
public class DateFormatValidator extends FieldValidator<COLUMN_DEF> {
public DateFormatValidator(String pool) {
super(pool);
}
@Override
public boolean validate(COLUMN_DEF annotation, String humanizedFieldName, String value, MultiException ex){
if (ObjectUtil.isVoid(value)){
return true;
}
if (annotation.value() == StandardDefault.CURRENT_DATE || annotation.value() == StandardDefault.CURRENT_TIMESTAMP){
String format = annotation.args();
if (!ObjectUtil.isVoid(format)){
try {
new SimpleDateFormat(format).parse(value);
} catch (ParseException e) {
ex.add(new FieldValidationException(humanizedFieldName + " must be in " + format + " format."));
return false;
}
}
}
return true;
}
}