fromJson<T extends Comparable<T>> static method

CompVal<T> fromJson<T extends Comparable<T>>(
  1. Object? _map
)

Implementation

static CompVal<T> fromJson<T extends Comparable<T>>(Object? _map) {
  final Map<String, Object?> map;
  if (_map is CompVal<T>) {
    return _map;
  } else if (_map is String) {
    map = jsonDecode(_map) as Map<String, Object?>;
  } else {
    map = (_map! as Map).cast();
  }

  switch (map['variantType']) {
    case 'ref':
      return CompValueRef.fromJson<T>(map);
    case 'single':
      return CompValueSingle.fromJson<T>(map);
    case 'list':
      return CompValueList.fromJson<T>(map);
    default:
      throw Exception('Invalid discriminator for '
          'CompVal<T extends Comparable<T>>.fromJson '
          '${map["variantType"]}. Input map: $map');
  }
}