EditGetRefactoringResult.fromJson constructor
EditGetRefactoringResult.fromJson(
- JsonDecoder jsonDecoder,
- String jsonPath,
- Object? json
)
Implementation
factory EditGetRefactoringResult.fromJson(
JsonDecoder jsonDecoder, String jsonPath, Object? json) {
json ??= {};
if (json is Map) {
List<RefactoringProblem> initialProblems;
if (json.containsKey('initialProblems')) {
initialProblems = jsonDecoder.decodeList(
'$jsonPath.initialProblems',
json['initialProblems'],
(String jsonPath, Object? json) =>
RefactoringProblem.fromJson(jsonDecoder, jsonPath, json));
} else {
throw jsonDecoder.mismatch(jsonPath, 'initialProblems');
}
List<RefactoringProblem> optionsProblems;
if (json.containsKey('optionsProblems')) {
optionsProblems = jsonDecoder.decodeList(
'$jsonPath.optionsProblems',
json['optionsProblems'],
(String jsonPath, Object? json) =>
RefactoringProblem.fromJson(jsonDecoder, jsonPath, json));
} else {
throw jsonDecoder.mismatch(jsonPath, 'optionsProblems');
}
List<RefactoringProblem> finalProblems;
if (json.containsKey('finalProblems')) {
finalProblems = jsonDecoder.decodeList(
'$jsonPath.finalProblems',
json['finalProblems'],
(String jsonPath, Object? json) =>
RefactoringProblem.fromJson(jsonDecoder, jsonPath, json));
} else {
throw jsonDecoder.mismatch(jsonPath, 'finalProblems');
}
RefactoringFeedback? feedback;
if (json.containsKey('feedback')) {
feedback = RefactoringFeedback.fromJson(
jsonDecoder, '$jsonPath.feedback', json['feedback'], json);
}
SourceChange? change;
if (json.containsKey('change')) {
change = SourceChange.fromJson(
jsonDecoder, '$jsonPath.change', json['change']);
}
List<String>? potentialEdits;
if (json.containsKey('potentialEdits')) {
potentialEdits = jsonDecoder.decodeList('$jsonPath.potentialEdits',
json['potentialEdits'], jsonDecoder.decodeString);
}
return EditGetRefactoringResult(
initialProblems, optionsProblems, finalProblems,
feedback: feedback, change: change, potentialEdits: potentialEdits);
} else {
throw jsonDecoder.mismatch(jsonPath, 'edit.getRefactoring result', json);
}
}