findFeature method

FeatureDescriptor<TFeature> findFeature(
  1. TFeature key
)

Implementation

FeatureDescriptor<TFeature> findFeature(TFeature key) {
  if (this.key == key) {
    return this;
  }

  FeatureDescriptor<TFeature>? find(TFeature key, List<FeatureDescriptor<TFeature>> featuresList) {
    var result = featuresList.firstWhereOrNull((element) => element.key == key);

    if (result == null) {
      for (var item in featuresList) {
        result = find(key, item.features);
        if (result != null) {
          return result;
        }
      }
    }
    return result;
  }

  final item = find(key, features);
  if (item == null) {
    throw 'License not found';
  }
  return item;
}