execute method

  1. @override
List execute(
  1. List results,
  2. Map<String, dynamic> passed
)
override

The iterable, nested function that evaluates the entire FHIRPath expression one object at a time

Implementation

@override
List execute(List results, Map<String, dynamic> passed) {
  final executedValue = value.execute(results.toList(), passed);
  if (results.isEmpty || executedValue.isEmpty) {
    return [];
  } else if (results.length > 1) {
    throw _wrongLength('.power()', results);
  } else if (executedValue.length > 1) {
    throw _wrongArgLength('.power()', executedValue);
  }
  final finalResults = results.first is num
      ? results.first
      : throw _wrongTypes('.power()', results, executedValue);
  final finalValue = executedValue.first is num
      ? executedValue.first
      : throw _wrongTypes('.power()', results, executedValue);
  return pow(finalResults as num, finalValue as num).isNaN
      ? []
      : [pow(finalResults, finalValue)];
}