Validate.compare constructor Null safety

const Validate.compare(
  1. {Comparable? lessThan,
  2. Comparable? greaterThan,
  3. Comparable? equalTo,
  4. Comparable? greaterThanEqualTo,
  5. Comparable? lessThanEqualTo,
  6. bool onUpdate = true,
  7. bool onInsert = true}
)

A validator for comparing a value.

Values passing through validators of this type must be lessThan, greaterThan, lessThanEqualTo, equalTo, or [greaterThanEqualTo to the value provided for each argument.

Any argument not specified is not evaluated. A typical validator only uses one argument:

    @Validate.compare(lessThan: 10.0)
    double value;

All provided arguments are evaluated. Therefore, the following requires an input value to be between 6 and 10:

    @Validate.compare(greaterThanEqualTo: 6, lessThanEqualTo: 10)
    int value;

This validator can be used for String, double, int and DateTime properties.

When creating a validator for DateTime properties, the value for an argument is a String that will be parsed by DateTime.parse.

  @Validate.compare(greaterThan: "2017-02-11T00:30:00Z")
  DateTime date;

If onUpdate is true (the default), this validation is run on update queries. If onInsert is true (the default), this validation is run on insert queries.

Implementation

const Validate.compare(
    {Comparable? lessThan,
    Comparable? greaterThan,
    Comparable? equalTo,
    Comparable? greaterThanEqualTo,
    Comparable? lessThanEqualTo,
    bool onUpdate = true,
    bool onInsert = true})
    : this._(
          lessThan: lessThan,
          lessThanEqualTo: lessThanEqualTo,
          greaterThan: greaterThan,
          greaterThanEqualTo: greaterThanEqualTo,
          equalTo: equalTo,
          onUpdate: onUpdate,
          onInsert: onInsert,
          validator: ValidateType.comparison);