blob: 5a5831238de2b7503723b487cff510f415834d51 [file] [log] [blame]
// 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;
}
}