build method

  1. @override
Future<Filter<Coding>> build()
override

Implementation

@override
Future<Filter<Coding>> build() async {
  List<Filter<Coding>> filters = [
    _byIds?.let((v) => CodingByIdsFilter(ids: v)),
    _byRegionTypeLabelLanguageFilter?.let((v) => v),
    await _union?.let((v) async => UnionFilter<Coding>(filters: await Future.wait(v.map((f) async => await f.build()).toList()))),
    await _intersection?.let((v) async => IntersectionFilter<Coding>(filters: await Future.wait(v.map((f) async => await f.build()).toList())))
  ].whereType<Filter<Coding>>().toList();

  if (filters.isEmpty) {
    return AllCodingsFilter();
  } else if (filters.length == 1) {
    return filters[0];
  } else {
    return IntersectionFilter(filters: filters);
  }
}