EditGetRefactoringResult.fromJson constructor

EditGetRefactoringResult.fromJson(
  1. JsonDecoder jsonDecoder,
  2. String jsonPath,
  3. Object? json, {
  4. ClientUriConverter? clientUriConverter,
})

Implementation

factory EditGetRefactoringResult.fromJson(
  JsonDecoder jsonDecoder,
  String jsonPath,
  Object? json, {
  ClientUriConverter? clientUriConverter,
}) {
  json ??= {};
  if (json is! Map) {
    throw jsonDecoder.mismatch(
      jsonPath,
      "'edit.getRefactoring result'",
      json,
    );
  }
  List<RefactoringProblem> initialProblems;
  if (json case {'initialProblems': var encodedInitialProblems}) {
    initialProblems = jsonDecoder.decodeList(
      '$jsonPath.initialProblems',
      encodedInitialProblems,
      (String jsonPath, Object? json) => RefactoringProblem.fromJson(
        jsonDecoder,
        jsonPath,
        json,
        clientUriConverter: clientUriConverter,
      ),
    );
  } else {
    throw jsonDecoder.mismatch(jsonPath, "'initialProblems'", json);
  }
  List<RefactoringProblem> optionsProblems;
  if (json case {'optionsProblems': var encodedOptionsProblems}) {
    optionsProblems = jsonDecoder.decodeList(
      '$jsonPath.optionsProblems',
      encodedOptionsProblems,
      (String jsonPath, Object? json) => RefactoringProblem.fromJson(
        jsonDecoder,
        jsonPath,
        json,
        clientUriConverter: clientUriConverter,
      ),
    );
  } else {
    throw jsonDecoder.mismatch(jsonPath, "'optionsProblems'", json);
  }
  List<RefactoringProblem> finalProblems;
  if (json case {'finalProblems': var encodedFinalProblems}) {
    finalProblems = jsonDecoder.decodeList(
      '$jsonPath.finalProblems',
      encodedFinalProblems,
      (String jsonPath, Object? json) => RefactoringProblem.fromJson(
        jsonDecoder,
        jsonPath,
        json,
        clientUriConverter: clientUriConverter,
      ),
    );
  } else {
    throw jsonDecoder.mismatch(jsonPath, "'finalProblems'", json);
  }
  RefactoringFeedback? feedback;
  if (json case {'feedback': var encodedFeedback}) {
    feedback = RefactoringFeedback.fromJson(
      jsonDecoder,
      '$jsonPath.feedback',
      encodedFeedback,
      json,
      clientUriConverter: clientUriConverter,
    );
  }
  SourceChange? change;
  if (json case {'change': var encodedChange}) {
    change = SourceChange.fromJson(
      jsonDecoder,
      '$jsonPath.change',
      encodedChange,
      clientUriConverter: clientUriConverter,
    );
  }
  List<String>? potentialEdits;
  if (json case {'potentialEdits': var encodedPotentialEdits}) {
    potentialEdits = jsonDecoder.decodeList(
      '$jsonPath.potentialEdits',
      encodedPotentialEdits,
      jsonDecoder.decodeString,
    );
  }
  return EditGetRefactoringResult(
    initialProblems,
    optionsProblems,
    finalProblems,
    feedback: feedback,
    change: change,
    potentialEdits: potentialEdits,
  );
}