| // Copyright (c) 2014, 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. |
| |
| library operation; |
| |
| import 'package:analysis_server/src/analysis_server.dart'; |
| |
| |
| /** |
| * The enumeration [ServerOperationPriority] defines the priority levels used |
| * to organize [ServerOperation]s in an optimal order. A smaller ordinal value |
| * equates to a higher priority. |
| */ |
| class ServerOperationPriority { |
| final int ordinal; |
| final String name; |
| |
| static const int COUNT = 4; |
| |
| static const ServerOperationPriority ANALYSIS_CONTINUE = const ServerOperationPriority._(0, "ANALYSIS_CONTINUE"); |
| static const ServerOperationPriority ANALYSIS = const ServerOperationPriority._(1, "ANALYSIS"); |
| static const ServerOperationPriority SEARCH = const ServerOperationPriority._(2, "SEARCH"); |
| static const ServerOperationPriority REFACTORING = const ServerOperationPriority._(3, "REFACTORING"); |
| |
| @override |
| String toString() => name; |
| |
| const ServerOperationPriority._(this.ordinal, this.name); |
| } |
| |
| |
| /** |
| * The class [ServerOperation] defines the behavior of objects used to perform |
| * operations on a [AnalysisServer]. |
| */ |
| abstract class ServerOperation { |
| /** |
| * Returns the priority of this operation. |
| */ |
| ServerOperationPriority get priority; |
| |
| /** |
| * Performs the operation implemented by this operation. |
| */ |
| void perform(AnalysisServer server); |
| } |