getUserdefMetaList static method

List<UserdefMeta> getUserdefMetaList(
  1. List<Qso> data
)

Build the list of <USERDEF> from the given QSOs.

Implementation

static List<UserdefMeta> getUserdefMetaList(List<Qso> data) {
  List<UserdefMeta> result = [];
  for (var qso in data) {
    for (var userDefinedField in qso.userdefs) {
      // Add to the list if not exists.
      if (result.getByName(userDefinedField.fieldName) == null) {
        // Get the enums.
        final List<String>? enums =
            userDefinedField.value.getType() == 'E'
                ? (userDefinedField.value as AdifEnumeration).enumerations
                : null;
        // Get the range.
        final (double min, double max)? range =
            userDefinedField.value is AdifRange
                ? (userDefinedField.value as AdifRange).range
                : null;
        result.add(
          UserdefMeta(
            userDefinedField.fieldName,
            userDefinedField.value.getType(),
            enums: enums,
            range: range,
          ),
        );
      }
    }
  }
  return result;
}