whereField<V> method

DatumQueryBuilder<T> whereField<V>(
  1. DatumQueryField<T, V> field, {
  2. V? isEqualTo,
  3. V? isNotEqualTo,
  4. V? isGreaterThan,
  5. V? isGreaterThanOrEqualTo,
  6. V? isLessThan,
  7. V? isLessThanOrEqualTo,
  8. String? contains,
  9. String? containsIgnoreCase,
  10. String? startsWith,
  11. String? endsWith,
  12. List<V>? isIn,
  13. List<V>? isNotIn,
  14. V? arrayContains,
  15. List<V>? arrayContainsAny,
  16. String? matches,
  17. List<V>? between,
})

Type-safe variant of where using a DatumQueryField descriptor.

The field must belong to entity T, and equality/ordering values must match the field's value type V — both checked at compile time. String operators (contains/startsWith/…) and matches remain String? because they are only meaningful for string fields.

Implementation

DatumQueryBuilder<T> whereField<V>(
  DatumQueryField<T, V> field, {
  V? isEqualTo,
  V? isNotEqualTo,
  V? isGreaterThan,
  V? isGreaterThanOrEqualTo,
  V? isLessThan,
  V? isLessThanOrEqualTo,
  String? contains,
  String? containsIgnoreCase,
  String? startsWith,
  String? endsWith,
  List<V>? isIn,
  List<V>? isNotIn,
  V? arrayContains,
  List<V>? arrayContainsAny,
  String? matches,
  List<V>? between,
}) {
  return where(
    field.name,
    isEqualTo: isEqualTo,
    isNotEqualTo: isNotEqualTo,
    isGreaterThan: isGreaterThan,
    isGreaterThanOrEqualTo: isGreaterThanOrEqualTo,
    isLessThan: isLessThan,
    isLessThanOrEqualTo: isLessThanOrEqualTo,
    contains: contains,
    containsIgnoreCase: containsIgnoreCase,
    startsWith: startsWith,
    endsWith: endsWith,
    isIn: isIn,
    isNotIn: isNotIn,
    arrayContains: arrayContains,
    arrayContainsAny: arrayContainsAny,
    matches: matches,
    between: between,
  );
}