if (value != null)
{
// use the existing validation method
val result = validate(value.toLocalDateTime(LocalTime.MIDNIGHT));
if (result != null)
return result.toLocalDate();
} else
// check if null allowed, using the other validate()
validate((LocalDateTime) null);
return null;