validate method
Implementation
@override
ValidationResult validate() {
if (isOptional && value == null) {
return ValidationResult(isValid: true);
}
if (!isOptional && value == null) {
return ValidationResult(
isValid: false, message: getMessage('missing $propertyName'));
}
if (value is! num && !validators.isNumeric(value.toString())) {
return ValidationResult(isValid: false, message: invalidNumberMessage);
}
final newValue = value = num.parse(value.toString());
if (isNegative && newValue > -1) {
return ValidationResult(isValid: false, message: notNegativeMessage);
}
if (isPositive && newValue < 0) {
return ValidationResult(isValid: false, message: notPositiveMessage);
}
if (isDivisibleBy != null) {
try {
if (newValue % 1 != 0) {
return ValidationResult(
isValid: false, message: notDivisibleByMessage);
}
if ((newValue.toInt()) % isDivisibleBy! != 0) {
return ValidationResult(
isValid: false, message: notDivisibleByMessage);
}
} catch (e) {
return ValidationResult(isValid: false, message: notDivisibleByMessage);
}
}
if (max != null && newValue > max!.toDouble()) {
return ValidationResult(
isValid: false, message: incorrectMaxRangeInvalidMessage);
}
if (min != null && newValue < min!.toDouble()) {
return ValidationResult(
isValid: false, message: incorrectMinRangeInvalidMessage);
}
return ValidationResult(isValid: true);
}