addParametersFromJson method

Map<String, String> addParametersFromJson(
  1. Map<String, dynamic> parameterList
)

Adds parameters to the module from the JSON parameterList.

Implementation

Map<String, String> addParametersFromJson(
    Map<String, dynamic> parameterList) {
  final parameterInfo = <String, String>{};
  parameterList.forEach((key, info) {
    final value = (info as Map<String, dynamic>)['value'] as String;
    final type = info['type'] as String;
    final resolve = info['resolve'] as String;
    // TODO(shankar4): Add support for unpacked ranges as well
    final ranges = (info['packedRanges'] ?? '') as String;

    // resolve = user means module parameter
    // resolve = immediate means localParam
    if (resolve == 'user') {
      final paramType = _getParameterType(type, ranges);
      if (key != value) {
        createParameter(key, value, type: paramType);
        try {
          if (type.toLowerCase() != 'string') {
            final resolvedVal = getInt(value, asIsIfUnparsed: true);
            parameterInfo[key] = resolvedVal.toString();
          }
        } on Exception catch (e) {
          RohdBridgeLogger.logger.error(
              'Parameter $key has value $value which is not resolved \n $e');
        }
      } else {
        RohdBridgeLogger.logger
            .warning('Parameter $key has an illegal value $value');
      }
    } else {
      parameterInfo[key] = value;
    }
  });
  return parameterInfo;
}