blob: 9f0a0719897774191a888544935c6e226250b6a6 [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_generated.dart' as plugin;
/**
* An object used to convert between similar objects defined by both the plugin
* protocol and the server protocol.
*/
class RequestConverter {
plugin.AnalysisService convertAnalysisService(
server.AnalysisService service) {
return new plugin.AnalysisService(service.name);
}
plugin.AnalysisSetPriorityFilesParams convertAnalysisSetPriorityFilesParams(
server.AnalysisSetPriorityFilesParams params) {
return new plugin.AnalysisSetPriorityFilesParams(params.files);
}
plugin.AnalysisSetSubscriptionsParams convertAnalysisSetSubscriptionsParams(
server.AnalysisSetSubscriptionsParams params) {
Map<server.AnalysisService, List<String>> serverSubscriptions =
params.subscriptions;
Map<plugin.AnalysisService, List<String>> pluginSubscriptions =
<plugin.AnalysisService, List<String>>{};
for (server.AnalysisService service in serverSubscriptions.keys) {
try {
pluginSubscriptions[convertAnalysisService(service)] =
serverSubscriptions[service];
} catch (exception) {
// Ignore the exception. It indicates that the service isn't one that
// should be passed along to plugins.
}
}
return new plugin.AnalysisSetSubscriptionsParams(pluginSubscriptions);
}
plugin.AnalysisUpdateContentParams convertAnalysisUpdateContentParams(
server.AnalysisUpdateContentParams params) {
return new plugin.AnalysisUpdateContentParams(params.files);
}
}