paramValuesFromObjects function

List<ParamValue> paramValuesFromObjects(
  1. List<Object?> params
)

Converts plain Dart objects to ParamValue wire tags.

Converts plain Dart objects to ParamValue wire tags. Pair with executeQueryParamValuesFromObjects and related …FromObjects extension methods on IOdbcRepository.

Implementation

List<ParamValue> paramValuesFromObjects(List<Object?> params) {
  if (params.isEmpty) return const [];

  if (params.isNotEmpty) {
    var allParamValueOrNull = true;
    for (final item in params) {
      if (item != null && item is! ParamValue) {
        allParamValueOrNull = false;
        break;
      }
    }
    if (allParamValueOrNull) {
      final result =
          List<ParamValue>.filled(params.length, const ParamValueNull());
      for (var i = 0; i < params.length; i++) {
        final item = params[i];
        if (item is ParamValue) {
          result[i] = item;
        }
      }
      return result;
    }
  }

  final result = List<ParamValue>.filled(params.length, const ParamValueNull());
  for (var i = 0; i < params.length; i++) {
    result[i] = toParamValue(params[i]);
  }
  return result;
}