KytheVName.fromJson constructor

KytheVName.fromJson(
  1. JsonDecoder jsonDecoder,
  2. String jsonPath,
  3. Object? json
)

Implementation

factory KytheVName.fromJson(
    JsonDecoder jsonDecoder, String jsonPath, Object? json) {
  json ??= {};
  if (json is Map) {
    String signature;
    if (json.containsKey('signature')) {
      signature =
          jsonDecoder.decodeString('$jsonPath.signature', json['signature']);
    } else {
      throw jsonDecoder.mismatch(jsonPath, 'signature');
    }
    String corpus;
    if (json.containsKey('corpus')) {
      corpus = jsonDecoder.decodeString('$jsonPath.corpus', json['corpus']);
    } else {
      throw jsonDecoder.mismatch(jsonPath, 'corpus');
    }
    String root;
    if (json.containsKey('root')) {
      root = jsonDecoder.decodeString('$jsonPath.root', json['root']);
    } else {
      throw jsonDecoder.mismatch(jsonPath, 'root');
    }
    String path;
    if (json.containsKey('path')) {
      path = jsonDecoder.decodeString('$jsonPath.path', json['path']);
    } else {
      throw jsonDecoder.mismatch(jsonPath, 'path');
    }
    String language;
    if (json.containsKey('language')) {
      language =
          jsonDecoder.decodeString('$jsonPath.language', json['language']);
    } else {
      throw jsonDecoder.mismatch(jsonPath, 'language');
    }
    return KytheVName(signature, corpus, root, path, language);
  } else {
    throw jsonDecoder.mismatch(jsonPath, 'KytheVName', json);
  }
}