annotate method
Annotates value
with this validator returning an AnnotationResult.
This mechanic is used to provide more information about the validation
error.
Implementation
@override
AnnotationResult annotate(bool cached, value, DogEngine engine) {
final isValid = validate(cached, value, engine);
if (isValid) return AnnotationResult.empty();
AnnotationMessage result;
if (min != null && max == null) {
result =
AnnotationMessage(id: messageId, message: "Must be more than %min% (%minExclusive%).");
} else if (min == null && max != null) {
result =
AnnotationMessage(id: messageId, message: "Must be less than %max% (%maxExclusive%)");
} else {
result = AnnotationMessage(
id: messageId,
message: "Must be between %min%(%minExclusive%) and %max%(%maxExclusive%).");
}
return AnnotationResult(messages: [result]).withVariables({
"min": min.toString(),
"max": max.toString(),
"minExclusive": minExclusive ? "exclusive" : "inclusive",
"maxExclusive": maxExclusive ? "exclusive" : "inclusive",
});
}