|  | // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | import 'package:analysis_server/protocol/protocol_generated.dart' as server; | 
|  | import 'package:analysis_server/src/protocol/protocol_internal.dart' as server; | 
|  | import 'package:analyzer_plugin/protocol/protocol_common.dart'; | 
|  | import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin; | 
|  |  | 
|  | /// An object used to convert between similar objects defined by both the plugin | 
|  | /// protocol and the server protocol. | 
|  | class ResultConverter { | 
|  | /// The decoder used to decode Json representations of server objects. | 
|  | static final server.ResponseDecoder decoder = server.ResponseDecoder(null); | 
|  |  | 
|  | server.AnalysisErrorFixes convertAnalysisErrorFixes( | 
|  | plugin.AnalysisErrorFixes fixes, | 
|  | ) { | 
|  | var changes = | 
|  | fixes.fixes | 
|  | .map( | 
|  | (plugin.PrioritizedSourceChange change) => | 
|  | convertPrioritizedSourceChange(change), | 
|  | ) | 
|  | .toList(); | 
|  | return server.AnalysisErrorFixes(fixes.error, fixes: changes); | 
|  | } | 
|  |  | 
|  | server.AnalysisNavigationParams convertAnalysisNavigationParams( | 
|  | plugin.AnalysisNavigationParams params, | 
|  | ) { | 
|  | return server.AnalysisNavigationParams.fromJson( | 
|  | decoder, | 
|  | '', | 
|  | params.toJson(), | 
|  | // Converter not needed because the plugin class toJson'd above is always | 
|  | // file paths. | 
|  | clientUriConverter: null, | 
|  | ); | 
|  | } | 
|  |  | 
|  | server.EditGetRefactoringResult convertEditGetRefactoringResult( | 
|  | RefactoringKind kind, | 
|  | plugin.EditGetRefactoringResult result, | 
|  | ) { | 
|  | return server.EditGetRefactoringResult.fromJson( | 
|  | server.ResponseDecoder(kind), | 
|  | '', | 
|  | result.toJson(), | 
|  | // Converter not needed because the plugin class toJson'd above is always | 
|  | // file paths. | 
|  | clientUriConverter: null, | 
|  | ); | 
|  | } | 
|  |  | 
|  | SourceChange convertPrioritizedSourceChange( | 
|  | plugin.PrioritizedSourceChange change, | 
|  | ) { | 
|  | return change.change; | 
|  | } | 
|  | } |