toBool static method

bool? toBool(
  1. List input, {
  2. String? name,
  3. String? operation,
  4. List? collection,
})

Returns a bool interpretation of the input

Returns null for empty input.

Implementation

static bool? toBool(
  List<dynamic> input, {
  String? name,
  String? operation,
  List<dynamic>? collection,
}) {
  if (input.isEmpty) {
    return null;
  }

  if (input.length > 1) {
    throw FhirPathEvaluationException(
      'The $name is required to be '
      'either an empty value, or a single value. Instead it evaluated to: $input.',
      operation: operation,
      collection: collection,
    );
  }

  if (input.first is bool) {
    return input.first as bool;
  }

  if (input.first == 0 ||
      (input.first is String &&
          [
            'false',
            'f',
            'no',
            'n',
            '0',
            '0.0',
          ].contains(input.first.toString().toLowerCase()))) {
    return false;
  }

  // A single item that is not specifically a false boolean is true.
  return true;
}