validate method
void
validate(
- String? path,
- Schema schema,
- dynamic value,
- List<
ValidationResult> results,
override
Validates a given value against this rule.
path
a dot notation path to the value.schema
a schema this rule is called fromvalue
a value to be validated.results
a list with validation results to add new results.
Implementation
@override
void validate(String? path, Schema schema, dynamic value,
List<ValidationResult> results) {
var name = path ?? 'value';
var found = <String>[];
for (var i = 0; i < _properties.length; i++) {
var property = _properties[i];
var propertyValue = ObjectReader.getProperty(value, property);
if (propertyValue != null) found.add(property);
}
if (found.isEmpty) {
results.add(ValidationResult(
path,
ValidationResultType.Error,
'VALUE_NULL',
name +
' must have at least one property from ' +
_properties.join(','),
_properties,
null));
} else if (found.length > 1) {
results.add(ValidationResult(
path,
ValidationResultType.Error,
'VALUE_ONLY_ONE',
name + ' must have only one property from ' + _properties.join(','),
_properties,
null));
}
}