Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(148)

Side by Side Diff: pkg/analysis_server/lib/protocol/protocol_generated.dart

Issue 2879273002: Make server use the common protocol classes (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 // 4 //
5 // This file has been automatically generated. Please do not edit it manually. 5 // This file has been automatically generated. Please do not edit it manually.
6 // To regenerate the file, use the script 6 // To regenerate the file, use the script
7 // "pkg/analysis_server/tool/spec/generate_files". 7 // "pkg/analysis_server/tool/spec/generate_files".
8 8
9 import 'dart:convert' hide JsonDecoder; 9 import 'dart:convert' hide JsonDecoder;
10 10
11 import 'package:analyzer/src/generated/utilities_general.dart'; 11 import 'package:analyzer/src/generated/utilities_general.dart';
12 import 'package:analysis_server/protocol/protocol.dart'; 12 import 'package:analysis_server/protocol/protocol.dart';
13 import 'package:analysis_server/src/protocol/protocol_internal.dart'; 13 import 'package:analysis_server/src/protocol/protocol_internal.dart';
14 14 import 'package:analyzer_plugin/protocol/protocol_common.dart';
15 /**
16 * AddContentOverlay
17 *
18 * {
19 * "type": "add"
20 * "content": String
21 * }
22 *
23 * Clients may not extend, implement or mix-in this class.
24 */
25 class AddContentOverlay implements HasToJson {
26 String _content;
27
28 /**
29 * The new content of the file.
30 */
31 String get content => _content;
32
33 /**
34 * The new content of the file.
35 */
36 void set content(String value) {
37 assert(value != null);
38 this._content = value;
39 }
40
41 AddContentOverlay(String content) {
42 this.content = content;
43 }
44
45 factory AddContentOverlay.fromJson(
46 JsonDecoder jsonDecoder, String jsonPath, Object json) {
47 if (json == null) {
48 json = {};
49 }
50 if (json is Map) {
51 if (json["type"] != "add") {
52 throw jsonDecoder.mismatch(jsonPath, "equal " + "add", json);
53 }
54 String content;
55 if (json.containsKey("content")) {
56 content =
57 jsonDecoder.decodeString(jsonPath + ".content", json["content"]);
58 } else {
59 throw jsonDecoder.mismatch(jsonPath, "content");
60 }
61 return new AddContentOverlay(content);
62 } else {
63 throw jsonDecoder.mismatch(jsonPath, "AddContentOverlay", json);
64 }
65 }
66
67 @override
68 Map<String, dynamic> toJson() {
69 Map<String, dynamic> result = {};
70 result["type"] = "add";
71 result["content"] = content;
72 return result;
73 }
74
75 @override
76 String toString() => JSON.encode(toJson());
77
78 @override
79 bool operator ==(other) {
80 if (other is AddContentOverlay) {
81 return content == other.content;
82 }
83 return false;
84 }
85
86 @override
87 int get hashCode {
88 int hash = 0;
89 hash = JenkinsSmiHash.combine(hash, 704418402);
90 hash = JenkinsSmiHash.combine(hash, content.hashCode);
91 return JenkinsSmiHash.finish(hash);
92 }
93 }
94 15
95 /** 16 /**
96 * analysis.analyzedFiles params 17 * analysis.analyzedFiles params
97 * 18 *
98 * { 19 * {
99 * "directories": List<FilePath> 20 * "directories": List<FilePath>
100 * } 21 * }
101 * 22 *
102 * Clients may not extend, implement or mix-in this class. 23 * Clients may not extend, implement or mix-in this class.
103 */ 24 */
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 93
173 @override 94 @override
174 int get hashCode { 95 int get hashCode {
175 int hash = 0; 96 int hash = 0;
176 hash = JenkinsSmiHash.combine(hash, directories.hashCode); 97 hash = JenkinsSmiHash.combine(hash, directories.hashCode);
177 return JenkinsSmiHash.finish(hash); 98 return JenkinsSmiHash.finish(hash);
178 } 99 }
179 } 100 }
180 101
181 /** 102 /**
182 * AnalysisError
183 *
184 * {
185 * "severity": AnalysisErrorSeverity
186 * "type": AnalysisErrorType
187 * "location": Location
188 * "message": String
189 * "correction": optional String
190 * "code": String
191 * "hasFix": optional bool
192 * }
193 *
194 * Clients may not extend, implement or mix-in this class.
195 */
196 class AnalysisError implements HasToJson {
197 AnalysisErrorSeverity _severity;
198
199 AnalysisErrorType _type;
200
201 Location _location;
202
203 String _message;
204
205 String _correction;
206
207 String _code;
208
209 bool _hasFix;
210
211 /**
212 * The severity of the error.
213 */
214 AnalysisErrorSeverity get severity => _severity;
215
216 /**
217 * The severity of the error.
218 */
219 void set severity(AnalysisErrorSeverity value) {
220 assert(value != null);
221 this._severity = value;
222 }
223
224 /**
225 * The type of the error.
226 */
227 AnalysisErrorType get type => _type;
228
229 /**
230 * The type of the error.
231 */
232 void set type(AnalysisErrorType value) {
233 assert(value != null);
234 this._type = value;
235 }
236
237 /**
238 * The location associated with the error.
239 */
240 Location get location => _location;
241
242 /**
243 * The location associated with the error.
244 */
245 void set location(Location value) {
246 assert(value != null);
247 this._location = value;
248 }
249
250 /**
251 * The message to be displayed for this error. The message should indicate
252 * what is wrong with the code and why it is wrong.
253 */
254 String get message => _message;
255
256 /**
257 * The message to be displayed for this error. The message should indicate
258 * what is wrong with the code and why it is wrong.
259 */
260 void set message(String value) {
261 assert(value != null);
262 this._message = value;
263 }
264
265 /**
266 * The correction message to be displayed for this error. The correction
267 * message should indicate how the user can fix the error. The field is
268 * omitted if there is no correction message associated with the error code.
269 */
270 String get correction => _correction;
271
272 /**
273 * The correction message to be displayed for this error. The correction
274 * message should indicate how the user can fix the error. The field is
275 * omitted if there is no correction message associated with the error code.
276 */
277 void set correction(String value) {
278 this._correction = value;
279 }
280
281 /**
282 * The name, as a string, of the error code associated with this error.
283 */
284 String get code => _code;
285
286 /**
287 * The name, as a string, of the error code associated with this error.
288 */
289 void set code(String value) {
290 assert(value != null);
291 this._code = value;
292 }
293
294 /**
295 * A hint to indicate to interested clients that this error has an associated
296 * fix (or fixes). The absence of this field implies there are not known to
297 * be fixes. Note that since the operation to calculate whether fixes apply
298 * needs to be performant it is possible that complicated tests will be
299 * skipped and a false negative returned. For this reason, this attribute
300 * should be treated as a "hint". Despite the possibility of false negatives,
301 * no false positives should be returned. If a client sees this flag set they
302 * can proceed with the confidence that there are in fact associated fixes.
303 */
304 bool get hasFix => _hasFix;
305
306 /**
307 * A hint to indicate to interested clients that this error has an associated
308 * fix (or fixes). The absence of this field implies there are not known to
309 * be fixes. Note that since the operation to calculate whether fixes apply
310 * needs to be performant it is possible that complicated tests will be
311 * skipped and a false negative returned. For this reason, this attribute
312 * should be treated as a "hint". Despite the possibility of false negatives,
313 * no false positives should be returned. If a client sees this flag set they
314 * can proceed with the confidence that there are in fact associated fixes.
315 */
316 void set hasFix(bool value) {
317 this._hasFix = value;
318 }
319
320 AnalysisError(AnalysisErrorSeverity severity, AnalysisErrorType type,
321 Location location, String message, String code,
322 {String correction, bool hasFix}) {
323 this.severity = severity;
324 this.type = type;
325 this.location = location;
326 this.message = message;
327 this.correction = correction;
328 this.code = code;
329 this.hasFix = hasFix;
330 }
331
332 factory AnalysisError.fromJson(
333 JsonDecoder jsonDecoder, String jsonPath, Object json) {
334 if (json == null) {
335 json = {};
336 }
337 if (json is Map) {
338 AnalysisErrorSeverity severity;
339 if (json.containsKey("severity")) {
340 severity = new AnalysisErrorSeverity.fromJson(
341 jsonDecoder, jsonPath + ".severity", json["severity"]);
342 } else {
343 throw jsonDecoder.mismatch(jsonPath, "severity");
344 }
345 AnalysisErrorType type;
346 if (json.containsKey("type")) {
347 type = new AnalysisErrorType.fromJson(
348 jsonDecoder, jsonPath + ".type", json["type"]);
349 } else {
350 throw jsonDecoder.mismatch(jsonPath, "type");
351 }
352 Location location;
353 if (json.containsKey("location")) {
354 location = new Location.fromJson(
355 jsonDecoder, jsonPath + ".location", json["location"]);
356 } else {
357 throw jsonDecoder.mismatch(jsonPath, "location");
358 }
359 String message;
360 if (json.containsKey("message")) {
361 message =
362 jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
363 } else {
364 throw jsonDecoder.mismatch(jsonPath, "message");
365 }
366 String correction;
367 if (json.containsKey("correction")) {
368 correction = jsonDecoder.decodeString(
369 jsonPath + ".correction", json["correction"]);
370 }
371 String code;
372 if (json.containsKey("code")) {
373 code = jsonDecoder.decodeString(jsonPath + ".code", json["code"]);
374 } else {
375 throw jsonDecoder.mismatch(jsonPath, "code");
376 }
377 bool hasFix;
378 if (json.containsKey("hasFix")) {
379 hasFix = jsonDecoder.decodeBool(jsonPath + ".hasFix", json["hasFix"]);
380 }
381 return new AnalysisError(severity, type, location, message, code,
382 correction: correction, hasFix: hasFix);
383 } else {
384 throw jsonDecoder.mismatch(jsonPath, "AnalysisError", json);
385 }
386 }
387
388 @override
389 Map<String, dynamic> toJson() {
390 Map<String, dynamic> result = {};
391 result["severity"] = severity.toJson();
392 result["type"] = type.toJson();
393 result["location"] = location.toJson();
394 result["message"] = message;
395 if (correction != null) {
396 result["correction"] = correction;
397 }
398 result["code"] = code;
399 if (hasFix != null) {
400 result["hasFix"] = hasFix;
401 }
402 return result;
403 }
404
405 @override
406 String toString() => JSON.encode(toJson());
407
408 @override
409 bool operator ==(other) {
410 if (other is AnalysisError) {
411 return severity == other.severity &&
412 type == other.type &&
413 location == other.location &&
414 message == other.message &&
415 correction == other.correction &&
416 code == other.code &&
417 hasFix == other.hasFix;
418 }
419 return false;
420 }
421
422 @override
423 int get hashCode {
424 int hash = 0;
425 hash = JenkinsSmiHash.combine(hash, severity.hashCode);
426 hash = JenkinsSmiHash.combine(hash, type.hashCode);
427 hash = JenkinsSmiHash.combine(hash, location.hashCode);
428 hash = JenkinsSmiHash.combine(hash, message.hashCode);
429 hash = JenkinsSmiHash.combine(hash, correction.hashCode);
430 hash = JenkinsSmiHash.combine(hash, code.hashCode);
431 hash = JenkinsSmiHash.combine(hash, hasFix.hashCode);
432 return JenkinsSmiHash.finish(hash);
433 }
434 }
435
436 /**
437 * AnalysisErrorFixes 103 * AnalysisErrorFixes
438 * 104 *
439 * { 105 * {
440 * "error": AnalysisError 106 * "error": AnalysisError
441 * "fixes": List<SourceChange> 107 * "fixes": List<SourceChange>
442 * } 108 * }
443 * 109 *
444 * Clients may not extend, implement or mix-in this class. 110 * Clients may not extend, implement or mix-in this class.
445 */ 111 */
446 class AnalysisErrorFixes implements HasToJson { 112 class AnalysisErrorFixes implements HasToJson {
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
537 @override 203 @override
538 int get hashCode { 204 int get hashCode {
539 int hash = 0; 205 int hash = 0;
540 hash = JenkinsSmiHash.combine(hash, error.hashCode); 206 hash = JenkinsSmiHash.combine(hash, error.hashCode);
541 hash = JenkinsSmiHash.combine(hash, fixes.hashCode); 207 hash = JenkinsSmiHash.combine(hash, fixes.hashCode);
542 return JenkinsSmiHash.finish(hash); 208 return JenkinsSmiHash.finish(hash);
543 } 209 }
544 } 210 }
545 211
546 /** 212 /**
547 * AnalysisErrorSeverity
548 *
549 * enum {
550 * INFO
551 * WARNING
552 * ERROR
553 * }
554 *
555 * Clients may not extend, implement or mix-in this class.
556 */
557 class AnalysisErrorSeverity implements Enum {
558 static const AnalysisErrorSeverity INFO =
559 const AnalysisErrorSeverity._("INFO");
560
561 static const AnalysisErrorSeverity WARNING =
562 const AnalysisErrorSeverity._("WARNING");
563
564 static const AnalysisErrorSeverity ERROR =
565 const AnalysisErrorSeverity._("ERROR");
566
567 /**
568 * A list containing all of the enum values that are defined.
569 */
570 static const List<AnalysisErrorSeverity> VALUES =
571 const <AnalysisErrorSeverity>[INFO, WARNING, ERROR];
572
573 @override
574 final String name;
575
576 const AnalysisErrorSeverity._(this.name);
577
578 factory AnalysisErrorSeverity(String name) {
579 switch (name) {
580 case "INFO":
581 return INFO;
582 case "WARNING":
583 return WARNING;
584 case "ERROR":
585 return ERROR;
586 }
587 throw new Exception('Illegal enum value: $name');
588 }
589
590 factory AnalysisErrorSeverity.fromJson(
591 JsonDecoder jsonDecoder, String jsonPath, Object json) {
592 if (json is String) {
593 try {
594 return new AnalysisErrorSeverity(json);
595 } catch (_) {
596 // Fall through
597 }
598 }
599 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorSeverity", json);
600 }
601
602 @override
603 String toString() => "AnalysisErrorSeverity.$name";
604
605 String toJson() => name;
606 }
607
608 /**
609 * AnalysisErrorType
610 *
611 * enum {
612 * CHECKED_MODE_COMPILE_TIME_ERROR
613 * COMPILE_TIME_ERROR
614 * HINT
615 * LINT
616 * STATIC_TYPE_WARNING
617 * STATIC_WARNING
618 * SYNTACTIC_ERROR
619 * TODO
620 * }
621 *
622 * Clients may not extend, implement or mix-in this class.
623 */
624 class AnalysisErrorType implements Enum {
625 static const AnalysisErrorType CHECKED_MODE_COMPILE_TIME_ERROR =
626 const AnalysisErrorType._("CHECKED_MODE_COMPILE_TIME_ERROR");
627
628 static const AnalysisErrorType COMPILE_TIME_ERROR =
629 const AnalysisErrorType._("COMPILE_TIME_ERROR");
630
631 static const AnalysisErrorType HINT = const AnalysisErrorType._("HINT");
632
633 static const AnalysisErrorType LINT = const AnalysisErrorType._("LINT");
634
635 static const AnalysisErrorType STATIC_TYPE_WARNING =
636 const AnalysisErrorType._("STATIC_TYPE_WARNING");
637
638 static const AnalysisErrorType STATIC_WARNING =
639 const AnalysisErrorType._("STATIC_WARNING");
640
641 static const AnalysisErrorType SYNTACTIC_ERROR =
642 const AnalysisErrorType._("SYNTACTIC_ERROR");
643
644 static const AnalysisErrorType TODO = const AnalysisErrorType._("TODO");
645
646 /**
647 * A list containing all of the enum values that are defined.
648 */
649 static const List<AnalysisErrorType> VALUES = const <AnalysisErrorType>[
650 CHECKED_MODE_COMPILE_TIME_ERROR,
651 COMPILE_TIME_ERROR,
652 HINT,
653 LINT,
654 STATIC_TYPE_WARNING,
655 STATIC_WARNING,
656 SYNTACTIC_ERROR,
657 TODO
658 ];
659
660 @override
661 final String name;
662
663 const AnalysisErrorType._(this.name);
664
665 factory AnalysisErrorType(String name) {
666 switch (name) {
667 case "CHECKED_MODE_COMPILE_TIME_ERROR":
668 return CHECKED_MODE_COMPILE_TIME_ERROR;
669 case "COMPILE_TIME_ERROR":
670 return COMPILE_TIME_ERROR;
671 case "HINT":
672 return HINT;
673 case "LINT":
674 return LINT;
675 case "STATIC_TYPE_WARNING":
676 return STATIC_TYPE_WARNING;
677 case "STATIC_WARNING":
678 return STATIC_WARNING;
679 case "SYNTACTIC_ERROR":
680 return SYNTACTIC_ERROR;
681 case "TODO":
682 return TODO;
683 }
684 throw new Exception('Illegal enum value: $name');
685 }
686
687 factory AnalysisErrorType.fromJson(
688 JsonDecoder jsonDecoder, String jsonPath, Object json) {
689 if (json is String) {
690 try {
691 return new AnalysisErrorType(json);
692 } catch (_) {
693 // Fall through
694 }
695 }
696 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorType", json);
697 }
698
699 @override
700 String toString() => "AnalysisErrorType.$name";
701
702 String toJson() => name;
703 }
704
705 /**
706 * analysis.errors params 213 * analysis.errors params
707 * 214 *
708 * { 215 * {
709 * "file": FilePath 216 * "file": FilePath
710 * "errors": List<AnalysisError> 217 * "errors": List<AnalysisError>
711 * } 218 * }
712 * 219 *
713 * Clients may not extend, implement or mix-in this class. 220 * Clients may not extend, implement or mix-in this class.
714 */ 221 */
715 class AnalysisErrorsParams implements HasToJson { 222 class AnalysisErrorsParams implements HasToJson {
(...skipping 3795 matching lines...) Expand 10 before | Expand all | Expand 10 after
4511 return false; 4018 return false;
4512 } 4019 }
4513 4020
4514 @override 4021 @override
4515 int get hashCode { 4022 int get hashCode {
4516 return 179689467; 4023 return 179689467;
4517 } 4024 }
4518 } 4025 }
4519 4026
4520 /** 4027 /**
4521 * ChangeContentOverlay
4522 *
4523 * {
4524 * "type": "change"
4525 * "edits": List<SourceEdit>
4526 * }
4527 *
4528 * Clients may not extend, implement or mix-in this class.
4529 */
4530 class ChangeContentOverlay implements HasToJson {
4531 List<SourceEdit> _edits;
4532
4533 /**
4534 * The edits to be applied to the file.
4535 */
4536 List<SourceEdit> get edits => _edits;
4537
4538 /**
4539 * The edits to be applied to the file.
4540 */
4541 void set edits(List<SourceEdit> value) {
4542 assert(value != null);
4543 this._edits = value;
4544 }
4545
4546 ChangeContentOverlay(List<SourceEdit> edits) {
4547 this.edits = edits;
4548 }
4549
4550 factory ChangeContentOverlay.fromJson(
4551 JsonDecoder jsonDecoder, String jsonPath, Object json) {
4552 if (json == null) {
4553 json = {};
4554 }
4555 if (json is Map) {
4556 if (json["type"] != "change") {
4557 throw jsonDecoder.mismatch(jsonPath, "equal " + "change", json);
4558 }
4559 List<SourceEdit> edits;
4560 if (json.containsKey("edits")) {
4561 edits = jsonDecoder.decodeList(
4562 jsonPath + ".edits",
4563 json["edits"],
4564 (String jsonPath, Object json) =>
4565 new SourceEdit.fromJson(jsonDecoder, jsonPath, json));
4566 } else {
4567 throw jsonDecoder.mismatch(jsonPath, "edits");
4568 }
4569 return new ChangeContentOverlay(edits);
4570 } else {
4571 throw jsonDecoder.mismatch(jsonPath, "ChangeContentOverlay", json);
4572 }
4573 }
4574
4575 @override
4576 Map<String, dynamic> toJson() {
4577 Map<String, dynamic> result = {};
4578 result["type"] = "change";
4579 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList();
4580 return result;
4581 }
4582
4583 @override
4584 String toString() => JSON.encode(toJson());
4585
4586 @override
4587 bool operator ==(other) {
4588 if (other is ChangeContentOverlay) {
4589 return listEqual(
4590 edits, other.edits, (SourceEdit a, SourceEdit b) => a == b);
4591 }
4592 return false;
4593 }
4594
4595 @override
4596 int get hashCode {
4597 int hash = 0;
4598 hash = JenkinsSmiHash.combine(hash, 873118866);
4599 hash = JenkinsSmiHash.combine(hash, edits.hashCode);
4600 return JenkinsSmiHash.finish(hash);
4601 }
4602 }
4603
4604 /**
4605 * completion.getSuggestions params 4028 * completion.getSuggestions params
4606 * 4029 *
4607 * { 4030 * {
4608 * "file": FilePath 4031 * "file": FilePath
4609 * "offset": int 4032 * "offset": int
4610 * } 4033 * }
4611 * 4034 *
4612 * Clients may not extend, implement or mix-in this class. 4035 * Clients may not extend, implement or mix-in this class.
4613 */ 4036 */
4614 class CompletionGetSuggestionsParams implements RequestParams { 4037 class CompletionGetSuggestionsParams implements RequestParams {
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
5006 hash = JenkinsSmiHash.combine(hash, id.hashCode); 4429 hash = JenkinsSmiHash.combine(hash, id.hashCode);
5007 hash = JenkinsSmiHash.combine(hash, replacementOffset.hashCode); 4430 hash = JenkinsSmiHash.combine(hash, replacementOffset.hashCode);
5008 hash = JenkinsSmiHash.combine(hash, replacementLength.hashCode); 4431 hash = JenkinsSmiHash.combine(hash, replacementLength.hashCode);
5009 hash = JenkinsSmiHash.combine(hash, results.hashCode); 4432 hash = JenkinsSmiHash.combine(hash, results.hashCode);
5010 hash = JenkinsSmiHash.combine(hash, isLast.hashCode); 4433 hash = JenkinsSmiHash.combine(hash, isLast.hashCode);
5011 return JenkinsSmiHash.finish(hash); 4434 return JenkinsSmiHash.finish(hash);
5012 } 4435 }
5013 } 4436 }
5014 4437
5015 /** 4438 /**
5016 * CompletionSuggestion 4439 * ContextData
5017 * 4440 *
5018 * { 4441 * {
5019 * "kind": CompletionSuggestionKind 4442 * "name": String
5020 * "relevance": int 4443 * "explicitFileCount": int
5021 * "completion": String 4444 * "implicitFileCount": int
5022 * "selectionOffset": int 4445 * "workItemQueueLength": int
5023 * "selectionLength": int 4446 * "cacheEntryExceptions": List<String>
5024 * "isDeprecated": bool
5025 * "isPotential": bool
5026 * "docSummary": optional String
5027 * "docComplete": optional String
5028 * "declaringType": optional String
5029 * "defaultArgumentListString": optional String
5030 * "defaultArgumentListTextRanges": optional List<int>
5031 * "element": optional Element
5032 * "returnType": optional String
5033 * "parameterNames": optional List<String>
5034 * "parameterTypes": optional List<String>
5035 * "requiredParameterCount": optional int
5036 * "hasNamedParameters": optional bool
5037 * "parameterName": optional String
5038 * "parameterType": optional String
5039 * "importUri": optional String
5040 * } 4447 * }
5041 * 4448 *
5042 * Clients may not extend, implement or mix-in this class. 4449 * Clients may not extend, implement or mix-in this class.
5043 */ 4450 */
5044 class CompletionSuggestion implements HasToJson { 4451 class ContextData implements HasToJson {
5045 CompletionSuggestionKind _kind; 4452 String _name;
5046 4453
5047 int _relevance; 4454 int _explicitFileCount;
5048 4455
5049 String _completion; 4456 int _implicitFileCount;
5050 4457
5051 int _selectionOffset; 4458 int _workItemQueueLength;
5052 4459
5053 int _selectionLength; 4460 List<String> _cacheEntryExceptions;
5054
5055 bool _isDeprecated;
5056
5057 bool _isPotential;
5058
5059 String _docSummary;
5060
5061 String _docComplete;
5062
5063 String _declaringType;
5064
5065 String _defaultArgumentListString;
5066
5067 List<int> _defaultArgumentListTextRanges;
5068
5069 Element _element;
5070
5071 String _returnType;
5072
5073 List<String> _parameterNames;
5074
5075 List<String> _parameterTypes;
5076
5077 int _requiredParameterCount;
5078
5079 bool _hasNamedParameters;
5080
5081 String _parameterName;
5082
5083 String _parameterType;
5084
5085 String _importUri;
5086 4461
5087 /** 4462 /**
5088 * The kind of element being suggested. 4463 * The name of the context.
5089 */ 4464 */
5090 CompletionSuggestionKind get kind => _kind; 4465 String get name => _name;
5091 4466
5092 /** 4467 /**
5093 * The kind of element being suggested. 4468 * The name of the context.
5094 */ 4469 */
5095 void set kind(CompletionSuggestionKind value) { 4470 void set name(String value) {
5096 assert(value != null); 4471 assert(value != null);
5097 this._kind = value; 4472 this._name = value;
5098 } 4473 }
5099 4474
5100 /** 4475 /**
5101 * The relevance of this completion suggestion where a higher number 4476 * Explicitly analyzed files.
5102 * indicates a higher relevance.
5103 */ 4477 */
5104 int get relevance => _relevance; 4478 int get explicitFileCount => _explicitFileCount;
5105 4479
5106 /** 4480 /**
5107 * The relevance of this completion suggestion where a higher number 4481 * Explicitly analyzed files.
5108 * indicates a higher relevance.
5109 */ 4482 */
5110 void set relevance(int value) { 4483 void set explicitFileCount(int value) {
5111 assert(value != null); 4484 assert(value != null);
5112 this._relevance = value; 4485 this._explicitFileCount = value;
5113 } 4486 }
5114 4487
5115 /** 4488 /**
5116 * The identifier to be inserted if the suggestion is selected. If the 4489 * Implicitly analyzed files.
5117 * suggestion is for a method or function, the client might want to
5118 * additionally insert a template for the parameters. The information
5119 * required in order to do so is contained in other fields.
5120 */ 4490 */
5121 String get completion => _completion; 4491 int get implicitFileCount => _implicitFileCount;
5122 4492
5123 /** 4493 /**
5124 * The identifier to be inserted if the suggestion is selected. If the 4494 * Implicitly analyzed files.
5125 * suggestion is for a method or function, the client might want to
5126 * additionally insert a template for the parameters. The information
5127 * required in order to do so is contained in other fields.
5128 */ 4495 */
5129 void set completion(String value) { 4496 void set implicitFileCount(int value) {
5130 assert(value != null); 4497 assert(value != null);
5131 this._completion = value; 4498 this._implicitFileCount = value;
5132 } 4499 }
5133 4500
5134 /** 4501 /**
5135 * The offset, relative to the beginning of the completion, of where the 4502 * The number of work items in the queue.
5136 * selection should be placed after insertion.
5137 */ 4503 */
5138 int get selectionOffset => _selectionOffset; 4504 int get workItemQueueLength => _workItemQueueLength;
5139 4505
5140 /** 4506 /**
5141 * The offset, relative to the beginning of the completion, of where the 4507 * The number of work items in the queue.
5142 * selection should be placed after insertion.
5143 */ 4508 */
5144 void set selectionOffset(int value) { 4509 void set workItemQueueLength(int value) {
5145 assert(value != null); 4510 assert(value != null);
5146 this._selectionOffset = value; 4511 this._workItemQueueLength = value;
5147 } 4512 }
5148 4513
5149 /** 4514 /**
5150 * The number of characters that should be selected after insertion. 4515 * Exceptions associated with cache entries.
5151 */ 4516 */
5152 int get selectionLength => _selectionLength; 4517 List<String> get cacheEntryExceptions => _cacheEntryExceptions;
5153 4518
5154 /** 4519 /**
5155 * The number of characters that should be selected after insertion. 4520 * Exceptions associated with cache entries.
5156 */ 4521 */
5157 void set selectionLength(int value) { 4522 void set cacheEntryExceptions(List<String> value) {
5158 assert(value != null); 4523 assert(value != null);
5159 this._selectionLength = value; 4524 this._cacheEntryExceptions = value;
5160 } 4525 }
5161 4526
5162 /** 4527 ContextData(String name, int explicitFileCount, int implicitFileCount,
5163 * True if the suggested element is deprecated. 4528 int workItemQueueLength, List<String> cacheEntryExceptions) {
5164 */ 4529 this.name = name;
5165 bool get isDeprecated => _isDeprecated; 4530 this.explicitFileCount = explicitFileCount;
5166 4531 this.implicitFileCount = implicitFileCount;
5167 /** 4532 this.workItemQueueLength = workItemQueueLength;
5168 * True if the suggested element is deprecated. 4533 this.cacheEntryExceptions = cacheEntryExceptions;
5169 */
5170 void set isDeprecated(bool value) {
5171 assert(value != null);
5172 this._isDeprecated = value;
5173 } 4534 }
5174 4535
5175 /** 4536 factory ContextData.fromJson(
5176 * True if the element is not known to be valid for the target. This happens
5177 * if the type of the target is dynamic.
5178 */
5179 bool get isPotential => _isPotential;
5180
5181 /**
5182 * True if the element is not known to be valid for the target. This happens
5183 * if the type of the target is dynamic.
5184 */
5185 void set isPotential(bool value) {
5186 assert(value != null);
5187 this._isPotential = value;
5188 }
5189
5190 /**
5191 * An abbreviated version of the Dartdoc associated with the element being
5192 * suggested, This field is omitted if there is no Dartdoc associated with
5193 * the element.
5194 */
5195 String get docSummary => _docSummary;
5196
5197 /**
5198 * An abbreviated version of the Dartdoc associated with the element being
5199 * suggested, This field is omitted if there is no Dartdoc associated with
5200 * the element.
5201 */
5202 void set docSummary(String value) {
5203 this._docSummary = value;
5204 }
5205
5206 /**
5207 * The Dartdoc associated with the element being suggested, This field is
5208 * omitted if there is no Dartdoc associated with the element.
5209 */
5210 String get docComplete => _docComplete;
5211
5212 /**
5213 * The Dartdoc associated with the element being suggested, This field is
5214 * omitted if there is no Dartdoc associated with the element.
5215 */
5216 void set docComplete(String value) {
5217 this._docComplete = value;
5218 }
5219
5220 /**
5221 * The class that declares the element being suggested. This field is omitted
5222 * if the suggested element is not a member of a class.
5223 */
5224 String get declaringType => _declaringType;
5225
5226 /**
5227 * The class that declares the element being suggested. This field is omitted
5228 * if the suggested element is not a member of a class.
5229 */
5230 void set declaringType(String value) {
5231 this._declaringType = value;
5232 }
5233
5234 /**
5235 * A default String for use in generating argument list source contents on
5236 * the client side.
5237 */
5238 String get defaultArgumentListString => _defaultArgumentListString;
5239
5240 /**
5241 * A default String for use in generating argument list source contents on
5242 * the client side.
5243 */
5244 void set defaultArgumentListString(String value) {
5245 this._defaultArgumentListString = value;
5246 }
5247
5248 /**
5249 * Pairs of offsets and lengths describing 'defaultArgumentListString' text
5250 * ranges suitable for use by clients to set up linked edits of default
5251 * argument source contents. For example, given an argument list string 'x,
5252 * y', the corresponding text range [0, 1, 3, 1], indicates two text ranges
5253 * of length 1, starting at offsets 0 and 3. Clients can use these ranges to
5254 * treat the 'x' and 'y' values specially for linked edits.
5255 */
5256 List<int> get defaultArgumentListTextRanges => _defaultArgumentListTextRanges;
5257
5258 /**
5259 * Pairs of offsets and lengths describing 'defaultArgumentListString' text
5260 * ranges suitable for use by clients to set up linked edits of default
5261 * argument source contents. For example, given an argument list string 'x,
5262 * y', the corresponding text range [0, 1, 3, 1], indicates two text ranges
5263 * of length 1, starting at offsets 0 and 3. Clients can use these ranges to
5264 * treat the 'x' and 'y' values specially for linked edits.
5265 */
5266 void set defaultArgumentListTextRanges(List<int> value) {
5267 this._defaultArgumentListTextRanges = value;
5268 }
5269
5270 /**
5271 * Information about the element reference being suggested.
5272 */
5273 Element get element => _element;
5274
5275 /**
5276 * Information about the element reference being suggested.
5277 */
5278 void set element(Element value) {
5279 this._element = value;
5280 }
5281
5282 /**
5283 * The return type of the getter, function or method or the type of the field
5284 * being suggested. This field is omitted if the suggested element is not a
5285 * getter, function or method.
5286 */
5287 String get returnType => _returnType;
5288
5289 /**
5290 * The return type of the getter, function or method or the type of the field
5291 * being suggested. This field is omitted if the suggested element is not a
5292 * getter, function or method.
5293 */
5294 void set returnType(String value) {
5295 this._returnType = value;
5296 }
5297
5298 /**
5299 * The names of the parameters of the function or method being suggested.
5300 * This field is omitted if the suggested element is not a setter, function
5301 * or method.
5302 */
5303 List<String> get parameterNames => _parameterNames;
5304
5305 /**
5306 * The names of the parameters of the function or method being suggested.
5307 * This field is omitted if the suggested element is not a setter, function
5308 * or method.
5309 */
5310 void set parameterNames(List<String> value) {
5311 this._parameterNames = value;
5312 }
5313
5314 /**
5315 * The types of the parameters of the function or method being suggested.
5316 * This field is omitted if the parameterNames field is omitted.
5317 */
5318 List<String> get parameterTypes => _parameterTypes;
5319
5320 /**
5321 * The types of the parameters of the function or method being suggested.
5322 * This field is omitted if the parameterNames field is omitted.
5323 */
5324 void set parameterTypes(List<String> value) {
5325 this._parameterTypes = value;
5326 }
5327
5328 /**
5329 * The number of required parameters for the function or method being
5330 * suggested. This field is omitted if the parameterNames field is omitted.
5331 */
5332 int get requiredParameterCount => _requiredParameterCount;
5333
5334 /**
5335 * The number of required parameters for the function or method being
5336 * suggested. This field is omitted if the parameterNames field is omitted.
5337 */
5338 void set requiredParameterCount(int value) {
5339 this._requiredParameterCount = value;
5340 }
5341
5342 /**
5343 * True if the function or method being suggested has at least one named
5344 * parameter. This field is omitted if the parameterNames field is omitted.
5345 */
5346 bool get hasNamedParameters => _hasNamedParameters;
5347
5348 /**
5349 * True if the function or method being suggested has at least one named
5350 * parameter. This field is omitted if the parameterNames field is omitted.
5351 */
5352 void set hasNamedParameters(bool value) {
5353 this._hasNamedParameters = value;
5354 }
5355
5356 /**
5357 * The name of the optional parameter being suggested. This field is omitted
5358 * if the suggestion is not the addition of an optional argument within an
5359 * argument list.
5360 */
5361 String get parameterName => _parameterName;
5362
5363 /**
5364 * The name of the optional parameter being suggested. This field is omitted
5365 * if the suggestion is not the addition of an optional argument within an
5366 * argument list.
5367 */
5368 void set parameterName(String value) {
5369 this._parameterName = value;
5370 }
5371
5372 /**
5373 * The type of the options parameter being suggested. This field is omitted
5374 * if the parameterName field is omitted.
5375 */
5376 String get parameterType => _parameterType;
5377
5378 /**
5379 * The type of the options parameter being suggested. This field is omitted
5380 * if the parameterName field is omitted.
5381 */
5382 void set parameterType(String value) {
5383 this._parameterType = value;
5384 }
5385
5386 /**
5387 * The import to be added if the suggestion is out of scope and needs an
5388 * import to be added to be in scope.
5389 */
5390 String get importUri => _importUri;
5391
5392 /**
5393 * The import to be added if the suggestion is out of scope and needs an
5394 * import to be added to be in scope.
5395 */
5396 void set importUri(String value) {
5397 this._importUri = value;
5398 }
5399
5400 CompletionSuggestion(
5401 CompletionSuggestionKind kind,
5402 int relevance,
5403 String completion,
5404 int selectionOffset,
5405 int selectionLength,
5406 bool isDeprecated,
5407 bool isPotential,
5408 {String docSummary,
5409 String docComplete,
5410 String declaringType,
5411 String defaultArgumentListString,
5412 List<int> defaultArgumentListTextRanges,
5413 Element element,
5414 String returnType,
5415 List<String> parameterNames,
5416 List<String> parameterTypes,
5417 int requiredParameterCount,
5418 bool hasNamedParameters,
5419 String parameterName,
5420 String parameterType,
5421 String importUri}) {
5422 this.kind = kind;
5423 this.relevance = relevance;
5424 this.completion = completion;
5425 this.selectionOffset = selectionOffset;
5426 this.selectionLength = selectionLength;
5427 this.isDeprecated = isDeprecated;
5428 this.isPotential = isPotential;
5429 this.docSummary = docSummary;
5430 this.docComplete = docComplete;
5431 this.declaringType = declaringType;
5432 this.defaultArgumentListString = defaultArgumentListString;
5433 this.defaultArgumentListTextRanges = defaultArgumentListTextRanges;
5434 this.element = element;
5435 this.returnType = returnType;
5436 this.parameterNames = parameterNames;
5437 this.parameterTypes = parameterTypes;
5438 this.requiredParameterCount = requiredParameterCount;
5439 this.hasNamedParameters = hasNamedParameters;
5440 this.parameterName = parameterName;
5441 this.parameterType = parameterType;
5442 this.importUri = importUri;
5443 }
5444
5445 factory CompletionSuggestion.fromJson(
5446 JsonDecoder jsonDecoder, String jsonPath, Object json) { 4537 JsonDecoder jsonDecoder, String jsonPath, Object json) {
5447 if (json == null) { 4538 if (json == null) {
5448 json = {}; 4539 json = {};
5449 } 4540 }
5450 if (json is Map) { 4541 if (json is Map) {
5451 CompletionSuggestionKind kind; 4542 String name;
5452 if (json.containsKey("kind")) { 4543 if (json.containsKey("name")) {
5453 kind = new CompletionSuggestionKind.fromJson( 4544 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
5454 jsonDecoder, jsonPath + ".kind", json["kind"]);
5455 } else { 4545 } else {
5456 throw jsonDecoder.mismatch(jsonPath, "kind"); 4546 throw jsonDecoder.mismatch(jsonPath, "name");
5457 } 4547 }
5458 int relevance; 4548 int explicitFileCount;
5459 if (json.containsKey("relevance")) { 4549 if (json.containsKey("explicitFileCount")) {
5460 relevance = 4550 explicitFileCount = jsonDecoder.decodeInt(
5461 jsonDecoder.decodeInt(jsonPath + ".relevance", json["relevance"]); 4551 jsonPath + ".explicitFileCount", json["explicitFileCount"]);
5462 } else { 4552 } else {
5463 throw jsonDecoder.mismatch(jsonPath, "relevance"); 4553 throw jsonDecoder.mismatch(jsonPath, "explicitFileCount");
5464 } 4554 }
5465 String completion; 4555 int implicitFileCount;
5466 if (json.containsKey("completion")) { 4556 if (json.containsKey("implicitFileCount")) {
5467 completion = jsonDecoder.decodeString( 4557 implicitFileCount = jsonDecoder.decodeInt(
5468 jsonPath + ".completion", json["completion"]); 4558 jsonPath + ".implicitFileCount", json["implicitFileCount"]);
5469 } else { 4559 } else {
5470 throw jsonDecoder.mismatch(jsonPath, "completion"); 4560 throw jsonDecoder.mismatch(jsonPath, "implicitFileCount");
5471 } 4561 }
5472 int selectionOffset; 4562 int workItemQueueLength;
5473 if (json.containsKey("selectionOffset")) { 4563 if (json.containsKey("workItemQueueLength")) {
5474 selectionOffset = jsonDecoder.decodeInt( 4564 workItemQueueLength = jsonDecoder.decodeInt(
5475 jsonPath + ".selectionOffset", json["selectionOffset"]); 4565 jsonPath + ".workItemQueueLength", json["workItemQueueLength"]);
5476 } else { 4566 } else {
5477 throw jsonDecoder.mismatch(jsonPath, "selectionOffset"); 4567 throw jsonDecoder.mismatch(jsonPath, "workItemQueueLength");
5478 } 4568 }
5479 int selectionLength; 4569 List<String> cacheEntryExceptions;
5480 if (json.containsKey("selectionLength")) { 4570 if (json.containsKey("cacheEntryExceptions")) {
5481 selectionLength = jsonDecoder.decodeInt( 4571 cacheEntryExceptions = jsonDecoder.decodeList(
5482 jsonPath + ".selectionLength", json["selectionLength"]); 4572 jsonPath + ".cacheEntryExceptions",
4573 json["cacheEntryExceptions"],
4574 jsonDecoder.decodeString);
5483 } else { 4575 } else {
5484 throw jsonDecoder.mismatch(jsonPath, "selectionLength"); 4576 throw jsonDecoder.mismatch(jsonPath, "cacheEntryExceptions");
5485 } 4577 }
5486 bool isDeprecated; 4578 return new ContextData(name, explicitFileCount, implicitFileCount,
5487 if (json.containsKey("isDeprecated")) { 4579 workItemQueueLength, cacheEntryExceptions);
5488 isDeprecated = jsonDecoder.decodeBool(
5489 jsonPath + ".isDeprecated", json["isDeprecated"]);
5490 } else {
5491 throw jsonDecoder.mismatch(jsonPath, "isDeprecated");
5492 }
5493 bool isPotential;
5494 if (json.containsKey("isPotential")) {
5495 isPotential = jsonDecoder.decodeBool(
5496 jsonPath + ".isPotential", json["isPotential"]);
5497 } else {
5498 throw jsonDecoder.mismatch(jsonPath, "isPotential");
5499 }
5500 String docSummary;
5501 if (json.containsKey("docSummary")) {
5502 docSummary = jsonDecoder.decodeString(
5503 jsonPath + ".docSummary", json["docSummary"]);
5504 }
5505 String docComplete;
5506 if (json.containsKey("docComplete")) {
5507 docComplete = jsonDecoder.decodeString(
5508 jsonPath + ".docComplete", json["docComplete"]);
5509 }
5510 String declaringType;
5511 if (json.containsKey("declaringType")) {
5512 declaringType = jsonDecoder.decodeString(
5513 jsonPath + ".declaringType", json["declaringType"]);
5514 }
5515 String defaultArgumentListString;
5516 if (json.containsKey("defaultArgumentListString")) {
5517 defaultArgumentListString = jsonDecoder.decodeString(
5518 jsonPath + ".defaultArgumentListString",
5519 json["defaultArgumentListString"]);
5520 }
5521 List<int> defaultArgumentListTextRanges;
5522 if (json.containsKey("defaultArgumentListTextRanges")) {
5523 defaultArgumentListTextRanges = jsonDecoder.decodeList(
5524 jsonPath + ".defaultArgumentListTextRanges",
5525 json["defaultArgumentListTextRanges"],
5526 jsonDecoder.decodeInt);
5527 }
5528 Element element;
5529 if (json.containsKey("element")) {
5530 element = new Element.fromJson(
5531 jsonDecoder, jsonPath + ".element", json["element"]);
5532 }
5533 String returnType;
5534 if (json.containsKey("returnType")) {
5535 returnType = jsonDecoder.decodeString(
5536 jsonPath + ".returnType", json["returnType"]);
5537 }
5538 List<String> parameterNames;
5539 if (json.containsKey("parameterNames")) {
5540 parameterNames = jsonDecoder.decodeList(jsonPath + ".parameterNames",
5541 json["parameterNames"], jsonDecoder.decodeString);
5542 }
5543 List<String> parameterTypes;
5544 if (json.containsKey("parameterTypes")) {
5545 parameterTypes = jsonDecoder.decodeList(jsonPath + ".parameterTypes",
5546 json["parameterTypes"], jsonDecoder.decodeString);
5547 }
5548 int requiredParameterCount;
5549 if (json.containsKey("requiredParameterCount")) {
5550 requiredParameterCount = jsonDecoder.decodeInt(
5551 jsonPath + ".requiredParameterCount",
5552 json["requiredParameterCount"]);
5553 }
5554 bool hasNamedParameters;
5555 if (json.containsKey("hasNamedParameters")) {
5556 hasNamedParameters = jsonDecoder.decodeBool(
5557 jsonPath + ".hasNamedParameters", json["hasNamedParameters"]);
5558 }
5559 String parameterName;
5560 if (json.containsKey("parameterName")) {
5561 parameterName = jsonDecoder.decodeString(
5562 jsonPath + ".parameterName", json["parameterName"]);
5563 }
5564 String parameterType;
5565 if (json.containsKey("parameterType")) {
5566 parameterType = jsonDecoder.decodeString(
5567 jsonPath + ".parameterType", json["parameterType"]);
5568 }
5569 String importUri;
5570 if (json.containsKey("importUri")) {
5571 importUri = jsonDecoder.decodeString(
5572 jsonPath + ".importUri", json["importUri"]);
5573 }
5574 return new CompletionSuggestion(kind, relevance, completion,
5575 selectionOffset, selectionLength, isDeprecated, isPotential,
5576 docSummary: docSummary,
5577 docComplete: docComplete,
5578 declaringType: declaringType,
5579 defaultArgumentListString: defaultArgumentListString,
5580 defaultArgumentListTextRanges: defaultArgumentListTextRanges,
5581 element: element,
5582 returnType: returnType,
5583 parameterNames: parameterNames,
5584 parameterTypes: parameterTypes,
5585 requiredParameterCount: requiredParameterCount,
5586 hasNamedParameters: hasNamedParameters,
5587 parameterName: parameterName,
5588 parameterType: parameterType,
5589 importUri: importUri);
5590 } else { 4580 } else {
5591 throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestion", json); 4581 throw jsonDecoder.mismatch(jsonPath, "ContextData", json);
5592 } 4582 }
5593 } 4583 }
5594 4584
5595 @override 4585 @override
5596 Map<String, dynamic> toJson() { 4586 Map<String, dynamic> toJson() {
5597 Map<String, dynamic> result = {}; 4587 Map<String, dynamic> result = {};
5598 result["kind"] = kind.toJson(); 4588 result["name"] = name;
5599 result["relevance"] = relevance; 4589 result["explicitFileCount"] = explicitFileCount;
5600 result["completion"] = completion; 4590 result["implicitFileCount"] = implicitFileCount;
5601 result["selectionOffset"] = selectionOffset; 4591 result["workItemQueueLength"] = workItemQueueLength;
5602 result["selectionLength"] = selectionLength; 4592 result["cacheEntryExceptions"] = cacheEntryExceptions;
5603 result["isDeprecated"] = isDeprecated;
5604 result["isPotential"] = isPotential;
5605 if (docSummary != null) {
5606 result["docSummary"] = docSummary;
5607 }
5608 if (docComplete != null) {
5609 result["docComplete"] = docComplete;
5610 }
5611 if (declaringType != null) {
5612 result["declaringType"] = declaringType;
5613 }
5614 if (defaultArgumentListString != null) {
5615 result["defaultArgumentListString"] = defaultArgumentListString;
5616 }
5617 if (defaultArgumentListTextRanges != null) {
5618 result["defaultArgumentListTextRanges"] = defaultArgumentListTextRanges;
5619 }
5620 if (element != null) {
5621 result["element"] = element.toJson();
5622 }
5623 if (returnType != null) {
5624 result["returnType"] = returnType;
5625 }
5626 if (parameterNames != null) {
5627 result["parameterNames"] = parameterNames;
5628 }
5629 if (parameterTypes != null) {
5630 result["parameterTypes"] = parameterTypes;
5631 }
5632 if (requiredParameterCount != null) {
5633 result["requiredParameterCount"] = requiredParameterCount;
5634 }
5635 if (hasNamedParameters != null) {
5636 result["hasNamedParameters"] = hasNamedParameters;
5637 }
5638 if (parameterName != null) {
5639 result["parameterName"] = parameterName;
5640 }
5641 if (parameterType != null) {
5642 result["parameterType"] = parameterType;
5643 }
5644 if (importUri != null) {
5645 result["importUri"] = importUri;
5646 }
5647 return result; 4593 return result;
5648 } 4594 }
5649 4595
5650 @override 4596 @override
5651 String toString() => JSON.encode(toJson()); 4597 String toString() => JSON.encode(toJson());
5652 4598
5653 @override 4599 @override
5654 bool operator ==(other) { 4600 bool operator ==(other) {
5655 if (other is CompletionSuggestion) { 4601 if (other is ContextData) {
5656 return kind == other.kind && 4602 return name == other.name &&
5657 relevance == other.relevance && 4603 explicitFileCount == other.explicitFileCount &&
5658 completion == other.completion && 4604 implicitFileCount == other.implicitFileCount &&
5659 selectionOffset == other.selectionOffset && 4605 workItemQueueLength == other.workItemQueueLength &&
5660 selectionLength == other.selectionLength && 4606 listEqual(cacheEntryExceptions, other.cacheEntryExceptions,
5661 isDeprecated == other.isDeprecated && 4607 (String a, String b) => a == b);
5662 isPotential == other.isPotential &&
5663 docSummary == other.docSummary &&
5664 docComplete == other.docComplete &&
5665 declaringType == other.declaringType &&
5666 defaultArgumentListString == other.defaultArgumentListString &&
5667 listEqual(defaultArgumentListTextRanges,
5668 other.defaultArgumentListTextRanges, (int a, int b) => a == b) &&
5669 element == other.element &&
5670 returnType == other.returnType &&
5671 listEqual(parameterNames, other.parameterNames,
5672 (String a, String b) => a == b) &&
5673 listEqual(parameterTypes, other.parameterTypes,
5674 (String a, String b) => a == b) &&
5675 requiredParameterCount == other.requiredParameterCount &&
5676 hasNamedParameters == other.hasNamedParameters &&
5677 parameterName == other.parameterName &&
5678 parameterType == other.parameterType &&
5679 importUri == other.importUri;
5680 } 4608 }
5681 return false; 4609 return false;
5682 } 4610 }
5683 4611
5684 @override 4612 @override
5685 int get hashCode { 4613 int get hashCode {
5686 int hash = 0; 4614 int hash = 0;
5687 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
5688 hash = JenkinsSmiHash.combine(hash, relevance.hashCode);
5689 hash = JenkinsSmiHash.combine(hash, completion.hashCode);
5690 hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode);
5691 hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode);
5692 hash = JenkinsSmiHash.combine(hash, isDeprecated.hashCode);
5693 hash = JenkinsSmiHash.combine(hash, isPotential.hashCode);
5694 hash = JenkinsSmiHash.combine(hash, docSummary.hashCode);
5695 hash = JenkinsSmiHash.combine(hash, docComplete.hashCode);
5696 hash = JenkinsSmiHash.combine(hash, declaringType.hashCode);
5697 hash = JenkinsSmiHash.combine(hash, defaultArgumentListString.hashCode);
5698 hash = JenkinsSmiHash.combine(hash, defaultArgumentListTextRanges.hashCode);
5699 hash = JenkinsSmiHash.combine(hash, element.hashCode);
5700 hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
5701 hash = JenkinsSmiHash.combine(hash, parameterNames.hashCode);
5702 hash = JenkinsSmiHash.combine(hash, parameterTypes.hashCode);
5703 hash = JenkinsSmiHash.combine(hash, requiredParameterCount.hashCode);
5704 hash = JenkinsSmiHash.combine(hash, hasNamedParameters.hashCode);
5705 hash = JenkinsSmiHash.combine(hash, parameterName.hashCode);
5706 hash = JenkinsSmiHash.combine(hash, parameterType.hashCode);
5707 hash = JenkinsSmiHash.combine(hash, importUri.hashCode);
5708 return JenkinsSmiHash.finish(hash);
5709 }
5710 }
5711
5712 /**
5713 * CompletionSuggestionKind
5714 *
5715 * enum {
5716 * ARGUMENT_LIST
5717 * IMPORT
5718 * IDENTIFIER
5719 * INVOCATION
5720 * KEYWORD
5721 * NAMED_ARGUMENT
5722 * OPTIONAL_ARGUMENT
5723 * PARAMETER
5724 * }
5725 *
5726 * Clients may not extend, implement or mix-in this class.
5727 */
5728 class CompletionSuggestionKind implements Enum {
5729 /**
5730 * A list of arguments for the method or function that is being invoked. For
5731 * this suggestion kind, the completion field is a textual representation of
5732 * the invocation and the parameterNames, parameterTypes, and
5733 * requiredParameterCount attributes are defined.
5734 */
5735 static const CompletionSuggestionKind ARGUMENT_LIST =
5736 const CompletionSuggestionKind._("ARGUMENT_LIST");
5737
5738 static const CompletionSuggestionKind IMPORT =
5739 const CompletionSuggestionKind._("IMPORT");
5740
5741 /**
5742 * The element identifier should be inserted at the completion location. For
5743 * example "someMethod" in import 'myLib.dart' show someMethod; . For
5744 * suggestions of this kind, the element attribute is defined and the
5745 * completion field is the element's identifier.
5746 */
5747 static const CompletionSuggestionKind IDENTIFIER =
5748 const CompletionSuggestionKind._("IDENTIFIER");
5749
5750 /**
5751 * The element is being invoked at the completion location. For example,
5752 * "someMethod" in x.someMethod(); . For suggestions of this kind, the
5753 * element attribute is defined and the completion field is the element's
5754 * identifier.
5755 */
5756 static const CompletionSuggestionKind INVOCATION =
5757 const CompletionSuggestionKind._("INVOCATION");
5758
5759 /**
5760 * A keyword is being suggested. For suggestions of this kind, the completion
5761 * is the keyword.
5762 */
5763 static const CompletionSuggestionKind KEYWORD =
5764 const CompletionSuggestionKind._("KEYWORD");
5765
5766 /**
5767 * A named argument for the current callsite is being suggested. For
5768 * suggestions of this kind, the completion is the named argument identifier
5769 * including a trailing ':' and space.
5770 */
5771 static const CompletionSuggestionKind NAMED_ARGUMENT =
5772 const CompletionSuggestionKind._("NAMED_ARGUMENT");
5773
5774 static const CompletionSuggestionKind OPTIONAL_ARGUMENT =
5775 const CompletionSuggestionKind._("OPTIONAL_ARGUMENT");
5776
5777 static const CompletionSuggestionKind PARAMETER =
5778 const CompletionSuggestionKind._("PARAMETER");
5779
5780 /**
5781 * A list containing all of the enum values that are defined.
5782 */
5783 static const List<CompletionSuggestionKind> VALUES =
5784 const <CompletionSuggestionKind>[
5785 ARGUMENT_LIST,
5786 IMPORT,
5787 IDENTIFIER,
5788 INVOCATION,
5789 KEYWORD,
5790 NAMED_ARGUMENT,
5791 OPTIONAL_ARGUMENT,
5792 PARAMETER
5793 ];
5794
5795 @override
5796 final String name;
5797
5798 const CompletionSuggestionKind._(this.name);
5799
5800 factory CompletionSuggestionKind(String name) {
5801 switch (name) {
5802 case "ARGUMENT_LIST":
5803 return ARGUMENT_LIST;
5804 case "IMPORT":
5805 return IMPORT;
5806 case "IDENTIFIER":
5807 return IDENTIFIER;
5808 case "INVOCATION":
5809 return INVOCATION;
5810 case "KEYWORD":
5811 return KEYWORD;
5812 case "NAMED_ARGUMENT":
5813 return NAMED_ARGUMENT;
5814 case "OPTIONAL_ARGUMENT":
5815 return OPTIONAL_ARGUMENT;
5816 case "PARAMETER":
5817 return PARAMETER;
5818 }
5819 throw new Exception('Illegal enum value: $name');
5820 }
5821
5822 factory CompletionSuggestionKind.fromJson(
5823 JsonDecoder jsonDecoder, String jsonPath, Object json) {
5824 if (json is String) {
5825 try {
5826 return new CompletionSuggestionKind(json);
5827 } catch (_) {
5828 // Fall through
5829 }
5830 }
5831 throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestionKind", json);
5832 }
5833
5834 @override
5835 String toString() => "CompletionSuggestionKind.$name";
5836
5837 String toJson() => name;
5838 }
5839
5840 /**
5841 * ContextData
5842 *
5843 * {
5844 * "name": String
5845 * "explicitFileCount": int
5846 * "implicitFileCount": int
5847 * "workItemQueueLength": int
5848 * "cacheEntryExceptions": List<String>
5849 * }
5850 *
5851 * Clients may not extend, implement or mix-in this class.
5852 */
5853 class ContextData implements HasToJson {
5854 String _name;
5855
5856 int _explicitFileCount;
5857
5858 int _implicitFileCount;
5859
5860 int _workItemQueueLength;
5861
5862 List<String> _cacheEntryExceptions;
5863
5864 /**
5865 * The name of the context.
5866 */
5867 String get name => _name;
5868
5869 /**
5870 * The name of the context.
5871 */
5872 void set name(String value) {
5873 assert(value != null);
5874 this._name = value;
5875 }
5876
5877 /**
5878 * Explicitly analyzed files.
5879 */
5880 int get explicitFileCount => _explicitFileCount;
5881
5882 /**
5883 * Explicitly analyzed files.
5884 */
5885 void set explicitFileCount(int value) {
5886 assert(value != null);
5887 this._explicitFileCount = value;
5888 }
5889
5890 /**
5891 * Implicitly analyzed files.
5892 */
5893 int get implicitFileCount => _implicitFileCount;
5894
5895 /**
5896 * Implicitly analyzed files.
5897 */
5898 void set implicitFileCount(int value) {
5899 assert(value != null);
5900 this._implicitFileCount = value;
5901 }
5902
5903 /**
5904 * The number of work items in the queue.
5905 */
5906 int get workItemQueueLength => _workItemQueueLength;
5907
5908 /**
5909 * The number of work items in the queue.
5910 */
5911 void set workItemQueueLength(int value) {
5912 assert(value != null);
5913 this._workItemQueueLength = value;
5914 }
5915
5916 /**
5917 * Exceptions associated with cache entries.
5918 */
5919 List<String> get cacheEntryExceptions => _cacheEntryExceptions;
5920
5921 /**
5922 * Exceptions associated with cache entries.
5923 */
5924 void set cacheEntryExceptions(List<String> value) {
5925 assert(value != null);
5926 this._cacheEntryExceptions = value;
5927 }
5928
5929 ContextData(String name, int explicitFileCount, int implicitFileCount,
5930 int workItemQueueLength, List<String> cacheEntryExceptions) {
5931 this.name = name;
5932 this.explicitFileCount = explicitFileCount;
5933 this.implicitFileCount = implicitFileCount;
5934 this.workItemQueueLength = workItemQueueLength;
5935 this.cacheEntryExceptions = cacheEntryExceptions;
5936 }
5937
5938 factory ContextData.fromJson(
5939 JsonDecoder jsonDecoder, String jsonPath, Object json) {
5940 if (json == null) {
5941 json = {};
5942 }
5943 if (json is Map) {
5944 String name;
5945 if (json.containsKey("name")) {
5946 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
5947 } else {
5948 throw jsonDecoder.mismatch(jsonPath, "name");
5949 }
5950 int explicitFileCount;
5951 if (json.containsKey("explicitFileCount")) {
5952 explicitFileCount = jsonDecoder.decodeInt(
5953 jsonPath + ".explicitFileCount", json["explicitFileCount"]);
5954 } else {
5955 throw jsonDecoder.mismatch(jsonPath, "explicitFileCount");
5956 }
5957 int implicitFileCount;
5958 if (json.containsKey("implicitFileCount")) {
5959 implicitFileCount = jsonDecoder.decodeInt(
5960 jsonPath + ".implicitFileCount", json["implicitFileCount"]);
5961 } else {
5962 throw jsonDecoder.mismatch(jsonPath, "implicitFileCount");
5963 }
5964 int workItemQueueLength;
5965 if (json.containsKey("workItemQueueLength")) {
5966 workItemQueueLength = jsonDecoder.decodeInt(
5967 jsonPath + ".workItemQueueLength", json["workItemQueueLength"]);
5968 } else {
5969 throw jsonDecoder.mismatch(jsonPath, "workItemQueueLength");
5970 }
5971 List<String> cacheEntryExceptions;
5972 if (json.containsKey("cacheEntryExceptions")) {
5973 cacheEntryExceptions = jsonDecoder.decodeList(
5974 jsonPath + ".cacheEntryExceptions",
5975 json["cacheEntryExceptions"],
5976 jsonDecoder.decodeString);
5977 } else {
5978 throw jsonDecoder.mismatch(jsonPath, "cacheEntryExceptions");
5979 }
5980 return new ContextData(name, explicitFileCount, implicitFileCount,
5981 workItemQueueLength, cacheEntryExceptions);
5982 } else {
5983 throw jsonDecoder.mismatch(jsonPath, "ContextData", json);
5984 }
5985 }
5986
5987 @override
5988 Map<String, dynamic> toJson() {
5989 Map<String, dynamic> result = {};
5990 result["name"] = name;
5991 result["explicitFileCount"] = explicitFileCount;
5992 result["implicitFileCount"] = implicitFileCount;
5993 result["workItemQueueLength"] = workItemQueueLength;
5994 result["cacheEntryExceptions"] = cacheEntryExceptions;
5995 return result;
5996 }
5997
5998 @override
5999 String toString() => JSON.encode(toJson());
6000
6001 @override
6002 bool operator ==(other) {
6003 if (other is ContextData) {
6004 return name == other.name &&
6005 explicitFileCount == other.explicitFileCount &&
6006 implicitFileCount == other.implicitFileCount &&
6007 workItemQueueLength == other.workItemQueueLength &&
6008 listEqual(cacheEntryExceptions, other.cacheEntryExceptions,
6009 (String a, String b) => a == b);
6010 }
6011 return false;
6012 }
6013
6014 @override
6015 int get hashCode {
6016 int hash = 0;
6017 hash = JenkinsSmiHash.combine(hash, name.hashCode); 4615 hash = JenkinsSmiHash.combine(hash, name.hashCode);
6018 hash = JenkinsSmiHash.combine(hash, explicitFileCount.hashCode); 4616 hash = JenkinsSmiHash.combine(hash, explicitFileCount.hashCode);
6019 hash = JenkinsSmiHash.combine(hash, implicitFileCount.hashCode); 4617 hash = JenkinsSmiHash.combine(hash, implicitFileCount.hashCode);
6020 hash = JenkinsSmiHash.combine(hash, workItemQueueLength.hashCode); 4618 hash = JenkinsSmiHash.combine(hash, workItemQueueLength.hashCode);
6021 hash = JenkinsSmiHash.combine(hash, cacheEntryExceptions.hashCode); 4619 hash = JenkinsSmiHash.combine(hash, cacheEntryExceptions.hashCode);
6022 return JenkinsSmiHash.finish(hash); 4620 return JenkinsSmiHash.finish(hash);
6023 } 4621 }
6024 } 4622 }
6025 4623
6026 /** 4624 /**
(...skipping 1881 matching lines...) Expand 10 before | Expand all | Expand 10 after
7908 @override 6506 @override
7909 String toString() => JSON.encode(toJson()); 6507 String toString() => JSON.encode(toJson());
7910 6508
7911 @override 6509 @override
7912 bool operator ==(other) { 6510 bool operator ==(other) {
7913 if (other is EditGetStatementCompletionParams) { 6511 if (other is EditGetStatementCompletionParams) {
7914 return file == other.file && offset == other.offset; 6512 return file == other.file && offset == other.offset;
7915 } 6513 }
7916 return false; 6514 return false;
7917 } 6515 }
7918
7919 @override
7920 int get hashCode {
7921 int hash = 0;
7922 hash = JenkinsSmiHash.combine(hash, file.hashCode);
7923 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
7924 return JenkinsSmiHash.finish(hash);
7925 }
7926 }
7927
7928 /**
7929 * edit.getStatementCompletion result
7930 *
7931 * {
7932 * "change": SourceChange
7933 * "whitespaceOnly": bool
7934 * }
7935 *
7936 * Clients may not extend, implement or mix-in this class.
7937 */
7938 class EditGetStatementCompletionResult implements ResponseResult {
7939 SourceChange _change;
7940
7941 bool _whitespaceOnly;
7942
7943 /**
7944 * The change to be applied in order to complete the statement.
7945 */
7946 SourceChange get change => _change;
7947
7948 /**
7949 * The change to be applied in order to complete the statement.
7950 */
7951 void set change(SourceChange value) {
7952 assert(value != null);
7953 this._change = value;
7954 }
7955
7956 /**
7957 * Will be true if the change contains nothing but whitespace characters, or
7958 * is empty.
7959 */
7960 bool get whitespaceOnly => _whitespaceOnly;
7961
7962 /**
7963 * Will be true if the change contains nothing but whitespace characters, or
7964 * is empty.
7965 */
7966 void set whitespaceOnly(bool value) {
7967 assert(value != null);
7968 this._whitespaceOnly = value;
7969 }
7970
7971 EditGetStatementCompletionResult(SourceChange change, bool whitespaceOnly) {
7972 this.change = change;
7973 this.whitespaceOnly = whitespaceOnly;
7974 }
7975
7976 factory EditGetStatementCompletionResult.fromJson(
7977 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7978 if (json == null) {
7979 json = {};
7980 }
7981 if (json is Map) {
7982 SourceChange change;
7983 if (json.containsKey("change")) {
7984 change = new SourceChange.fromJson(
7985 jsonDecoder, jsonPath + ".change", json["change"]);
7986 } else {
7987 throw jsonDecoder.mismatch(jsonPath, "change");
7988 }
7989 bool whitespaceOnly;
7990 if (json.containsKey("whitespaceOnly")) {
7991 whitespaceOnly = jsonDecoder.decodeBool(
7992 jsonPath + ".whitespaceOnly", json["whitespaceOnly"]);
7993 } else {
7994 throw jsonDecoder.mismatch(jsonPath, "whitespaceOnly");
7995 }
7996 return new EditGetStatementCompletionResult(change, whitespaceOnly);
7997 } else {
7998 throw jsonDecoder.mismatch(
7999 jsonPath, "edit.getStatementCompletion result", json);
8000 }
8001 }
8002
8003 factory EditGetStatementCompletionResult.fromResponse(Response response) {
8004 return new EditGetStatementCompletionResult.fromJson(
8005 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
8006 "result",
8007 response.result);
8008 }
8009
8010 @override
8011 Map<String, dynamic> toJson() {
8012 Map<String, dynamic> result = {};
8013 result["change"] = change.toJson();
8014 result["whitespaceOnly"] = whitespaceOnly;
8015 return result;
8016 }
8017
8018 @override
8019 Response toResponse(String id) {
8020 return new Response(id, result: toJson());
8021 }
8022
8023 @override
8024 String toString() => JSON.encode(toJson());
8025
8026 @override
8027 bool operator ==(other) {
8028 if (other is EditGetStatementCompletionResult) {
8029 return change == other.change && whitespaceOnly == other.whitespaceOnly;
8030 }
8031 return false;
8032 }
8033
8034 @override
8035 int get hashCode {
8036 int hash = 0;
8037 hash = JenkinsSmiHash.combine(hash, change.hashCode);
8038 hash = JenkinsSmiHash.combine(hash, whitespaceOnly.hashCode);
8039 return JenkinsSmiHash.finish(hash);
8040 }
8041 }
8042
8043 /**
8044 * edit.organizeDirectives params
8045 *
8046 * {
8047 * "file": FilePath
8048 * }
8049 *
8050 * Clients may not extend, implement or mix-in this class.
8051 */
8052 class EditOrganizeDirectivesParams implements RequestParams {
8053 String _file;
8054
8055 /**
8056 * The Dart file to organize directives in.
8057 */
8058 String get file => _file;
8059
8060 /**
8061 * The Dart file to organize directives in.
8062 */
8063 void set file(String value) {
8064 assert(value != null);
8065 this._file = value;
8066 }
8067
8068 EditOrganizeDirectivesParams(String file) {
8069 this.file = file;
8070 }
8071
8072 factory EditOrganizeDirectivesParams.fromJson(
8073 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8074 if (json == null) {
8075 json = {};
8076 }
8077 if (json is Map) {
8078 String file;
8079 if (json.containsKey("file")) {
8080 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
8081 } else {
8082 throw jsonDecoder.mismatch(jsonPath, "file");
8083 }
8084 return new EditOrganizeDirectivesParams(file);
8085 } else {
8086 throw jsonDecoder.mismatch(
8087 jsonPath, "edit.organizeDirectives params", json);
8088 }
8089 }
8090
8091 factory EditOrganizeDirectivesParams.fromRequest(Request request) {
8092 return new EditOrganizeDirectivesParams.fromJson(
8093 new RequestDecoder(request), "params", request.params);
8094 }
8095
8096 @override
8097 Map<String, dynamic> toJson() {
8098 Map<String, dynamic> result = {};
8099 result["file"] = file;
8100 return result;
8101 }
8102
8103 @override
8104 Request toRequest(String id) {
8105 return new Request(id, "edit.organizeDirectives", toJson());
8106 }
8107
8108 @override
8109 String toString() => JSON.encode(toJson());
8110
8111 @override
8112 bool operator ==(other) {
8113 if (other is EditOrganizeDirectivesParams) {
8114 return file == other.file;
8115 }
8116 return false;
8117 }
8118
8119 @override
8120 int get hashCode {
8121 int hash = 0;
8122 hash = JenkinsSmiHash.combine(hash, file.hashCode);
8123 return JenkinsSmiHash.finish(hash);
8124 }
8125 }
8126
8127 /**
8128 * edit.organizeDirectives result
8129 *
8130 * {
8131 * "edit": SourceFileEdit
8132 * }
8133 *
8134 * Clients may not extend, implement or mix-in this class.
8135 */
8136 class EditOrganizeDirectivesResult implements ResponseResult {
8137 SourceFileEdit _edit;
8138
8139 /**
8140 * The file edit that is to be applied to the given file to effect the
8141 * organizing.
8142 */
8143 SourceFileEdit get edit => _edit;
8144
8145 /**
8146 * The file edit that is to be applied to the given file to effect the
8147 * organizing.
8148 */
8149 void set edit(SourceFileEdit value) {
8150 assert(value != null);
8151 this._edit = value;
8152 }
8153
8154 EditOrganizeDirectivesResult(SourceFileEdit edit) {
8155 this.edit = edit;
8156 }
8157
8158 factory EditOrganizeDirectivesResult.fromJson(
8159 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8160 if (json == null) {
8161 json = {};
8162 }
8163 if (json is Map) {
8164 SourceFileEdit edit;
8165 if (json.containsKey("edit")) {
8166 edit = new SourceFileEdit.fromJson(
8167 jsonDecoder, jsonPath + ".edit", json["edit"]);
8168 } else {
8169 throw jsonDecoder.mismatch(jsonPath, "edit");
8170 }
8171 return new EditOrganizeDirectivesResult(edit);
8172 } else {
8173 throw jsonDecoder.mismatch(
8174 jsonPath, "edit.organizeDirectives result", json);
8175 }
8176 }
8177
8178 factory EditOrganizeDirectivesResult.fromResponse(Response response) {
8179 return new EditOrganizeDirectivesResult.fromJson(
8180 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
8181 "result",
8182 response.result);
8183 }
8184
8185 @override
8186 Map<String, dynamic> toJson() {
8187 Map<String, dynamic> result = {};
8188 result["edit"] = edit.toJson();
8189 return result;
8190 }
8191
8192 @override
8193 Response toResponse(String id) {
8194 return new Response(id, result: toJson());
8195 }
8196
8197 @override
8198 String toString() => JSON.encode(toJson());
8199
8200 @override
8201 bool operator ==(other) {
8202 if (other is EditOrganizeDirectivesResult) {
8203 return edit == other.edit;
8204 }
8205 return false;
8206 }
8207
8208 @override
8209 int get hashCode {
8210 int hash = 0;
8211 hash = JenkinsSmiHash.combine(hash, edit.hashCode);
8212 return JenkinsSmiHash.finish(hash);
8213 }
8214 }
8215
8216 /**
8217 * edit.sortMembers params
8218 *
8219 * {
8220 * "file": FilePath
8221 * }
8222 *
8223 * Clients may not extend, implement or mix-in this class.
8224 */
8225 class EditSortMembersParams implements RequestParams {
8226 String _file;
8227
8228 /**
8229 * The Dart file to sort.
8230 */
8231 String get file => _file;
8232
8233 /**
8234 * The Dart file to sort.
8235 */
8236 void set file(String value) {
8237 assert(value != null);
8238 this._file = value;
8239 }
8240
8241 EditSortMembersParams(String file) {
8242 this.file = file;
8243 }
8244
8245 factory EditSortMembersParams.fromJson(
8246 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8247 if (json == null) {
8248 json = {};
8249 }
8250 if (json is Map) {
8251 String file;
8252 if (json.containsKey("file")) {
8253 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
8254 } else {
8255 throw jsonDecoder.mismatch(jsonPath, "file");
8256 }
8257 return new EditSortMembersParams(file);
8258 } else {
8259 throw jsonDecoder.mismatch(jsonPath, "edit.sortMembers params", json);
8260 }
8261 }
8262
8263 factory EditSortMembersParams.fromRequest(Request request) {
8264 return new EditSortMembersParams.fromJson(
8265 new RequestDecoder(request), "params", request.params);
8266 }
8267
8268 @override
8269 Map<String, dynamic> toJson() {
8270 Map<String, dynamic> result = {};
8271 result["file"] = file;
8272 return result;
8273 }
8274
8275 @override
8276 Request toRequest(String id) {
8277 return new Request(id, "edit.sortMembers", toJson());
8278 }
8279
8280 @override
8281 String toString() => JSON.encode(toJson());
8282
8283 @override
8284 bool operator ==(other) {
8285 if (other is EditSortMembersParams) {
8286 return file == other.file;
8287 }
8288 return false;
8289 }
8290
8291 @override
8292 int get hashCode {
8293 int hash = 0;
8294 hash = JenkinsSmiHash.combine(hash, file.hashCode);
8295 return JenkinsSmiHash.finish(hash);
8296 }
8297 }
8298
8299 /**
8300 * edit.sortMembers result
8301 *
8302 * {
8303 * "edit": SourceFileEdit
8304 * }
8305 *
8306 * Clients may not extend, implement or mix-in this class.
8307 */
8308 class EditSortMembersResult implements ResponseResult {
8309 SourceFileEdit _edit;
8310
8311 /**
8312 * The file edit that is to be applied to the given file to effect the
8313 * sorting.
8314 */
8315 SourceFileEdit get edit => _edit;
8316
8317 /**
8318 * The file edit that is to be applied to the given file to effect the
8319 * sorting.
8320 */
8321 void set edit(SourceFileEdit value) {
8322 assert(value != null);
8323 this._edit = value;
8324 }
8325
8326 EditSortMembersResult(SourceFileEdit edit) {
8327 this.edit = edit;
8328 }
8329
8330 factory EditSortMembersResult.fromJson(
8331 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8332 if (json == null) {
8333 json = {};
8334 }
8335 if (json is Map) {
8336 SourceFileEdit edit;
8337 if (json.containsKey("edit")) {
8338 edit = new SourceFileEdit.fromJson(
8339 jsonDecoder, jsonPath + ".edit", json["edit"]);
8340 } else {
8341 throw jsonDecoder.mismatch(jsonPath, "edit");
8342 }
8343 return new EditSortMembersResult(edit);
8344 } else {
8345 throw jsonDecoder.mismatch(jsonPath, "edit.sortMembers result", json);
8346 }
8347 }
8348
8349 factory EditSortMembersResult.fromResponse(Response response) {
8350 return new EditSortMembersResult.fromJson(
8351 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
8352 "result",
8353 response.result);
8354 }
8355
8356 @override
8357 Map<String, dynamic> toJson() {
8358 Map<String, dynamic> result = {};
8359 result["edit"] = edit.toJson();
8360 return result;
8361 }
8362
8363 @override
8364 Response toResponse(String id) {
8365 return new Response(id, result: toJson());
8366 }
8367
8368 @override
8369 String toString() => JSON.encode(toJson());
8370
8371 @override
8372 bool operator ==(other) {
8373 if (other is EditSortMembersResult) {
8374 return edit == other.edit;
8375 }
8376 return false;
8377 }
8378
8379 @override
8380 int get hashCode {
8381 int hash = 0;
8382 hash = JenkinsSmiHash.combine(hash, edit.hashCode);
8383 return JenkinsSmiHash.finish(hash);
8384 }
8385 }
8386
8387 /**
8388 * Element
8389 *
8390 * {
8391 * "kind": ElementKind
8392 * "name": String
8393 * "location": optional Location
8394 * "flags": int
8395 * "parameters": optional String
8396 * "returnType": optional String
8397 * "typeParameters": optional String
8398 * }
8399 *
8400 * Clients may not extend, implement or mix-in this class.
8401 */
8402 class Element implements HasToJson {
8403 static const int FLAG_ABSTRACT = 0x01;
8404 static const int FLAG_CONST = 0x02;
8405 static const int FLAG_FINAL = 0x04;
8406 static const int FLAG_STATIC = 0x08;
8407 static const int FLAG_PRIVATE = 0x10;
8408 static const int FLAG_DEPRECATED = 0x20;
8409
8410 static int makeFlags(
8411 {isAbstract: false,
8412 isConst: false,
8413 isFinal: false,
8414 isStatic: false,
8415 isPrivate: false,
8416 isDeprecated: false}) {
8417 int flags = 0;
8418 if (isAbstract) flags |= FLAG_ABSTRACT;
8419 if (isConst) flags |= FLAG_CONST;
8420 if (isFinal) flags |= FLAG_FINAL;
8421 if (isStatic) flags |= FLAG_STATIC;
8422 if (isPrivate) flags |= FLAG_PRIVATE;
8423 if (isDeprecated) flags |= FLAG_DEPRECATED;
8424 return flags;
8425 }
8426
8427 ElementKind _kind;
8428
8429 String _name;
8430
8431 Location _location;
8432
8433 int _flags;
8434
8435 String _parameters;
8436
8437 String _returnType;
8438
8439 String _typeParameters;
8440
8441 /**
8442 * The kind of the element.
8443 */
8444 ElementKind get kind => _kind;
8445
8446 /**
8447 * The kind of the element.
8448 */
8449 void set kind(ElementKind value) {
8450 assert(value != null);
8451 this._kind = value;
8452 }
8453
8454 /**
8455 * The name of the element. This is typically used as the label in the
8456 * outline.
8457 */
8458 String get name => _name;
8459
8460 /**
8461 * The name of the element. This is typically used as the label in the
8462 * outline.
8463 */
8464 void set name(String value) {
8465 assert(value != null);
8466 this._name = value;
8467 }
8468
8469 /**
8470 * The location of the name in the declaration of the element.
8471 */
8472 Location get location => _location;
8473
8474 /**
8475 * The location of the name in the declaration of the element.
8476 */
8477 void set location(Location value) {
8478 this._location = value;
8479 }
8480
8481 /**
8482 * A bit-map containing the following flags:
8483 *
8484 * - 0x01 - set if the element is explicitly or implicitly abstract
8485 * - 0x02 - set if the element was declared to be ‘const’
8486 * - 0x04 - set if the element was declared to be ‘final’
8487 * - 0x08 - set if the element is a static member of a class or is a
8488 * top-level function or field
8489 * - 0x10 - set if the element is private
8490 * - 0x20 - set if the element is deprecated
8491 */
8492 int get flags => _flags;
8493
8494 /**
8495 * A bit-map containing the following flags:
8496 *
8497 * - 0x01 - set if the element is explicitly or implicitly abstract
8498 * - 0x02 - set if the element was declared to be ‘const’
8499 * - 0x04 - set if the element was declared to be ‘final’
8500 * - 0x08 - set if the element is a static member of a class or is a
8501 * top-level function or field
8502 * - 0x10 - set if the element is private
8503 * - 0x20 - set if the element is deprecated
8504 */
8505 void set flags(int value) {
8506 assert(value != null);
8507 this._flags = value;
8508 }
8509
8510 /**
8511 * The parameter list for the element. If the element is not a method or
8512 * function this field will not be defined. If the element doesn't have
8513 * parameters (e.g. getter), this field will not be defined. If the element
8514 * has zero parameters, this field will have a value of "()".
8515 */
8516 String get parameters => _parameters;
8517
8518 /**
8519 * The parameter list for the element. If the element is not a method or
8520 * function this field will not be defined. If the element doesn't have
8521 * parameters (e.g. getter), this field will not be defined. If the element
8522 * has zero parameters, this field will have a value of "()".
8523 */
8524 void set parameters(String value) {
8525 this._parameters = value;
8526 }
8527
8528 /**
8529 * The return type of the element. If the element is not a method or function
8530 * this field will not be defined. If the element does not have a declared
8531 * return type, this field will contain an empty string.
8532 */
8533 String get returnType => _returnType;
8534
8535 /**
8536 * The return type of the element. If the element is not a method or function
8537 * this field will not be defined. If the element does not have a declared
8538 * return type, this field will contain an empty string.
8539 */
8540 void set returnType(String value) {
8541 this._returnType = value;
8542 }
8543
8544 /**
8545 * The type parameter list for the element. If the element doesn't have type
8546 * parameters, this field will not be defined.
8547 */
8548 String get typeParameters => _typeParameters;
8549
8550 /**
8551 * The type parameter list for the element. If the element doesn't have type
8552 * parameters, this field will not be defined.
8553 */
8554 void set typeParameters(String value) {
8555 this._typeParameters = value;
8556 }
8557
8558 Element(ElementKind kind, String name, int flags,
8559 {Location location,
8560 String parameters,
8561 String returnType,
8562 String typeParameters}) {
8563 this.kind = kind;
8564 this.name = name;
8565 this.location = location;
8566 this.flags = flags;
8567 this.parameters = parameters;
8568 this.returnType = returnType;
8569 this.typeParameters = typeParameters;
8570 }
8571
8572 factory Element.fromJson(
8573 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8574 if (json == null) {
8575 json = {};
8576 }
8577 if (json is Map) {
8578 ElementKind kind;
8579 if (json.containsKey("kind")) {
8580 kind = new ElementKind.fromJson(
8581 jsonDecoder, jsonPath + ".kind", json["kind"]);
8582 } else {
8583 throw jsonDecoder.mismatch(jsonPath, "kind");
8584 }
8585 String name;
8586 if (json.containsKey("name")) {
8587 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
8588 } else {
8589 throw jsonDecoder.mismatch(jsonPath, "name");
8590 }
8591 Location location;
8592 if (json.containsKey("location")) {
8593 location = new Location.fromJson(
8594 jsonDecoder, jsonPath + ".location", json["location"]);
8595 }
8596 int flags;
8597 if (json.containsKey("flags")) {
8598 flags = jsonDecoder.decodeInt(jsonPath + ".flags", json["flags"]);
8599 } else {
8600 throw jsonDecoder.mismatch(jsonPath, "flags");
8601 }
8602 String parameters;
8603 if (json.containsKey("parameters")) {
8604 parameters = jsonDecoder.decodeString(
8605 jsonPath + ".parameters", json["parameters"]);
8606 }
8607 String returnType;
8608 if (json.containsKey("returnType")) {
8609 returnType = jsonDecoder.decodeString(
8610 jsonPath + ".returnType", json["returnType"]);
8611 }
8612 String typeParameters;
8613 if (json.containsKey("typeParameters")) {
8614 typeParameters = jsonDecoder.decodeString(
8615 jsonPath + ".typeParameters", json["typeParameters"]);
8616 }
8617 return new Element(kind, name, flags,
8618 location: location,
8619 parameters: parameters,
8620 returnType: returnType,
8621 typeParameters: typeParameters);
8622 } else {
8623 throw jsonDecoder.mismatch(jsonPath, "Element", json);
8624 }
8625 }
8626
8627 bool get isAbstract => (flags & FLAG_ABSTRACT) != 0;
8628 bool get isConst => (flags & FLAG_CONST) != 0;
8629 bool get isFinal => (flags & FLAG_FINAL) != 0;
8630 bool get isStatic => (flags & FLAG_STATIC) != 0;
8631 bool get isPrivate => (flags & FLAG_PRIVATE) != 0;
8632 bool get isDeprecated => (flags & FLAG_DEPRECATED) != 0;
8633
8634 @override
8635 Map<String, dynamic> toJson() {
8636 Map<String, dynamic> result = {};
8637 result["kind"] = kind.toJson();
8638 result["name"] = name;
8639 if (location != null) {
8640 result["location"] = location.toJson();
8641 }
8642 result["flags"] = flags;
8643 if (parameters != null) {
8644 result["parameters"] = parameters;
8645 }
8646 if (returnType != null) {
8647 result["returnType"] = returnType;
8648 }
8649 if (typeParameters != null) {
8650 result["typeParameters"] = typeParameters;
8651 }
8652 return result;
8653 }
8654
8655 @override
8656 String toString() => JSON.encode(toJson());
8657
8658 @override
8659 bool operator ==(other) {
8660 if (other is Element) {
8661 return kind == other.kind &&
8662 name == other.name &&
8663 location == other.location &&
8664 flags == other.flags &&
8665 parameters == other.parameters &&
8666 returnType == other.returnType &&
8667 typeParameters == other.typeParameters;
8668 }
8669 return false;
8670 }
8671
8672 @override
8673 int get hashCode {
8674 int hash = 0;
8675 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
8676 hash = JenkinsSmiHash.combine(hash, name.hashCode);
8677 hash = JenkinsSmiHash.combine(hash, location.hashCode);
8678 hash = JenkinsSmiHash.combine(hash, flags.hashCode);
8679 hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
8680 hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
8681 hash = JenkinsSmiHash.combine(hash, typeParameters.hashCode);
8682 return JenkinsSmiHash.finish(hash);
8683 }
8684 }
8685
8686 /**
8687 * ElementKind
8688 *
8689 * enum {
8690 * CLASS
8691 * CLASS_TYPE_ALIAS
8692 * COMPILATION_UNIT
8693 * CONSTRUCTOR
8694 * ENUM
8695 * ENUM_CONSTANT
8696 * FIELD
8697 * FILE
8698 * FUNCTION
8699 * FUNCTION_TYPE_ALIAS
8700 * GETTER
8701 * LABEL
8702 * LIBRARY
8703 * LOCAL_VARIABLE
8704 * METHOD
8705 * PARAMETER
8706 * PREFIX
8707 * SETTER
8708 * TOP_LEVEL_VARIABLE
8709 * TYPE_PARAMETER
8710 * UNIT_TEST_GROUP
8711 * UNIT_TEST_TEST
8712 * UNKNOWN
8713 * }
8714 *
8715 * Clients may not extend, implement or mix-in this class.
8716 */
8717 class ElementKind implements Enum {
8718 static const ElementKind CLASS = const ElementKind._("CLASS");
8719
8720 static const ElementKind CLASS_TYPE_ALIAS =
8721 const ElementKind._("CLASS_TYPE_ALIAS");
8722
8723 static const ElementKind COMPILATION_UNIT =
8724 const ElementKind._("COMPILATION_UNIT");
8725
8726 static const ElementKind CONSTRUCTOR = const ElementKind._("CONSTRUCTOR");
8727
8728 static const ElementKind ENUM = const ElementKind._("ENUM");
8729
8730 static const ElementKind ENUM_CONSTANT = const ElementKind._("ENUM_CONSTANT");
8731
8732 static const ElementKind FIELD = const ElementKind._("FIELD");
8733
8734 static const ElementKind FILE = const ElementKind._("FILE");
8735
8736 static const ElementKind FUNCTION = const ElementKind._("FUNCTION");
8737
8738 static const ElementKind FUNCTION_TYPE_ALIAS =
8739 const ElementKind._("FUNCTION_TYPE_ALIAS");
8740
8741 static const ElementKind GETTER = const ElementKind._("GETTER");
8742
8743 static const ElementKind LABEL = const ElementKind._("LABEL");
8744
8745 static const ElementKind LIBRARY = const ElementKind._("LIBRARY");
8746
8747 static const ElementKind LOCAL_VARIABLE =
8748 const ElementKind._("LOCAL_VARIABLE");
8749
8750 static const ElementKind METHOD = const ElementKind._("METHOD");
8751
8752 static const ElementKind PARAMETER = const ElementKind._("PARAMETER");
8753
8754 static const ElementKind PREFIX = const ElementKind._("PREFIX");
8755
8756 static const ElementKind SETTER = const ElementKind._("SETTER");
8757
8758 static const ElementKind TOP_LEVEL_VARIABLE =
8759 const ElementKind._("TOP_LEVEL_VARIABLE");
8760
8761 static const ElementKind TYPE_PARAMETER =
8762 const ElementKind._("TYPE_PARAMETER");
8763
8764 /**
8765 * Deprecated: support for tests was removed.
8766 */
8767 static const ElementKind UNIT_TEST_GROUP =
8768 const ElementKind._("UNIT_TEST_GROUP");
8769
8770 /**
8771 * Deprecated: support for tests was removed.
8772 */
8773 static const ElementKind UNIT_TEST_TEST =
8774 const ElementKind._("UNIT_TEST_TEST");
8775
8776 static const ElementKind UNKNOWN = const ElementKind._("UNKNOWN");
8777
8778 /**
8779 * A list containing all of the enum values that are defined.
8780 */
8781 static const List<ElementKind> VALUES = const <ElementKind>[
8782 CLASS,
8783 CLASS_TYPE_ALIAS,
8784 COMPILATION_UNIT,
8785 CONSTRUCTOR,
8786 ENUM,
8787 ENUM_CONSTANT,
8788 FIELD,
8789 FILE,
8790 FUNCTION,
8791 FUNCTION_TYPE_ALIAS,
8792 GETTER,
8793 LABEL,
8794 LIBRARY,
8795 LOCAL_VARIABLE,
8796 METHOD,
8797 PARAMETER,
8798 PREFIX,
8799 SETTER,
8800 TOP_LEVEL_VARIABLE,
8801 TYPE_PARAMETER,
8802 UNIT_TEST_GROUP,
8803 UNIT_TEST_TEST,
8804 UNKNOWN
8805 ];
8806
8807 @override
8808 final String name;
8809
8810 const ElementKind._(this.name);
8811
8812 factory ElementKind(String name) {
8813 switch (name) {
8814 case "CLASS":
8815 return CLASS;
8816 case "CLASS_TYPE_ALIAS":
8817 return CLASS_TYPE_ALIAS;
8818 case "COMPILATION_UNIT":
8819 return COMPILATION_UNIT;
8820 case "CONSTRUCTOR":
8821 return CONSTRUCTOR;
8822 case "ENUM":
8823 return ENUM;
8824 case "ENUM_CONSTANT":
8825 return ENUM_CONSTANT;
8826 case "FIELD":
8827 return FIELD;
8828 case "FILE":
8829 return FILE;
8830 case "FUNCTION":
8831 return FUNCTION;
8832 case "FUNCTION_TYPE_ALIAS":
8833 return FUNCTION_TYPE_ALIAS;
8834 case "GETTER":
8835 return GETTER;
8836 case "LABEL":
8837 return LABEL;
8838 case "LIBRARY":
8839 return LIBRARY;
8840 case "LOCAL_VARIABLE":
8841 return LOCAL_VARIABLE;
8842 case "METHOD":
8843 return METHOD;
8844 case "PARAMETER":
8845 return PARAMETER;
8846 case "PREFIX":
8847 return PREFIX;
8848 case "SETTER":
8849 return SETTER;
8850 case "TOP_LEVEL_VARIABLE":
8851 return TOP_LEVEL_VARIABLE;
8852 case "TYPE_PARAMETER":
8853 return TYPE_PARAMETER;
8854 case "UNIT_TEST_GROUP":
8855 return UNIT_TEST_GROUP;
8856 case "UNIT_TEST_TEST":
8857 return UNIT_TEST_TEST;
8858 case "UNKNOWN":
8859 return UNKNOWN;
8860 }
8861 throw new Exception('Illegal enum value: $name');
8862 }
8863
8864 factory ElementKind.fromJson(
8865 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8866 if (json is String) {
8867 try {
8868 return new ElementKind(json);
8869 } catch (_) {
8870 // Fall through
8871 }
8872 }
8873 throw jsonDecoder.mismatch(jsonPath, "ElementKind", json);
8874 }
8875
8876 @override
8877 String toString() => "ElementKind.$name";
8878
8879 String toJson() => name;
8880 }
8881
8882 /**
8883 * ExecutableFile
8884 *
8885 * {
8886 * "file": FilePath
8887 * "kind": ExecutableKind
8888 * }
8889 *
8890 * Clients may not extend, implement or mix-in this class.
8891 */
8892 class ExecutableFile implements HasToJson {
8893 String _file;
8894
8895 ExecutableKind _kind;
8896
8897 /**
8898 * The path of the executable file.
8899 */
8900 String get file => _file;
8901
8902 /**
8903 * The path of the executable file.
8904 */
8905 void set file(String value) {
8906 assert(value != null);
8907 this._file = value;
8908 }
8909
8910 /**
8911 * The kind of the executable file.
8912 */
8913 ExecutableKind get kind => _kind;
8914
8915 /**
8916 * The kind of the executable file.
8917 */
8918 void set kind(ExecutableKind value) {
8919 assert(value != null);
8920 this._kind = value;
8921 }
8922
8923 ExecutableFile(String file, ExecutableKind kind) {
8924 this.file = file;
8925 this.kind = kind;
8926 }
8927
8928 factory ExecutableFile.fromJson(
8929 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8930 if (json == null) {
8931 json = {};
8932 }
8933 if (json is Map) {
8934 String file;
8935 if (json.containsKey("file")) {
8936 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
8937 } else {
8938 throw jsonDecoder.mismatch(jsonPath, "file");
8939 }
8940 ExecutableKind kind;
8941 if (json.containsKey("kind")) {
8942 kind = new ExecutableKind.fromJson(
8943 jsonDecoder, jsonPath + ".kind", json["kind"]);
8944 } else {
8945 throw jsonDecoder.mismatch(jsonPath, "kind");
8946 }
8947 return new ExecutableFile(file, kind);
8948 } else {
8949 throw jsonDecoder.mismatch(jsonPath, "ExecutableFile", json);
8950 }
8951 }
8952
8953 @override
8954 Map<String, dynamic> toJson() {
8955 Map<String, dynamic> result = {};
8956 result["file"] = file;
8957 result["kind"] = kind.toJson();
8958 return result;
8959 }
8960
8961 @override
8962 String toString() => JSON.encode(toJson());
8963
8964 @override
8965 bool operator ==(other) {
8966 if (other is ExecutableFile) {
8967 return file == other.file && kind == other.kind;
8968 }
8969 return false;
8970 }
8971
8972 @override
8973 int get hashCode {
8974 int hash = 0;
8975 hash = JenkinsSmiHash.combine(hash, file.hashCode);
8976 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
8977 return JenkinsSmiHash.finish(hash);
8978 }
8979 }
8980
8981 /**
8982 * ExecutableKind
8983 *
8984 * enum {
8985 * CLIENT
8986 * EITHER
8987 * NOT_EXECUTABLE
8988 * SERVER
8989 * }
8990 *
8991 * Clients may not extend, implement or mix-in this class.
8992 */
8993 class ExecutableKind implements Enum {
8994 static const ExecutableKind CLIENT = const ExecutableKind._("CLIENT");
8995
8996 static const ExecutableKind EITHER = const ExecutableKind._("EITHER");
8997
8998 static const ExecutableKind NOT_EXECUTABLE =
8999 const ExecutableKind._("NOT_EXECUTABLE");
9000
9001 static const ExecutableKind SERVER = const ExecutableKind._("SERVER");
9002
9003 /**
9004 * A list containing all of the enum values that are defined.
9005 */
9006 static const List<ExecutableKind> VALUES = const <ExecutableKind>[
9007 CLIENT,
9008 EITHER,
9009 NOT_EXECUTABLE,
9010 SERVER
9011 ];
9012
9013 @override
9014 final String name;
9015
9016 const ExecutableKind._(this.name);
9017
9018 factory ExecutableKind(String name) {
9019 switch (name) {
9020 case "CLIENT":
9021 return CLIENT;
9022 case "EITHER":
9023 return EITHER;
9024 case "NOT_EXECUTABLE":
9025 return NOT_EXECUTABLE;
9026 case "SERVER":
9027 return SERVER;
9028 }
9029 throw new Exception('Illegal enum value: $name');
9030 }
9031
9032 factory ExecutableKind.fromJson(
9033 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9034 if (json is String) {
9035 try {
9036 return new ExecutableKind(json);
9037 } catch (_) {
9038 // Fall through
9039 }
9040 }
9041 throw jsonDecoder.mismatch(jsonPath, "ExecutableKind", json);
9042 }
9043
9044 @override
9045 String toString() => "ExecutableKind.$name";
9046
9047 String toJson() => name;
9048 }
9049
9050 /**
9051 * execution.createContext params
9052 *
9053 * {
9054 * "contextRoot": FilePath
9055 * }
9056 *
9057 * Clients may not extend, implement or mix-in this class.
9058 */
9059 class ExecutionCreateContextParams implements RequestParams {
9060 String _contextRoot;
9061
9062 /**
9063 * The path of the Dart or HTML file that will be launched, or the path of
9064 * the directory containing the file.
9065 */
9066 String get contextRoot => _contextRoot;
9067
9068 /**
9069 * The path of the Dart or HTML file that will be launched, or the path of
9070 * the directory containing the file.
9071 */
9072 void set contextRoot(String value) {
9073 assert(value != null);
9074 this._contextRoot = value;
9075 }
9076
9077 ExecutionCreateContextParams(String contextRoot) {
9078 this.contextRoot = contextRoot;
9079 }
9080
9081 factory ExecutionCreateContextParams.fromJson(
9082 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9083 if (json == null) {
9084 json = {};
9085 }
9086 if (json is Map) {
9087 String contextRoot;
9088 if (json.containsKey("contextRoot")) {
9089 contextRoot = jsonDecoder.decodeString(
9090 jsonPath + ".contextRoot", json["contextRoot"]);
9091 } else {
9092 throw jsonDecoder.mismatch(jsonPath, "contextRoot");
9093 }
9094 return new ExecutionCreateContextParams(contextRoot);
9095 } else {
9096 throw jsonDecoder.mismatch(
9097 jsonPath, "execution.createContext params", json);
9098 }
9099 }
9100
9101 factory ExecutionCreateContextParams.fromRequest(Request request) {
9102 return new ExecutionCreateContextParams.fromJson(
9103 new RequestDecoder(request), "params", request.params);
9104 }
9105
9106 @override
9107 Map<String, dynamic> toJson() {
9108 Map<String, dynamic> result = {};
9109 result["contextRoot"] = contextRoot;
9110 return result;
9111 }
9112
9113 @override
9114 Request toRequest(String id) {
9115 return new Request(id, "execution.createContext", toJson());
9116 }
9117
9118 @override
9119 String toString() => JSON.encode(toJson());
9120
9121 @override
9122 bool operator ==(other) {
9123 if (other is ExecutionCreateContextParams) {
9124 return contextRoot == other.contextRoot;
9125 }
9126 return false;
9127 }
9128
9129 @override
9130 int get hashCode {
9131 int hash = 0;
9132 hash = JenkinsSmiHash.combine(hash, contextRoot.hashCode);
9133 return JenkinsSmiHash.finish(hash);
9134 }
9135 }
9136
9137 /**
9138 * execution.createContext result
9139 *
9140 * {
9141 * "id": ExecutionContextId
9142 * }
9143 *
9144 * Clients may not extend, implement or mix-in this class.
9145 */
9146 class ExecutionCreateContextResult implements ResponseResult {
9147 String _id;
9148
9149 /**
9150 * The identifier used to refer to the execution context that was created.
9151 */
9152 String get id => _id;
9153
9154 /**
9155 * The identifier used to refer to the execution context that was created.
9156 */
9157 void set id(String value) {
9158 assert(value != null);
9159 this._id = value;
9160 }
9161
9162 ExecutionCreateContextResult(String id) {
9163 this.id = id;
9164 }
9165
9166 factory ExecutionCreateContextResult.fromJson(
9167 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9168 if (json == null) {
9169 json = {};
9170 }
9171 if (json is Map) {
9172 String id;
9173 if (json.containsKey("id")) {
9174 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
9175 } else {
9176 throw jsonDecoder.mismatch(jsonPath, "id");
9177 }
9178 return new ExecutionCreateContextResult(id);
9179 } else {
9180 throw jsonDecoder.mismatch(
9181 jsonPath, "execution.createContext result", json);
9182 }
9183 }
9184
9185 factory ExecutionCreateContextResult.fromResponse(Response response) {
9186 return new ExecutionCreateContextResult.fromJson(
9187 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
9188 "result",
9189 response.result);
9190 }
9191
9192 @override
9193 Map<String, dynamic> toJson() {
9194 Map<String, dynamic> result = {};
9195 result["id"] = id;
9196 return result;
9197 }
9198
9199 @override
9200 Response toResponse(String id) {
9201 return new Response(id, result: toJson());
9202 }
9203
9204 @override
9205 String toString() => JSON.encode(toJson());
9206
9207 @override
9208 bool operator ==(other) {
9209 if (other is ExecutionCreateContextResult) {
9210 return id == other.id;
9211 }
9212 return false;
9213 }
9214
9215 @override
9216 int get hashCode {
9217 int hash = 0;
9218 hash = JenkinsSmiHash.combine(hash, id.hashCode);
9219 return JenkinsSmiHash.finish(hash);
9220 }
9221 }
9222
9223 /**
9224 * execution.deleteContext params
9225 *
9226 * {
9227 * "id": ExecutionContextId
9228 * }
9229 *
9230 * Clients may not extend, implement or mix-in this class.
9231 */
9232 class ExecutionDeleteContextParams implements RequestParams {
9233 String _id;
9234
9235 /**
9236 * The identifier of the execution context that is to be deleted.
9237 */
9238 String get id => _id;
9239
9240 /**
9241 * The identifier of the execution context that is to be deleted.
9242 */
9243 void set id(String value) {
9244 assert(value != null);
9245 this._id = value;
9246 }
9247
9248 ExecutionDeleteContextParams(String id) {
9249 this.id = id;
9250 }
9251
9252 factory ExecutionDeleteContextParams.fromJson(
9253 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9254 if (json == null) {
9255 json = {};
9256 }
9257 if (json is Map) {
9258 String id;
9259 if (json.containsKey("id")) {
9260 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
9261 } else {
9262 throw jsonDecoder.mismatch(jsonPath, "id");
9263 }
9264 return new ExecutionDeleteContextParams(id);
9265 } else {
9266 throw jsonDecoder.mismatch(
9267 jsonPath, "execution.deleteContext params", json);
9268 }
9269 }
9270
9271 factory ExecutionDeleteContextParams.fromRequest(Request request) {
9272 return new ExecutionDeleteContextParams.fromJson(
9273 new RequestDecoder(request), "params", request.params);
9274 }
9275
9276 @override
9277 Map<String, dynamic> toJson() {
9278 Map<String, dynamic> result = {};
9279 result["id"] = id;
9280 return result;
9281 }
9282
9283 @override
9284 Request toRequest(String id) {
9285 return new Request(id, "execution.deleteContext", toJson());
9286 }
9287
9288 @override
9289 String toString() => JSON.encode(toJson());
9290
9291 @override
9292 bool operator ==(other) {
9293 if (other is ExecutionDeleteContextParams) {
9294 return id == other.id;
9295 }
9296 return false;
9297 }
9298
9299 @override
9300 int get hashCode {
9301 int hash = 0;
9302 hash = JenkinsSmiHash.combine(hash, id.hashCode);
9303 return JenkinsSmiHash.finish(hash);
9304 }
9305 }
9306
9307 /**
9308 * execution.deleteContext result
9309 *
9310 * Clients may not extend, implement or mix-in this class.
9311 */
9312 class ExecutionDeleteContextResult implements ResponseResult {
9313 @override
9314 Map<String, dynamic> toJson() => <String, dynamic>{};
9315
9316 @override
9317 Response toResponse(String id) {
9318 return new Response(id, result: null);
9319 }
9320
9321 @override
9322 bool operator ==(other) {
9323 if (other is ExecutionDeleteContextResult) {
9324 return true;
9325 }
9326 return false;
9327 }
9328
9329 @override
9330 int get hashCode {
9331 return 479954425;
9332 }
9333 }
9334
9335 /**
9336 * execution.launchData params
9337 *
9338 * {
9339 * "file": FilePath
9340 * "kind": optional ExecutableKind
9341 * "referencedFiles": optional List<FilePath>
9342 * }
9343 *
9344 * Clients may not extend, implement or mix-in this class.
9345 */
9346 class ExecutionLaunchDataParams implements HasToJson {
9347 String _file;
9348
9349 ExecutableKind _kind;
9350
9351 List<String> _referencedFiles;
9352
9353 /**
9354 * The file for which launch data is being provided. This will either be a
9355 * Dart library or an HTML file.
9356 */
9357 String get file => _file;
9358
9359 /**
9360 * The file for which launch data is being provided. This will either be a
9361 * Dart library or an HTML file.
9362 */
9363 void set file(String value) {
9364 assert(value != null);
9365 this._file = value;
9366 }
9367
9368 /**
9369 * The kind of the executable file. This field is omitted if the file is not
9370 * a Dart file.
9371 */
9372 ExecutableKind get kind => _kind;
9373
9374 /**
9375 * The kind of the executable file. This field is omitted if the file is not
9376 * a Dart file.
9377 */
9378 void set kind(ExecutableKind value) {
9379 this._kind = value;
9380 }
9381
9382 /**
9383 * A list of the Dart files that are referenced by the file. This field is
9384 * omitted if the file is not an HTML file.
9385 */
9386 List<String> get referencedFiles => _referencedFiles;
9387
9388 /**
9389 * A list of the Dart files that are referenced by the file. This field is
9390 * omitted if the file is not an HTML file.
9391 */
9392 void set referencedFiles(List<String> value) {
9393 this._referencedFiles = value;
9394 }
9395
9396 ExecutionLaunchDataParams(String file,
9397 {ExecutableKind kind, List<String> referencedFiles}) {
9398 this.file = file;
9399 this.kind = kind;
9400 this.referencedFiles = referencedFiles;
9401 }
9402
9403 factory ExecutionLaunchDataParams.fromJson(
9404 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9405 if (json == null) {
9406 json = {};
9407 }
9408 if (json is Map) {
9409 String file;
9410 if (json.containsKey("file")) {
9411 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
9412 } else {
9413 throw jsonDecoder.mismatch(jsonPath, "file");
9414 }
9415 ExecutableKind kind;
9416 if (json.containsKey("kind")) {
9417 kind = new ExecutableKind.fromJson(
9418 jsonDecoder, jsonPath + ".kind", json["kind"]);
9419 }
9420 List<String> referencedFiles;
9421 if (json.containsKey("referencedFiles")) {
9422 referencedFiles = jsonDecoder.decodeList(jsonPath + ".referencedFiles",
9423 json["referencedFiles"], jsonDecoder.decodeString);
9424 }
9425 return new ExecutionLaunchDataParams(file,
9426 kind: kind, referencedFiles: referencedFiles);
9427 } else {
9428 throw jsonDecoder.mismatch(jsonPath, "execution.launchData params", json);
9429 }
9430 }
9431
9432 factory ExecutionLaunchDataParams.fromNotification(
9433 Notification notification) {
9434 return new ExecutionLaunchDataParams.fromJson(
9435 new ResponseDecoder(null), "params", notification.params);
9436 }
9437
9438 @override
9439 Map<String, dynamic> toJson() {
9440 Map<String, dynamic> result = {};
9441 result["file"] = file;
9442 if (kind != null) {
9443 result["kind"] = kind.toJson();
9444 }
9445 if (referencedFiles != null) {
9446 result["referencedFiles"] = referencedFiles;
9447 }
9448 return result;
9449 }
9450
9451 Notification toNotification() {
9452 return new Notification("execution.launchData", toJson());
9453 }
9454
9455 @override
9456 String toString() => JSON.encode(toJson());
9457
9458 @override
9459 bool operator ==(other) {
9460 if (other is ExecutionLaunchDataParams) {
9461 return file == other.file &&
9462 kind == other.kind &&
9463 listEqual(referencedFiles, other.referencedFiles,
9464 (String a, String b) => a == b);
9465 }
9466 return false;
9467 }
9468
9469 @override
9470 int get hashCode {
9471 int hash = 0;
9472 hash = JenkinsSmiHash.combine(hash, file.hashCode);
9473 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
9474 hash = JenkinsSmiHash.combine(hash, referencedFiles.hashCode);
9475 return JenkinsSmiHash.finish(hash);
9476 }
9477 }
9478
9479 /**
9480 * execution.mapUri params
9481 *
9482 * {
9483 * "id": ExecutionContextId
9484 * "file": optional FilePath
9485 * "uri": optional String
9486 * }
9487 *
9488 * Clients may not extend, implement or mix-in this class.
9489 */
9490 class ExecutionMapUriParams implements RequestParams {
9491 String _id;
9492
9493 String _file;
9494
9495 String _uri;
9496
9497 /**
9498 * The identifier of the execution context in which the URI is to be mapped.
9499 */
9500 String get id => _id;
9501
9502 /**
9503 * The identifier of the execution context in which the URI is to be mapped.
9504 */
9505 void set id(String value) {
9506 assert(value != null);
9507 this._id = value;
9508 }
9509
9510 /**
9511 * The path of the file to be mapped into a URI.
9512 */
9513 String get file => _file;
9514
9515 /**
9516 * The path of the file to be mapped into a URI.
9517 */
9518 void set file(String value) {
9519 this._file = value;
9520 }
9521
9522 /**
9523 * The URI to be mapped into a file path.
9524 */
9525 String get uri => _uri;
9526
9527 /**
9528 * The URI to be mapped into a file path.
9529 */
9530 void set uri(String value) {
9531 this._uri = value;
9532 }
9533
9534 ExecutionMapUriParams(String id, {String file, String uri}) {
9535 this.id = id;
9536 this.file = file;
9537 this.uri = uri;
9538 }
9539
9540 factory ExecutionMapUriParams.fromJson(
9541 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9542 if (json == null) {
9543 json = {};
9544 }
9545 if (json is Map) {
9546 String id;
9547 if (json.containsKey("id")) {
9548 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
9549 } else {
9550 throw jsonDecoder.mismatch(jsonPath, "id");
9551 }
9552 String file;
9553 if (json.containsKey("file")) {
9554 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
9555 }
9556 String uri;
9557 if (json.containsKey("uri")) {
9558 uri = jsonDecoder.decodeString(jsonPath + ".uri", json["uri"]);
9559 }
9560 return new ExecutionMapUriParams(id, file: file, uri: uri);
9561 } else {
9562 throw jsonDecoder.mismatch(jsonPath, "execution.mapUri params", json);
9563 }
9564 }
9565
9566 factory ExecutionMapUriParams.fromRequest(Request request) {
9567 return new ExecutionMapUriParams.fromJson(
9568 new RequestDecoder(request), "params", request.params);
9569 }
9570
9571 @override
9572 Map<String, dynamic> toJson() {
9573 Map<String, dynamic> result = {};
9574 result["id"] = id;
9575 if (file != null) {
9576 result["file"] = file;
9577 }
9578 if (uri != null) {
9579 result["uri"] = uri;
9580 }
9581 return result;
9582 }
9583
9584 @override
9585 Request toRequest(String id) {
9586 return new Request(id, "execution.mapUri", toJson());
9587 }
9588
9589 @override
9590 String toString() => JSON.encode(toJson());
9591
9592 @override
9593 bool operator ==(other) {
9594 if (other is ExecutionMapUriParams) {
9595 return id == other.id && file == other.file && uri == other.uri;
9596 }
9597 return false;
9598 }
9599
9600 @override
9601 int get hashCode {
9602 int hash = 0;
9603 hash = JenkinsSmiHash.combine(hash, id.hashCode);
9604 hash = JenkinsSmiHash.combine(hash, file.hashCode);
9605 hash = JenkinsSmiHash.combine(hash, uri.hashCode);
9606 return JenkinsSmiHash.finish(hash);
9607 }
9608 }
9609
9610 /**
9611 * execution.mapUri result
9612 *
9613 * {
9614 * "file": optional FilePath
9615 * "uri": optional String
9616 * }
9617 *
9618 * Clients may not extend, implement or mix-in this class.
9619 */
9620 class ExecutionMapUriResult implements ResponseResult {
9621 String _file;
9622
9623 String _uri;
9624
9625 /**
9626 * The file to which the URI was mapped. This field is omitted if the uri
9627 * field was not given in the request.
9628 */
9629 String get file => _file;
9630
9631 /**
9632 * The file to which the URI was mapped. This field is omitted if the uri
9633 * field was not given in the request.
9634 */
9635 void set file(String value) {
9636 this._file = value;
9637 }
9638
9639 /**
9640 * The URI to which the file path was mapped. This field is omitted if the
9641 * file field was not given in the request.
9642 */
9643 String get uri => _uri;
9644
9645 /**
9646 * The URI to which the file path was mapped. This field is omitted if the
9647 * file field was not given in the request.
9648 */
9649 void set uri(String value) {
9650 this._uri = value;
9651 }
9652
9653 ExecutionMapUriResult({String file, String uri}) {
9654 this.file = file;
9655 this.uri = uri;
9656 }
9657
9658 factory ExecutionMapUriResult.fromJson(
9659 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9660 if (json == null) {
9661 json = {};
9662 }
9663 if (json is Map) {
9664 String file;
9665 if (json.containsKey("file")) {
9666 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
9667 }
9668 String uri;
9669 if (json.containsKey("uri")) {
9670 uri = jsonDecoder.decodeString(jsonPath + ".uri", json["uri"]);
9671 }
9672 return new ExecutionMapUriResult(file: file, uri: uri);
9673 } else {
9674 throw jsonDecoder.mismatch(jsonPath, "execution.mapUri result", json);
9675 }
9676 }
9677
9678 factory ExecutionMapUriResult.fromResponse(Response response) {
9679 return new ExecutionMapUriResult.fromJson(
9680 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
9681 "result",
9682 response.result);
9683 }
9684
9685 @override
9686 Map<String, dynamic> toJson() {
9687 Map<String, dynamic> result = {};
9688 if (file != null) {
9689 result["file"] = file;
9690 }
9691 if (uri != null) {
9692 result["uri"] = uri;
9693 }
9694 return result;
9695 }
9696
9697 @override
9698 Response toResponse(String id) {
9699 return new Response(id, result: toJson());
9700 }
9701
9702 @override
9703 String toString() => JSON.encode(toJson());
9704
9705 @override
9706 bool operator ==(other) {
9707 if (other is ExecutionMapUriResult) {
9708 return file == other.file && uri == other.uri;
9709 }
9710 return false;
9711 }
9712
9713 @override
9714 int get hashCode {
9715 int hash = 0;
9716 hash = JenkinsSmiHash.combine(hash, file.hashCode);
9717 hash = JenkinsSmiHash.combine(hash, uri.hashCode);
9718 return JenkinsSmiHash.finish(hash);
9719 }
9720 }
9721
9722 /**
9723 * ExecutionService
9724 *
9725 * enum {
9726 * LAUNCH_DATA
9727 * }
9728 *
9729 * Clients may not extend, implement or mix-in this class.
9730 */
9731 class ExecutionService implements Enum {
9732 static const ExecutionService LAUNCH_DATA =
9733 const ExecutionService._("LAUNCH_DATA");
9734
9735 /**
9736 * A list containing all of the enum values that are defined.
9737 */
9738 static const List<ExecutionService> VALUES = const <ExecutionService>[
9739 LAUNCH_DATA
9740 ];
9741
9742 @override
9743 final String name;
9744
9745 const ExecutionService._(this.name);
9746
9747 factory ExecutionService(String name) {
9748 switch (name) {
9749 case "LAUNCH_DATA":
9750 return LAUNCH_DATA;
9751 }
9752 throw new Exception('Illegal enum value: $name');
9753 }
9754
9755 factory ExecutionService.fromJson(
9756 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9757 if (json is String) {
9758 try {
9759 return new ExecutionService(json);
9760 } catch (_) {
9761 // Fall through
9762 }
9763 }
9764 throw jsonDecoder.mismatch(jsonPath, "ExecutionService", json);
9765 }
9766
9767 @override
9768 String toString() => "ExecutionService.$name";
9769
9770 String toJson() => name;
9771 }
9772
9773 /**
9774 * execution.setSubscriptions params
9775 *
9776 * {
9777 * "subscriptions": List<ExecutionService>
9778 * }
9779 *
9780 * Clients may not extend, implement or mix-in this class.
9781 */
9782 class ExecutionSetSubscriptionsParams implements RequestParams {
9783 List<ExecutionService> _subscriptions;
9784
9785 /**
9786 * A list of the services being subscribed to.
9787 */
9788 List<ExecutionService> get subscriptions => _subscriptions;
9789
9790 /**
9791 * A list of the services being subscribed to.
9792 */
9793 void set subscriptions(List<ExecutionService> value) {
9794 assert(value != null);
9795 this._subscriptions = value;
9796 }
9797
9798 ExecutionSetSubscriptionsParams(List<ExecutionService> subscriptions) {
9799 this.subscriptions = subscriptions;
9800 }
9801
9802 factory ExecutionSetSubscriptionsParams.fromJson(
9803 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9804 if (json == null) {
9805 json = {};
9806 }
9807 if (json is Map) {
9808 List<ExecutionService> subscriptions;
9809 if (json.containsKey("subscriptions")) {
9810 subscriptions = jsonDecoder.decodeList(
9811 jsonPath + ".subscriptions",
9812 json["subscriptions"],
9813 (String jsonPath, Object json) =>
9814 new ExecutionService.fromJson(jsonDecoder, jsonPath, json));
9815 } else {
9816 throw jsonDecoder.mismatch(jsonPath, "subscriptions");
9817 }
9818 return new ExecutionSetSubscriptionsParams(subscriptions);
9819 } else {
9820 throw jsonDecoder.mismatch(
9821 jsonPath, "execution.setSubscriptions params", json);
9822 }
9823 }
9824
9825 factory ExecutionSetSubscriptionsParams.fromRequest(Request request) {
9826 return new ExecutionSetSubscriptionsParams.fromJson(
9827 new RequestDecoder(request), "params", request.params);
9828 }
9829
9830 @override
9831 Map<String, dynamic> toJson() {
9832 Map<String, dynamic> result = {};
9833 result["subscriptions"] =
9834 subscriptions.map((ExecutionService value) => value.toJson()).toList();
9835 return result;
9836 }
9837
9838 @override
9839 Request toRequest(String id) {
9840 return new Request(id, "execution.setSubscriptions", toJson());
9841 }
9842
9843 @override
9844 String toString() => JSON.encode(toJson());
9845
9846 @override
9847 bool operator ==(other) {
9848 if (other is ExecutionSetSubscriptionsParams) {
9849 return listEqual(subscriptions, other.subscriptions,
9850 (ExecutionService a, ExecutionService b) => a == b);
9851 }
9852 return false;
9853 }
9854
9855 @override
9856 int get hashCode {
9857 int hash = 0;
9858 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode);
9859 return JenkinsSmiHash.finish(hash);
9860 }
9861 }
9862
9863 /**
9864 * execution.setSubscriptions result
9865 *
9866 * Clients may not extend, implement or mix-in this class.
9867 */
9868 class ExecutionSetSubscriptionsResult implements ResponseResult {
9869 @override
9870 Map<String, dynamic> toJson() => <String, dynamic>{};
9871
9872 @override
9873 Response toResponse(String id) {
9874 return new Response(id, result: null);
9875 }
9876
9877 @override
9878 bool operator ==(other) {
9879 if (other is ExecutionSetSubscriptionsResult) {
9880 return true;
9881 }
9882 return false;
9883 }
9884
9885 @override
9886 int get hashCode {
9887 return 287678780;
9888 }
9889 }
9890
9891 /**
9892 * extractLocalVariable feedback
9893 *
9894 * {
9895 * "coveringExpressionOffsets": optional List<int>
9896 * "coveringExpressionLengths": optional List<int>
9897 * "names": List<String>
9898 * "offsets": List<int>
9899 * "lengths": List<int>
9900 * }
9901 *
9902 * Clients may not extend, implement or mix-in this class.
9903 */
9904 class ExtractLocalVariableFeedback extends RefactoringFeedback {
9905 List<int> _coveringExpressionOffsets;
9906
9907 List<int> _coveringExpressionLengths;
9908
9909 List<String> _names;
9910
9911 List<int> _offsets;
9912
9913 List<int> _lengths;
9914
9915 /**
9916 * The offsets of the expressions that cover the specified selection, from
9917 * the down most to the up most.
9918 */
9919 List<int> get coveringExpressionOffsets => _coveringExpressionOffsets;
9920
9921 /**
9922 * The offsets of the expressions that cover the specified selection, from
9923 * the down most to the up most.
9924 */
9925 void set coveringExpressionOffsets(List<int> value) {
9926 this._coveringExpressionOffsets = value;
9927 }
9928
9929 /**
9930 * The lengths of the expressions that cover the specified selection, from
9931 * the down most to the up most.
9932 */
9933 List<int> get coveringExpressionLengths => _coveringExpressionLengths;
9934
9935 /**
9936 * The lengths of the expressions that cover the specified selection, from
9937 * the down most to the up most.
9938 */
9939 void set coveringExpressionLengths(List<int> value) {
9940 this._coveringExpressionLengths = value;
9941 }
9942
9943 /**
9944 * The proposed names for the local variable.
9945 */
9946 List<String> get names => _names;
9947
9948 /**
9949 * The proposed names for the local variable.
9950 */
9951 void set names(List<String> value) {
9952 assert(value != null);
9953 this._names = value;
9954 }
9955
9956 /**
9957 * The offsets of the expressions that would be replaced by a reference to
9958 * the variable.
9959 */
9960 List<int> get offsets => _offsets;
9961
9962 /**
9963 * The offsets of the expressions that would be replaced by a reference to
9964 * the variable.
9965 */
9966 void set offsets(List<int> value) {
9967 assert(value != null);
9968 this._offsets = value;
9969 }
9970
9971 /**
9972 * The lengths of the expressions that would be replaced by a reference to
9973 * the variable. The lengths correspond to the offsets. In other words, for a
9974 * given expression, if the offset of that expression is offsets[i], then the
9975 * length of that expression is lengths[i].
9976 */
9977 List<int> get lengths => _lengths;
9978
9979 /**
9980 * The lengths of the expressions that would be replaced by a reference to
9981 * the variable. The lengths correspond to the offsets. In other words, for a
9982 * given expression, if the offset of that expression is offsets[i], then the
9983 * length of that expression is lengths[i].
9984 */
9985 void set lengths(List<int> value) {
9986 assert(value != null);
9987 this._lengths = value;
9988 }
9989
9990 ExtractLocalVariableFeedback(
9991 List<String> names, List<int> offsets, List<int> lengths,
9992 {List<int> coveringExpressionOffsets,
9993 List<int> coveringExpressionLengths}) {
9994 this.coveringExpressionOffsets = coveringExpressionOffsets;
9995 this.coveringExpressionLengths = coveringExpressionLengths;
9996 this.names = names;
9997 this.offsets = offsets;
9998 this.lengths = lengths;
9999 }
10000
10001 factory ExtractLocalVariableFeedback.fromJson(
10002 JsonDecoder jsonDecoder, String jsonPath, Object json) {
10003 if (json == null) {
10004 json = {};
10005 }
10006 if (json is Map) {
10007 List<int> coveringExpressionOffsets;
10008 if (json.containsKey("coveringExpressionOffsets")) {
10009 coveringExpressionOffsets = jsonDecoder.decodeList(
10010 jsonPath + ".coveringExpressionOffsets",
10011 json["coveringExpressionOffsets"],
10012 jsonDecoder.decodeInt);
10013 }
10014 List<int> coveringExpressionLengths;
10015 if (json.containsKey("coveringExpressionLengths")) {
10016 coveringExpressionLengths = jsonDecoder.decodeList(
10017 jsonPath + ".coveringExpressionLengths",
10018 json["coveringExpressionLengths"],
10019 jsonDecoder.decodeInt);
10020 }
10021 List<String> names;
10022 if (json.containsKey("names")) {
10023 names = jsonDecoder.decodeList(
10024 jsonPath + ".names", json["names"], jsonDecoder.decodeString);
10025 } else {
10026 throw jsonDecoder.mismatch(jsonPath, "names");
10027 }
10028 List<int> offsets;
10029 if (json.containsKey("offsets")) {
10030 offsets = jsonDecoder.decodeList(
10031 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt);
10032 } else {
10033 throw jsonDecoder.mismatch(jsonPath, "offsets");
10034 }
10035 List<int> lengths;
10036 if (json.containsKey("lengths")) {
10037 lengths = jsonDecoder.decodeList(
10038 jsonPath + ".lengths", json["lengths"], jsonDecoder.decodeInt);
10039 } else {
10040 throw jsonDecoder.mismatch(jsonPath, "lengths");
10041 }
10042 return new ExtractLocalVariableFeedback(names, offsets, lengths,
10043 coveringExpressionOffsets: coveringExpressionOffsets,
10044 coveringExpressionLengths: coveringExpressionLengths);
10045 } else {
10046 throw jsonDecoder.mismatch(
10047 jsonPath, "extractLocalVariable feedback", json);
10048 }
10049 }
10050
10051 @override
10052 Map<String, dynamic> toJson() {
10053 Map<String, dynamic> result = {};
10054 if (coveringExpressionOffsets != null) {
10055 result["coveringExpressionOffsets"] = coveringExpressionOffsets;
10056 }
10057 if (coveringExpressionLengths != null) {
10058 result["coveringExpressionLengths"] = coveringExpressionLengths;
10059 }
10060 result["names"] = names;
10061 result["offsets"] = offsets;
10062 result["lengths"] = lengths;
10063 return result;
10064 }
10065
10066 @override
10067 String toString() => JSON.encode(toJson());
10068
10069 @override
10070 bool operator ==(other) {
10071 if (other is ExtractLocalVariableFeedback) {
10072 return listEqual(coveringExpressionOffsets,
10073 other.coveringExpressionOffsets, (int a, int b) => a == b) &&
10074 listEqual(coveringExpressionLengths, other.coveringExpressionLengths,
10075 (int a, int b) => a == b) &&
10076 listEqual(names, other.names, (String a, String b) => a == b) &&
10077 listEqual(offsets, other.offsets, (int a, int b) => a == b) &&
10078 listEqual(lengths, other.lengths, (int a, int b) => a == b);
10079 }
10080 return false;
10081 }
10082
10083 @override
10084 int get hashCode {
10085 int hash = 0;
10086 hash = JenkinsSmiHash.combine(hash, coveringExpressionOffsets.hashCode);
10087 hash = JenkinsSmiHash.combine(hash, coveringExpressionLengths.hashCode);
10088 hash = JenkinsSmiHash.combine(hash, names.hashCode);
10089 hash = JenkinsSmiHash.combine(hash, offsets.hashCode);
10090 hash = JenkinsSmiHash.combine(hash, lengths.hashCode);
10091 return JenkinsSmiHash.finish(hash);
10092 }
10093 }
10094
10095 /**
10096 * extractLocalVariable options
10097 *
10098 * {
10099 * "name": String
10100 * "extractAll": bool
10101 * }
10102 *
10103 * Clients may not extend, implement or mix-in this class.
10104 */
10105 class ExtractLocalVariableOptions extends RefactoringOptions {
10106 String _name;
10107
10108 bool _extractAll;
10109
10110 /**
10111 * The name that the local variable should be given.
10112 */
10113 String get name => _name;
10114
10115 /**
10116 * The name that the local variable should be given.
10117 */
10118 void set name(String value) {
10119 assert(value != null);
10120 this._name = value;
10121 }
10122
10123 /**
10124 * True if all occurrences of the expression within the scope in which the
10125 * variable will be defined should be replaced by a reference to the local
10126 * variable. The expression used to initiate the refactoring will always be
10127 * replaced.
10128 */
10129 bool get extractAll => _extractAll;
10130
10131 /**
10132 * True if all occurrences of the expression within the scope in which the
10133 * variable will be defined should be replaced by a reference to the local
10134 * variable. The expression used to initiate the refactoring will always be
10135 * replaced.
10136 */
10137 void set extractAll(bool value) {
10138 assert(value != null);
10139 this._extractAll = value;
10140 }
10141
10142 ExtractLocalVariableOptions(String name, bool extractAll) {
10143 this.name = name;
10144 this.extractAll = extractAll;
10145 }
10146
10147 factory ExtractLocalVariableOptions.fromJson(
10148 JsonDecoder jsonDecoder, String jsonPath, Object json) {
10149 if (json == null) {
10150 json = {};
10151 }
10152 if (json is Map) {
10153 String name;
10154 if (json.containsKey("name")) {
10155 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
10156 } else {
10157 throw jsonDecoder.mismatch(jsonPath, "name");
10158 }
10159 bool extractAll;
10160 if (json.containsKey("extractAll")) {
10161 extractAll = jsonDecoder.decodeBool(
10162 jsonPath + ".extractAll", json["extractAll"]);
10163 } else {
10164 throw jsonDecoder.mismatch(jsonPath, "extractAll");
10165 }
10166 return new ExtractLocalVariableOptions(name, extractAll);
10167 } else {
10168 throw jsonDecoder.mismatch(
10169 jsonPath, "extractLocalVariable options", json);
10170 }
10171 }
10172
10173 factory ExtractLocalVariableOptions.fromRefactoringParams(
10174 EditGetRefactoringParams refactoringParams, Request request) {
10175 return new ExtractLocalVariableOptions.fromJson(
10176 new RequestDecoder(request), "options", refactoringParams.options);
10177 }
10178
10179 @override
10180 Map<String, dynamic> toJson() {
10181 Map<String, dynamic> result = {};
10182 result["name"] = name;
10183 result["extractAll"] = extractAll;
10184 return result;
10185 }
10186
10187 @override
10188 String toString() => JSON.encode(toJson());
10189
10190 @override
10191 bool operator ==(other) {
10192 if (other is ExtractLocalVariableOptions) {
10193 return name == other.name && extractAll == other.extractAll;
10194 }
10195 return false;
10196 }
10197
10198 @override
10199 int get hashCode {
10200 int hash = 0;
10201 hash = JenkinsSmiHash.combine(hash, name.hashCode);
10202 hash = JenkinsSmiHash.combine(hash, extractAll.hashCode);
10203 return JenkinsSmiHash.finish(hash);
10204 }
10205 }
10206
10207 /**
10208 * extractMethod feedback
10209 *
10210 * {
10211 * "offset": int
10212 * "length": int
10213 * "returnType": String
10214 * "names": List<String>
10215 * "canCreateGetter": bool
10216 * "parameters": List<RefactoringMethodParameter>
10217 * "offsets": List<int>
10218 * "lengths": List<int>
10219 * }
10220 *
10221 * Clients may not extend, implement or mix-in this class.
10222 */
10223 class ExtractMethodFeedback extends RefactoringFeedback {
10224 int _offset;
10225
10226 int _length;
10227
10228 String _returnType;
10229
10230 List<String> _names;
10231
10232 bool _canCreateGetter;
10233
10234 List<RefactoringMethodParameter> _parameters;
10235
10236 List<int> _offsets;
10237
10238 List<int> _lengths;
10239
10240 /**
10241 * The offset to the beginning of the expression or statements that will be
10242 * extracted.
10243 */
10244 int get offset => _offset;
10245
10246 /**
10247 * The offset to the beginning of the expression or statements that will be
10248 * extracted.
10249 */
10250 void set offset(int value) {
10251 assert(value != null);
10252 this._offset = value;
10253 }
10254
10255 /**
10256 * The length of the expression or statements that will be extracted.
10257 */
10258 int get length => _length;
10259
10260 /**
10261 * The length of the expression or statements that will be extracted.
10262 */
10263 void set length(int value) {
10264 assert(value != null);
10265 this._length = value;
10266 }
10267
10268 /**
10269 * The proposed return type for the method. If the returned element does not
10270 * have a declared return type, this field will contain an empty string.
10271 */
10272 String get returnType => _returnType;
10273
10274 /**
10275 * The proposed return type for the method. If the returned element does not
10276 * have a declared return type, this field will contain an empty string.
10277 */
10278 void set returnType(String value) {
10279 assert(value != null);
10280 this._returnType = value;
10281 }
10282
10283 /**
10284 * The proposed names for the method.
10285 */
10286 List<String> get names => _names;
10287
10288 /**
10289 * The proposed names for the method.
10290 */
10291 void set names(List<String> value) {
10292 assert(value != null);
10293 this._names = value;
10294 }
10295
10296 /**
10297 * True if a getter could be created rather than a method.
10298 */
10299 bool get canCreateGetter => _canCreateGetter;
10300
10301 /**
10302 * True if a getter could be created rather than a method.
10303 */
10304 void set canCreateGetter(bool value) {
10305 assert(value != null);
10306 this._canCreateGetter = value;
10307 }
10308
10309 /**
10310 * The proposed parameters for the method.
10311 */
10312 List<RefactoringMethodParameter> get parameters => _parameters;
10313
10314 /**
10315 * The proposed parameters for the method.
10316 */
10317 void set parameters(List<RefactoringMethodParameter> value) {
10318 assert(value != null);
10319 this._parameters = value;
10320 }
10321
10322 /**
10323 * The offsets of the expressions or statements that would be replaced by an
10324 * invocation of the method.
10325 */
10326 List<int> get offsets => _offsets;
10327
10328 /**
10329 * The offsets of the expressions or statements that would be replaced by an
10330 * invocation of the method.
10331 */
10332 void set offsets(List<int> value) {
10333 assert(value != null);
10334 this._offsets = value;
10335 }
10336
10337 /**
10338 * The lengths of the expressions or statements that would be replaced by an
10339 * invocation of the method. The lengths correspond to the offsets. In other
10340 * words, for a given expression (or block of statements), if the offset of
10341 * that expression is offsets[i], then the length of that expression is
10342 * lengths[i].
10343 */
10344 List<int> get lengths => _lengths;
10345
10346 /**
10347 * The lengths of the expressions or statements that would be replaced by an
10348 * invocation of the method. The lengths correspond to the offsets. In other
10349 * words, for a given expression (or block of statements), if the offset of
10350 * that expression is offsets[i], then the length of that expression is
10351 * lengths[i].
10352 */
10353 void set lengths(List<int> value) {
10354 assert(value != null);
10355 this._lengths = value;
10356 }
10357
10358 ExtractMethodFeedback(
10359 int offset,
10360 int length,
10361 String returnType,
10362 List<String> names,
10363 bool canCreateGetter,
10364 List<RefactoringMethodParameter> parameters,
10365 List<int> offsets,
10366 List<int> lengths) {
10367 this.offset = offset;
10368 this.length = length;
10369 this.returnType = returnType;
10370 this.names = names;
10371 this.canCreateGetter = canCreateGetter;
10372 this.parameters = parameters;
10373 this.offsets = offsets;
10374 this.lengths = lengths;
10375 }
10376
10377 factory ExtractMethodFeedback.fromJson(
10378 JsonDecoder jsonDecoder, String jsonPath, Object json) {
10379 if (json == null) {
10380 json = {};
10381 }
10382 if (json is Map) {
10383 int offset;
10384 if (json.containsKey("offset")) {
10385 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
10386 } else {
10387 throw jsonDecoder.mismatch(jsonPath, "offset");
10388 }
10389 int length;
10390 if (json.containsKey("length")) {
10391 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
10392 } else {
10393 throw jsonDecoder.mismatch(jsonPath, "length");
10394 }
10395 String returnType;
10396 if (json.containsKey("returnType")) {
10397 returnType = jsonDecoder.decodeString(
10398 jsonPath + ".returnType", json["returnType"]);
10399 } else {
10400 throw jsonDecoder.mismatch(jsonPath, "returnType");
10401 }
10402 List<String> names;
10403 if (json.containsKey("names")) {
10404 names = jsonDecoder.decodeList(
10405 jsonPath + ".names", json["names"], jsonDecoder.decodeString);
10406 } else {
10407 throw jsonDecoder.mismatch(jsonPath, "names");
10408 }
10409 bool canCreateGetter;
10410 if (json.containsKey("canCreateGetter")) {
10411 canCreateGetter = jsonDecoder.decodeBool(
10412 jsonPath + ".canCreateGetter", json["canCreateGetter"]);
10413 } else {
10414 throw jsonDecoder.mismatch(jsonPath, "canCreateGetter");
10415 }
10416 List<RefactoringMethodParameter> parameters;
10417 if (json.containsKey("parameters")) {
10418 parameters = jsonDecoder.decodeList(
10419 jsonPath + ".parameters",
10420 json["parameters"],
10421 (String jsonPath, Object json) =>
10422 new RefactoringMethodParameter.fromJson(
10423 jsonDecoder, jsonPath, json));
10424 } else {
10425 throw jsonDecoder.mismatch(jsonPath, "parameters");
10426 }
10427 List<int> offsets;
10428 if (json.containsKey("offsets")) {
10429 offsets = jsonDecoder.decodeList(
10430 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt);
10431 } else {
10432 throw jsonDecoder.mismatch(jsonPath, "offsets");
10433 }
10434 List<int> lengths;
10435 if (json.containsKey("lengths")) {
10436 lengths = jsonDecoder.decodeList(
10437 jsonPath + ".lengths", json["lengths"], jsonDecoder.decodeInt);
10438 } else {
10439 throw jsonDecoder.mismatch(jsonPath, "lengths");
10440 }
10441 return new ExtractMethodFeedback(offset, length, returnType, names,
10442 canCreateGetter, parameters, offsets, lengths);
10443 } else {
10444 throw jsonDecoder.mismatch(jsonPath, "extractMethod feedback", json);
10445 }
10446 }
10447
10448 @override
10449 Map<String, dynamic> toJson() {
10450 Map<String, dynamic> result = {};
10451 result["offset"] = offset;
10452 result["length"] = length;
10453 result["returnType"] = returnType;
10454 result["names"] = names;
10455 result["canCreateGetter"] = canCreateGetter;
10456 result["parameters"] = parameters
10457 .map((RefactoringMethodParameter value) => value.toJson())
10458 .toList();
10459 result["offsets"] = offsets;
10460 result["lengths"] = lengths;
10461 return result;
10462 }
10463
10464 @override
10465 String toString() => JSON.encode(toJson());
10466
10467 @override
10468 bool operator ==(other) {
10469 if (other is ExtractMethodFeedback) {
10470 return offset == other.offset &&
10471 length == other.length &&
10472 returnType == other.returnType &&
10473 listEqual(names, other.names, (String a, String b) => a == b) &&
10474 canCreateGetter == other.canCreateGetter &&
10475 listEqual(
10476 parameters,
10477 other.parameters,
10478 (RefactoringMethodParameter a, RefactoringMethodParameter b) =>
10479 a == b) &&
10480 listEqual(offsets, other.offsets, (int a, int b) => a == b) &&
10481 listEqual(lengths, other.lengths, (int a, int b) => a == b);
10482 }
10483 return false;
10484 }
10485 6516
10486 @override 6517 @override
10487 int get hashCode { 6518 int get hashCode {
10488 int hash = 0; 6519 int hash = 0;
6520 hash = JenkinsSmiHash.combine(hash, file.hashCode);
10489 hash = JenkinsSmiHash.combine(hash, offset.hashCode); 6521 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
10490 hash = JenkinsSmiHash.combine(hash, length.hashCode);
10491 hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
10492 hash = JenkinsSmiHash.combine(hash, names.hashCode);
10493 hash = JenkinsSmiHash.combine(hash, canCreateGetter.hashCode);
10494 hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
10495 hash = JenkinsSmiHash.combine(hash, offsets.hashCode);
10496 hash = JenkinsSmiHash.combine(hash, lengths.hashCode);
10497 return JenkinsSmiHash.finish(hash); 6522 return JenkinsSmiHash.finish(hash);
10498 } 6523 }
10499 } 6524 }
10500 6525
10501 /** 6526 /**
10502 * extractMethod options 6527 * edit.getStatementCompletion result
10503 * 6528 *
10504 * { 6529 * {
10505 * "returnType": String 6530 * "change": SourceChange
10506 * "createGetter": bool 6531 * "whitespaceOnly": bool
10507 * "name": String
10508 * "parameters": List<RefactoringMethodParameter>
10509 * "extractAll": bool
10510 * } 6532 * }
10511 * 6533 *
10512 * Clients may not extend, implement or mix-in this class. 6534 * Clients may not extend, implement or mix-in this class.
10513 */ 6535 */
10514 class ExtractMethodOptions extends RefactoringOptions { 6536 class EditGetStatementCompletionResult implements ResponseResult {
10515 String _returnType; 6537 SourceChange _change;
10516 6538
10517 bool _createGetter; 6539 bool _whitespaceOnly;
10518
10519 String _name;
10520
10521 List<RefactoringMethodParameter> _parameters;
10522
10523 bool _extractAll;
10524 6540
10525 /** 6541 /**
10526 * The return type that should be defined for the method. 6542 * The change to be applied in order to complete the statement.
10527 */ 6543 */
10528 String get returnType => _returnType; 6544 SourceChange get change => _change;
10529 6545
10530 /** 6546 /**
10531 * The return type that should be defined for the method. 6547 * The change to be applied in order to complete the statement.
10532 */ 6548 */
10533 void set returnType(String value) { 6549 void set change(SourceChange value) {
10534 assert(value != null); 6550 assert(value != null);
10535 this._returnType = value; 6551 this._change = value;
10536 } 6552 }
10537 6553
10538 /** 6554 /**
10539 * True if a getter should be created rather than a method. It is an error if 6555 * Will be true if the change contains nothing but whitespace characters, or
10540 * this field is true and the list of parameters is non-empty. 6556 * is empty.
10541 */ 6557 */
10542 bool get createGetter => _createGetter; 6558 bool get whitespaceOnly => _whitespaceOnly;
10543 6559
10544 /** 6560 /**
10545 * True if a getter should be created rather than a method. It is an error if 6561 * Will be true if the change contains nothing but whitespace characters, or
10546 * this field is true and the list of parameters is non-empty. 6562 * is empty.
10547 */ 6563 */
10548 void set createGetter(bool value) { 6564 void set whitespaceOnly(bool value) {
10549 assert(value != null); 6565 assert(value != null);
10550 this._createGetter = value; 6566 this._whitespaceOnly = value;
10551 } 6567 }
10552 6568
10553 /** 6569 EditGetStatementCompletionResult(SourceChange change, bool whitespaceOnly) {
10554 * The name that the method should be given. 6570 this.change = change;
10555 */ 6571 this.whitespaceOnly = whitespaceOnly;
10556 String get name => _name;
10557
10558 /**
10559 * The name that the method should be given.
10560 */
10561 void set name(String value) {
10562 assert(value != null);
10563 this._name = value;
10564 } 6572 }
10565 6573
10566 /** 6574 factory EditGetStatementCompletionResult.fromJson(
10567 * The parameters that should be defined for the method.
10568 *
10569 * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL
10570 * parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a
10571 * NAMED parameter.
10572 *
10573 * - To change the order and/or update proposed parameters, add parameters
10574 * with the same identifiers as proposed.
10575 * - To add new parameters, omit their identifier.
10576 * - To remove some parameters, omit them in this list.
10577 */
10578 List<RefactoringMethodParameter> get parameters => _parameters;
10579
10580 /**
10581 * The parameters that should be defined for the method.
10582 *
10583 * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL
10584 * parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a
10585 * NAMED parameter.
10586 *
10587 * - To change the order and/or update proposed parameters, add parameters
10588 * with the same identifiers as proposed.
10589 * - To add new parameters, omit their identifier.
10590 * - To remove some parameters, omit them in this list.
10591 */
10592 void set parameters(List<RefactoringMethodParameter> value) {
10593 assert(value != null);
10594 this._parameters = value;
10595 }
10596
10597 /**
10598 * True if all occurrences of the expression or statements should be replaced
10599 * by an invocation of the method. The expression or statements used to
10600 * initiate the refactoring will always be replaced.
10601 */
10602 bool get extractAll => _extractAll;
10603
10604 /**
10605 * True if all occurrences of the expression or statements should be replaced
10606 * by an invocation of the method. The expression or statements used to
10607 * initiate the refactoring will always be replaced.
10608 */
10609 void set extractAll(bool value) {
10610 assert(value != null);
10611 this._extractAll = value;
10612 }
10613
10614 ExtractMethodOptions(String returnType, bool createGetter, String name,
10615 List<RefactoringMethodParameter> parameters, bool extractAll) {
10616 this.returnType = returnType;
10617 this.createGetter = createGetter;
10618 this.name = name;
10619 this.parameters = parameters;
10620 this.extractAll = extractAll;
10621 }
10622
10623 factory ExtractMethodOptions.fromJson(
10624 JsonDecoder jsonDecoder, String jsonPath, Object json) { 6575 JsonDecoder jsonDecoder, String jsonPath, Object json) {
10625 if (json == null) { 6576 if (json == null) {
10626 json = {}; 6577 json = {};
10627 } 6578 }
10628 if (json is Map) { 6579 if (json is Map) {
10629 String returnType; 6580 SourceChange change;
10630 if (json.containsKey("returnType")) { 6581 if (json.containsKey("change")) {
10631 returnType = jsonDecoder.decodeString( 6582 change = new SourceChange.fromJson(
10632 jsonPath + ".returnType", json["returnType"]); 6583 jsonDecoder, jsonPath + ".change", json["change"]);
10633 } else { 6584 } else {
10634 throw jsonDecoder.mismatch(jsonPath, "returnType"); 6585 throw jsonDecoder.mismatch(jsonPath, "change");
10635 } 6586 }
10636 bool createGetter; 6587 bool whitespaceOnly;
10637 if (json.containsKey("createGetter")) { 6588 if (json.containsKey("whitespaceOnly")) {
10638 createGetter = jsonDecoder.decodeBool( 6589 whitespaceOnly = jsonDecoder.decodeBool(
10639 jsonPath + ".createGetter", json["createGetter"]); 6590 jsonPath + ".whitespaceOnly", json["whitespaceOnly"]);
10640 } else { 6591 } else {
10641 throw jsonDecoder.mismatch(jsonPath, "createGetter"); 6592 throw jsonDecoder.mismatch(jsonPath, "whitespaceOnly");
10642 } 6593 }
10643 String name; 6594 return new EditGetStatementCompletionResult(change, whitespaceOnly);
10644 if (json.containsKey("name")) {
10645 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
10646 } else {
10647 throw jsonDecoder.mismatch(jsonPath, "name");
10648 }
10649 List<RefactoringMethodParameter> parameters;
10650 if (json.containsKey("parameters")) {
10651 parameters = jsonDecoder.decodeList(
10652 jsonPath + ".parameters",
10653 json["parameters"],
10654 (String jsonPath, Object json) =>
10655 new RefactoringMethodParameter.fromJson(
10656 jsonDecoder, jsonPath, json));
10657 } else {
10658 throw jsonDecoder.mismatch(jsonPath, "parameters");
10659 }
10660 bool extractAll;
10661 if (json.containsKey("extractAll")) {
10662 extractAll = jsonDecoder.decodeBool(
10663 jsonPath + ".extractAll", json["extractAll"]);
10664 } else {
10665 throw jsonDecoder.mismatch(jsonPath, "extractAll");
10666 }
10667 return new ExtractMethodOptions(
10668 returnType, createGetter, name, parameters, extractAll);
10669 } else { 6595 } else {
10670 throw jsonDecoder.mismatch(jsonPath, "extractMethod options", json); 6596 throw jsonDecoder.mismatch(
6597 jsonPath, "edit.getStatementCompletion result", json);
10671 } 6598 }
10672 } 6599 }
10673 6600
10674 factory ExtractMethodOptions.fromRefactoringParams( 6601 factory EditGetStatementCompletionResult.fromResponse(Response response) {
10675 EditGetRefactoringParams refactoringParams, Request request) { 6602 return new EditGetStatementCompletionResult.fromJson(
10676 return new ExtractMethodOptions.fromJson( 6603 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
10677 new RequestDecoder(request), "options", refactoringParams.options); 6604 "result",
6605 response.result);
10678 } 6606 }
10679 6607
10680 @override 6608 @override
10681 Map<String, dynamic> toJson() { 6609 Map<String, dynamic> toJson() {
10682 Map<String, dynamic> result = {}; 6610 Map<String, dynamic> result = {};
10683 result["returnType"] = returnType; 6611 result["change"] = change.toJson();
10684 result["createGetter"] = createGetter; 6612 result["whitespaceOnly"] = whitespaceOnly;
10685 result["name"] = name;
10686 result["parameters"] = parameters
10687 .map((RefactoringMethodParameter value) => value.toJson())
10688 .toList();
10689 result["extractAll"] = extractAll;
10690 return result; 6613 return result;
10691 } 6614 }
10692 6615
10693 @override 6616 @override
6617 Response toResponse(String id) {
6618 return new Response(id, result: toJson());
6619 }
6620
6621 @override
10694 String toString() => JSON.encode(toJson()); 6622 String toString() => JSON.encode(toJson());
10695 6623
10696 @override 6624 @override
10697 bool operator ==(other) { 6625 bool operator ==(other) {
10698 if (other is ExtractMethodOptions) { 6626 if (other is EditGetStatementCompletionResult) {
10699 return returnType == other.returnType && 6627 return change == other.change && whitespaceOnly == other.whitespaceOnly;
10700 createGetter == other.createGetter &&
10701 name == other.name &&
10702 listEqual(
10703 parameters,
10704 other.parameters,
10705 (RefactoringMethodParameter a, RefactoringMethodParameter b) =>
10706 a == b) &&
10707 extractAll == other.extractAll;
10708 } 6628 }
10709 return false; 6629 return false;
10710 } 6630 }
10711 6631
10712 @override 6632 @override
10713 int get hashCode { 6633 int get hashCode {
10714 int hash = 0; 6634 int hash = 0;
10715 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); 6635 hash = JenkinsSmiHash.combine(hash, change.hashCode);
10716 hash = JenkinsSmiHash.combine(hash, createGetter.hashCode); 6636 hash = JenkinsSmiHash.combine(hash, whitespaceOnly.hashCode);
10717 hash = JenkinsSmiHash.combine(hash, name.hashCode);
10718 hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
10719 hash = JenkinsSmiHash.combine(hash, extractAll.hashCode);
10720 return JenkinsSmiHash.finish(hash); 6637 return JenkinsSmiHash.finish(hash);
10721 } 6638 }
10722 } 6639 }
10723 6640
10724 /** 6641 /**
10725 * FileKind 6642 * edit.organizeDirectives params
10726 * 6643 *
10727 * enum { 6644 * {
10728 * LIBRARY 6645 * "file": FilePath
10729 * PART
10730 * } 6646 * }
10731 * 6647 *
10732 * Clients may not extend, implement or mix-in this class. 6648 * Clients may not extend, implement or mix-in this class.
10733 */ 6649 */
10734 class FileKind implements Enum { 6650 class EditOrganizeDirectivesParams implements RequestParams {
10735 static const FileKind LIBRARY = const FileKind._("LIBRARY"); 6651 String _file;
10736 6652
10737 static const FileKind PART = const FileKind._("PART"); 6653 /**
10738 6654 * The Dart file to organize directives in.
10739 /** 6655 */
10740 * A list containing all of the enum values that are defined. 6656 String get file => _file;
10741 */ 6657
10742 static const List<FileKind> VALUES = const <FileKind>[LIBRARY, PART]; 6658 /**
10743 6659 * The Dart file to organize directives in.
10744 @override 6660 */
10745 final String name; 6661 void set file(String value) {
10746
10747 const FileKind._(this.name);
10748
10749 factory FileKind(String name) {
10750 switch (name) {
10751 case "LIBRARY":
10752 return LIBRARY;
10753 case "PART":
10754 return PART;
10755 }
10756 throw new Exception('Illegal enum value: $name');
10757 }
10758
10759 factory FileKind.fromJson(
10760 JsonDecoder jsonDecoder, String jsonPath, Object json) {
10761 if (json is String) {
10762 try {
10763 return new FileKind(json);
10764 } catch (_) {
10765 // Fall through
10766 }
10767 }
10768 throw jsonDecoder.mismatch(jsonPath, "FileKind", json);
10769 }
10770
10771 @override
10772 String toString() => "FileKind.$name";
10773
10774 String toJson() => name;
10775 }
10776
10777 /**
10778 * FoldingKind
10779 *
10780 * enum {
10781 * COMMENT
10782 * CLASS_MEMBER
10783 * DIRECTIVES
10784 * DOCUMENTATION_COMMENT
10785 * TOP_LEVEL_DECLARATION
10786 * }
10787 *
10788 * Clients may not extend, implement or mix-in this class.
10789 */
10790 class FoldingKind implements Enum {
10791 static const FoldingKind COMMENT = const FoldingKind._("COMMENT");
10792
10793 static const FoldingKind CLASS_MEMBER = const FoldingKind._("CLASS_MEMBER");
10794
10795 static const FoldingKind DIRECTIVES = const FoldingKind._("DIRECTIVES");
10796
10797 static const FoldingKind DOCUMENTATION_COMMENT =
10798 const FoldingKind._("DOCUMENTATION_COMMENT");
10799
10800 static const FoldingKind TOP_LEVEL_DECLARATION =
10801 const FoldingKind._("TOP_LEVEL_DECLARATION");
10802
10803 /**
10804 * A list containing all of the enum values that are defined.
10805 */
10806 static const List<FoldingKind> VALUES = const <FoldingKind>[
10807 COMMENT,
10808 CLASS_MEMBER,
10809 DIRECTIVES,
10810 DOCUMENTATION_COMMENT,
10811 TOP_LEVEL_DECLARATION
10812 ];
10813
10814 @override
10815 final String name;
10816
10817 const FoldingKind._(this.name);
10818
10819 factory FoldingKind(String name) {
10820 switch (name) {
10821 case "COMMENT":
10822 return COMMENT;
10823 case "CLASS_MEMBER":
10824 return CLASS_MEMBER;
10825 case "DIRECTIVES":
10826 return DIRECTIVES;
10827 case "DOCUMENTATION_COMMENT":
10828 return DOCUMENTATION_COMMENT;
10829 case "TOP_LEVEL_DECLARATION":
10830 return TOP_LEVEL_DECLARATION;
10831 }
10832 throw new Exception('Illegal enum value: $name');
10833 }
10834
10835 factory FoldingKind.fromJson(
10836 JsonDecoder jsonDecoder, String jsonPath, Object json) {
10837 if (json is String) {
10838 try {
10839 return new FoldingKind(json);
10840 } catch (_) {
10841 // Fall through
10842 }
10843 }
10844 throw jsonDecoder.mismatch(jsonPath, "FoldingKind", json);
10845 }
10846
10847 @override
10848 String toString() => "FoldingKind.$name";
10849
10850 String toJson() => name;
10851 }
10852
10853 /**
10854 * FoldingRegion
10855 *
10856 * {
10857 * "kind": FoldingKind
10858 * "offset": int
10859 * "length": int
10860 * }
10861 *
10862 * Clients may not extend, implement or mix-in this class.
10863 */
10864 class FoldingRegion implements HasToJson {
10865 FoldingKind _kind;
10866
10867 int _offset;
10868
10869 int _length;
10870
10871 /**
10872 * The kind of the region.
10873 */
10874 FoldingKind get kind => _kind;
10875
10876 /**
10877 * The kind of the region.
10878 */
10879 void set kind(FoldingKind value) {
10880 assert(value != null); 6662 assert(value != null);
10881 this._kind = value; 6663 this._file = value;
10882 } 6664 }
10883 6665
10884 /** 6666 EditOrganizeDirectivesParams(String file) {
10885 * The offset of the region to be folded. 6667 this.file = file;
10886 */ 6668 }
10887 int get offset => _offset; 6669
10888 6670 factory EditOrganizeDirectivesParams.fromJson(
10889 /**
10890 * The offset of the region to be folded.
10891 */
10892 void set offset(int value) {
10893 assert(value != null);
10894 this._offset = value;
10895 }
10896
10897 /**
10898 * The length of the region to be folded.
10899 */
10900 int get length => _length;
10901
10902 /**
10903 * The length of the region to be folded.
10904 */
10905 void set length(int value) {
10906 assert(value != null);
10907 this._length = value;
10908 }
10909
10910 FoldingRegion(FoldingKind kind, int offset, int length) {
10911 this.kind = kind;
10912 this.offset = offset;
10913 this.length = length;
10914 }
10915
10916 factory FoldingRegion.fromJson(
10917 JsonDecoder jsonDecoder, String jsonPath, Object json) { 6671 JsonDecoder jsonDecoder, String jsonPath, Object json) {
10918 if (json == null) { 6672 if (json == null) {
10919 json = {}; 6673 json = {};
10920 } 6674 }
10921 if (json is Map) { 6675 if (json is Map) {
10922 FoldingKind kind; 6676 String file;
10923 if (json.containsKey("kind")) { 6677 if (json.containsKey("file")) {
10924 kind = new FoldingKind.fromJson( 6678 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
10925 jsonDecoder, jsonPath + ".kind", json["kind"]);
10926 } else { 6679 } else {
10927 throw jsonDecoder.mismatch(jsonPath, "kind"); 6680 throw jsonDecoder.mismatch(jsonPath, "file");
10928 } 6681 }
10929 int offset; 6682 return new EditOrganizeDirectivesParams(file);
10930 if (json.containsKey("offset")) {
10931 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
10932 } else {
10933 throw jsonDecoder.mismatch(jsonPath, "offset");
10934 }
10935 int length;
10936 if (json.containsKey("length")) {
10937 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
10938 } else {
10939 throw jsonDecoder.mismatch(jsonPath, "length");
10940 }
10941 return new FoldingRegion(kind, offset, length);
10942 } else { 6683 } else {
10943 throw jsonDecoder.mismatch(jsonPath, "FoldingRegion", json); 6684 throw jsonDecoder.mismatch(
10944 } 6685 jsonPath, "edit.organizeDirectives params", json);
6686 }
6687 }
6688
6689 factory EditOrganizeDirectivesParams.fromRequest(Request request) {
6690 return new EditOrganizeDirectivesParams.fromJson(
6691 new RequestDecoder(request), "params", request.params);
10945 } 6692 }
10946 6693
10947 @override 6694 @override
10948 Map<String, dynamic> toJson() { 6695 Map<String, dynamic> toJson() {
10949 Map<String, dynamic> result = {}; 6696 Map<String, dynamic> result = {};
10950 result["kind"] = kind.toJson(); 6697 result["file"] = file;
10951 result["offset"] = offset;
10952 result["length"] = length;
10953 return result; 6698 return result;
10954 } 6699 }
10955 6700
10956 @override 6701 @override
6702 Request toRequest(String id) {
6703 return new Request(id, "edit.organizeDirectives", toJson());
6704 }
6705
6706 @override
10957 String toString() => JSON.encode(toJson()); 6707 String toString() => JSON.encode(toJson());
10958 6708
10959 @override 6709 @override
10960 bool operator ==(other) { 6710 bool operator ==(other) {
10961 if (other is FoldingRegion) { 6711 if (other is EditOrganizeDirectivesParams) {
10962 return kind == other.kind && 6712 return file == other.file;
10963 offset == other.offset &&
10964 length == other.length;
10965 } 6713 }
10966 return false; 6714 return false;
10967 } 6715 }
6716
6717 @override
6718 int get hashCode {
6719 int hash = 0;
6720 hash = JenkinsSmiHash.combine(hash, file.hashCode);
6721 return JenkinsSmiHash.finish(hash);
6722 }
6723 }
6724
6725 /**
6726 * edit.organizeDirectives result
6727 *
6728 * {
6729 * "edit": SourceFileEdit
6730 * }
6731 *
6732 * Clients may not extend, implement or mix-in this class.
6733 */
6734 class EditOrganizeDirectivesResult implements ResponseResult {
6735 SourceFileEdit _edit;
6736
6737 /**
6738 * The file edit that is to be applied to the given file to effect the
6739 * organizing.
6740 */
6741 SourceFileEdit get edit => _edit;
6742
6743 /**
6744 * The file edit that is to be applied to the given file to effect the
6745 * organizing.
6746 */
6747 void set edit(SourceFileEdit value) {
6748 assert(value != null);
6749 this._edit = value;
6750 }
6751
6752 EditOrganizeDirectivesResult(SourceFileEdit edit) {
6753 this.edit = edit;
6754 }
6755
6756 factory EditOrganizeDirectivesResult.fromJson(
6757 JsonDecoder jsonDecoder, String jsonPath, Object json) {
6758 if (json == null) {
6759 json = {};
6760 }
6761 if (json is Map) {
6762 SourceFileEdit edit;
6763 if (json.containsKey("edit")) {
6764 edit = new SourceFileEdit.fromJson(
6765 jsonDecoder, jsonPath + ".edit", json["edit"]);
6766 } else {
6767 throw jsonDecoder.mismatch(jsonPath, "edit");
6768 }
6769 return new EditOrganizeDirectivesResult(edit);
6770 } else {
6771 throw jsonDecoder.mismatch(
6772 jsonPath, "edit.organizeDirectives result", json);
6773 }
6774 }
6775
6776 factory EditOrganizeDirectivesResult.fromResponse(Response response) {
6777 return new EditOrganizeDirectivesResult.fromJson(
6778 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
6779 "result",
6780 response.result);
6781 }
6782
6783 @override
6784 Map<String, dynamic> toJson() {
6785 Map<String, dynamic> result = {};
6786 result["edit"] = edit.toJson();
6787 return result;
6788 }
6789
6790 @override
6791 Response toResponse(String id) {
6792 return new Response(id, result: toJson());
6793 }
6794
6795 @override
6796 String toString() => JSON.encode(toJson());
6797
6798 @override
6799 bool operator ==(other) {
6800 if (other is EditOrganizeDirectivesResult) {
6801 return edit == other.edit;
6802 }
6803 return false;
6804 }
6805
6806 @override
6807 int get hashCode {
6808 int hash = 0;
6809 hash = JenkinsSmiHash.combine(hash, edit.hashCode);
6810 return JenkinsSmiHash.finish(hash);
6811 }
6812 }
6813
6814 /**
6815 * edit.sortMembers params
6816 *
6817 * {
6818 * "file": FilePath
6819 * }
6820 *
6821 * Clients may not extend, implement or mix-in this class.
6822 */
6823 class EditSortMembersParams implements RequestParams {
6824 String _file;
6825
6826 /**
6827 * The Dart file to sort.
6828 */
6829 String get file => _file;
6830
6831 /**
6832 * The Dart file to sort.
6833 */
6834 void set file(String value) {
6835 assert(value != null);
6836 this._file = value;
6837 }
6838
6839 EditSortMembersParams(String file) {
6840 this.file = file;
6841 }
6842
6843 factory EditSortMembersParams.fromJson(
6844 JsonDecoder jsonDecoder, String jsonPath, Object json) {
6845 if (json == null) {
6846 json = {};
6847 }
6848 if (json is Map) {
6849 String file;
6850 if (json.containsKey("file")) {
6851 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
6852 } else {
6853 throw jsonDecoder.mismatch(jsonPath, "file");
6854 }
6855 return new EditSortMembersParams(file);
6856 } else {
6857 throw jsonDecoder.mismatch(jsonPath, "edit.sortMembers params", json);
6858 }
6859 }
6860
6861 factory EditSortMembersParams.fromRequest(Request request) {
6862 return new EditSortMembersParams.fromJson(
6863 new RequestDecoder(request), "params", request.params);
6864 }
6865
6866 @override
6867 Map<String, dynamic> toJson() {
6868 Map<String, dynamic> result = {};
6869 result["file"] = file;
6870 return result;
6871 }
6872
6873 @override
6874 Request toRequest(String id) {
6875 return new Request(id, "edit.sortMembers", toJson());
6876 }
6877
6878 @override
6879 String toString() => JSON.encode(toJson());
6880
6881 @override
6882 bool operator ==(other) {
6883 if (other is EditSortMembersParams) {
6884 return file == other.file;
6885 }
6886 return false;
6887 }
10968 6888
10969 @override 6889 @override
10970 int get hashCode { 6890 int get hashCode {
10971 int hash = 0; 6891 int hash = 0;
10972 hash = JenkinsSmiHash.combine(hash, kind.hashCode); 6892 hash = JenkinsSmiHash.combine(hash, file.hashCode);
10973 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
10974 hash = JenkinsSmiHash.combine(hash, length.hashCode);
10975 return JenkinsSmiHash.finish(hash); 6893 return JenkinsSmiHash.finish(hash);
10976 } 6894 }
10977 } 6895 }
10978 6896
10979 /** 6897 /**
10980 * GeneralAnalysisService 6898 * edit.sortMembers result
10981 * 6899 *
10982 * enum { 6900 * {
10983 * ANALYZED_FILES 6901 * "edit": SourceFileEdit
10984 * } 6902 * }
10985 * 6903 *
10986 * Clients may not extend, implement or mix-in this class. 6904 * Clients may not extend, implement or mix-in this class.
10987 */ 6905 */
10988 class GeneralAnalysisService implements Enum { 6906 class EditSortMembersResult implements ResponseResult {
10989 static const GeneralAnalysisService ANALYZED_FILES = 6907 SourceFileEdit _edit;
10990 const GeneralAnalysisService._("ANALYZED_FILES");
10991 6908
10992 /** 6909 /**
10993 * A list containing all of the enum values that are defined. 6910 * The file edit that is to be applied to the given file to effect the
6911 * sorting.
10994 */ 6912 */
10995 static const List<GeneralAnalysisService> VALUES = 6913 SourceFileEdit get edit => _edit;
10996 const <GeneralAnalysisService>[ANALYZED_FILES];
10997 6914
10998 @override 6915 /**
10999 final String name; 6916 * The file edit that is to be applied to the given file to effect the
11000 6917 * sorting.
11001 const GeneralAnalysisService._(this.name); 6918 */
11002 6919 void set edit(SourceFileEdit value) {
11003 factory GeneralAnalysisService(String name) { 6920 assert(value != null);
11004 switch (name) { 6921 this._edit = value;
11005 case "ANALYZED_FILES":
11006 return ANALYZED_FILES;
11007 }
11008 throw new Exception('Illegal enum value: $name');
11009 } 6922 }
11010 6923
11011 factory GeneralAnalysisService.fromJson( 6924 EditSortMembersResult(SourceFileEdit edit) {
11012 JsonDecoder jsonDecoder, String jsonPath, Object json) { 6925 this.edit = edit;
11013 if (json is String) {
11014 try {
11015 return new GeneralAnalysisService(json);
11016 } catch (_) {
11017 // Fall through
11018 }
11019 }
11020 throw jsonDecoder.mismatch(jsonPath, "GeneralAnalysisService", json);
11021 } 6926 }
11022 6927
11023 @override 6928 factory EditSortMembersResult.fromJson(
11024 String toString() => "GeneralAnalysisService.$name";
11025
11026 String toJson() => name;
11027 }
11028
11029 /**
11030 * HighlightRegion
11031 *
11032 * {
11033 * "type": HighlightRegionType
11034 * "offset": int
11035 * "length": int
11036 * }
11037 *
11038 * Clients may not extend, implement or mix-in this class.
11039 */
11040 class HighlightRegion implements HasToJson {
11041 HighlightRegionType _type;
11042
11043 int _offset;
11044
11045 int _length;
11046
11047 /**
11048 * The type of highlight associated with the region.
11049 */
11050 HighlightRegionType get type => _type;
11051
11052 /**
11053 * The type of highlight associated with the region.
11054 */
11055 void set type(HighlightRegionType value) {
11056 assert(value != null);
11057 this._type = value;
11058 }
11059
11060 /**
11061 * The offset of the region to be highlighted.
11062 */
11063 int get offset => _offset;
11064
11065 /**
11066 * The offset of the region to be highlighted.
11067 */
11068 void set offset(int value) {
11069 assert(value != null);
11070 this._offset = value;
11071 }
11072
11073 /**
11074 * The length of the region to be highlighted.
11075 */
11076 int get length => _length;
11077
11078 /**
11079 * The length of the region to be highlighted.
11080 */
11081 void set length(int value) {
11082 assert(value != null);
11083 this._length = value;
11084 }
11085
11086 HighlightRegion(HighlightRegionType type, int offset, int length) {
11087 this.type = type;
11088 this.offset = offset;
11089 this.length = length;
11090 }
11091
11092 factory HighlightRegion.fromJson(
11093 JsonDecoder jsonDecoder, String jsonPath, Object json) { 6929 JsonDecoder jsonDecoder, String jsonPath, Object json) {
11094 if (json == null) { 6930 if (json == null) {
11095 json = {}; 6931 json = {};
11096 } 6932 }
11097 if (json is Map) { 6933 if (json is Map) {
11098 HighlightRegionType type; 6934 SourceFileEdit edit;
11099 if (json.containsKey("type")) { 6935 if (json.containsKey("edit")) {
11100 type = new HighlightRegionType.fromJson( 6936 edit = new SourceFileEdit.fromJson(
11101 jsonDecoder, jsonPath + ".type", json["type"]); 6937 jsonDecoder, jsonPath + ".edit", json["edit"]);
11102 } else { 6938 } else {
11103 throw jsonDecoder.mismatch(jsonPath, "type"); 6939 throw jsonDecoder.mismatch(jsonPath, "edit");
11104 } 6940 }
11105 int offset; 6941 return new EditSortMembersResult(edit);
11106 if (json.containsKey("offset")) { 6942 } else {
11107 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); 6943 throw jsonDecoder.mismatch(jsonPath, "edit.sortMembers result", json);
6944 }
6945 }
6946
6947 factory EditSortMembersResult.fromResponse(Response response) {
6948 return new EditSortMembersResult.fromJson(
6949 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
6950 "result",
6951 response.result);
6952 }
6953
6954 @override
6955 Map<String, dynamic> toJson() {
6956 Map<String, dynamic> result = {};
6957 result["edit"] = edit.toJson();
6958 return result;
6959 }
6960
6961 @override
6962 Response toResponse(String id) {
6963 return new Response(id, result: toJson());
6964 }
6965
6966 @override
6967 String toString() => JSON.encode(toJson());
6968
6969 @override
6970 bool operator ==(other) {
6971 if (other is EditSortMembersResult) {
6972 return edit == other.edit;
6973 }
6974 return false;
6975 }
6976
6977 @override
6978 int get hashCode {
6979 int hash = 0;
6980 hash = JenkinsSmiHash.combine(hash, edit.hashCode);
6981 return JenkinsSmiHash.finish(hash);
6982 }
6983 }
6984
6985 /**
6986 * ExecutableFile
6987 *
6988 * {
6989 * "file": FilePath
6990 * "kind": ExecutableKind
6991 * }
6992 *
6993 * Clients may not extend, implement or mix-in this class.
6994 */
6995 class ExecutableFile implements HasToJson {
6996 String _file;
6997
6998 ExecutableKind _kind;
6999
7000 /**
7001 * The path of the executable file.
7002 */
7003 String get file => _file;
7004
7005 /**
7006 * The path of the executable file.
7007 */
7008 void set file(String value) {
7009 assert(value != null);
7010 this._file = value;
7011 }
7012
7013 /**
7014 * The kind of the executable file.
7015 */
7016 ExecutableKind get kind => _kind;
7017
7018 /**
7019 * The kind of the executable file.
7020 */
7021 void set kind(ExecutableKind value) {
7022 assert(value != null);
7023 this._kind = value;
7024 }
7025
7026 ExecutableFile(String file, ExecutableKind kind) {
7027 this.file = file;
7028 this.kind = kind;
7029 }
7030
7031 factory ExecutableFile.fromJson(
7032 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7033 if (json == null) {
7034 json = {};
7035 }
7036 if (json is Map) {
7037 String file;
7038 if (json.containsKey("file")) {
7039 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
11108 } else { 7040 } else {
11109 throw jsonDecoder.mismatch(jsonPath, "offset"); 7041 throw jsonDecoder.mismatch(jsonPath, "file");
11110 } 7042 }
11111 int length; 7043 ExecutableKind kind;
11112 if (json.containsKey("length")) { 7044 if (json.containsKey("kind")) {
11113 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); 7045 kind = new ExecutableKind.fromJson(
7046 jsonDecoder, jsonPath + ".kind", json["kind"]);
11114 } else { 7047 } else {
11115 throw jsonDecoder.mismatch(jsonPath, "length"); 7048 throw jsonDecoder.mismatch(jsonPath, "kind");
11116 } 7049 }
11117 return new HighlightRegion(type, offset, length); 7050 return new ExecutableFile(file, kind);
11118 } else { 7051 } else {
11119 throw jsonDecoder.mismatch(jsonPath, "HighlightRegion", json); 7052 throw jsonDecoder.mismatch(jsonPath, "ExecutableFile", json);
11120 } 7053 }
11121 } 7054 }
11122 7055
11123 @override 7056 @override
11124 Map<String, dynamic> toJson() { 7057 Map<String, dynamic> toJson() {
11125 Map<String, dynamic> result = {}; 7058 Map<String, dynamic> result = {};
11126 result["type"] = type.toJson(); 7059 result["file"] = file;
11127 result["offset"] = offset; 7060 result["kind"] = kind.toJson();
11128 result["length"] = length;
11129 return result; 7061 return result;
11130 } 7062 }
11131 7063
11132 @override 7064 @override
11133 String toString() => JSON.encode(toJson()); 7065 String toString() => JSON.encode(toJson());
11134 7066
11135 @override 7067 @override
11136 bool operator ==(other) { 7068 bool operator ==(other) {
11137 if (other is HighlightRegion) { 7069 if (other is ExecutableFile) {
11138 return type == other.type && 7070 return file == other.file && kind == other.kind;
11139 offset == other.offset &&
11140 length == other.length;
11141 } 7071 }
11142 return false; 7072 return false;
11143 } 7073 }
11144 7074
11145 @override 7075 @override
11146 int get hashCode { 7076 int get hashCode {
11147 int hash = 0; 7077 int hash = 0;
11148 hash = JenkinsSmiHash.combine(hash, type.hashCode); 7078 hash = JenkinsSmiHash.combine(hash, file.hashCode);
11149 hash = JenkinsSmiHash.combine(hash, offset.hashCode); 7079 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
11150 hash = JenkinsSmiHash.combine(hash, length.hashCode);
11151 return JenkinsSmiHash.finish(hash); 7080 return JenkinsSmiHash.finish(hash);
11152 } 7081 }
11153 } 7082 }
11154 7083
11155 /** 7084 /**
11156 * HighlightRegionType 7085 * ExecutableKind
11157 * 7086 *
11158 * enum { 7087 * enum {
11159 * ANNOTATION 7088 * CLIENT
11160 * BUILT_IN 7089 * EITHER
11161 * CLASS 7090 * NOT_EXECUTABLE
11162 * COMMENT_BLOCK 7091 * SERVER
11163 * COMMENT_DOCUMENTATION
11164 * COMMENT_END_OF_LINE
11165 * CONSTRUCTOR
11166 * DIRECTIVE
11167 * DYNAMIC_TYPE
11168 * DYNAMIC_LOCAL_VARIABLE_DECLARATION
11169 * DYNAMIC_LOCAL_VARIABLE_REFERENCE
11170 * DYNAMIC_PARAMETER_DECLARATION
11171 * DYNAMIC_PARAMETER_REFERENCE
11172 * ENUM
11173 * ENUM_CONSTANT
11174 * FIELD
11175 * FIELD_STATIC
11176 * FUNCTION
11177 * FUNCTION_DECLARATION
11178 * FUNCTION_TYPE_ALIAS
11179 * GETTER_DECLARATION
11180 * IDENTIFIER_DEFAULT
11181 * IMPORT_PREFIX
11182 * INSTANCE_FIELD_DECLARATION
11183 * INSTANCE_FIELD_REFERENCE
11184 * INSTANCE_GETTER_DECLARATION
11185 * INSTANCE_GETTER_REFERENCE
11186 * INSTANCE_METHOD_DECLARATION
11187 * INSTANCE_METHOD_REFERENCE
11188 * INSTANCE_SETTER_DECLARATION
11189 * INSTANCE_SETTER_REFERENCE
11190 * INVALID_STRING_ESCAPE
11191 * KEYWORD
11192 * LABEL
11193 * LIBRARY_NAME
11194 * LITERAL_BOOLEAN
11195 * LITERAL_DOUBLE
11196 * LITERAL_INTEGER
11197 * LITERAL_LIST
11198 * LITERAL_MAP
11199 * LITERAL_STRING
11200 * LOCAL_FUNCTION_DECLARATION
11201 * LOCAL_FUNCTION_REFERENCE
11202 * LOCAL_VARIABLE
11203 * LOCAL_VARIABLE_DECLARATION
11204 * LOCAL_VARIABLE_REFERENCE
11205 * METHOD
11206 * METHOD_DECLARATION
11207 * METHOD_DECLARATION_STATIC
11208 * METHOD_STATIC
11209 * PARAMETER
11210 * SETTER_DECLARATION
11211 * TOP_LEVEL_VARIABLE
11212 * PARAMETER_DECLARATION
11213 * PARAMETER_REFERENCE
11214 * STATIC_FIELD_DECLARATION
11215 * STATIC_GETTER_DECLARATION
11216 * STATIC_GETTER_REFERENCE
11217 * STATIC_METHOD_DECLARATION
11218 * STATIC_METHOD_REFERENCE
11219 * STATIC_SETTER_DECLARATION
11220 * STATIC_SETTER_REFERENCE
11221 * TOP_LEVEL_FUNCTION_DECLARATION
11222 * TOP_LEVEL_FUNCTION_REFERENCE
11223 * TOP_LEVEL_GETTER_DECLARATION
11224 * TOP_LEVEL_GETTER_REFERENCE
11225 * TOP_LEVEL_SETTER_DECLARATION
11226 * TOP_LEVEL_SETTER_REFERENCE
11227 * TOP_LEVEL_VARIABLE_DECLARATION
11228 * TYPE_NAME_DYNAMIC
11229 * TYPE_PARAMETER
11230 * UNRESOLVED_INSTANCE_MEMBER_REFERENCE
11231 * VALID_STRING_ESCAPE
11232 * } 7092 * }
11233 * 7093 *
11234 * Clients may not extend, implement or mix-in this class. 7094 * Clients may not extend, implement or mix-in this class.
11235 */ 7095 */
11236 class HighlightRegionType implements Enum { 7096 class ExecutableKind implements Enum {
11237 static const HighlightRegionType ANNOTATION = 7097 static const ExecutableKind CLIENT = const ExecutableKind._("CLIENT");
11238 const HighlightRegionType._("ANNOTATION"); 7098
11239 7099 static const ExecutableKind EITHER = const ExecutableKind._("EITHER");
11240 static const HighlightRegionType BUILT_IN = 7100
11241 const HighlightRegionType._("BUILT_IN"); 7101 static const ExecutableKind NOT_EXECUTABLE =
11242 7102 const ExecutableKind._("NOT_EXECUTABLE");
11243 static const HighlightRegionType CLASS = const HighlightRegionType._("CLASS"); 7103
11244 7104 static const ExecutableKind SERVER = const ExecutableKind._("SERVER");
11245 static const HighlightRegionType COMMENT_BLOCK =
11246 const HighlightRegionType._("COMMENT_BLOCK");
11247
11248 static const HighlightRegionType COMMENT_DOCUMENTATION =
11249 const HighlightRegionType._("COMMENT_DOCUMENTATION");
11250
11251 static const HighlightRegionType COMMENT_END_OF_LINE =
11252 const HighlightRegionType._("COMMENT_END_OF_LINE");
11253
11254 static const HighlightRegionType CONSTRUCTOR =
11255 const HighlightRegionType._("CONSTRUCTOR");
11256
11257 static const HighlightRegionType DIRECTIVE =
11258 const HighlightRegionType._("DIRECTIVE");
11259
11260 /**
11261 * Only for version 1 of highlight.
11262 */
11263 static const HighlightRegionType DYNAMIC_TYPE =
11264 const HighlightRegionType._("DYNAMIC_TYPE");
11265
11266 /**
11267 * Only for version 2 of highlight.
11268 */
11269 static const HighlightRegionType DYNAMIC_LOCAL_VARIABLE_DECLARATION =
11270 const HighlightRegionType._("DYNAMIC_LOCAL_VARIABLE_DECLARATION");
11271
11272 /**
11273 * Only for version 2 of highlight.
11274 */
11275 static const HighlightRegionType DYNAMIC_LOCAL_VARIABLE_REFERENCE =
11276 const HighlightRegionType._("DYNAMIC_LOCAL_VARIABLE_REFERENCE");
11277
11278 /**
11279 * Only for version 2 of highlight.
11280 */
11281 static const HighlightRegionType DYNAMIC_PARAMETER_DECLARATION =
11282 const HighlightRegionType._("DYNAMIC_PARAMETER_DECLARATION");
11283
11284 /**
11285 * Only for version 2 of highlight.
11286 */
11287 static const HighlightRegionType DYNAMIC_PARAMETER_REFERENCE =
11288 const HighlightRegionType._("DYNAMIC_PARAMETER_REFERENCE");
11289
11290 static const HighlightRegionType ENUM = const HighlightRegionType._("ENUM");
11291
11292 static const HighlightRegionType ENUM_CONSTANT =
11293 const HighlightRegionType._("ENUM_CONSTANT");
11294
11295 /**
11296 * Only for version 1 of highlight.
11297 */
11298 static const HighlightRegionType FIELD = const HighlightRegionType._("FIELD");
11299
11300 /**
11301 * Only for version 1 of highlight.
11302 */
11303 static const HighlightRegionType FIELD_STATIC =
11304 const HighlightRegionType._("FIELD_STATIC");
11305
11306 /**
11307 * Only for version 1 of highlight.
11308 */
11309 static const HighlightRegionType FUNCTION =
11310 const HighlightRegionType._("FUNCTION");
11311
11312 /**
11313 * Only for version 1 of highlight.
11314 */
11315 static const HighlightRegionType FUNCTION_DECLARATION =
11316 const HighlightRegionType._("FUNCTION_DECLARATION");
11317
11318 static const HighlightRegionType FUNCTION_TYPE_ALIAS =
11319 const HighlightRegionType._("FUNCTION_TYPE_ALIAS");
11320
11321 /**
11322 * Only for version 1 of highlight.
11323 */
11324 static const HighlightRegionType GETTER_DECLARATION =
11325 const HighlightRegionType._("GETTER_DECLARATION");
11326
11327 static const HighlightRegionType IDENTIFIER_DEFAULT =
11328 const HighlightRegionType._("IDENTIFIER_DEFAULT");
11329
11330 static const HighlightRegionType IMPORT_PREFIX =
11331 const HighlightRegionType._("IMPORT_PREFIX");
11332
11333 /**
11334 * Only for version 2 of highlight.
11335 */
11336 static const HighlightRegionType INSTANCE_FIELD_DECLARATION =
11337 const HighlightRegionType._("INSTANCE_FIELD_DECLARATION");
11338
11339 /**
11340 * Only for version 2 of highlight.
11341 */
11342 static const HighlightRegionType INSTANCE_FIELD_REFERENCE =
11343 const HighlightRegionType._("INSTANCE_FIELD_REFERENCE");
11344
11345 /**
11346 * Only for version 2 of highlight.
11347 */
11348 static const HighlightRegionType INSTANCE_GETTER_DECLARATION =
11349 const HighlightRegionType._("INSTANCE_GETTER_DECLARATION");
11350
11351 /**
11352 * Only for version 2 of highlight.
11353 */
11354 static const HighlightRegionType INSTANCE_GETTER_REFERENCE =
11355 const HighlightRegionType._("INSTANCE_GETTER_REFERENCE");
11356
11357 /**
11358 * Only for version 2 of highlight.
11359 */
11360 static const HighlightRegionType INSTANCE_METHOD_DECLARATION =
11361 const HighlightRegionType._("INSTANCE_METHOD_DECLARATION");
11362
11363 /**
11364 * Only for version 2 of highlight.
11365 */
11366 static const HighlightRegionType INSTANCE_METHOD_REFERENCE =
11367 const HighlightRegionType._("INSTANCE_METHOD_REFERENCE");
11368
11369 /**
11370 * Only for version 2 of highlight.
11371 */
11372 static const HighlightRegionType INSTANCE_SETTER_DECLARATION =
11373 const HighlightRegionType._("INSTANCE_SETTER_DECLARATION");
11374
11375 /**
11376 * Only for version 2 of highlight.
11377 */
11378 static const HighlightRegionType INSTANCE_SETTER_REFERENCE =
11379 const HighlightRegionType._("INSTANCE_SETTER_REFERENCE");
11380
11381 /**
11382 * Only for version 2 of highlight.
11383 */
11384 static const HighlightRegionType INVALID_STRING_ESCAPE =
11385 const HighlightRegionType._("INVALID_STRING_ESCAPE");
11386
11387 static const HighlightRegionType KEYWORD =
11388 const HighlightRegionType._("KEYWORD");
11389
11390 static const HighlightRegionType LABEL = const HighlightRegionType._("LABEL");
11391
11392 /**
11393 * Only for version 2 of highlight.
11394 */
11395 static const HighlightRegionType LIBRARY_NAME =
11396 const HighlightRegionType._("LIBRARY_NAME");
11397
11398 static const HighlightRegionType LITERAL_BOOLEAN =
11399 const HighlightRegionType._("LITERAL_BOOLEAN");
11400
11401 static const HighlightRegionType LITERAL_DOUBLE =
11402 const HighlightRegionType._("LITERAL_DOUBLE");
11403
11404 static const HighlightRegionType LITERAL_INTEGER =
11405 const HighlightRegionType._("LITERAL_INTEGER");
11406
11407 static const HighlightRegionType LITERAL_LIST =
11408 const HighlightRegionType._("LITERAL_LIST");
11409
11410 static const HighlightRegionType LITERAL_MAP =
11411 const HighlightRegionType._("LITERAL_MAP");
11412
11413 static const HighlightRegionType LITERAL_STRING =
11414 const HighlightRegionType._("LITERAL_STRING");
11415
11416 /**
11417 * Only for version 2 of highlight.
11418 */
11419 static const HighlightRegionType LOCAL_FUNCTION_DECLARATION =
11420 const HighlightRegionType._("LOCAL_FUNCTION_DECLARATION");
11421
11422 /**
11423 * Only for version 2 of highlight.
11424 */
11425 static const HighlightRegionType LOCAL_FUNCTION_REFERENCE =
11426 const HighlightRegionType._("LOCAL_FUNCTION_REFERENCE");
11427
11428 /**
11429 * Only for version 1 of highlight.
11430 */
11431 static const HighlightRegionType LOCAL_VARIABLE =
11432 const HighlightRegionType._("LOCAL_VARIABLE");
11433
11434 static const HighlightRegionType LOCAL_VARIABLE_DECLARATION =
11435 const HighlightRegionType._("LOCAL_VARIABLE_DECLARATION");
11436
11437 /**
11438 * Only for version 2 of highlight.
11439 */
11440 static const HighlightRegionType LOCAL_VARIABLE_REFERENCE =
11441 const HighlightRegionType._("LOCAL_VARIABLE_REFERENCE");
11442
11443 /**
11444 * Only for version 1 of highlight.
11445 */
11446 static const HighlightRegionType METHOD =
11447 const HighlightRegionType._("METHOD");
11448
11449 /**
11450 * Only for version 1 of highlight.
11451 */
11452 static const HighlightRegionType METHOD_DECLARATION =
11453 const HighlightRegionType._("METHOD_DECLARATION");
11454
11455 /**
11456 * Only for version 1 of highlight.
11457 */
11458 static const HighlightRegionType METHOD_DECLARATION_STATIC =
11459 const HighlightRegionType._("METHOD_DECLARATION_STATIC");
11460
11461 /**
11462 * Only for version 1 of highlight.
11463 */
11464 static const HighlightRegionType METHOD_STATIC =
11465 const HighlightRegionType._("METHOD_STATIC");
11466
11467 /**
11468 * Only for version 1 of highlight.
11469 */
11470 static const HighlightRegionType PARAMETER =
11471 const HighlightRegionType._("PARAMETER");
11472
11473 /**
11474 * Only for version 1 of highlight.
11475 */
11476 static const HighlightRegionType SETTER_DECLARATION =
11477 const HighlightRegionType._("SETTER_DECLARATION");
11478
11479 /**
11480 * Only for version 1 of highlight.
11481 */
11482 static const HighlightRegionType TOP_LEVEL_VARIABLE =
11483 const HighlightRegionType._("TOP_LEVEL_VARIABLE");
11484
11485 /**
11486 * Only for version 2 of highlight.
11487 */
11488 static const HighlightRegionType PARAMETER_DECLARATION =
11489 const HighlightRegionType._("PARAMETER_DECLARATION");
11490
11491 /**
11492 * Only for version 2 of highlight.
11493 */
11494 static const HighlightRegionType PARAMETER_REFERENCE =
11495 const HighlightRegionType._("PARAMETER_REFERENCE");
11496
11497 /**
11498 * Only for version 2 of highlight.
11499 */
11500 static const HighlightRegionType STATIC_FIELD_DECLARATION =
11501 const HighlightRegionType._("STATIC_FIELD_DECLARATION");
11502
11503 /**
11504 * Only for version 2 of highlight.
11505 */
11506 static const HighlightRegionType STATIC_GETTER_DECLARATION =
11507 const HighlightRegionType._("STATIC_GETTER_DECLARATION");
11508
11509 /**
11510 * Only for version 2 of highlight.
11511 */
11512 static const HighlightRegionType STATIC_GETTER_REFERENCE =
11513 const HighlightRegionType._("STATIC_GETTER_REFERENCE");
11514
11515 /**
11516 * Only for version 2 of highlight.
11517 */
11518 static const HighlightRegionType STATIC_METHOD_DECLARATION =
11519 const HighlightRegionType._("STATIC_METHOD_DECLARATION");
11520
11521 /**
11522 * Only for version 2 of highlight.
11523 */
11524 static const HighlightRegionType STATIC_METHOD_REFERENCE =
11525 const HighlightRegionType._("STATIC_METHOD_REFERENCE");
11526
11527 /**
11528 * Only for version 2 of highlight.
11529 */
11530 static const HighlightRegionType STATIC_SETTER_DECLARATION =
11531 const HighlightRegionType._("STATIC_SETTER_DECLARATION");
11532
11533 /**
11534 * Only for version 2 of highlight.
11535 */
11536 static const HighlightRegionType STATIC_SETTER_REFERENCE =
11537 const HighlightRegionType._("STATIC_SETTER_REFERENCE");
11538
11539 /**
11540 * Only for version 2 of highlight.
11541 */
11542 static const HighlightRegionType TOP_LEVEL_FUNCTION_DECLARATION =
11543 const HighlightRegionType._("TOP_LEVEL_FUNCTION_DECLARATION");
11544
11545 /**
11546 * Only for version 2 of highlight.
11547 */
11548 static const HighlightRegionType TOP_LEVEL_FUNCTION_REFERENCE =
11549 const HighlightRegionType._("TOP_LEVEL_FUNCTION_REFERENCE");
11550
11551 /**
11552 * Only for version 2 of highlight.
11553 */
11554 static const HighlightRegionType TOP_LEVEL_GETTER_DECLARATION =
11555 const HighlightRegionType._("TOP_LEVEL_GETTER_DECLARATION");
11556
11557 /**
11558 * Only for version 2 of highlight.
11559 */
11560 static const HighlightRegionType TOP_LEVEL_GETTER_REFERENCE =
11561 const HighlightRegionType._("TOP_LEVEL_GETTER_REFERENCE");
11562
11563 /**
11564 * Only for version 2 of highlight.
11565 */
11566 static const HighlightRegionType TOP_LEVEL_SETTER_DECLARATION =
11567 const HighlightRegionType._("TOP_LEVEL_SETTER_DECLARATION");
11568
11569 /**
11570 * Only for version 2 of highlight.
11571 */
11572 static const HighlightRegionType TOP_LEVEL_SETTER_REFERENCE =
11573 const HighlightRegionType._("TOP_LEVEL_SETTER_REFERENCE");
11574
11575 /**
11576 * Only for version 2 of highlight.
11577 */
11578 static const HighlightRegionType TOP_LEVEL_VARIABLE_DECLARATION =
11579 const HighlightRegionType._("TOP_LEVEL_VARIABLE_DECLARATION");
11580
11581 static const HighlightRegionType TYPE_NAME_DYNAMIC =
11582 const HighlightRegionType._("TYPE_NAME_DYNAMIC");
11583
11584 static const HighlightRegionType TYPE_PARAMETER =
11585 const HighlightRegionType._("TYPE_PARAMETER");
11586
11587 /**
11588 * Only for version 2 of highlight.
11589 */
11590 static const HighlightRegionType UNRESOLVED_INSTANCE_MEMBER_REFERENCE =
11591 const HighlightRegionType._("UNRESOLVED_INSTANCE_MEMBER_REFERENCE");
11592
11593 /**
11594 * Only for version 2 of highlight.
11595 */
11596 static const HighlightRegionType VALID_STRING_ESCAPE =
11597 const HighlightRegionType._("VALID_STRING_ESCAPE");
11598 7105
11599 /** 7106 /**
11600 * A list containing all of the enum values that are defined. 7107 * A list containing all of the enum values that are defined.
11601 */ 7108 */
11602 static const List<HighlightRegionType> VALUES = const <HighlightRegionType>[ 7109 static const List<ExecutableKind> VALUES = const <ExecutableKind>[
11603 ANNOTATION, 7110 CLIENT,
11604 BUILT_IN, 7111 EITHER,
11605 CLASS, 7112 NOT_EXECUTABLE,
11606 COMMENT_BLOCK, 7113 SERVER
11607 COMMENT_DOCUMENTATION,
11608 COMMENT_END_OF_LINE,
11609 CONSTRUCTOR,
11610 DIRECTIVE,
11611 DYNAMIC_TYPE,
11612 DYNAMIC_LOCAL_VARIABLE_DECLARATION,
11613 DYNAMIC_LOCAL_VARIABLE_REFERENCE,
11614 DYNAMIC_PARAMETER_DECLARATION,
11615 DYNAMIC_PARAMETER_REFERENCE,
11616 ENUM,
11617 ENUM_CONSTANT,
11618 FIELD,
11619 FIELD_STATIC,
11620 FUNCTION,
11621 FUNCTION_DECLARATION,
11622 FUNCTION_TYPE_ALIAS,
11623 GETTER_DECLARATION,
11624 IDENTIFIER_DEFAULT,
11625 IMPORT_PREFIX,
11626 INSTANCE_FIELD_DECLARATION,
11627 INSTANCE_FIELD_REFERENCE,
11628 INSTANCE_GETTER_DECLARATION,
11629 INSTANCE_GETTER_REFERENCE,
11630 INSTANCE_METHOD_DECLARATION,
11631 INSTANCE_METHOD_REFERENCE,
11632 INSTANCE_SETTER_DECLARATION,
11633 INSTANCE_SETTER_REFERENCE,
11634 INVALID_STRING_ESCAPE,
11635 KEYWORD,
11636 LABEL,
11637 LIBRARY_NAME,
11638 LITERAL_BOOLEAN,
11639 LITERAL_DOUBLE,
11640 LITERAL_INTEGER,
11641 LITERAL_LIST,
11642 LITERAL_MAP,
11643 LITERAL_STRING,
11644 LOCAL_FUNCTION_DECLARATION,
11645 LOCAL_FUNCTION_REFERENCE,
11646 LOCAL_VARIABLE,
11647 LOCAL_VARIABLE_DECLARATION,
11648 LOCAL_VARIABLE_REFERENCE,
11649 METHOD,
11650 METHOD_DECLARATION,
11651 METHOD_DECLARATION_STATIC,
11652 METHOD_STATIC,
11653 PARAMETER,
11654 SETTER_DECLARATION,
11655 TOP_LEVEL_VARIABLE,
11656 PARAMETER_DECLARATION,
11657 PARAMETER_REFERENCE,
11658 STATIC_FIELD_DECLARATION,
11659 STATIC_GETTER_DECLARATION,
11660 STATIC_GETTER_REFERENCE,
11661 STATIC_METHOD_DECLARATION,
11662 STATIC_METHOD_REFERENCE,
11663 STATIC_SETTER_DECLARATION,
11664 STATIC_SETTER_REFERENCE,
11665 TOP_LEVEL_FUNCTION_DECLARATION,
11666 TOP_LEVEL_FUNCTION_REFERENCE,
11667 TOP_LEVEL_GETTER_DECLARATION,
11668 TOP_LEVEL_GETTER_REFERENCE,
11669 TOP_LEVEL_SETTER_DECLARATION,
11670 TOP_LEVEL_SETTER_REFERENCE,
11671 TOP_LEVEL_VARIABLE_DECLARATION,
11672 TYPE_NAME_DYNAMIC,
11673 TYPE_PARAMETER,
11674 UNRESOLVED_INSTANCE_MEMBER_REFERENCE,
11675 VALID_STRING_ESCAPE
11676 ]; 7114 ];
11677 7115
11678 @override 7116 @override
11679 final String name; 7117 final String name;
11680 7118
11681 const HighlightRegionType._(this.name); 7119 const ExecutableKind._(this.name);
11682 7120
11683 factory HighlightRegionType(String name) { 7121 factory ExecutableKind(String name) {
11684 switch (name) { 7122 switch (name) {
11685 case "ANNOTATION": 7123 case "CLIENT":
11686 return ANNOTATION; 7124 return CLIENT;
11687 case "BUILT_IN": 7125 case "EITHER":
11688 return BUILT_IN; 7126 return EITHER;
11689 case "CLASS": 7127 case "NOT_EXECUTABLE":
11690 return CLASS; 7128 return NOT_EXECUTABLE;
11691 case "COMMENT_BLOCK": 7129 case "SERVER":
11692 return COMMENT_BLOCK; 7130 return SERVER;
11693 case "COMMENT_DOCUMENTATION":
11694 return COMMENT_DOCUMENTATION;
11695 case "COMMENT_END_OF_LINE":
11696 return COMMENT_END_OF_LINE;
11697 case "CONSTRUCTOR":
11698 return CONSTRUCTOR;
11699 case "DIRECTIVE":
11700 return DIRECTIVE;
11701 case "DYNAMIC_TYPE":
11702 return DYNAMIC_TYPE;
11703 case "DYNAMIC_LOCAL_VARIABLE_DECLARATION":
11704 return DYNAMIC_LOCAL_VARIABLE_DECLARATION;
11705 case "DYNAMIC_LOCAL_VARIABLE_REFERENCE":
11706 return DYNAMIC_LOCAL_VARIABLE_REFERENCE;
11707 case "DYNAMIC_PARAMETER_DECLARATION":
11708 return DYNAMIC_PARAMETER_DECLARATION;
11709 case "DYNAMIC_PARAMETER_REFERENCE":
11710 return DYNAMIC_PARAMETER_REFERENCE;
11711 case "ENUM":
11712 return ENUM;
11713 case "ENUM_CONSTANT":
11714 return ENUM_CONSTANT;
11715 case "FIELD":
11716 return FIELD;
11717 case "FIELD_STATIC":
11718 return FIELD_STATIC;
11719 case "FUNCTION":
11720 return FUNCTION;
11721 case "FUNCTION_DECLARATION":
11722 return FUNCTION_DECLARATION;
11723 case "FUNCTION_TYPE_ALIAS":
11724 return FUNCTION_TYPE_ALIAS;
11725 case "GETTER_DECLARATION":
11726 return GETTER_DECLARATION;
11727 case "IDENTIFIER_DEFAULT":
11728 return IDENTIFIER_DEFAULT;
11729 case "IMPORT_PREFIX":
11730 return IMPORT_PREFIX;
11731 case "INSTANCE_FIELD_DECLARATION":
11732 return INSTANCE_FIELD_DECLARATION;
11733 case "INSTANCE_FIELD_REFERENCE":
11734 return INSTANCE_FIELD_REFERENCE;
11735 case "INSTANCE_GETTER_DECLARATION":
11736 return INSTANCE_GETTER_DECLARATION;
11737 case "INSTANCE_GETTER_REFERENCE":
11738 return INSTANCE_GETTER_REFERENCE;
11739 case "INSTANCE_METHOD_DECLARATION":
11740 return INSTANCE_METHOD_DECLARATION;
11741 case "INSTANCE_METHOD_REFERENCE":
11742 return INSTANCE_METHOD_REFERENCE;
11743 case "INSTANCE_SETTER_DECLARATION":
11744 return INSTANCE_SETTER_DECLARATION;
11745 case "INSTANCE_SETTER_REFERENCE":
11746 return INSTANCE_SETTER_REFERENCE;
11747 case "INVALID_STRING_ESCAPE":
11748 return INVALID_STRING_ESCAPE;
11749 case "KEYWORD":
11750 return KEYWORD;
11751 case "LABEL":
11752 return LABEL;
11753 case "LIBRARY_NAME":
11754 return LIBRARY_NAME;
11755 case "LITERAL_BOOLEAN":
11756 return LITERAL_BOOLEAN;
11757 case "LITERAL_DOUBLE":
11758 return LITERAL_DOUBLE;
11759 case "LITERAL_INTEGER":
11760 return LITERAL_INTEGER;
11761 case "LITERAL_LIST":
11762 return LITERAL_LIST;
11763 case "LITERAL_MAP":
11764 return LITERAL_MAP;
11765 case "LITERAL_STRING":
11766 return LITERAL_STRING;
11767 case "LOCAL_FUNCTION_DECLARATION":
11768 return LOCAL_FUNCTION_DECLARATION;
11769 case "LOCAL_FUNCTION_REFERENCE":
11770 return LOCAL_FUNCTION_REFERENCE;
11771 case "LOCAL_VARIABLE":
11772 return LOCAL_VARIABLE;
11773 case "LOCAL_VARIABLE_DECLARATION":
11774 return LOCAL_VARIABLE_DECLARATION;
11775 case "LOCAL_VARIABLE_REFERENCE":
11776 return LOCAL_VARIABLE_REFERENCE;
11777 case "METHOD":
11778 return METHOD;
11779 case "METHOD_DECLARATION":
11780 return METHOD_DECLARATION;
11781 case "METHOD_DECLARATION_STATIC":
11782 return METHOD_DECLARATION_STATIC;
11783 case "METHOD_STATIC":
11784 return METHOD_STATIC;
11785 case "PARAMETER":
11786 return PARAMETER;
11787 case "SETTER_DECLARATION":
11788 return SETTER_DECLARATION;
11789 case "TOP_LEVEL_VARIABLE":
11790 return TOP_LEVEL_VARIABLE;
11791 case "PARAMETER_DECLARATION":
11792 return PARAMETER_DECLARATION;
11793 case "PARAMETER_REFERENCE":
11794 return PARAMETER_REFERENCE;
11795 case "STATIC_FIELD_DECLARATION":
11796 return STATIC_FIELD_DECLARATION;
11797 case "STATIC_GETTER_DECLARATION":
11798 return STATIC_GETTER_DECLARATION;
11799 case "STATIC_GETTER_REFERENCE":
11800 return STATIC_GETTER_REFERENCE;
11801 case "STATIC_METHOD_DECLARATION":
11802 return STATIC_METHOD_DECLARATION;
11803 case "STATIC_METHOD_REFERENCE":
11804 return STATIC_METHOD_REFERENCE;
11805 case "STATIC_SETTER_DECLARATION":
11806 return STATIC_SETTER_DECLARATION;
11807 case "STATIC_SETTER_REFERENCE":
11808 return STATIC_SETTER_REFERENCE;
11809 case "TOP_LEVEL_FUNCTION_DECLARATION":
11810 return TOP_LEVEL_FUNCTION_DECLARATION;
11811 case "TOP_LEVEL_FUNCTION_REFERENCE":
11812 return TOP_LEVEL_FUNCTION_REFERENCE;
11813 case "TOP_LEVEL_GETTER_DECLARATION":
11814 return TOP_LEVEL_GETTER_DECLARATION;
11815 case "TOP_LEVEL_GETTER_REFERENCE":
11816 return TOP_LEVEL_GETTER_REFERENCE;
11817 case "TOP_LEVEL_SETTER_DECLARATION":
11818 return TOP_LEVEL_SETTER_DECLARATION;
11819 case "TOP_LEVEL_SETTER_REFERENCE":
11820 return TOP_LEVEL_SETTER_REFERENCE;
11821 case "TOP_LEVEL_VARIABLE_DECLARATION":
11822 return TOP_LEVEL_VARIABLE_DECLARATION;
11823 case "TYPE_NAME_DYNAMIC":
11824 return TYPE_NAME_DYNAMIC;
11825 case "TYPE_PARAMETER":
11826 return TYPE_PARAMETER;
11827 case "UNRESOLVED_INSTANCE_MEMBER_REFERENCE":
11828 return UNRESOLVED_INSTANCE_MEMBER_REFERENCE;
11829 case "VALID_STRING_ESCAPE":
11830 return VALID_STRING_ESCAPE;
11831 } 7131 }
11832 throw new Exception('Illegal enum value: $name'); 7132 throw new Exception('Illegal enum value: $name');
11833 } 7133 }
11834 7134
11835 factory HighlightRegionType.fromJson( 7135 factory ExecutableKind.fromJson(
11836 JsonDecoder jsonDecoder, String jsonPath, Object json) { 7136 JsonDecoder jsonDecoder, String jsonPath, Object json) {
11837 if (json is String) { 7137 if (json is String) {
11838 try { 7138 try {
11839 return new HighlightRegionType(json); 7139 return new ExecutableKind(json);
11840 } catch (_) { 7140 } catch (_) {
11841 // Fall through 7141 // Fall through
11842 } 7142 }
11843 } 7143 }
11844 throw jsonDecoder.mismatch(jsonPath, "HighlightRegionType", json); 7144 throw jsonDecoder.mismatch(jsonPath, "ExecutableKind", json);
11845 } 7145 }
11846 7146
11847 @override 7147 @override
11848 String toString() => "HighlightRegionType.$name"; 7148 String toString() => "ExecutableKind.$name";
11849 7149
11850 String toJson() => name; 7150 String toJson() => name;
11851 } 7151 }
11852 7152
11853 /** 7153 /**
11854 * HoverInformation 7154 * execution.createContext params
11855 * 7155 *
11856 * { 7156 * {
11857 * "offset": int 7157 * "contextRoot": FilePath
11858 * "length": int
11859 * "containingLibraryPath": optional String
11860 * "containingLibraryName": optional String
11861 * "containingClassDescription": optional String
11862 * "dartdoc": optional String
11863 * "elementDescription": optional String
11864 * "elementKind": optional String
11865 * "isDeprecated": optional bool
11866 * "parameter": optional String
11867 * "propagatedType": optional String
11868 * "staticType": optional String
11869 * } 7158 * }
11870 * 7159 *
11871 * Clients may not extend, implement or mix-in this class. 7160 * Clients may not extend, implement or mix-in this class.
11872 */ 7161 */
11873 class HoverInformation implements HasToJson { 7162 class ExecutionCreateContextParams implements RequestParams {
11874 int _offset; 7163 String _contextRoot;
11875 7164
11876 int _length; 7165 /**
11877 7166 * The path of the Dart or HTML file that will be launched, or the path of
11878 String _containingLibraryPath; 7167 * the directory containing the file.
11879 7168 */
11880 String _containingLibraryName; 7169 String get contextRoot => _contextRoot;
11881 7170
11882 String _containingClassDescription; 7171 /**
11883 7172 * The path of the Dart or HTML file that will be launched, or the path of
11884 String _dartdoc; 7173 * the directory containing the file.
11885 7174 */
11886 String _elementDescription; 7175 void set contextRoot(String value) {
11887
11888 String _elementKind;
11889
11890 bool _isDeprecated;
11891
11892 String _parameter;
11893
11894 String _propagatedType;
11895
11896 String _staticType;
11897
11898 /**
11899 * The offset of the range of characters that encompasses the cursor position
11900 * and has the same hover information as the cursor position.
11901 */
11902 int get offset => _offset;
11903
11904 /**
11905 * The offset of the range of characters that encompasses the cursor position
11906 * and has the same hover information as the cursor position.
11907 */
11908 void set offset(int value) {
11909 assert(value != null); 7176 assert(value != null);
11910 this._offset = value; 7177 this._contextRoot = value;
11911 } 7178 }
11912 7179
11913 /** 7180 ExecutionCreateContextParams(String contextRoot) {
11914 * The length of the range of characters that encompasses the cursor position 7181 this.contextRoot = contextRoot;
11915 * and has the same hover information as the cursor position. 7182 }
11916 */ 7183
11917 int get length => _length; 7184 factory ExecutionCreateContextParams.fromJson(
11918
11919 /**
11920 * The length of the range of characters that encompasses the cursor position
11921 * and has the same hover information as the cursor position.
11922 */
11923 void set length(int value) {
11924 assert(value != null);
11925 this._length = value;
11926 }
11927
11928 /**
11929 * The path to the defining compilation unit of the library in which the
11930 * referenced element is declared. This data is omitted if there is no
11931 * referenced element, or if the element is declared inside an HTML file.
11932 */
11933 String get containingLibraryPath => _containingLibraryPath;
11934
11935 /**
11936 * The path to the defining compilation unit of the library in which the
11937 * referenced element is declared. This data is omitted if there is no
11938 * referenced element, or if the element is declared inside an HTML file.
11939 */
11940 void set containingLibraryPath(String value) {
11941 this._containingLibraryPath = value;
11942 }
11943
11944 /**
11945 * The name of the library in which the referenced element is declared. This
11946 * data is omitted if there is no referenced element, or if the element is
11947 * declared inside an HTML file.
11948 */
11949 String get containingLibraryName => _containingLibraryName;
11950
11951 /**
11952 * The name of the library in which the referenced element is declared. This
11953 * data is omitted if there is no referenced element, or if the element is
11954 * declared inside an HTML file.
11955 */
11956 void set containingLibraryName(String value) {
11957 this._containingLibraryName = value;
11958 }
11959
11960 /**
11961 * A human-readable description of the class declaring the element being
11962 * referenced. This data is omitted if there is no referenced element, or if
11963 * the element is not a class member.
11964 */
11965 String get containingClassDescription => _containingClassDescription;
11966
11967 /**
11968 * A human-readable description of the class declaring the element being
11969 * referenced. This data is omitted if there is no referenced element, or if
11970 * the element is not a class member.
11971 */
11972 void set containingClassDescription(String value) {
11973 this._containingClassDescription = value;
11974 }
11975
11976 /**
11977 * The dartdoc associated with the referenced element. Other than the removal
11978 * of the comment delimiters, including leading asterisks in the case of a
11979 * block comment, the dartdoc is unprocessed markdown. This data is omitted
11980 * if there is no referenced element, or if the element has no dartdoc.
11981 */
11982 String get dartdoc => _dartdoc;
11983
11984 /**
11985 * The dartdoc associated with the referenced element. Other than the removal
11986 * of the comment delimiters, including leading asterisks in the case of a
11987 * block comment, the dartdoc is unprocessed markdown. This data is omitted
11988 * if there is no referenced element, or if the element has no dartdoc.
11989 */
11990 void set dartdoc(String value) {
11991 this._dartdoc = value;
11992 }
11993
11994 /**
11995 * A human-readable description of the element being referenced. This data is
11996 * omitted if there is no referenced element.
11997 */
11998 String get elementDescription => _elementDescription;
11999
12000 /**
12001 * A human-readable description of the element being referenced. This data is
12002 * omitted if there is no referenced element.
12003 */
12004 void set elementDescription(String value) {
12005 this._elementDescription = value;
12006 }
12007
12008 /**
12009 * A human-readable description of the kind of element being referenced (such
12010 * as "class" or "function type alias"). This data is omitted if there is no
12011 * referenced element.
12012 */
12013 String get elementKind => _elementKind;
12014
12015 /**
12016 * A human-readable description of the kind of element being referenced (such
12017 * as "class" or "function type alias"). This data is omitted if there is no
12018 * referenced element.
12019 */
12020 void set elementKind(String value) {
12021 this._elementKind = value;
12022 }
12023
12024 /**
12025 * True if the referenced element is deprecated.
12026 */
12027 bool get isDeprecated => _isDeprecated;
12028
12029 /**
12030 * True if the referenced element is deprecated.
12031 */
12032 void set isDeprecated(bool value) {
12033 this._isDeprecated = value;
12034 }
12035
12036 /**
12037 * A human-readable description of the parameter corresponding to the
12038 * expression being hovered over. This data is omitted if the location is not
12039 * in an argument to a function.
12040 */
12041 String get parameter => _parameter;
12042
12043 /**
12044 * A human-readable description of the parameter corresponding to the
12045 * expression being hovered over. This data is omitted if the location is not
12046 * in an argument to a function.
12047 */
12048 void set parameter(String value) {
12049 this._parameter = value;
12050 }
12051
12052 /**
12053 * The name of the propagated type of the expression. This data is omitted if
12054 * the location does not correspond to an expression or if there is no
12055 * propagated type information.
12056 */
12057 String get propagatedType => _propagatedType;
12058
12059 /**
12060 * The name of the propagated type of the expression. This data is omitted if
12061 * the location does not correspond to an expression or if there is no
12062 * propagated type information.
12063 */
12064 void set propagatedType(String value) {
12065 this._propagatedType = value;
12066 }
12067
12068 /**
12069 * The name of the static type of the expression. This data is omitted if the
12070 * location does not correspond to an expression.
12071 */
12072 String get staticType => _staticType;
12073
12074 /**
12075 * The name of the static type of the expression. This data is omitted if the
12076 * location does not correspond to an expression.
12077 */
12078 void set staticType(String value) {
12079 this._staticType = value;
12080 }
12081
12082 HoverInformation(int offset, int length,
12083 {String containingLibraryPath,
12084 String containingLibraryName,
12085 String containingClassDescription,
12086 String dartdoc,
12087 String elementDescription,
12088 String elementKind,
12089 bool isDeprecated,
12090 String parameter,
12091 String propagatedType,
12092 String staticType}) {
12093 this.offset = offset;
12094 this.length = length;
12095 this.containingLibraryPath = containingLibraryPath;
12096 this.containingLibraryName = containingLibraryName;
12097 this.containingClassDescription = containingClassDescription;
12098 this.dartdoc = dartdoc;
12099 this.elementDescription = elementDescription;
12100 this.elementKind = elementKind;
12101 this.isDeprecated = isDeprecated;
12102 this.parameter = parameter;
12103 this.propagatedType = propagatedType;
12104 this.staticType = staticType;
12105 }
12106
12107 factory HoverInformation.fromJson(
12108 JsonDecoder jsonDecoder, String jsonPath, Object json) { 7185 JsonDecoder jsonDecoder, String jsonPath, Object json) {
12109 if (json == null) { 7186 if (json == null) {
12110 json = {}; 7187 json = {};
12111 } 7188 }
12112 if (json is Map) { 7189 if (json is Map) {
12113 int offset; 7190 String contextRoot;
12114 if (json.containsKey("offset")) { 7191 if (json.containsKey("contextRoot")) {
12115 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); 7192 contextRoot = jsonDecoder.decodeString(
7193 jsonPath + ".contextRoot", json["contextRoot"]);
12116 } else { 7194 } else {
12117 throw jsonDecoder.mismatch(jsonPath, "offset"); 7195 throw jsonDecoder.mismatch(jsonPath, "contextRoot");
12118 } 7196 }
12119 int length; 7197 return new ExecutionCreateContextParams(contextRoot);
12120 if (json.containsKey("length")) {
12121 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
12122 } else {
12123 throw jsonDecoder.mismatch(jsonPath, "length");
12124 }
12125 String containingLibraryPath;
12126 if (json.containsKey("containingLibraryPath")) {
12127 containingLibraryPath = jsonDecoder.decodeString(
12128 jsonPath + ".containingLibraryPath", json["containingLibraryPath"]);
12129 }
12130 String containingLibraryName;
12131 if (json.containsKey("containingLibraryName")) {
12132 containingLibraryName = jsonDecoder.decodeString(
12133 jsonPath + ".containingLibraryName", json["containingLibraryName"]);
12134 }
12135 String containingClassDescription;
12136 if (json.containsKey("containingClassDescription")) {
12137 containingClassDescription = jsonDecoder.decodeString(
12138 jsonPath + ".containingClassDescription",
12139 json["containingClassDescription"]);
12140 }
12141 String dartdoc;
12142 if (json.containsKey("dartdoc")) {
12143 dartdoc =
12144 jsonDecoder.decodeString(jsonPath + ".dartdoc", json["dartdoc"]);
12145 }
12146 String elementDescription;
12147 if (json.containsKey("elementDescription")) {
12148 elementDescription = jsonDecoder.decodeString(
12149 jsonPath + ".elementDescription", json["elementDescription"]);
12150 }
12151 String elementKind;
12152 if (json.containsKey("elementKind")) {
12153 elementKind = jsonDecoder.decodeString(
12154 jsonPath + ".elementKind", json["elementKind"]);
12155 }
12156 bool isDeprecated;
12157 if (json.containsKey("isDeprecated")) {
12158 isDeprecated = jsonDecoder.decodeBool(
12159 jsonPath + ".isDeprecated", json["isDeprecated"]);
12160 }
12161 String parameter;
12162 if (json.containsKey("parameter")) {
12163 parameter = jsonDecoder.decodeString(
12164 jsonPath + ".parameter", json["parameter"]);
12165 }
12166 String propagatedType;
12167 if (json.containsKey("propagatedType")) {
12168 propagatedType = jsonDecoder.decodeString(
12169 jsonPath + ".propagatedType", json["propagatedType"]);
12170 }
12171 String staticType;
12172 if (json.containsKey("staticType")) {
12173 staticType = jsonDecoder.decodeString(
12174 jsonPath + ".staticType", json["staticType"]);
12175 }
12176 return new HoverInformation(offset, length,
12177 containingLibraryPath: containingLibraryPath,
12178 containingLibraryName: containingLibraryName,
12179 containingClassDescription: containingClassDescription,
12180 dartdoc: dartdoc,
12181 elementDescription: elementDescription,
12182 elementKind: elementKind,
12183 isDeprecated: isDeprecated,
12184 parameter: parameter,
12185 propagatedType: propagatedType,
12186 staticType: staticType);
12187 } else { 7198 } else {
12188 throw jsonDecoder.mismatch(jsonPath, "HoverInformation", json); 7199 throw jsonDecoder.mismatch(
12189 } 7200 jsonPath, "execution.createContext params", json);
7201 }
7202 }
7203
7204 factory ExecutionCreateContextParams.fromRequest(Request request) {
7205 return new ExecutionCreateContextParams.fromJson(
7206 new RequestDecoder(request), "params", request.params);
12190 } 7207 }
12191 7208
12192 @override 7209 @override
12193 Map<String, dynamic> toJson() { 7210 Map<String, dynamic> toJson() {
12194 Map<String, dynamic> result = {}; 7211 Map<String, dynamic> result = {};
12195 result["offset"] = offset; 7212 result["contextRoot"] = contextRoot;
12196 result["length"] = length;
12197 if (containingLibraryPath != null) {
12198 result["containingLibraryPath"] = containingLibraryPath;
12199 }
12200 if (containingLibraryName != null) {
12201 result["containingLibraryName"] = containingLibraryName;
12202 }
12203 if (containingClassDescription != null) {
12204 result["containingClassDescription"] = containingClassDescription;
12205 }
12206 if (dartdoc != null) {
12207 result["dartdoc"] = dartdoc;
12208 }
12209 if (elementDescription != null) {
12210 result["elementDescription"] = elementDescription;
12211 }
12212 if (elementKind != null) {
12213 result["elementKind"] = elementKind;
12214 }
12215 if (isDeprecated != null) {
12216 result["isDeprecated"] = isDeprecated;
12217 }
12218 if (parameter != null) {
12219 result["parameter"] = parameter;
12220 }
12221 if (propagatedType != null) {
12222 result["propagatedType"] = propagatedType;
12223 }
12224 if (staticType != null) {
12225 result["staticType"] = staticType;
12226 }
12227 return result; 7213 return result;
12228 } 7214 }
12229 7215
12230 @override 7216 @override
7217 Request toRequest(String id) {
7218 return new Request(id, "execution.createContext", toJson());
7219 }
7220
7221 @override
12231 String toString() => JSON.encode(toJson()); 7222 String toString() => JSON.encode(toJson());
12232 7223
12233 @override 7224 @override
12234 bool operator ==(other) { 7225 bool operator ==(other) {
12235 if (other is HoverInformation) { 7226 if (other is ExecutionCreateContextParams) {
12236 return offset == other.offset && 7227 return contextRoot == other.contextRoot;
12237 length == other.length &&
12238 containingLibraryPath == other.containingLibraryPath &&
12239 containingLibraryName == other.containingLibraryName &&
12240 containingClassDescription == other.containingClassDescription &&
12241 dartdoc == other.dartdoc &&
12242 elementDescription == other.elementDescription &&
12243 elementKind == other.elementKind &&
12244 isDeprecated == other.isDeprecated &&
12245 parameter == other.parameter &&
12246 propagatedType == other.propagatedType &&
12247 staticType == other.staticType;
12248 } 7228 }
12249 return false; 7229 return false;
12250 } 7230 }
7231
7232 @override
7233 int get hashCode {
7234 int hash = 0;
7235 hash = JenkinsSmiHash.combine(hash, contextRoot.hashCode);
7236 return JenkinsSmiHash.finish(hash);
7237 }
7238 }
7239
7240 /**
7241 * execution.createContext result
7242 *
7243 * {
7244 * "id": ExecutionContextId
7245 * }
7246 *
7247 * Clients may not extend, implement or mix-in this class.
7248 */
7249 class ExecutionCreateContextResult implements ResponseResult {
7250 String _id;
7251
7252 /**
7253 * The identifier used to refer to the execution context that was created.
7254 */
7255 String get id => _id;
7256
7257 /**
7258 * The identifier used to refer to the execution context that was created.
7259 */
7260 void set id(String value) {
7261 assert(value != null);
7262 this._id = value;
7263 }
7264
7265 ExecutionCreateContextResult(String id) {
7266 this.id = id;
7267 }
7268
7269 factory ExecutionCreateContextResult.fromJson(
7270 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7271 if (json == null) {
7272 json = {};
7273 }
7274 if (json is Map) {
7275 String id;
7276 if (json.containsKey("id")) {
7277 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
7278 } else {
7279 throw jsonDecoder.mismatch(jsonPath, "id");
7280 }
7281 return new ExecutionCreateContextResult(id);
7282 } else {
7283 throw jsonDecoder.mismatch(
7284 jsonPath, "execution.createContext result", json);
7285 }
7286 }
7287
7288 factory ExecutionCreateContextResult.fromResponse(Response response) {
7289 return new ExecutionCreateContextResult.fromJson(
7290 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
7291 "result",
7292 response.result);
7293 }
7294
7295 @override
7296 Map<String, dynamic> toJson() {
7297 Map<String, dynamic> result = {};
7298 result["id"] = id;
7299 return result;
7300 }
7301
7302 @override
7303 Response toResponse(String id) {
7304 return new Response(id, result: toJson());
7305 }
7306
7307 @override
7308 String toString() => JSON.encode(toJson());
7309
7310 @override
7311 bool operator ==(other) {
7312 if (other is ExecutionCreateContextResult) {
7313 return id == other.id;
7314 }
7315 return false;
7316 }
7317
7318 @override
7319 int get hashCode {
7320 int hash = 0;
7321 hash = JenkinsSmiHash.combine(hash, id.hashCode);
7322 return JenkinsSmiHash.finish(hash);
7323 }
7324 }
7325
7326 /**
7327 * execution.deleteContext params
7328 *
7329 * {
7330 * "id": ExecutionContextId
7331 * }
7332 *
7333 * Clients may not extend, implement or mix-in this class.
7334 */
7335 class ExecutionDeleteContextParams implements RequestParams {
7336 String _id;
7337
7338 /**
7339 * The identifier of the execution context that is to be deleted.
7340 */
7341 String get id => _id;
7342
7343 /**
7344 * The identifier of the execution context that is to be deleted.
7345 */
7346 void set id(String value) {
7347 assert(value != null);
7348 this._id = value;
7349 }
7350
7351 ExecutionDeleteContextParams(String id) {
7352 this.id = id;
7353 }
7354
7355 factory ExecutionDeleteContextParams.fromJson(
7356 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7357 if (json == null) {
7358 json = {};
7359 }
7360 if (json is Map) {
7361 String id;
7362 if (json.containsKey("id")) {
7363 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
7364 } else {
7365 throw jsonDecoder.mismatch(jsonPath, "id");
7366 }
7367 return new ExecutionDeleteContextParams(id);
7368 } else {
7369 throw jsonDecoder.mismatch(
7370 jsonPath, "execution.deleteContext params", json);
7371 }
7372 }
7373
7374 factory ExecutionDeleteContextParams.fromRequest(Request request) {
7375 return new ExecutionDeleteContextParams.fromJson(
7376 new RequestDecoder(request), "params", request.params);
7377 }
7378
7379 @override
7380 Map<String, dynamic> toJson() {
7381 Map<String, dynamic> result = {};
7382 result["id"] = id;
7383 return result;
7384 }
7385
7386 @override
7387 Request toRequest(String id) {
7388 return new Request(id, "execution.deleteContext", toJson());
7389 }
7390
7391 @override
7392 String toString() => JSON.encode(toJson());
7393
7394 @override
7395 bool operator ==(other) {
7396 if (other is ExecutionDeleteContextParams) {
7397 return id == other.id;
7398 }
7399 return false;
7400 }
7401
7402 @override
7403 int get hashCode {
7404 int hash = 0;
7405 hash = JenkinsSmiHash.combine(hash, id.hashCode);
7406 return JenkinsSmiHash.finish(hash);
7407 }
7408 }
7409
7410 /**
7411 * execution.deleteContext result
7412 *
7413 * Clients may not extend, implement or mix-in this class.
7414 */
7415 class ExecutionDeleteContextResult implements ResponseResult {
7416 @override
7417 Map<String, dynamic> toJson() => <String, dynamic>{};
7418
7419 @override
7420 Response toResponse(String id) {
7421 return new Response(id, result: null);
7422 }
7423
7424 @override
7425 bool operator ==(other) {
7426 if (other is ExecutionDeleteContextResult) {
7427 return true;
7428 }
7429 return false;
7430 }
7431
7432 @override
7433 int get hashCode {
7434 return 479954425;
7435 }
7436 }
7437
7438 /**
7439 * execution.launchData params
7440 *
7441 * {
7442 * "file": FilePath
7443 * "kind": optional ExecutableKind
7444 * "referencedFiles": optional List<FilePath>
7445 * }
7446 *
7447 * Clients may not extend, implement or mix-in this class.
7448 */
7449 class ExecutionLaunchDataParams implements HasToJson {
7450 String _file;
7451
7452 ExecutableKind _kind;
7453
7454 List<String> _referencedFiles;
7455
7456 /**
7457 * The file for which launch data is being provided. This will either be a
7458 * Dart library or an HTML file.
7459 */
7460 String get file => _file;
7461
7462 /**
7463 * The file for which launch data is being provided. This will either be a
7464 * Dart library or an HTML file.
7465 */
7466 void set file(String value) {
7467 assert(value != null);
7468 this._file = value;
7469 }
7470
7471 /**
7472 * The kind of the executable file. This field is omitted if the file is not
7473 * a Dart file.
7474 */
7475 ExecutableKind get kind => _kind;
7476
7477 /**
7478 * The kind of the executable file. This field is omitted if the file is not
7479 * a Dart file.
7480 */
7481 void set kind(ExecutableKind value) {
7482 this._kind = value;
7483 }
7484
7485 /**
7486 * A list of the Dart files that are referenced by the file. This field is
7487 * omitted if the file is not an HTML file.
7488 */
7489 List<String> get referencedFiles => _referencedFiles;
7490
7491 /**
7492 * A list of the Dart files that are referenced by the file. This field is
7493 * omitted if the file is not an HTML file.
7494 */
7495 void set referencedFiles(List<String> value) {
7496 this._referencedFiles = value;
7497 }
7498
7499 ExecutionLaunchDataParams(String file,
7500 {ExecutableKind kind, List<String> referencedFiles}) {
7501 this.file = file;
7502 this.kind = kind;
7503 this.referencedFiles = referencedFiles;
7504 }
7505
7506 factory ExecutionLaunchDataParams.fromJson(
7507 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7508 if (json == null) {
7509 json = {};
7510 }
7511 if (json is Map) {
7512 String file;
7513 if (json.containsKey("file")) {
7514 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
7515 } else {
7516 throw jsonDecoder.mismatch(jsonPath, "file");
7517 }
7518 ExecutableKind kind;
7519 if (json.containsKey("kind")) {
7520 kind = new ExecutableKind.fromJson(
7521 jsonDecoder, jsonPath + ".kind", json["kind"]);
7522 }
7523 List<String> referencedFiles;
7524 if (json.containsKey("referencedFiles")) {
7525 referencedFiles = jsonDecoder.decodeList(jsonPath + ".referencedFiles",
7526 json["referencedFiles"], jsonDecoder.decodeString);
7527 }
7528 return new ExecutionLaunchDataParams(file,
7529 kind: kind, referencedFiles: referencedFiles);
7530 } else {
7531 throw jsonDecoder.mismatch(jsonPath, "execution.launchData params", json);
7532 }
7533 }
7534
7535 factory ExecutionLaunchDataParams.fromNotification(
7536 Notification notification) {
7537 return new ExecutionLaunchDataParams.fromJson(
7538 new ResponseDecoder(null), "params", notification.params);
7539 }
7540
7541 @override
7542 Map<String, dynamic> toJson() {
7543 Map<String, dynamic> result = {};
7544 result["file"] = file;
7545 if (kind != null) {
7546 result["kind"] = kind.toJson();
7547 }
7548 if (referencedFiles != null) {
7549 result["referencedFiles"] = referencedFiles;
7550 }
7551 return result;
7552 }
7553
7554 Notification toNotification() {
7555 return new Notification("execution.launchData", toJson());
7556 }
7557
7558 @override
7559 String toString() => JSON.encode(toJson());
7560
7561 @override
7562 bool operator ==(other) {
7563 if (other is ExecutionLaunchDataParams) {
7564 return file == other.file &&
7565 kind == other.kind &&
7566 listEqual(referencedFiles, other.referencedFiles,
7567 (String a, String b) => a == b);
7568 }
7569 return false;
7570 }
12251 7571
12252 @override 7572 @override
12253 int get hashCode { 7573 int get hashCode {
12254 int hash = 0; 7574 int hash = 0;
12255 hash = JenkinsSmiHash.combine(hash, offset.hashCode); 7575 hash = JenkinsSmiHash.combine(hash, file.hashCode);
12256 hash = JenkinsSmiHash.combine(hash, length.hashCode); 7576 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
12257 hash = JenkinsSmiHash.combine(hash, containingLibraryPath.hashCode); 7577 hash = JenkinsSmiHash.combine(hash, referencedFiles.hashCode);
12258 hash = JenkinsSmiHash.combine(hash, containingLibraryName.hashCode);
12259 hash = JenkinsSmiHash.combine(hash, containingClassDescription.hashCode);
12260 hash = JenkinsSmiHash.combine(hash, dartdoc.hashCode);
12261 hash = JenkinsSmiHash.combine(hash, elementDescription.hashCode);
12262 hash = JenkinsSmiHash.combine(hash, elementKind.hashCode);
12263 hash = JenkinsSmiHash.combine(hash, isDeprecated.hashCode);
12264 hash = JenkinsSmiHash.combine(hash, parameter.hashCode);
12265 hash = JenkinsSmiHash.combine(hash, propagatedType.hashCode);
12266 hash = JenkinsSmiHash.combine(hash, staticType.hashCode);
12267 return JenkinsSmiHash.finish(hash); 7578 return JenkinsSmiHash.finish(hash);
12268 } 7579 }
12269 } 7580 }
12270 7581
12271 /** 7582 /**
12272 * ImplementedClass 7583 * execution.mapUri params
12273 * 7584 *
12274 * { 7585 * {
12275 * "offset": int 7586 * "id": ExecutionContextId
12276 * "length": int 7587 * "file": optional FilePath
7588 * "uri": optional String
12277 * } 7589 * }
12278 * 7590 *
12279 * Clients may not extend, implement or mix-in this class. 7591 * Clients may not extend, implement or mix-in this class.
12280 */ 7592 */
12281 class ImplementedClass implements HasToJson { 7593 class ExecutionMapUriParams implements RequestParams {
12282 int _offset; 7594 String _id;
12283 7595
12284 int _length; 7596 String _file;
7597
7598 String _uri;
12285 7599
12286 /** 7600 /**
12287 * The offset of the name of the implemented class. 7601 * The identifier of the execution context in which the URI is to be mapped.
12288 */ 7602 */
12289 int get offset => _offset; 7603 String get id => _id;
12290 7604
12291 /** 7605 /**
12292 * The offset of the name of the implemented class. 7606 * The identifier of the execution context in which the URI is to be mapped.
12293 */ 7607 */
12294 void set offset(int value) { 7608 void set id(String value) {
12295 assert(value != null); 7609 assert(value != null);
12296 this._offset = value; 7610 this._id = value;
12297 } 7611 }
12298 7612
12299 /** 7613 /**
12300 * The length of the name of the implemented class. 7614 * The path of the file to be mapped into a URI.
12301 */ 7615 */
12302 int get length => _length; 7616 String get file => _file;
12303 7617
12304 /** 7618 /**
12305 * The length of the name of the implemented class. 7619 * The path of the file to be mapped into a URI.
12306 */ 7620 */
12307 void set length(int value) { 7621 void set file(String value) {
12308 assert(value != null); 7622 this._file = value;
12309 this._length = value;
12310 } 7623 }
12311 7624
12312 ImplementedClass(int offset, int length) { 7625 /**
12313 this.offset = offset; 7626 * The URI to be mapped into a file path.
12314 this.length = length; 7627 */
7628 String get uri => _uri;
7629
7630 /**
7631 * The URI to be mapped into a file path.
7632 */
7633 void set uri(String value) {
7634 this._uri = value;
12315 } 7635 }
12316 7636
12317 factory ImplementedClass.fromJson( 7637 ExecutionMapUriParams(String id, {String file, String uri}) {
7638 this.id = id;
7639 this.file = file;
7640 this.uri = uri;
7641 }
7642
7643 factory ExecutionMapUriParams.fromJson(
12318 JsonDecoder jsonDecoder, String jsonPath, Object json) { 7644 JsonDecoder jsonDecoder, String jsonPath, Object json) {
12319 if (json == null) { 7645 if (json == null) {
12320 json = {}; 7646 json = {};
12321 } 7647 }
12322 if (json is Map) { 7648 if (json is Map) {
12323 int offset; 7649 String id;
12324 if (json.containsKey("offset")) { 7650 if (json.containsKey("id")) {
12325 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); 7651 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
12326 } else { 7652 } else {
12327 throw jsonDecoder.mismatch(jsonPath, "offset"); 7653 throw jsonDecoder.mismatch(jsonPath, "id");
12328 } 7654 }
12329 int length; 7655 String file;
12330 if (json.containsKey("length")) { 7656 if (json.containsKey("file")) {
12331 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); 7657 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
12332 } else {
12333 throw jsonDecoder.mismatch(jsonPath, "length");
12334 } 7658 }
12335 return new ImplementedClass(offset, length); 7659 String uri;
7660 if (json.containsKey("uri")) {
7661 uri = jsonDecoder.decodeString(jsonPath + ".uri", json["uri"]);
7662 }
7663 return new ExecutionMapUriParams(id, file: file, uri: uri);
12336 } else { 7664 } else {
12337 throw jsonDecoder.mismatch(jsonPath, "ImplementedClass", json); 7665 throw jsonDecoder.mismatch(jsonPath, "execution.mapUri params", json);
12338 } 7666 }
12339 } 7667 }
12340 7668
7669 factory ExecutionMapUriParams.fromRequest(Request request) {
7670 return new ExecutionMapUriParams.fromJson(
7671 new RequestDecoder(request), "params", request.params);
7672 }
7673
12341 @override 7674 @override
12342 Map<String, dynamic> toJson() { 7675 Map<String, dynamic> toJson() {
12343 Map<String, dynamic> result = {}; 7676 Map<String, dynamic> result = {};
12344 result["offset"] = offset; 7677 result["id"] = id;
12345 result["length"] = length; 7678 if (file != null) {
7679 result["file"] = file;
7680 }
7681 if (uri != null) {
7682 result["uri"] = uri;
7683 }
12346 return result; 7684 return result;
12347 } 7685 }
12348 7686
12349 @override 7687 @override
7688 Request toRequest(String id) {
7689 return new Request(id, "execution.mapUri", toJson());
7690 }
7691
7692 @override
12350 String toString() => JSON.encode(toJson()); 7693 String toString() => JSON.encode(toJson());
12351 7694
12352 @override 7695 @override
12353 bool operator ==(other) { 7696 bool operator ==(other) {
12354 if (other is ImplementedClass) { 7697 if (other is ExecutionMapUriParams) {
12355 return offset == other.offset && length == other.length; 7698 return id == other.id && file == other.file && uri == other.uri;
12356 } 7699 }
12357 return false; 7700 return false;
12358 } 7701 }
12359 7702
12360 @override 7703 @override
12361 int get hashCode { 7704 int get hashCode {
12362 int hash = 0; 7705 int hash = 0;
12363 hash = JenkinsSmiHash.combine(hash, offset.hashCode); 7706 hash = JenkinsSmiHash.combine(hash, id.hashCode);
12364 hash = JenkinsSmiHash.combine(hash, length.hashCode); 7707 hash = JenkinsSmiHash.combine(hash, file.hashCode);
7708 hash = JenkinsSmiHash.combine(hash, uri.hashCode);
12365 return JenkinsSmiHash.finish(hash); 7709 return JenkinsSmiHash.finish(hash);
12366 } 7710 }
12367 } 7711 }
12368 7712
12369 /** 7713 /**
12370 * ImplementedMember 7714 * execution.mapUri result
12371 * 7715 *
12372 * { 7716 * {
12373 * "offset": int 7717 * "file": optional FilePath
12374 * "length": int 7718 * "uri": optional String
12375 * } 7719 * }
12376 * 7720 *
12377 * Clients may not extend, implement or mix-in this class. 7721 * Clients may not extend, implement or mix-in this class.
12378 */ 7722 */
12379 class ImplementedMember implements HasToJson { 7723 class ExecutionMapUriResult implements ResponseResult {
12380 int _offset; 7724 String _file;
12381 7725
12382 int _length; 7726 String _uri;
12383 7727
12384 /** 7728 /**
12385 * The offset of the name of the implemented member. 7729 * The file to which the URI was mapped. This field is omitted if the uri
7730 * field was not given in the request.
12386 */ 7731 */
12387 int get offset => _offset; 7732 String get file => _file;
12388 7733
12389 /** 7734 /**
12390 * The offset of the name of the implemented member. 7735 * The file to which the URI was mapped. This field is omitted if the uri
7736 * field was not given in the request.
12391 */ 7737 */
12392 void set offset(int value) { 7738 void set file(String value) {
12393 assert(value != null); 7739 this._file = value;
12394 this._offset = value;
12395 } 7740 }
12396 7741
12397 /** 7742 /**
12398 * The length of the name of the implemented member. 7743 * The URI to which the file path was mapped. This field is omitted if the
7744 * file field was not given in the request.
12399 */ 7745 */
12400 int get length => _length; 7746 String get uri => _uri;
12401 7747
12402 /** 7748 /**
12403 * The length of the name of the implemented member. 7749 * The URI to which the file path was mapped. This field is omitted if the
7750 * file field was not given in the request.
12404 */ 7751 */
12405 void set length(int value) { 7752 void set uri(String value) {
12406 assert(value != null); 7753 this._uri = value;
12407 this._length = value;
12408 } 7754 }
12409 7755
12410 ImplementedMember(int offset, int length) { 7756 ExecutionMapUriResult({String file, String uri}) {
12411 this.offset = offset; 7757 this.file = file;
12412 this.length = length; 7758 this.uri = uri;
12413 } 7759 }
12414 7760
12415 factory ImplementedMember.fromJson( 7761 factory ExecutionMapUriResult.fromJson(
12416 JsonDecoder jsonDecoder, String jsonPath, Object json) { 7762 JsonDecoder jsonDecoder, String jsonPath, Object json) {
12417 if (json == null) { 7763 if (json == null) {
12418 json = {}; 7764 json = {};
12419 } 7765 }
12420 if (json is Map) { 7766 if (json is Map) {
12421 int offset; 7767 String file;
12422 if (json.containsKey("offset")) { 7768 if (json.containsKey("file")) {
12423 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); 7769 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
12424 } else {
12425 throw jsonDecoder.mismatch(jsonPath, "offset");
12426 } 7770 }
12427 int length; 7771 String uri;
12428 if (json.containsKey("length")) { 7772 if (json.containsKey("uri")) {
12429 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); 7773 uri = jsonDecoder.decodeString(jsonPath + ".uri", json["uri"]);
12430 } else {
12431 throw jsonDecoder.mismatch(jsonPath, "length");
12432 } 7774 }
12433 return new ImplementedMember(offset, length); 7775 return new ExecutionMapUriResult(file: file, uri: uri);
12434 } else { 7776 } else {
12435 throw jsonDecoder.mismatch(jsonPath, "ImplementedMember", json); 7777 throw jsonDecoder.mismatch(jsonPath, "execution.mapUri result", json);
12436 } 7778 }
12437 } 7779 }
12438 7780
7781 factory ExecutionMapUriResult.fromResponse(Response response) {
7782 return new ExecutionMapUriResult.fromJson(
7783 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
7784 "result",
7785 response.result);
7786 }
7787
12439 @override 7788 @override
12440 Map<String, dynamic> toJson() { 7789 Map<String, dynamic> toJson() {
12441 Map<String, dynamic> result = {}; 7790 Map<String, dynamic> result = {};
12442 result["offset"] = offset; 7791 if (file != null) {
12443 result["length"] = length; 7792 result["file"] = file;
7793 }
7794 if (uri != null) {
7795 result["uri"] = uri;
7796 }
12444 return result; 7797 return result;
12445 } 7798 }
12446 7799
12447 @override 7800 @override
7801 Response toResponse(String id) {
7802 return new Response(id, result: toJson());
7803 }
7804
7805 @override
12448 String toString() => JSON.encode(toJson()); 7806 String toString() => JSON.encode(toJson());
12449 7807
12450 @override 7808 @override
12451 bool operator ==(other) { 7809 bool operator ==(other) {
12452 if (other is ImplementedMember) { 7810 if (other is ExecutionMapUriResult) {
12453 return offset == other.offset && length == other.length; 7811 return file == other.file && uri == other.uri;
12454 } 7812 }
12455 return false; 7813 return false;
12456 } 7814 }
12457 7815
12458 @override 7816 @override
12459 int get hashCode { 7817 int get hashCode {
12460 int hash = 0; 7818 int hash = 0;
12461 hash = JenkinsSmiHash.combine(hash, offset.hashCode); 7819 hash = JenkinsSmiHash.combine(hash, file.hashCode);
12462 hash = JenkinsSmiHash.combine(hash, length.hashCode); 7820 hash = JenkinsSmiHash.combine(hash, uri.hashCode);
12463 return JenkinsSmiHash.finish(hash); 7821 return JenkinsSmiHash.finish(hash);
12464 } 7822 }
12465 } 7823 }
12466 7824
12467 /** 7825 /**
12468 * inlineLocalVariable feedback 7826 * ExecutionService
12469 * 7827 *
12470 * { 7828 * enum {
12471 * "name": String 7829 * LAUNCH_DATA
12472 * "occurrences": int
12473 * } 7830 * }
12474 * 7831 *
12475 * Clients may not extend, implement or mix-in this class. 7832 * Clients may not extend, implement or mix-in this class.
12476 */ 7833 */
12477 class InlineLocalVariableFeedback extends RefactoringFeedback { 7834 class ExecutionService implements Enum {
12478 String _name; 7835 static const ExecutionService LAUNCH_DATA =
12479 7836 const ExecutionService._("LAUNCH_DATA");
12480 int _occurrences;
12481 7837
12482 /** 7838 /**
12483 * The name of the variable being inlined. 7839 * A list containing all of the enum values that are defined.
12484 */ 7840 */
12485 String get name => _name; 7841 static const List<ExecutionService> VALUES = const <ExecutionService>[
7842 LAUNCH_DATA
7843 ];
7844
7845 @override
7846 final String name;
7847
7848 const ExecutionService._(this.name);
7849
7850 factory ExecutionService(String name) {
7851 switch (name) {
7852 case "LAUNCH_DATA":
7853 return LAUNCH_DATA;
7854 }
7855 throw new Exception('Illegal enum value: $name');
7856 }
7857
7858 factory ExecutionService.fromJson(
7859 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7860 if (json is String) {
7861 try {
7862 return new ExecutionService(json);
7863 } catch (_) {
7864 // Fall through
7865 }
7866 }
7867 throw jsonDecoder.mismatch(jsonPath, "ExecutionService", json);
7868 }
7869
7870 @override
7871 String toString() => "ExecutionService.$name";
7872
7873 String toJson() => name;
7874 }
7875
7876 /**
7877 * execution.setSubscriptions params
7878 *
7879 * {
7880 * "subscriptions": List<ExecutionService>
7881 * }
7882 *
7883 * Clients may not extend, implement or mix-in this class.
7884 */
7885 class ExecutionSetSubscriptionsParams implements RequestParams {
7886 List<ExecutionService> _subscriptions;
12486 7887
12487 /** 7888 /**
12488 * The name of the variable being inlined. 7889 * A list of the services being subscribed to.
12489 */ 7890 */
12490 void set name(String value) { 7891 List<ExecutionService> get subscriptions => _subscriptions;
7892
7893 /**
7894 * A list of the services being subscribed to.
7895 */
7896 void set subscriptions(List<ExecutionService> value) {
12491 assert(value != null); 7897 assert(value != null);
12492 this._name = value; 7898 this._subscriptions = value;
12493 } 7899 }
12494 7900
12495 /** 7901 ExecutionSetSubscriptionsParams(List<ExecutionService> subscriptions) {
12496 * The number of times the variable occurs. 7902 this.subscriptions = subscriptions;
12497 */
12498 int get occurrences => _occurrences;
12499
12500 /**
12501 * The number of times the variable occurs.
12502 */
12503 void set occurrences(int value) {
12504 assert(value != null);
12505 this._occurrences = value;
12506 } 7903 }
12507 7904
12508 InlineLocalVariableFeedback(String name, int occurrences) { 7905 factory ExecutionSetSubscriptionsParams.fromJson(
12509 this.name = name;
12510 this.occurrences = occurrences;
12511 }
12512
12513 factory InlineLocalVariableFeedback.fromJson(
12514 JsonDecoder jsonDecoder, String jsonPath, Object json) { 7906 JsonDecoder jsonDecoder, String jsonPath, Object json) {
12515 if (json == null) { 7907 if (json == null) {
12516 json = {}; 7908 json = {};
12517 } 7909 }
12518 if (json is Map) { 7910 if (json is Map) {
12519 String name; 7911 List<ExecutionService> subscriptions;
12520 if (json.containsKey("name")) { 7912 if (json.containsKey("subscriptions")) {
12521 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); 7913 subscriptions = jsonDecoder.decodeList(
7914 jsonPath + ".subscriptions",
7915 json["subscriptions"],
7916 (String jsonPath, Object json) =>
7917 new ExecutionService.fromJson(jsonDecoder, jsonPath, json));
12522 } else { 7918 } else {
12523 throw jsonDecoder.mismatch(jsonPath, "name"); 7919 throw jsonDecoder.mismatch(jsonPath, "subscriptions");
12524 } 7920 }
12525 int occurrences; 7921 return new ExecutionSetSubscriptionsParams(subscriptions);
12526 if (json.containsKey("occurrences")) {
12527 occurrences = jsonDecoder.decodeInt(
12528 jsonPath + ".occurrences", json["occurrences"]);
12529 } else {
12530 throw jsonDecoder.mismatch(jsonPath, "occurrences");
12531 }
12532 return new InlineLocalVariableFeedback(name, occurrences);
12533 } else { 7922 } else {
12534 throw jsonDecoder.mismatch( 7923 throw jsonDecoder.mismatch(
12535 jsonPath, "inlineLocalVariable feedback", json); 7924 jsonPath, "execution.setSubscriptions params", json);
12536 } 7925 }
12537 } 7926 }
12538 7927
7928 factory ExecutionSetSubscriptionsParams.fromRequest(Request request) {
7929 return new ExecutionSetSubscriptionsParams.fromJson(
7930 new RequestDecoder(request), "params", request.params);
7931 }
7932
12539 @override 7933 @override
12540 Map<String, dynamic> toJson() { 7934 Map<String, dynamic> toJson() {
12541 Map<String, dynamic> result = {}; 7935 Map<String, dynamic> result = {};
12542 result["name"] = name; 7936 result["subscriptions"] =
12543 result["occurrences"] = occurrences; 7937 subscriptions.map((ExecutionService value) => value.toJson()).toList();
12544 return result; 7938 return result;
12545 } 7939 }
12546 7940
12547 @override 7941 @override
7942 Request toRequest(String id) {
7943 return new Request(id, "execution.setSubscriptions", toJson());
7944 }
7945
7946 @override
12548 String toString() => JSON.encode(toJson()); 7947 String toString() => JSON.encode(toJson());
12549 7948
12550 @override 7949 @override
12551 bool operator ==(other) { 7950 bool operator ==(other) {
12552 if (other is InlineLocalVariableFeedback) { 7951 if (other is ExecutionSetSubscriptionsParams) {
12553 return name == other.name && occurrences == other.occurrences; 7952 return listEqual(subscriptions, other.subscriptions,
7953 (ExecutionService a, ExecutionService b) => a == b);
12554 } 7954 }
12555 return false; 7955 return false;
12556 } 7956 }
12557 7957
12558 @override 7958 @override
12559 int get hashCode { 7959 int get hashCode {
12560 int hash = 0; 7960 int hash = 0;
12561 hash = JenkinsSmiHash.combine(hash, name.hashCode); 7961 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode);
12562 hash = JenkinsSmiHash.combine(hash, occurrences.hashCode);
12563 return JenkinsSmiHash.finish(hash); 7962 return JenkinsSmiHash.finish(hash);
12564 } 7963 }
12565 } 7964 }
12566 7965
12567 /** 7966 /**
12568 * inlineLocalVariable options 7967 * execution.setSubscriptions result
12569 * 7968 *
12570 * Clients may not extend, implement or mix-in this class. 7969 * Clients may not extend, implement or mix-in this class.
12571 */ 7970 */
12572 class InlineLocalVariableOptions extends RefactoringOptions 7971 class ExecutionSetSubscriptionsResult implements ResponseResult {
12573 implements HasToJson { 7972 @override
7973 Map<String, dynamic> toJson() => <String, dynamic>{};
7974
7975 @override
7976 Response toResponse(String id) {
7977 return new Response(id, result: null);
7978 }
7979
12574 @override 7980 @override
12575 bool operator ==(other) { 7981 bool operator ==(other) {
12576 if (other is InlineLocalVariableOptions) { 7982 if (other is ExecutionSetSubscriptionsResult) {
12577 return true; 7983 return true;
12578 } 7984 }
12579 return false; 7985 return false;
12580 } 7986 }
12581 7987
12582 @override 7988 @override
12583 int get hashCode { 7989 int get hashCode {
12584 return 540364977; 7990 return 287678780;
12585 } 7991 }
12586 } 7992 }
12587 7993
12588 /** 7994 /**
12589 * inlineMethod feedback 7995 * extractLocalVariable feedback
12590 * 7996 *
12591 * { 7997 * {
12592 * "className": optional String 7998 * "coveringExpressionOffsets": optional List<int>
12593 * "methodName": String 7999 * "coveringExpressionLengths": optional List<int>
12594 * "isDeclaration": bool 8000 * "names": List<String>
8001 * "offsets": List<int>
8002 * "lengths": List<int>
12595 * } 8003 * }
12596 * 8004 *
12597 * Clients may not extend, implement or mix-in this class. 8005 * Clients may not extend, implement or mix-in this class.
12598 */ 8006 */
12599 class InlineMethodFeedback extends RefactoringFeedback { 8007 class ExtractLocalVariableFeedback extends RefactoringFeedback {
12600 String _className; 8008 List<int> _coveringExpressionOffsets;
12601 8009
12602 String _methodName; 8010 List<int> _coveringExpressionLengths;
12603 8011
12604 bool _isDeclaration; 8012 List<String> _names;
8013
8014 List<int> _offsets;
8015
8016 List<int> _lengths;
12605 8017
12606 /** 8018 /**
12607 * The name of the class enclosing the method being inlined. If not a class 8019 * The offsets of the expressions that cover the specified selection, from
12608 * member is being inlined, this field will be absent. 8020 * the down most to the up most.
12609 */ 8021 */
12610 String get className => _className; 8022 List<int> get coveringExpressionOffsets => _coveringExpressionOffsets;
12611 8023
12612 /** 8024 /**
12613 * The name of the class enclosing the method being inlined. If not a class 8025 * The offsets of the expressions that cover the specified selection, from
12614 * member is being inlined, this field will be absent. 8026 * the down most to the up most.
12615 */ 8027 */
12616 void set className(String value) { 8028 void set coveringExpressionOffsets(List<int> value) {
12617 this._className = value; 8029 this._coveringExpressionOffsets = value;
12618 } 8030 }
12619 8031
12620 /** 8032 /**
12621 * The name of the method (or function) being inlined. 8033 * The lengths of the expressions that cover the specified selection, from
8034 * the down most to the up most.
12622 */ 8035 */
12623 String get methodName => _methodName; 8036 List<int> get coveringExpressionLengths => _coveringExpressionLengths;
12624 8037
12625 /** 8038 /**
12626 * The name of the method (or function) being inlined. 8039 * The lengths of the expressions that cover the specified selection, from
8040 * the down most to the up most.
12627 */ 8041 */
12628 void set methodName(String value) { 8042 void set coveringExpressionLengths(List<int> value) {
12629 assert(value != null); 8043 this._coveringExpressionLengths = value;
12630 this._methodName = value;
12631 } 8044 }
12632 8045
12633 /** 8046 /**
12634 * True if the declaration of the method is selected. So all references 8047 * The proposed names for the local variable.
12635 * should be inlined.
12636 */ 8048 */
12637 bool get isDeclaration => _isDeclaration; 8049 List<String> get names => _names;
12638 8050
12639 /** 8051 /**
12640 * True if the declaration of the method is selected. So all references 8052 * The proposed names for the local variable.
12641 * should be inlined.
12642 */ 8053 */
12643 void set isDeclaration(bool value) { 8054 void set names(List<String> value) {
12644 assert(value != null); 8055 assert(value != null);
12645 this._isDeclaration = value; 8056 this._names = value;
12646 } 8057 }
12647 8058
12648 InlineMethodFeedback(String methodName, bool isDeclaration, 8059 /**
12649 {String className}) { 8060 * The offsets of the expressions that would be replaced by a reference to
12650 this.className = className; 8061 * the variable.
12651 this.methodName = methodName; 8062 */
12652 this.isDeclaration = isDeclaration; 8063 List<int> get offsets => _offsets;
8064
8065 /**
8066 * The offsets of the expressions that would be replaced by a reference to
8067 * the variable.
8068 */
8069 void set offsets(List<int> value) {
8070 assert(value != null);
8071 this._offsets = value;
12653 } 8072 }
12654 8073
12655 factory InlineMethodFeedback.fromJson( 8074 /**
8075 * The lengths of the expressions that would be replaced by a reference to
8076 * the variable. The lengths correspond to the offsets. In other words, for a
8077 * given expression, if the offset of that expression is offsets[i], then the
8078 * length of that expression is lengths[i].
8079 */
8080 List<int> get lengths => _lengths;
8081
8082 /**
8083 * The lengths of the expressions that would be replaced by a reference to
8084 * the variable. The lengths correspond to the offsets. In other words, for a
8085 * given expression, if the offset of that expression is offsets[i], then the
8086 * length of that expression is lengths[i].
8087 */
8088 void set lengths(List<int> value) {
8089 assert(value != null);
8090 this._lengths = value;
8091 }
8092
8093 ExtractLocalVariableFeedback(
8094 List<String> names, List<int> offsets, List<int> lengths,
8095 {List<int> coveringExpressionOffsets,
8096 List<int> coveringExpressionLengths}) {
8097 this.coveringExpressionOffsets = coveringExpressionOffsets;
8098 this.coveringExpressionLengths = coveringExpressionLengths;
8099 this.names = names;
8100 this.offsets = offsets;
8101 this.lengths = lengths;
8102 }
8103
8104 factory ExtractLocalVariableFeedback.fromJson(
12656 JsonDecoder jsonDecoder, String jsonPath, Object json) { 8105 JsonDecoder jsonDecoder, String jsonPath, Object json) {
12657 if (json == null) { 8106 if (json == null) {
12658 json = {}; 8107 json = {};
12659 } 8108 }
12660 if (json is Map) { 8109 if (json is Map) {
12661 String className; 8110 List<int> coveringExpressionOffsets;
12662 if (json.containsKey("className")) { 8111 if (json.containsKey("coveringExpressionOffsets")) {
12663 className = jsonDecoder.decodeString( 8112 coveringExpressionOffsets = jsonDecoder.decodeList(
12664 jsonPath + ".className", json["className"]); 8113 jsonPath + ".coveringExpressionOffsets",
8114 json["coveringExpressionOffsets"],
8115 jsonDecoder.decodeInt);
12665 } 8116 }
12666 String methodName; 8117 List<int> coveringExpressionLengths;
12667 if (json.containsKey("methodName")) { 8118 if (json.containsKey("coveringExpressionLengths")) {
12668 methodName = jsonDecoder.decodeString( 8119 coveringExpressionLengths = jsonDecoder.decodeList(
12669 jsonPath + ".methodName", json["methodName"]); 8120 jsonPath + ".coveringExpressionLengths",
8121 json["coveringExpressionLengths"],
8122 jsonDecoder.decodeInt);
8123 }
8124 List<String> names;
8125 if (json.containsKey("names")) {
8126 names = jsonDecoder.decodeList(
8127 jsonPath + ".names", json["names"], jsonDecoder.decodeString);
12670 } else { 8128 } else {
12671 throw jsonDecoder.mismatch(jsonPath, "methodName"); 8129 throw jsonDecoder.mismatch(jsonPath, "names");
12672 } 8130 }
12673 bool isDeclaration; 8131 List<int> offsets;
12674 if (json.containsKey("isDeclaration")) { 8132 if (json.containsKey("offsets")) {
12675 isDeclaration = jsonDecoder.decodeBool( 8133 offsets = jsonDecoder.decodeList(
12676 jsonPath + ".isDeclaration", json["isDeclaration"]); 8134 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt);
12677 } else { 8135 } else {
12678 throw jsonDecoder.mismatch(jsonPath, "isDeclaration"); 8136 throw jsonDecoder.mismatch(jsonPath, "offsets");
12679 } 8137 }
12680 return new InlineMethodFeedback(methodName, isDeclaration, 8138 List<int> lengths;
12681 className: className); 8139 if (json.containsKey("lengths")) {
8140 lengths = jsonDecoder.decodeList(
8141 jsonPath + ".lengths", json["lengths"], jsonDecoder.decodeInt);
8142 } else {
8143 throw jsonDecoder.mismatch(jsonPath, "lengths");
8144 }
8145 return new ExtractLocalVariableFeedback(names, offsets, lengths,
8146 coveringExpressionOffsets: coveringExpressionOffsets,
8147 coveringExpressionLengths: coveringExpressionLengths);
12682 } else { 8148 } else {
12683 throw jsonDecoder.mismatch(jsonPath, "inlineMethod feedback", json); 8149 throw jsonDecoder.mismatch(
8150 jsonPath, "extractLocalVariable feedback", json);
12684 } 8151 }
12685 } 8152 }
12686 8153
12687 @override 8154 @override
12688 Map<String, dynamic> toJson() { 8155 Map<String, dynamic> toJson() {
12689 Map<String, dynamic> result = {}; 8156 Map<String, dynamic> result = {};
12690 if (className != null) { 8157 if (coveringExpressionOffsets != null) {
12691 result["className"] = className; 8158 result["coveringExpressionOffsets"] = coveringExpressionOffsets;
12692 } 8159 }
12693 result["methodName"] = methodName; 8160 if (coveringExpressionLengths != null) {
12694 result["isDeclaration"] = isDeclaration; 8161 result["coveringExpressionLengths"] = coveringExpressionLengths;
8162 }
8163 result["names"] = names;
8164 result["offsets"] = offsets;
8165 result["lengths"] = lengths;
12695 return result; 8166 return result;
12696 } 8167 }
12697 8168
12698 @override 8169 @override
12699 String toString() => JSON.encode(toJson()); 8170 String toString() => JSON.encode(toJson());
12700 8171
12701 @override 8172 @override
12702 bool operator ==(other) { 8173 bool operator ==(other) {
12703 if (other is InlineMethodFeedback) { 8174 if (other is ExtractLocalVariableFeedback) {
12704 return className == other.className && 8175 return listEqual(coveringExpressionOffsets,
12705 methodName == other.methodName && 8176 other.coveringExpressionOffsets, (int a, int b) => a == b) &&
12706 isDeclaration == other.isDeclaration; 8177 listEqual(coveringExpressionLengths, other.coveringExpressionLengths,
8178 (int a, int b) => a == b) &&
8179 listEqual(names, other.names, (String a, String b) => a == b) &&
8180 listEqual(offsets, other.offsets, (int a, int b) => a == b) &&
8181 listEqual(lengths, other.lengths, (int a, int b) => a == b);
12707 } 8182 }
12708 return false; 8183 return false;
12709 } 8184 }
12710 8185
12711 @override 8186 @override
12712 int get hashCode { 8187 int get hashCode {
12713 int hash = 0; 8188 int hash = 0;
12714 hash = JenkinsSmiHash.combine(hash, className.hashCode); 8189 hash = JenkinsSmiHash.combine(hash, coveringExpressionOffsets.hashCode);
12715 hash = JenkinsSmiHash.combine(hash, methodName.hashCode); 8190 hash = JenkinsSmiHash.combine(hash, coveringExpressionLengths.hashCode);
12716 hash = JenkinsSmiHash.combine(hash, isDeclaration.hashCode); 8191 hash = JenkinsSmiHash.combine(hash, names.hashCode);
8192 hash = JenkinsSmiHash.combine(hash, offsets.hashCode);
8193 hash = JenkinsSmiHash.combine(hash, lengths.hashCode);
12717 return JenkinsSmiHash.finish(hash); 8194 return JenkinsSmiHash.finish(hash);
12718 } 8195 }
12719 } 8196 }
12720 8197
12721 /** 8198 /**
12722 * inlineMethod options 8199 * extractLocalVariable options
12723 * 8200 *
12724 * { 8201 * {
12725 * "deleteSource": bool 8202 * "name": String
12726 * "inlineAll": bool 8203 * "extractAll": bool
12727 * } 8204 * }
12728 * 8205 *
12729 * Clients may not extend, implement or mix-in this class. 8206 * Clients may not extend, implement or mix-in this class.
12730 */ 8207 */
12731 class InlineMethodOptions extends RefactoringOptions { 8208 class ExtractLocalVariableOptions extends RefactoringOptions {
12732 bool _deleteSource; 8209 String _name;
12733 8210
12734 bool _inlineAll; 8211 bool _extractAll;
12735 8212
12736 /** 8213 /**
12737 * True if the method being inlined should be removed. It is an error if this 8214 * The name that the local variable should be given.
12738 * field is true and inlineAll is false.
12739 */ 8215 */
12740 bool get deleteSource => _deleteSource; 8216 String get name => _name;
12741 8217
12742 /** 8218 /**
12743 * True if the method being inlined should be removed. It is an error if this 8219 * The name that the local variable should be given.
12744 * field is true and inlineAll is false.
12745 */ 8220 */
12746 void set deleteSource(bool value) { 8221 void set name(String value) {
12747 assert(value != null); 8222 assert(value != null);
12748 this._deleteSource = value; 8223 this._name = value;
12749 } 8224 }
12750 8225
12751 /** 8226 /**
12752 * True if all invocations of the method should be inlined, or false if only 8227 * True if all occurrences of the expression within the scope in which the
12753 * the invocation site used to create this refactoring should be inlined. 8228 * variable will be defined should be replaced by a reference to the local
8229 * variable. The expression used to initiate the refactoring will always be
8230 * replaced.
12754 */ 8231 */
12755 bool get inlineAll => _inlineAll; 8232 bool get extractAll => _extractAll;
12756 8233
12757 /** 8234 /**
12758 * True if all invocations of the method should be inlined, or false if only 8235 * True if all occurrences of the expression within the scope in which the
12759 * the invocation site used to create this refactoring should be inlined. 8236 * variable will be defined should be replaced by a reference to the local
8237 * variable. The expression used to initiate the refactoring will always be
8238 * replaced.
12760 */ 8239 */
12761 void set inlineAll(bool value) { 8240 void set extractAll(bool value) {
12762 assert(value != null); 8241 assert(value != null);
12763 this._inlineAll = value; 8242 this._extractAll = value;
12764 } 8243 }
12765 8244
12766 InlineMethodOptions(bool deleteSource, bool inlineAll) { 8245 ExtractLocalVariableOptions(String name, bool extractAll) {
12767 this.deleteSource = deleteSource; 8246 this.name = name;
12768 this.inlineAll = inlineAll; 8247 this.extractAll = extractAll;
12769 } 8248 }
12770 8249
12771 factory InlineMethodOptions.fromJson( 8250 factory ExtractLocalVariableOptions.fromJson(
12772 JsonDecoder jsonDecoder, String jsonPath, Object json) { 8251 JsonDecoder jsonDecoder, String jsonPath, Object json) {
12773 if (json == null) { 8252 if (json == null) {
12774 json = {}; 8253 json = {};
12775 } 8254 }
12776 if (json is Map) { 8255 if (json is Map) {
12777 bool deleteSource; 8256 String name;
12778 if (json.containsKey("deleteSource")) { 8257 if (json.containsKey("name")) {
12779 deleteSource = jsonDecoder.decodeBool( 8258 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
12780 jsonPath + ".deleteSource", json["deleteSource"]);
12781 } else { 8259 } else {
12782 throw jsonDecoder.mismatch(jsonPath, "deleteSource"); 8260 throw jsonDecoder.mismatch(jsonPath, "name");
12783 } 8261 }
12784 bool inlineAll; 8262 bool extractAll;
12785 if (json.containsKey("inlineAll")) { 8263 if (json.containsKey("extractAll")) {
12786 inlineAll = 8264 extractAll = jsonDecoder.decodeBool(
12787 jsonDecoder.decodeBool(jsonPath + ".inlineAll", json["inlineAll"]); 8265 jsonPath + ".extractAll", json["extractAll"]);
12788 } else { 8266 } else {
12789 throw jsonDecoder.mismatch(jsonPath, "inlineAll"); 8267 throw jsonDecoder.mismatch(jsonPath, "extractAll");
12790 } 8268 }
12791 return new InlineMethodOptions(deleteSource, inlineAll); 8269 return new ExtractLocalVariableOptions(name, extractAll);
12792 } else { 8270 } else {
12793 throw jsonDecoder.mismatch(jsonPath, "inlineMethod options", json); 8271 throw jsonDecoder.mismatch(
8272 jsonPath, "extractLocalVariable options", json);
12794 } 8273 }
12795 } 8274 }
12796 8275
12797 factory InlineMethodOptions.fromRefactoringParams( 8276 factory ExtractLocalVariableOptions.fromRefactoringParams(
12798 EditGetRefactoringParams refactoringParams, Request request) { 8277 EditGetRefactoringParams refactoringParams, Request request) {
12799 return new InlineMethodOptions.fromJson( 8278 return new ExtractLocalVariableOptions.fromJson(
12800 new RequestDecoder(request), "options", refactoringParams.options); 8279 new RequestDecoder(request), "options", refactoringParams.options);
12801 } 8280 }
12802 8281
12803 @override 8282 @override
12804 Map<String, dynamic> toJson() { 8283 Map<String, dynamic> toJson() {
12805 Map<String, dynamic> result = {}; 8284 Map<String, dynamic> result = {};
12806 result["deleteSource"] = deleteSource; 8285 result["name"] = name;
12807 result["inlineAll"] = inlineAll; 8286 result["extractAll"] = extractAll;
12808 return result; 8287 return result;
12809 } 8288 }
12810 8289
12811 @override 8290 @override
12812 String toString() => JSON.encode(toJson()); 8291 String toString() => JSON.encode(toJson());
12813 8292
12814 @override 8293 @override
12815 bool operator ==(other) { 8294 bool operator ==(other) {
12816 if (other is InlineMethodOptions) { 8295 if (other is ExtractLocalVariableOptions) {
12817 return deleteSource == other.deleteSource && inlineAll == other.inlineAll; 8296 return name == other.name && extractAll == other.extractAll;
12818 } 8297 }
12819 return false; 8298 return false;
12820 } 8299 }
12821 8300
12822 @override 8301 @override
12823 int get hashCode { 8302 int get hashCode {
12824 int hash = 0; 8303 int hash = 0;
12825 hash = JenkinsSmiHash.combine(hash, deleteSource.hashCode); 8304 hash = JenkinsSmiHash.combine(hash, name.hashCode);
12826 hash = JenkinsSmiHash.combine(hash, inlineAll.hashCode); 8305 hash = JenkinsSmiHash.combine(hash, extractAll.hashCode);
12827 return JenkinsSmiHash.finish(hash); 8306 return JenkinsSmiHash.finish(hash);
12828 } 8307 }
12829 } 8308 }
12830 8309
12831 /** 8310 /**
12832 * LinkedEditGroup 8311 * extractMethod feedback
12833 * 8312 *
12834 * { 8313 * {
12835 * "positions": List<Position> 8314 * "offset": int
12836 * "length": int 8315 * "length": int
12837 * "suggestions": List<LinkedEditSuggestion> 8316 * "returnType": String
8317 * "names": List<String>
8318 * "canCreateGetter": bool
8319 * "parameters": List<RefactoringMethodParameter>
8320 * "offsets": List<int>
8321 * "lengths": List<int>
12838 * } 8322 * }
12839 * 8323 *
12840 * Clients may not extend, implement or mix-in this class. 8324 * Clients may not extend, implement or mix-in this class.
12841 */ 8325 */
12842 class LinkedEditGroup implements HasToJson { 8326 class ExtractMethodFeedback extends RefactoringFeedback {
12843 List<Position> _positions; 8327 int _offset;
12844 8328
12845 int _length; 8329 int _length;
12846 8330
12847 List<LinkedEditSuggestion> _suggestions; 8331 String _returnType;
8332
8333 List<String> _names;
8334
8335 bool _canCreateGetter;
8336
8337 List<RefactoringMethodParameter> _parameters;
8338
8339 List<int> _offsets;
8340
8341 List<int> _lengths;
12848 8342
12849 /** 8343 /**
12850 * The positions of the regions that should be edited simultaneously. 8344 * The offset to the beginning of the expression or statements that will be
8345 * extracted.
12851 */ 8346 */
12852 List<Position> get positions => _positions; 8347 int get offset => _offset;
12853 8348
12854 /** 8349 /**
12855 * The positions of the regions that should be edited simultaneously. 8350 * The offset to the beginning of the expression or statements that will be
8351 * extracted.
12856 */ 8352 */
12857 void set positions(List<Position> value) { 8353 void set offset(int value) {
12858 assert(value != null); 8354 assert(value != null);
12859 this._positions = value; 8355 this._offset = value;
12860 } 8356 }
12861 8357
12862 /** 8358 /**
12863 * The length of the regions that should be edited simultaneously. 8359 * The length of the expression or statements that will be extracted.
12864 */ 8360 */
12865 int get length => _length; 8361 int get length => _length;
12866 8362
12867 /** 8363 /**
12868 * The length of the regions that should be edited simultaneously. 8364 * The length of the expression or statements that will be extracted.
12869 */ 8365 */
12870 void set length(int value) { 8366 void set length(int value) {
12871 assert(value != null); 8367 assert(value != null);
12872 this._length = value; 8368 this._length = value;
12873 } 8369 }
12874 8370
12875 /** 8371 /**
12876 * Pre-computed suggestions for what every region might want to be changed 8372 * The proposed return type for the method. If the returned element does not
12877 * to. 8373 * have a declared return type, this field will contain an empty string.
12878 */ 8374 */
12879 List<LinkedEditSuggestion> get suggestions => _suggestions; 8375 String get returnType => _returnType;
12880 8376
12881 /** 8377 /**
12882 * Pre-computed suggestions for what every region might want to be changed 8378 * The proposed return type for the method. If the returned element does not
12883 * to. 8379 * have a declared return type, this field will contain an empty string.
12884 */ 8380 */
12885 void set suggestions(List<LinkedEditSuggestion> value) { 8381 void set returnType(String value) {
12886 assert(value != null); 8382 assert(value != null);
12887 this._suggestions = value; 8383 this._returnType = value;
12888 } 8384 }
12889 8385
12890 LinkedEditGroup(List<Position> positions, int length, 8386 /**
12891 List<LinkedEditSuggestion> suggestions) { 8387 * The proposed names for the method.
12892 this.positions = positions; 8388 */
12893 this.length = length; 8389 List<String> get names => _names;
12894 this.suggestions = suggestions; 8390
8391 /**
8392 * The proposed names for the method.
8393 */
8394 void set names(List<String> value) {
8395 assert(value != null);
8396 this._names = value;
12895 } 8397 }
12896 8398
12897 factory LinkedEditGroup.fromJson( 8399 /**
8400 * True if a getter could be created rather than a method.
8401 */
8402 bool get canCreateGetter => _canCreateGetter;
8403
8404 /**
8405 * True if a getter could be created rather than a method.
8406 */
8407 void set canCreateGetter(bool value) {
8408 assert(value != null);
8409 this._canCreateGetter = value;
8410 }
8411
8412 /**
8413 * The proposed parameters for the method.
8414 */
8415 List<RefactoringMethodParameter> get parameters => _parameters;
8416
8417 /**
8418 * The proposed parameters for the method.
8419 */
8420 void set parameters(List<RefactoringMethodParameter> value) {
8421 assert(value != null);
8422 this._parameters = value;
8423 }
8424
8425 /**
8426 * The offsets of the expressions or statements that would be replaced by an
8427 * invocation of the method.
8428 */
8429 List<int> get offsets => _offsets;
8430
8431 /**
8432 * The offsets of the expressions or statements that would be replaced by an
8433 * invocation of the method.
8434 */
8435 void set offsets(List<int> value) {
8436 assert(value != null);
8437 this._offsets = value;
8438 }
8439
8440 /**
8441 * The lengths of the expressions or statements that would be replaced by an
8442 * invocation of the method. The lengths correspond to the offsets. In other
8443 * words, for a given expression (or block of statements), if the offset of
8444 * that expression is offsets[i], then the length of that expression is
8445 * lengths[i].
8446 */
8447 List<int> get lengths => _lengths;
8448
8449 /**
8450 * The lengths of the expressions or statements that would be replaced by an
8451 * invocation of the method. The lengths correspond to the offsets. In other
8452 * words, for a given expression (or block of statements), if the offset of
8453 * that expression is offsets[i], then the length of that expression is
8454 * lengths[i].
8455 */
8456 void set lengths(List<int> value) {
8457 assert(value != null);
8458 this._lengths = value;
8459 }
8460
8461 ExtractMethodFeedback(
8462 int offset,
8463 int length,
8464 String returnType,
8465 List<String> names,
8466 bool canCreateGetter,
8467 List<RefactoringMethodParameter> parameters,
8468 List<int> offsets,
8469 List<int> lengths) {
8470 this.offset = offset;
8471 this.length = length;
8472 this.returnType = returnType;
8473 this.names = names;
8474 this.canCreateGetter = canCreateGetter;
8475 this.parameters = parameters;
8476 this.offsets = offsets;
8477 this.lengths = lengths;
8478 }
8479
8480 factory ExtractMethodFeedback.fromJson(
12898 JsonDecoder jsonDecoder, String jsonPath, Object json) { 8481 JsonDecoder jsonDecoder, String jsonPath, Object json) {
12899 if (json == null) { 8482 if (json == null) {
12900 json = {}; 8483 json = {};
12901 } 8484 }
12902 if (json is Map) { 8485 if (json is Map) {
12903 List<Position> positions; 8486 int offset;
12904 if (json.containsKey("positions")) { 8487 if (json.containsKey("offset")) {
12905 positions = jsonDecoder.decodeList( 8488 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
12906 jsonPath + ".positions",
12907 json["positions"],
12908 (String jsonPath, Object json) =>
12909 new Position.fromJson(jsonDecoder, jsonPath, json));
12910 } else { 8489 } else {
12911 throw jsonDecoder.mismatch(jsonPath, "positions"); 8490 throw jsonDecoder.mismatch(jsonPath, "offset");
12912 } 8491 }
12913 int length; 8492 int length;
12914 if (json.containsKey("length")) { 8493 if (json.containsKey("length")) {
12915 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); 8494 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
12916 } else { 8495 } else {
12917 throw jsonDecoder.mismatch(jsonPath, "length"); 8496 throw jsonDecoder.mismatch(jsonPath, "length");
12918 } 8497 }
12919 List<LinkedEditSuggestion> suggestions; 8498 String returnType;
12920 if (json.containsKey("suggestions")) { 8499 if (json.containsKey("returnType")) {
12921 suggestions = jsonDecoder.decodeList( 8500 returnType = jsonDecoder.decodeString(
12922 jsonPath + ".suggestions", 8501 jsonPath + ".returnType", json["returnType"]);
12923 json["suggestions"], 8502 } else {
8503 throw jsonDecoder.mismatch(jsonPath, "returnType");
8504 }
8505 List<String> names;
8506 if (json.containsKey("names")) {
8507 names = jsonDecoder.decodeList(
8508 jsonPath + ".names", json["names"], jsonDecoder.decodeString);
8509 } else {
8510 throw jsonDecoder.mismatch(jsonPath, "names");
8511 }
8512 bool canCreateGetter;
8513 if (json.containsKey("canCreateGetter")) {
8514 canCreateGetter = jsonDecoder.decodeBool(
8515 jsonPath + ".canCreateGetter", json["canCreateGetter"]);
8516 } else {
8517 throw jsonDecoder.mismatch(jsonPath, "canCreateGetter");
8518 }
8519 List<RefactoringMethodParameter> parameters;
8520 if (json.containsKey("parameters")) {
8521 parameters = jsonDecoder.decodeList(
8522 jsonPath + ".parameters",
8523 json["parameters"],
12924 (String jsonPath, Object json) => 8524 (String jsonPath, Object json) =>
12925 new LinkedEditSuggestion.fromJson(jsonDecoder, jsonPath, json)); 8525 new RefactoringMethodParameter.fromJson(
8526 jsonDecoder, jsonPath, json));
12926 } else { 8527 } else {
12927 throw jsonDecoder.mismatch(jsonPath, "suggestions"); 8528 throw jsonDecoder.mismatch(jsonPath, "parameters");
12928 } 8529 }
12929 return new LinkedEditGroup(positions, length, suggestions); 8530 List<int> offsets;
8531 if (json.containsKey("offsets")) {
8532 offsets = jsonDecoder.decodeList(
8533 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt);
8534 } else {
8535 throw jsonDecoder.mismatch(jsonPath, "offsets");
8536 }
8537 List<int> lengths;
8538 if (json.containsKey("lengths")) {
8539 lengths = jsonDecoder.decodeList(
8540 jsonPath + ".lengths", json["lengths"], jsonDecoder.decodeInt);
8541 } else {
8542 throw jsonDecoder.mismatch(jsonPath, "lengths");
8543 }
8544 return new ExtractMethodFeedback(offset, length, returnType, names,
8545 canCreateGetter, parameters, offsets, lengths);
12930 } else { 8546 } else {
12931 throw jsonDecoder.mismatch(jsonPath, "LinkedEditGroup", json); 8547 throw jsonDecoder.mismatch(jsonPath, "extractMethod feedback", json);
12932 }
12933 }
12934
12935 /**
12936 * Construct an empty LinkedEditGroup.
12937 */
12938 LinkedEditGroup.empty() : this(<Position>[], 0, <LinkedEditSuggestion>[]);
12939
12940 @override
12941 Map<String, dynamic> toJson() {
12942 Map<String, dynamic> result = {};
12943 result["positions"] =
12944 positions.map((Position value) => value.toJson()).toList();
12945 result["length"] = length;
12946 result["suggestions"] = suggestions
12947 .map((LinkedEditSuggestion value) => value.toJson())
12948 .toList();
12949 return result;
12950 }
12951
12952 /**
12953 * Add a new position and change the length.
12954 */
12955 void addPosition(Position position, int length) {
12956 positions.add(position);
12957 this.length = length;
12958 }
12959
12960 /**
12961 * Add a new suggestion.
12962 */
12963 void addSuggestion(LinkedEditSuggestion suggestion) {
12964 suggestions.add(suggestion);
12965 }
12966
12967 @override
12968 String toString() => JSON.encode(toJson());
12969
12970 @override
12971 bool operator ==(other) {
12972 if (other is LinkedEditGroup) {
12973 return listEqual(
12974 positions, other.positions, (Position a, Position b) => a == b) &&
12975 length == other.length &&
12976 listEqual(suggestions, other.suggestions,
12977 (LinkedEditSuggestion a, LinkedEditSuggestion b) => a == b);
12978 }
12979 return false;
12980 }
12981
12982 @override
12983 int get hashCode {
12984 int hash = 0;
12985 hash = JenkinsSmiHash.combine(hash, positions.hashCode);
12986 hash = JenkinsSmiHash.combine(hash, length.hashCode);
12987 hash = JenkinsSmiHash.combine(hash, suggestions.hashCode);
12988 return JenkinsSmiHash.finish(hash);
12989 }
12990 }
12991
12992 /**
12993 * LinkedEditSuggestion
12994 *
12995 * {
12996 * "value": String
12997 * "kind": LinkedEditSuggestionKind
12998 * }
12999 *
13000 * Clients may not extend, implement or mix-in this class.
13001 */
13002 class LinkedEditSuggestion implements HasToJson {
13003 String _value;
13004
13005 LinkedEditSuggestionKind _kind;
13006
13007 /**
13008 * The value that could be used to replace all of the linked edit regions.
13009 */
13010 String get value => _value;
13011
13012 /**
13013 * The value that could be used to replace all of the linked edit regions.
13014 */
13015 void set value(String value) {
13016 assert(value != null);
13017 this._value = value;
13018 }
13019
13020 /**
13021 * The kind of value being proposed.
13022 */
13023 LinkedEditSuggestionKind get kind => _kind;
13024
13025 /**
13026 * The kind of value being proposed.
13027 */
13028 void set kind(LinkedEditSuggestionKind value) {
13029 assert(value != null);
13030 this._kind = value;
13031 }
13032
13033 LinkedEditSuggestion(String value, LinkedEditSuggestionKind kind) {
13034 this.value = value;
13035 this.kind = kind;
13036 }
13037
13038 factory LinkedEditSuggestion.fromJson(
13039 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13040 if (json == null) {
13041 json = {};
13042 }
13043 if (json is Map) {
13044 String value;
13045 if (json.containsKey("value")) {
13046 value = jsonDecoder.decodeString(jsonPath + ".value", json["value"]);
13047 } else {
13048 throw jsonDecoder.mismatch(jsonPath, "value");
13049 }
13050 LinkedEditSuggestionKind kind;
13051 if (json.containsKey("kind")) {
13052 kind = new LinkedEditSuggestionKind.fromJson(
13053 jsonDecoder, jsonPath + ".kind", json["kind"]);
13054 } else {
13055 throw jsonDecoder.mismatch(jsonPath, "kind");
13056 }
13057 return new LinkedEditSuggestion(value, kind);
13058 } else {
13059 throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestion", json);
13060 } 8548 }
13061 } 8549 }
13062 8550
13063 @override 8551 @override
13064 Map<String, dynamic> toJson() { 8552 Map<String, dynamic> toJson() {
13065 Map<String, dynamic> result = {}; 8553 Map<String, dynamic> result = {};
13066 result["value"] = value; 8554 result["offset"] = offset;
13067 result["kind"] = kind.toJson(); 8555 result["length"] = length;
8556 result["returnType"] = returnType;
8557 result["names"] = names;
8558 result["canCreateGetter"] = canCreateGetter;
8559 result["parameters"] = parameters
8560 .map((RefactoringMethodParameter value) => value.toJson())
8561 .toList();
8562 result["offsets"] = offsets;
8563 result["lengths"] = lengths;
13068 return result; 8564 return result;
13069 } 8565 }
13070 8566
13071 @override 8567 @override
13072 String toString() => JSON.encode(toJson()); 8568 String toString() => JSON.encode(toJson());
13073 8569
13074 @override 8570 @override
13075 bool operator ==(other) { 8571 bool operator ==(other) {
13076 if (other is LinkedEditSuggestion) { 8572 if (other is ExtractMethodFeedback) {
13077 return value == other.value && kind == other.kind; 8573 return offset == other.offset &&
8574 length == other.length &&
8575 returnType == other.returnType &&
8576 listEqual(names, other.names, (String a, String b) => a == b) &&
8577 canCreateGetter == other.canCreateGetter &&
8578 listEqual(
8579 parameters,
8580 other.parameters,
8581 (RefactoringMethodParameter a, RefactoringMethodParameter b) =>
8582 a == b) &&
8583 listEqual(offsets, other.offsets, (int a, int b) => a == b) &&
8584 listEqual(lengths, other.lengths, (int a, int b) => a == b);
13078 } 8585 }
13079 return false; 8586 return false;
13080 } 8587 }
13081 8588
13082 @override 8589 @override
13083 int get hashCode { 8590 int get hashCode {
13084 int hash = 0; 8591 int hash = 0;
13085 hash = JenkinsSmiHash.combine(hash, value.hashCode); 8592 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
13086 hash = JenkinsSmiHash.combine(hash, kind.hashCode); 8593 hash = JenkinsSmiHash.combine(hash, length.hashCode);
8594 hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
8595 hash = JenkinsSmiHash.combine(hash, names.hashCode);
8596 hash = JenkinsSmiHash.combine(hash, canCreateGetter.hashCode);
8597 hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
8598 hash = JenkinsSmiHash.combine(hash, offsets.hashCode);
8599 hash = JenkinsSmiHash.combine(hash, lengths.hashCode);
13087 return JenkinsSmiHash.finish(hash); 8600 return JenkinsSmiHash.finish(hash);
13088 } 8601 }
13089 } 8602 }
13090 8603
13091 /** 8604 /**
13092 * LinkedEditSuggestionKind 8605 * extractMethod options
13093 * 8606 *
13094 * enum { 8607 * {
13095 * METHOD 8608 * "returnType": String
13096 * PARAMETER 8609 * "createGetter": bool
13097 * TYPE 8610 * "name": String
13098 * VARIABLE 8611 * "parameters": List<RefactoringMethodParameter>
8612 * "extractAll": bool
13099 * } 8613 * }
13100 * 8614 *
13101 * Clients may not extend, implement or mix-in this class. 8615 * Clients may not extend, implement or mix-in this class.
13102 */ 8616 */
13103 class LinkedEditSuggestionKind implements Enum { 8617 class ExtractMethodOptions extends RefactoringOptions {
13104 static const LinkedEditSuggestionKind METHOD = 8618 String _returnType;
13105 const LinkedEditSuggestionKind._("METHOD"); 8619
13106 8620 bool _createGetter;
13107 static const LinkedEditSuggestionKind PARAMETER = 8621
13108 const LinkedEditSuggestionKind._("PARAMETER"); 8622 String _name;
13109 8623
13110 static const LinkedEditSuggestionKind TYPE = 8624 List<RefactoringMethodParameter> _parameters;
13111 const LinkedEditSuggestionKind._("TYPE"); 8625
13112 8626 bool _extractAll;
13113 static const LinkedEditSuggestionKind VARIABLE = 8627
13114 const LinkedEditSuggestionKind._("VARIABLE"); 8628 /**
13115 8629 * The return type that should be defined for the method.
13116 /** 8630 */
13117 * A list containing all of the enum values that are defined. 8631 String get returnType => _returnType;
13118 */ 8632
13119 static const List<LinkedEditSuggestionKind> VALUES = 8633 /**
13120 const <LinkedEditSuggestionKind>[METHOD, PARAMETER, TYPE, VARIABLE]; 8634 * The return type that should be defined for the method.
13121 8635 */
13122 @override 8636 void set returnType(String value) {
13123 final String name; 8637 assert(value != null);
13124 8638 this._returnType = value;
13125 const LinkedEditSuggestionKind._(this.name); 8639 }
13126 8640
13127 factory LinkedEditSuggestionKind(String name) { 8641 /**
13128 switch (name) { 8642 * True if a getter should be created rather than a method. It is an error if
13129 case "METHOD": 8643 * this field is true and the list of parameters is non-empty.
13130 return METHOD; 8644 */
13131 case "PARAMETER": 8645 bool get createGetter => _createGetter;
13132 return PARAMETER; 8646
13133 case "TYPE": 8647 /**
13134 return TYPE; 8648 * True if a getter should be created rather than a method. It is an error if
13135 case "VARIABLE": 8649 * this field is true and the list of parameters is non-empty.
13136 return VARIABLE; 8650 */
13137 } 8651 void set createGetter(bool value) {
13138 throw new Exception('Illegal enum value: $name'); 8652 assert(value != null);
13139 } 8653 this._createGetter = value;
13140 8654 }
13141 factory LinkedEditSuggestionKind.fromJson( 8655
13142 JsonDecoder jsonDecoder, String jsonPath, Object json) { 8656 /**
13143 if (json is String) { 8657 * The name that the method should be given.
13144 try { 8658 */
13145 return new LinkedEditSuggestionKind(json); 8659 String get name => _name;
13146 } catch (_) { 8660
13147 // Fall through 8661 /**
13148 } 8662 * The name that the method should be given.
13149 } 8663 */
13150 throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestionKind", json); 8664 void set name(String value) {
13151 } 8665 assert(value != null);
13152 8666 this._name = value;
13153 @override 8667 }
13154 String toString() => "LinkedEditSuggestionKind.$name"; 8668
13155 8669 /**
13156 String toJson() => name; 8670 * The parameters that should be defined for the method.
13157 } 8671 *
13158 8672 * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL
13159 /** 8673 * parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a
13160 * Location 8674 * NAMED parameter.
13161 * 8675 *
13162 * { 8676 * - To change the order and/or update proposed parameters, add parameters
13163 * "file": FilePath 8677 * with the same identifiers as proposed.
13164 * "offset": int 8678 * - To add new parameters, omit their identifier.
13165 * "length": int 8679 * - To remove some parameters, omit them in this list.
13166 * "startLine": int 8680 */
13167 * "startColumn": int 8681 List<RefactoringMethodParameter> get parameters => _parameters;
13168 * } 8682
13169 * 8683 /**
13170 * Clients may not extend, implement or mix-in this class. 8684 * The parameters that should be defined for the method.
13171 */ 8685 *
13172 class Location implements HasToJson { 8686 * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL
13173 String _file; 8687 * parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a
13174 8688 * NAMED parameter.
13175 int _offset; 8689 *
13176 8690 * - To change the order and/or update proposed parameters, add parameters
13177 int _length; 8691 * with the same identifiers as proposed.
13178 8692 * - To add new parameters, omit their identifier.
13179 int _startLine; 8693 * - To remove some parameters, omit them in this list.
13180 8694 */
13181 int _startColumn; 8695 void set parameters(List<RefactoringMethodParameter> value) {
13182 8696 assert(value != null);
13183 /** 8697 this._parameters = value;
13184 * The file containing the range. 8698 }
13185 */ 8699
13186 String get file => _file; 8700 /**
13187 8701 * True if all occurrences of the expression or statements should be replaced
13188 /** 8702 * by an invocation of the method. The expression or statements used to
13189 * The file containing the range. 8703 * initiate the refactoring will always be replaced.
13190 */ 8704 */
13191 void set file(String value) { 8705 bool get extractAll => _extractAll;
13192 assert(value != null); 8706
13193 this._file = value; 8707 /**
13194 } 8708 * True if all occurrences of the expression or statements should be replaced
13195 8709 * by an invocation of the method. The expression or statements used to
13196 /** 8710 * initiate the refactoring will always be replaced.
13197 * The offset of the range. 8711 */
13198 */ 8712 void set extractAll(bool value) {
13199 int get offset => _offset; 8713 assert(value != null);
13200 8714 this._extractAll = value;
13201 /** 8715 }
13202 * The offset of the range. 8716
13203 */ 8717 ExtractMethodOptions(String returnType, bool createGetter, String name,
13204 void set offset(int value) { 8718 List<RefactoringMethodParameter> parameters, bool extractAll) {
13205 assert(value != null); 8719 this.returnType = returnType;
13206 this._offset = value; 8720 this.createGetter = createGetter;
13207 } 8721 this.name = name;
13208 8722 this.parameters = parameters;
13209 /** 8723 this.extractAll = extractAll;
13210 * The length of the range. 8724 }
13211 */ 8725
13212 int get length => _length; 8726 factory ExtractMethodOptions.fromJson(
13213
13214 /**
13215 * The length of the range.
13216 */
13217 void set length(int value) {
13218 assert(value != null);
13219 this._length = value;
13220 }
13221
13222 /**
13223 * The one-based index of the line containing the first character of the
13224 * range.
13225 */
13226 int get startLine => _startLine;
13227
13228 /**
13229 * The one-based index of the line containing the first character of the
13230 * range.
13231 */
13232 void set startLine(int value) {
13233 assert(value != null);
13234 this._startLine = value;
13235 }
13236
13237 /**
13238 * The one-based index of the column containing the first character of the
13239 * range.
13240 */
13241 int get startColumn => _startColumn;
13242
13243 /**
13244 * The one-based index of the column containing the first character of the
13245 * range.
13246 */
13247 void set startColumn(int value) {
13248 assert(value != null);
13249 this._startColumn = value;
13250 }
13251
13252 Location(
13253 String file, int offset, int length, int startLine, int startColumn) {
13254 this.file = file;
13255 this.offset = offset;
13256 this.length = length;
13257 this.startLine = startLine;
13258 this.startColumn = startColumn;
13259 }
13260
13261 factory Location.fromJson(
13262 JsonDecoder jsonDecoder, String jsonPath, Object json) { 8727 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13263 if (json == null) { 8728 if (json == null) {
13264 json = {}; 8729 json = {};
13265 } 8730 }
13266 if (json is Map) { 8731 if (json is Map) {
13267 String file; 8732 String returnType;
13268 if (json.containsKey("file")) { 8733 if (json.containsKey("returnType")) {
13269 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); 8734 returnType = jsonDecoder.decodeString(
13270 } else { 8735 jsonPath + ".returnType", json["returnType"]);
13271 throw jsonDecoder.mismatch(jsonPath, "file"); 8736 } else {
13272 } 8737 throw jsonDecoder.mismatch(jsonPath, "returnType");
13273 int offset; 8738 }
13274 if (json.containsKey("offset")) { 8739 bool createGetter;
13275 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); 8740 if (json.containsKey("createGetter")) {
13276 } else { 8741 createGetter = jsonDecoder.decodeBool(
13277 throw jsonDecoder.mismatch(jsonPath, "offset"); 8742 jsonPath + ".createGetter", json["createGetter"]);
13278 } 8743 } else {
13279 int length; 8744 throw jsonDecoder.mismatch(jsonPath, "createGetter");
13280 if (json.containsKey("length")) { 8745 }
13281 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); 8746 String name;
13282 } else { 8747 if (json.containsKey("name")) {
13283 throw jsonDecoder.mismatch(jsonPath, "length"); 8748 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
13284 } 8749 } else {
13285 int startLine; 8750 throw jsonDecoder.mismatch(jsonPath, "name");
13286 if (json.containsKey("startLine")) { 8751 }
13287 startLine = 8752 List<RefactoringMethodParameter> parameters;
13288 jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLine"]); 8753 if (json.containsKey("parameters")) {
13289 } else { 8754 parameters = jsonDecoder.decodeList(
13290 throw jsonDecoder.mismatch(jsonPath, "startLine"); 8755 jsonPath + ".parameters",
13291 } 8756 json["parameters"],
13292 int startColumn; 8757 (String jsonPath, Object json) =>
13293 if (json.containsKey("startColumn")) { 8758 new RefactoringMethodParameter.fromJson(
13294 startColumn = jsonDecoder.decodeInt( 8759 jsonDecoder, jsonPath, json));
13295 jsonPath + ".startColumn", json["startColumn"]); 8760 } else {
13296 } else { 8761 throw jsonDecoder.mismatch(jsonPath, "parameters");
13297 throw jsonDecoder.mismatch(jsonPath, "startColumn"); 8762 }
13298 } 8763 bool extractAll;
13299 return new Location(file, offset, length, startLine, startColumn); 8764 if (json.containsKey("extractAll")) {
8765 extractAll = jsonDecoder.decodeBool(
8766 jsonPath + ".extractAll", json["extractAll"]);
8767 } else {
8768 throw jsonDecoder.mismatch(jsonPath, "extractAll");
8769 }
8770 return new ExtractMethodOptions(
8771 returnType, createGetter, name, parameters, extractAll);
13300 } else { 8772 } else {
13301 throw jsonDecoder.mismatch(jsonPath, "Location", json); 8773 throw jsonDecoder.mismatch(jsonPath, "extractMethod options", json);
13302 } 8774 }
13303 } 8775 }
13304 8776
8777 factory ExtractMethodOptions.fromRefactoringParams(
8778 EditGetRefactoringParams refactoringParams, Request request) {
8779 return new ExtractMethodOptions.fromJson(
8780 new RequestDecoder(request), "options", refactoringParams.options);
8781 }
8782
13305 @override 8783 @override
13306 Map<String, dynamic> toJson() { 8784 Map<String, dynamic> toJson() {
13307 Map<String, dynamic> result = {}; 8785 Map<String, dynamic> result = {};
13308 result["file"] = file; 8786 result["returnType"] = returnType;
13309 result["offset"] = offset; 8787 result["createGetter"] = createGetter;
13310 result["length"] = length; 8788 result["name"] = name;
13311 result["startLine"] = startLine; 8789 result["parameters"] = parameters
13312 result["startColumn"] = startColumn; 8790 .map((RefactoringMethodParameter value) => value.toJson())
8791 .toList();
8792 result["extractAll"] = extractAll;
13313 return result; 8793 return result;
13314 } 8794 }
13315 8795
13316 @override 8796 @override
13317 String toString() => JSON.encode(toJson()); 8797 String toString() => JSON.encode(toJson());
13318 8798
13319 @override 8799 @override
13320 bool operator ==(other) { 8800 bool operator ==(other) {
13321 if (other is Location) { 8801 if (other is ExtractMethodOptions) {
13322 return file == other.file && 8802 return returnType == other.returnType &&
13323 offset == other.offset && 8803 createGetter == other.createGetter &&
13324 length == other.length && 8804 name == other.name &&
13325 startLine == other.startLine && 8805 listEqual(
13326 startColumn == other.startColumn; 8806 parameters,
8807 other.parameters,
8808 (RefactoringMethodParameter a, RefactoringMethodParameter b) =>
8809 a == b) &&
8810 extractAll == other.extractAll;
13327 } 8811 }
13328 return false; 8812 return false;
13329 } 8813 }
13330 8814
13331 @override 8815 @override
13332 int get hashCode { 8816 int get hashCode {
13333 int hash = 0; 8817 int hash = 0;
13334 hash = JenkinsSmiHash.combine(hash, file.hashCode); 8818 hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
13335 hash = JenkinsSmiHash.combine(hash, offset.hashCode); 8819 hash = JenkinsSmiHash.combine(hash, createGetter.hashCode);
13336 hash = JenkinsSmiHash.combine(hash, length.hashCode); 8820 hash = JenkinsSmiHash.combine(hash, name.hashCode);
13337 hash = JenkinsSmiHash.combine(hash, startLine.hashCode); 8821 hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
13338 hash = JenkinsSmiHash.combine(hash, startColumn.hashCode); 8822 hash = JenkinsSmiHash.combine(hash, extractAll.hashCode);
13339 return JenkinsSmiHash.finish(hash); 8823 return JenkinsSmiHash.finish(hash);
13340 } 8824 }
13341 } 8825 }
13342 8826
13343 /** 8827 /**
13344 * moveFile feedback 8828 * FileKind
13345 * 8829 *
13346 * Clients may not extend, implement or mix-in this class. 8830 * enum {
13347 */ 8831 * LIBRARY
13348 class MoveFileFeedback extends RefactoringFeedback implements HasToJson { 8832 * PART
13349 @override
13350 bool operator ==(other) {
13351 if (other is MoveFileFeedback) {
13352 return true;
13353 }
13354 return false;
13355 }
13356
13357 @override
13358 int get hashCode {
13359 return 438975893;
13360 }
13361 }
13362
13363 /**
13364 * moveFile options
13365 *
13366 * {
13367 * "newFile": FilePath
13368 * } 8833 * }
13369 * 8834 *
13370 * Clients may not extend, implement or mix-in this class. 8835 * Clients may not extend, implement or mix-in this class.
13371 */ 8836 */
13372 class MoveFileOptions extends RefactoringOptions { 8837 class FileKind implements Enum {
13373 String _newFile; 8838 static const FileKind LIBRARY = const FileKind._("LIBRARY");
8839
8840 static const FileKind PART = const FileKind._("PART");
13374 8841
13375 /** 8842 /**
13376 * The new file path to which the given file is being moved. 8843 * A list containing all of the enum values that are defined.
13377 */ 8844 */
13378 String get newFile => _newFile; 8845 static const List<FileKind> VALUES = const <FileKind>[LIBRARY, PART];
13379 8846
13380 /** 8847 @override
13381 * The new file path to which the given file is being moved. 8848 final String name;
13382 */ 8849
13383 void set newFile(String value) { 8850 const FileKind._(this.name);
13384 assert(value != null); 8851
13385 this._newFile = value; 8852 factory FileKind(String name) {
8853 switch (name) {
8854 case "LIBRARY":
8855 return LIBRARY;
8856 case "PART":
8857 return PART;
8858 }
8859 throw new Exception('Illegal enum value: $name');
13386 } 8860 }
13387 8861
13388 MoveFileOptions(String newFile) { 8862 factory FileKind.fromJson(
13389 this.newFile = newFile;
13390 }
13391
13392 factory MoveFileOptions.fromJson(
13393 JsonDecoder jsonDecoder, String jsonPath, Object json) { 8863 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13394 if (json == null) { 8864 if (json is String) {
13395 json = {}; 8865 try {
8866 return new FileKind(json);
8867 } catch (_) {
8868 // Fall through
8869 }
13396 } 8870 }
13397 if (json is Map) { 8871 throw jsonDecoder.mismatch(jsonPath, "FileKind", json);
13398 String newFile;
13399 if (json.containsKey("newFile")) {
13400 newFile =
13401 jsonDecoder.decodeString(jsonPath + ".newFile", json["newFile"]);
13402 } else {
13403 throw jsonDecoder.mismatch(jsonPath, "newFile");
13404 }
13405 return new MoveFileOptions(newFile);
13406 } else {
13407 throw jsonDecoder.mismatch(jsonPath, "moveFile options", json);
13408 }
13409 }
13410
13411 factory MoveFileOptions.fromRefactoringParams(
13412 EditGetRefactoringParams refactoringParams, Request request) {
13413 return new MoveFileOptions.fromJson(
13414 new RequestDecoder(request), "options", refactoringParams.options);
13415 } 8872 }
13416 8873
13417 @override 8874 @override
13418 Map<String, dynamic> toJson() { 8875 String toString() => "FileKind.$name";
13419 Map<String, dynamic> result = {}; 8876
13420 result["newFile"] = newFile; 8877 String toJson() => name;
13421 return result; 8878 }
8879
8880 /**
8881 * GeneralAnalysisService
8882 *
8883 * enum {
8884 * ANALYZED_FILES
8885 * }
8886 *
8887 * Clients may not extend, implement or mix-in this class.
8888 */
8889 class GeneralAnalysisService implements Enum {
8890 static const GeneralAnalysisService ANALYZED_FILES =
8891 const GeneralAnalysisService._("ANALYZED_FILES");
8892
8893 /**
8894 * A list containing all of the enum values that are defined.
8895 */
8896 static const List<GeneralAnalysisService> VALUES =
8897 const <GeneralAnalysisService>[ANALYZED_FILES];
8898
8899 @override
8900 final String name;
8901
8902 const GeneralAnalysisService._(this.name);
8903
8904 factory GeneralAnalysisService(String name) {
8905 switch (name) {
8906 case "ANALYZED_FILES":
8907 return ANALYZED_FILES;
8908 }
8909 throw new Exception('Illegal enum value: $name');
8910 }
8911
8912 factory GeneralAnalysisService.fromJson(
8913 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8914 if (json is String) {
8915 try {
8916 return new GeneralAnalysisService(json);
8917 } catch (_) {
8918 // Fall through
8919 }
8920 }
8921 throw jsonDecoder.mismatch(jsonPath, "GeneralAnalysisService", json);
13422 } 8922 }
13423 8923
13424 @override 8924 @override
13425 String toString() => JSON.encode(toJson()); 8925 String toString() => "GeneralAnalysisService.$name";
13426 8926
13427 @override 8927 String toJson() => name;
13428 bool operator ==(other) {
13429 if (other is MoveFileOptions) {
13430 return newFile == other.newFile;
13431 }
13432 return false;
13433 }
13434
13435 @override
13436 int get hashCode {
13437 int hash = 0;
13438 hash = JenkinsSmiHash.combine(hash, newFile.hashCode);
13439 return JenkinsSmiHash.finish(hash);
13440 }
13441 } 8928 }
13442 8929
13443 /** 8930 /**
13444 * NavigationRegion 8931 * HoverInformation
13445 * 8932 *
13446 * { 8933 * {
13447 * "offset": int 8934 * "offset": int
13448 * "length": int 8935 * "length": int
13449 * "targets": List<int> 8936 * "containingLibraryPath": optional String
8937 * "containingLibraryName": optional String
8938 * "containingClassDescription": optional String
8939 * "dartdoc": optional String
8940 * "elementDescription": optional String
8941 * "elementKind": optional String
8942 * "isDeprecated": optional bool
8943 * "parameter": optional String
8944 * "propagatedType": optional String
8945 * "staticType": optional String
13450 * } 8946 * }
13451 * 8947 *
13452 * Clients may not extend, implement or mix-in this class. 8948 * Clients may not extend, implement or mix-in this class.
13453 */ 8949 */
13454 class NavigationRegion implements HasToJson { 8950 class HoverInformation implements HasToJson {
13455 int _offset; 8951 int _offset;
13456 8952
13457 int _length; 8953 int _length;
13458 8954
13459 List<int> _targets; 8955 String _containingLibraryPath;
8956
8957 String _containingLibraryName;
8958
8959 String _containingClassDescription;
8960
8961 String _dartdoc;
8962
8963 String _elementDescription;
8964
8965 String _elementKind;
8966
8967 bool _isDeprecated;
8968
8969 String _parameter;
8970
8971 String _propagatedType;
8972
8973 String _staticType;
13460 8974
13461 /** 8975 /**
13462 * The offset of the region from which the user can navigate. 8976 * The offset of the range of characters that encompasses the cursor position
8977 * and has the same hover information as the cursor position.
13463 */ 8978 */
13464 int get offset => _offset; 8979 int get offset => _offset;
13465 8980
13466 /** 8981 /**
13467 * The offset of the region from which the user can navigate. 8982 * The offset of the range of characters that encompasses the cursor position
8983 * and has the same hover information as the cursor position.
13468 */ 8984 */
13469 void set offset(int value) { 8985 void set offset(int value) {
13470 assert(value != null); 8986 assert(value != null);
13471 this._offset = value; 8987 this._offset = value;
13472 } 8988 }
13473 8989
13474 /** 8990 /**
13475 * The length of the region from which the user can navigate. 8991 * The length of the range of characters that encompasses the cursor position
8992 * and has the same hover information as the cursor position.
13476 */ 8993 */
13477 int get length => _length; 8994 int get length => _length;
13478 8995
13479 /** 8996 /**
13480 * The length of the region from which the user can navigate. 8997 * The length of the range of characters that encompasses the cursor position
8998 * and has the same hover information as the cursor position.
13481 */ 8999 */
13482 void set length(int value) { 9000 void set length(int value) {
13483 assert(value != null); 9001 assert(value != null);
13484 this._length = value; 9002 this._length = value;
13485 } 9003 }
13486 9004
13487 /** 9005 /**
13488 * The indexes of the targets (in the enclosing navigation response) to which 9006 * The path to the defining compilation unit of the library in which the
13489 * the given region is bound. By opening the target, clients can implement 9007 * referenced element is declared. This data is omitted if there is no
13490 * one form of navigation. This list cannot be empty. 9008 * referenced element, or if the element is declared inside an HTML file.
13491 */ 9009 */
13492 List<int> get targets => _targets; 9010 String get containingLibraryPath => _containingLibraryPath;
13493 9011
13494 /** 9012 /**
13495 * The indexes of the targets (in the enclosing navigation response) to which 9013 * The path to the defining compilation unit of the library in which the
13496 * the given region is bound. By opening the target, clients can implement 9014 * referenced element is declared. This data is omitted if there is no
13497 * one form of navigation. This list cannot be empty. 9015 * referenced element, or if the element is declared inside an HTML file.
13498 */ 9016 */
13499 void set targets(List<int> value) { 9017 void set containingLibraryPath(String value) {
13500 assert(value != null); 9018 this._containingLibraryPath = value;
13501 this._targets = value;
13502 } 9019 }
13503 9020
13504 NavigationRegion(int offset, int length, List<int> targets) { 9021 /**
9022 * The name of the library in which the referenced element is declared. This
9023 * data is omitted if there is no referenced element, or if the element is
9024 * declared inside an HTML file.
9025 */
9026 String get containingLibraryName => _containingLibraryName;
9027
9028 /**
9029 * The name of the library in which the referenced element is declared. This
9030 * data is omitted if there is no referenced element, or if the element is
9031 * declared inside an HTML file.
9032 */
9033 void set containingLibraryName(String value) {
9034 this._containingLibraryName = value;
9035 }
9036
9037 /**
9038 * A human-readable description of the class declaring the element being
9039 * referenced. This data is omitted if there is no referenced element, or if
9040 * the element is not a class member.
9041 */
9042 String get containingClassDescription => _containingClassDescription;
9043
9044 /**
9045 * A human-readable description of the class declaring the element being
9046 * referenced. This data is omitted if there is no referenced element, or if
9047 * the element is not a class member.
9048 */
9049 void set containingClassDescription(String value) {
9050 this._containingClassDescription = value;
9051 }
9052
9053 /**
9054 * The dartdoc associated with the referenced element. Other than the removal
9055 * of the comment delimiters, including leading asterisks in the case of a
9056 * block comment, the dartdoc is unprocessed markdown. This data is omitted
9057 * if there is no referenced element, or if the element has no dartdoc.
9058 */
9059 String get dartdoc => _dartdoc;
9060
9061 /**
9062 * The dartdoc associated with the referenced element. Other than the removal
9063 * of the comment delimiters, including leading asterisks in the case of a
9064 * block comment, the dartdoc is unprocessed markdown. This data is omitted
9065 * if there is no referenced element, or if the element has no dartdoc.
9066 */
9067 void set dartdoc(String value) {
9068 this._dartdoc = value;
9069 }
9070
9071 /**
9072 * A human-readable description of the element being referenced. This data is
9073 * omitted if there is no referenced element.
9074 */
9075 String get elementDescription => _elementDescription;
9076
9077 /**
9078 * A human-readable description of the element being referenced. This data is
9079 * omitted if there is no referenced element.
9080 */
9081 void set elementDescription(String value) {
9082 this._elementDescription = value;
9083 }
9084
9085 /**
9086 * A human-readable description of the kind of element being referenced (such
9087 * as "class" or "function type alias"). This data is omitted if there is no
9088 * referenced element.
9089 */
9090 String get elementKind => _elementKind;
9091
9092 /**
9093 * A human-readable description of the kind of element being referenced (such
9094 * as "class" or "function type alias"). This data is omitted if there is no
9095 * referenced element.
9096 */
9097 void set elementKind(String value) {
9098 this._elementKind = value;
9099 }
9100
9101 /**
9102 * True if the referenced element is deprecated.
9103 */
9104 bool get isDeprecated => _isDeprecated;
9105
9106 /**
9107 * True if the referenced element is deprecated.
9108 */
9109 void set isDeprecated(bool value) {
9110 this._isDeprecated = value;
9111 }
9112
9113 /**
9114 * A human-readable description of the parameter corresponding to the
9115 * expression being hovered over. This data is omitted if the location is not
9116 * in an argument to a function.
9117 */
9118 String get parameter => _parameter;
9119
9120 /**
9121 * A human-readable description of the parameter corresponding to the
9122 * expression being hovered over. This data is omitted if the location is not
9123 * in an argument to a function.
9124 */
9125 void set parameter(String value) {
9126 this._parameter = value;
9127 }
9128
9129 /**
9130 * The name of the propagated type of the expression. This data is omitted if
9131 * the location does not correspond to an expression or if there is no
9132 * propagated type information.
9133 */
9134 String get propagatedType => _propagatedType;
9135
9136 /**
9137 * The name of the propagated type of the expression. This data is omitted if
9138 * the location does not correspond to an expression or if there is no
9139 * propagated type information.
9140 */
9141 void set propagatedType(String value) {
9142 this._propagatedType = value;
9143 }
9144
9145 /**
9146 * The name of the static type of the expression. This data is omitted if the
9147 * location does not correspond to an expression.
9148 */
9149 String get staticType => _staticType;
9150
9151 /**
9152 * The name of the static type of the expression. This data is omitted if the
9153 * location does not correspond to an expression.
9154 */
9155 void set staticType(String value) {
9156 this._staticType = value;
9157 }
9158
9159 HoverInformation(int offset, int length,
9160 {String containingLibraryPath,
9161 String containingLibraryName,
9162 String containingClassDescription,
9163 String dartdoc,
9164 String elementDescription,
9165 String elementKind,
9166 bool isDeprecated,
9167 String parameter,
9168 String propagatedType,
9169 String staticType}) {
13505 this.offset = offset; 9170 this.offset = offset;
13506 this.length = length; 9171 this.length = length;
13507 this.targets = targets; 9172 this.containingLibraryPath = containingLibraryPath;
9173 this.containingLibraryName = containingLibraryName;
9174 this.containingClassDescription = containingClassDescription;
9175 this.dartdoc = dartdoc;
9176 this.elementDescription = elementDescription;
9177 this.elementKind = elementKind;
9178 this.isDeprecated = isDeprecated;
9179 this.parameter = parameter;
9180 this.propagatedType = propagatedType;
9181 this.staticType = staticType;
13508 } 9182 }
13509 9183
13510 factory NavigationRegion.fromJson( 9184 factory HoverInformation.fromJson(
13511 JsonDecoder jsonDecoder, String jsonPath, Object json) { 9185 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13512 if (json == null) { 9186 if (json == null) {
13513 json = {}; 9187 json = {};
13514 } 9188 }
13515 if (json is Map) { 9189 if (json is Map) {
13516 int offset; 9190 int offset;
13517 if (json.containsKey("offset")) { 9191 if (json.containsKey("offset")) {
13518 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); 9192 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
13519 } else {
13520 throw jsonDecoder.mismatch(jsonPath, "offset");
13521 }
13522 int length;
13523 if (json.containsKey("length")) {
13524 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
13525 } else {
13526 throw jsonDecoder.mismatch(jsonPath, "length");
13527 }
13528 List<int> targets;
13529 if (json.containsKey("targets")) {
13530 targets = jsonDecoder.decodeList(
13531 jsonPath + ".targets", json["targets"], jsonDecoder.decodeInt);
13532 } else {
13533 throw jsonDecoder.mismatch(jsonPath, "targets");
13534 }
13535 return new NavigationRegion(offset, length, targets);
13536 } else {
13537 throw jsonDecoder.mismatch(jsonPath, "NavigationRegion", json);
13538 }
13539 }
13540
13541 @override
13542 Map<String, dynamic> toJson() {
13543 Map<String, dynamic> result = {};
13544 result["offset"] = offset;
13545 result["length"] = length;
13546 result["targets"] = targets;
13547 return result;
13548 }
13549
13550 @override
13551 String toString() => JSON.encode(toJson());
13552
13553 @override
13554 bool operator ==(other) {
13555 if (other is NavigationRegion) {
13556 return offset == other.offset &&
13557 length == other.length &&
13558 listEqual(targets, other.targets, (int a, int b) => a == b);
13559 }
13560 return false;
13561 }
13562
13563 @override
13564 int get hashCode {
13565 int hash = 0;
13566 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
13567 hash = JenkinsSmiHash.combine(hash, length.hashCode);
13568 hash = JenkinsSmiHash.combine(hash, targets.hashCode);
13569 return JenkinsSmiHash.finish(hash);
13570 }
13571 }
13572
13573 /**
13574 * NavigationTarget
13575 *
13576 * {
13577 * "kind": ElementKind
13578 * "fileIndex": int
13579 * "offset": int
13580 * "length": int
13581 * "startLine": int
13582 * "startColumn": int
13583 * }
13584 *
13585 * Clients may not extend, implement or mix-in this class.
13586 */
13587 class NavigationTarget implements HasToJson {
13588 ElementKind _kind;
13589
13590 int _fileIndex;
13591
13592 int _offset;
13593
13594 int _length;
13595
13596 int _startLine;
13597
13598 int _startColumn;
13599
13600 /**
13601 * The kind of the element.
13602 */
13603 ElementKind get kind => _kind;
13604
13605 /**
13606 * The kind of the element.
13607 */
13608 void set kind(ElementKind value) {
13609 assert(value != null);
13610 this._kind = value;
13611 }
13612
13613 /**
13614 * The index of the file (in the enclosing navigation response) to navigate
13615 * to.
13616 */
13617 int get fileIndex => _fileIndex;
13618
13619 /**
13620 * The index of the file (in the enclosing navigation response) to navigate
13621 * to.
13622 */
13623 void set fileIndex(int value) {
13624 assert(value != null);
13625 this._fileIndex = value;
13626 }
13627
13628 /**
13629 * The offset of the region to which the user can navigate.
13630 */
13631 int get offset => _offset;
13632
13633 /**
13634 * The offset of the region to which the user can navigate.
13635 */
13636 void set offset(int value) {
13637 assert(value != null);
13638 this._offset = value;
13639 }
13640
13641 /**
13642 * The length of the region to which the user can navigate.
13643 */
13644 int get length => _length;
13645
13646 /**
13647 * The length of the region to which the user can navigate.
13648 */
13649 void set length(int value) {
13650 assert(value != null);
13651 this._length = value;
13652 }
13653
13654 /**
13655 * The one-based index of the line containing the first character of the
13656 * region.
13657 */
13658 int get startLine => _startLine;
13659
13660 /**
13661 * The one-based index of the line containing the first character of the
13662 * region.
13663 */
13664 void set startLine(int value) {
13665 assert(value != null);
13666 this._startLine = value;
13667 }
13668
13669 /**
13670 * The one-based index of the column containing the first character of the
13671 * region.
13672 */
13673 int get startColumn => _startColumn;
13674
13675 /**
13676 * The one-based index of the column containing the first character of the
13677 * region.
13678 */
13679 void set startColumn(int value) {
13680 assert(value != null);
13681 this._startColumn = value;
13682 }
13683
13684 NavigationTarget(ElementKind kind, int fileIndex, int offset, int length,
13685 int startLine, int startColumn) {
13686 this.kind = kind;
13687 this.fileIndex = fileIndex;
13688 this.offset = offset;
13689 this.length = length;
13690 this.startLine = startLine;
13691 this.startColumn = startColumn;
13692 }
13693
13694 factory NavigationTarget.fromJson(
13695 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13696 if (json == null) {
13697 json = {};
13698 }
13699 if (json is Map) {
13700 ElementKind kind;
13701 if (json.containsKey("kind")) {
13702 kind = new ElementKind.fromJson(
13703 jsonDecoder, jsonPath + ".kind", json["kind"]);
13704 } else {
13705 throw jsonDecoder.mismatch(jsonPath, "kind");
13706 }
13707 int fileIndex;
13708 if (json.containsKey("fileIndex")) {
13709 fileIndex =
13710 jsonDecoder.decodeInt(jsonPath + ".fileIndex", json["fileIndex"]);
13711 } else {
13712 throw jsonDecoder.mismatch(jsonPath, "fileIndex");
13713 }
13714 int offset;
13715 if (json.containsKey("offset")) {
13716 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
13717 } else { 9193 } else {
13718 throw jsonDecoder.mismatch(jsonPath, "offset"); 9194 throw jsonDecoder.mismatch(jsonPath, "offset");
13719 } 9195 }
13720 int length; 9196 int length;
13721 if (json.containsKey("length")) { 9197 if (json.containsKey("length")) {
13722 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); 9198 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
13723 } else { 9199 } else {
13724 throw jsonDecoder.mismatch(jsonPath, "length"); 9200 throw jsonDecoder.mismatch(jsonPath, "length");
13725 } 9201 }
13726 int startLine; 9202 String containingLibraryPath;
13727 if (json.containsKey("startLine")) { 9203 if (json.containsKey("containingLibraryPath")) {
13728 startLine = 9204 containingLibraryPath = jsonDecoder.decodeString(
13729 jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLine"]); 9205 jsonPath + ".containingLibraryPath", json["containingLibraryPath"]);
13730 } else {
13731 throw jsonDecoder.mismatch(jsonPath, "startLine");
13732 } 9206 }
13733 int startColumn; 9207 String containingLibraryName;
13734 if (json.containsKey("startColumn")) { 9208 if (json.containsKey("containingLibraryName")) {
13735 startColumn = jsonDecoder.decodeInt( 9209 containingLibraryName = jsonDecoder.decodeString(
13736 jsonPath + ".startColumn", json["startColumn"]); 9210 jsonPath + ".containingLibraryName", json["containingLibraryName"]);
13737 } else {
13738 throw jsonDecoder.mismatch(jsonPath, "startColumn");
13739 } 9211 }
13740 return new NavigationTarget( 9212 String containingClassDescription;
13741 kind, fileIndex, offset, length, startLine, startColumn); 9213 if (json.containsKey("containingClassDescription")) {
9214 containingClassDescription = jsonDecoder.decodeString(
9215 jsonPath + ".containingClassDescription",
9216 json["containingClassDescription"]);
9217 }
9218 String dartdoc;
9219 if (json.containsKey("dartdoc")) {
9220 dartdoc =
9221 jsonDecoder.decodeString(jsonPath + ".dartdoc", json["dartdoc"]);
9222 }
9223 String elementDescription;
9224 if (json.containsKey("elementDescription")) {
9225 elementDescription = jsonDecoder.decodeString(
9226 jsonPath + ".elementDescription", json["elementDescription"]);
9227 }
9228 String elementKind;
9229 if (json.containsKey("elementKind")) {
9230 elementKind = jsonDecoder.decodeString(
9231 jsonPath + ".elementKind", json["elementKind"]);
9232 }
9233 bool isDeprecated;
9234 if (json.containsKey("isDeprecated")) {
9235 isDeprecated = jsonDecoder.decodeBool(
9236 jsonPath + ".isDeprecated", json["isDeprecated"]);
9237 }
9238 String parameter;
9239 if (json.containsKey("parameter")) {
9240 parameter = jsonDecoder.decodeString(
9241 jsonPath + ".parameter", json["parameter"]);
9242 }
9243 String propagatedType;
9244 if (json.containsKey("propagatedType")) {
9245 propagatedType = jsonDecoder.decodeString(
9246 jsonPath + ".propagatedType", json["propagatedType"]);
9247 }
9248 String staticType;
9249 if (json.containsKey("staticType")) {
9250 staticType = jsonDecoder.decodeString(
9251 jsonPath + ".staticType", json["staticType"]);
9252 }
9253 return new HoverInformation(offset, length,
9254 containingLibraryPath: containingLibraryPath,
9255 containingLibraryName: containingLibraryName,
9256 containingClassDescription: containingClassDescription,
9257 dartdoc: dartdoc,
9258 elementDescription: elementDescription,
9259 elementKind: elementKind,
9260 isDeprecated: isDeprecated,
9261 parameter: parameter,
9262 propagatedType: propagatedType,
9263 staticType: staticType);
13742 } else { 9264 } else {
13743 throw jsonDecoder.mismatch(jsonPath, "NavigationTarget", json); 9265 throw jsonDecoder.mismatch(jsonPath, "HoverInformation", json);
13744 } 9266 }
13745 } 9267 }
13746 9268
13747 @override 9269 @override
13748 Map<String, dynamic> toJson() { 9270 Map<String, dynamic> toJson() {
13749 Map<String, dynamic> result = {}; 9271 Map<String, dynamic> result = {};
13750 result["kind"] = kind.toJson();
13751 result["fileIndex"] = fileIndex;
13752 result["offset"] = offset; 9272 result["offset"] = offset;
13753 result["length"] = length; 9273 result["length"] = length;
13754 result["startLine"] = startLine; 9274 if (containingLibraryPath != null) {
13755 result["startColumn"] = startColumn; 9275 result["containingLibraryPath"] = containingLibraryPath;
9276 }
9277 if (containingLibraryName != null) {
9278 result["containingLibraryName"] = containingLibraryName;
9279 }
9280 if (containingClassDescription != null) {
9281 result["containingClassDescription"] = containingClassDescription;
9282 }
9283 if (dartdoc != null) {
9284 result["dartdoc"] = dartdoc;
9285 }
9286 if (elementDescription != null) {
9287 result["elementDescription"] = elementDescription;
9288 }
9289 if (elementKind != null) {
9290 result["elementKind"] = elementKind;
9291 }
9292 if (isDeprecated != null) {
9293 result["isDeprecated"] = isDeprecated;
9294 }
9295 if (parameter != null) {
9296 result["parameter"] = parameter;
9297 }
9298 if (propagatedType != null) {
9299 result["propagatedType"] = propagatedType;
9300 }
9301 if (staticType != null) {
9302 result["staticType"] = staticType;
9303 }
13756 return result; 9304 return result;
13757 } 9305 }
13758 9306
13759 @override
13760 String toString() => JSON.encode(toJson());
13761
13762 @override
13763 bool operator ==(other) {
13764 if (other is NavigationTarget) {
13765 return kind == other.kind &&
13766 fileIndex == other.fileIndex &&
13767 offset == other.offset &&
13768 length == other.length &&
13769 startLine == other.startLine &&
13770 startColumn == other.startColumn;
13771 }
13772 return false;
13773 }
13774
13775 @override
13776 int get hashCode {
13777 int hash = 0;
13778 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
13779 hash = JenkinsSmiHash.combine(hash, fileIndex.hashCode);
13780 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
13781 hash = JenkinsSmiHash.combine(hash, length.hashCode);
13782 hash = JenkinsSmiHash.combine(hash, startLine.hashCode);
13783 hash = JenkinsSmiHash.combine(hash, startColumn.hashCode);
13784 return JenkinsSmiHash.finish(hash);
13785 }
13786 }
13787
13788 /**
13789 * Occurrences
13790 *
13791 * {
13792 * "element": Element
13793 * "offsets": List<int>
13794 * "length": int
13795 * }
13796 *
13797 * Clients may not extend, implement or mix-in this class.
13798 */
13799 class Occurrences implements HasToJson {
13800 Element _element;
13801
13802 List<int> _offsets;
13803
13804 int _length;
13805
13806 /**
13807 * The element that was referenced.
13808 */
13809 Element get element => _element;
13810
13811 /**
13812 * The element that was referenced.
13813 */
13814 void set element(Element value) {
13815 assert(value != null);
13816 this._element = value;
13817 }
13818
13819 /**
13820 * The offsets of the name of the referenced element within the file.
13821 */
13822 List<int> get offsets => _offsets;
13823
13824 /**
13825 * The offsets of the name of the referenced element within the file.
13826 */
13827 void set offsets(List<int> value) {
13828 assert(value != null);
13829 this._offsets = value;
13830 }
13831
13832 /**
13833 * The length of the name of the referenced element.
13834 */
13835 int get length => _length;
13836
13837 /**
13838 * The length of the name of the referenced element.
13839 */
13840 void set length(int value) {
13841 assert(value != null);
13842 this._length = value;
13843 }
13844
13845 Occurrences(Element element, List<int> offsets, int length) {
13846 this.element = element;
13847 this.offsets = offsets;
13848 this.length = length;
13849 }
13850
13851 factory Occurrences.fromJson(
13852 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13853 if (json == null) {
13854 json = {};
13855 }
13856 if (json is Map) {
13857 Element element;
13858 if (json.containsKey("element")) {
13859 element = new Element.fromJson(
13860 jsonDecoder, jsonPath + ".element", json["element"]);
13861 } else {
13862 throw jsonDecoder.mismatch(jsonPath, "element");
13863 }
13864 List<int> offsets;
13865 if (json.containsKey("offsets")) {
13866 offsets = jsonDecoder.decodeList(
13867 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt);
13868 } else {
13869 throw jsonDecoder.mismatch(jsonPath, "offsets");
13870 }
13871 int length;
13872 if (json.containsKey("length")) {
13873 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
13874 } else {
13875 throw jsonDecoder.mismatch(jsonPath, "length");
13876 }
13877 return new Occurrences(element, offsets, length);
13878 } else {
13879 throw jsonDecoder.mismatch(jsonPath, "Occurrences", json);
13880 }
13881 }
13882
13883 @override
13884 Map<String, dynamic> toJson() {
13885 Map<String, dynamic> result = {};
13886 result["element"] = element.toJson();
13887 result["offsets"] = offsets;
13888 result["length"] = length;
13889 return result;
13890 }
13891
13892 @override 9307 @override
13893 String toString() => JSON.encode(toJson()); 9308 String toString() => JSON.encode(toJson());
13894 9309
13895 @override 9310 @override
13896 bool operator ==(other) { 9311 bool operator ==(other) {
13897 if (other is Occurrences) { 9312 if (other is HoverInformation) {
13898 return element == other.element && 9313 return offset == other.offset &&
13899 listEqual(offsets, other.offsets, (int a, int b) => a == b) && 9314 length == other.length &&
13900 length == other.length; 9315 containingLibraryPath == other.containingLibraryPath &&
9316 containingLibraryName == other.containingLibraryName &&
9317 containingClassDescription == other.containingClassDescription &&
9318 dartdoc == other.dartdoc &&
9319 elementDescription == other.elementDescription &&
9320 elementKind == other.elementKind &&
9321 isDeprecated == other.isDeprecated &&
9322 parameter == other.parameter &&
9323 propagatedType == other.propagatedType &&
9324 staticType == other.staticType;
13901 } 9325 }
13902 return false; 9326 return false;
13903 } 9327 }
13904 9328
13905 @override 9329 @override
13906 int get hashCode { 9330 int get hashCode {
13907 int hash = 0; 9331 int hash = 0;
13908 hash = JenkinsSmiHash.combine(hash, element.hashCode); 9332 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
13909 hash = JenkinsSmiHash.combine(hash, offsets.hashCode);
13910 hash = JenkinsSmiHash.combine(hash, length.hashCode); 9333 hash = JenkinsSmiHash.combine(hash, length.hashCode);
9334 hash = JenkinsSmiHash.combine(hash, containingLibraryPath.hashCode);
9335 hash = JenkinsSmiHash.combine(hash, containingLibraryName.hashCode);
9336 hash = JenkinsSmiHash.combine(hash, containingClassDescription.hashCode);
9337 hash = JenkinsSmiHash.combine(hash, dartdoc.hashCode);
9338 hash = JenkinsSmiHash.combine(hash, elementDescription.hashCode);
9339 hash = JenkinsSmiHash.combine(hash, elementKind.hashCode);
9340 hash = JenkinsSmiHash.combine(hash, isDeprecated.hashCode);
9341 hash = JenkinsSmiHash.combine(hash, parameter.hashCode);
9342 hash = JenkinsSmiHash.combine(hash, propagatedType.hashCode);
9343 hash = JenkinsSmiHash.combine(hash, staticType.hashCode);
13911 return JenkinsSmiHash.finish(hash); 9344 return JenkinsSmiHash.finish(hash);
13912 } 9345 }
13913 } 9346 }
13914 9347
13915 /** 9348 /**
13916 * Outline 9349 * ImplementedClass
13917 * 9350 *
13918 * { 9351 * {
13919 * "element": Element
13920 * "offset": int 9352 * "offset": int
13921 * "length": int 9353 * "length": int
13922 * "children": optional List<Outline>
13923 * } 9354 * }
13924 * 9355 *
13925 * Clients may not extend, implement or mix-in this class. 9356 * Clients may not extend, implement or mix-in this class.
13926 */ 9357 */
13927 class Outline implements HasToJson { 9358 class ImplementedClass implements HasToJson {
13928 Element _element;
13929
13930 int _offset; 9359 int _offset;
13931 9360
13932 int _length; 9361 int _length;
13933 9362
13934 List<Outline> _children;
13935
13936 /** 9363 /**
13937 * A description of the element represented by this node. 9364 * The offset of the name of the implemented class.
13938 */
13939 Element get element => _element;
13940
13941 /**
13942 * A description of the element represented by this node.
13943 */
13944 void set element(Element value) {
13945 assert(value != null);
13946 this._element = value;
13947 }
13948
13949 /**
13950 * The offset of the first character of the element. This is different than
13951 * the offset in the Element, which if the offset of the name of the element.
13952 * It can be used, for example, to map locations in the file back to an
13953 * outline.
13954 */ 9365 */
13955 int get offset => _offset; 9366 int get offset => _offset;
13956 9367
13957 /** 9368 /**
13958 * The offset of the first character of the element. This is different than 9369 * The offset of the name of the implemented class.
13959 * the offset in the Element, which if the offset of the name of the element.
13960 * It can be used, for example, to map locations in the file back to an
13961 * outline.
13962 */ 9370 */
13963 void set offset(int value) { 9371 void set offset(int value) {
13964 assert(value != null); 9372 assert(value != null);
13965 this._offset = value; 9373 this._offset = value;
13966 } 9374 }
13967 9375
13968 /** 9376 /**
13969 * The length of the element. 9377 * The length of the name of the implemented class.
13970 */ 9378 */
13971 int get length => _length; 9379 int get length => _length;
13972 9380
13973 /** 9381 /**
13974 * The length of the element. 9382 * The length of the name of the implemented class.
13975 */ 9383 */
13976 void set length(int value) { 9384 void set length(int value) {
13977 assert(value != null); 9385 assert(value != null);
13978 this._length = value; 9386 this._length = value;
13979 } 9387 }
13980 9388
13981 /** 9389 ImplementedClass(int offset, int length) {
13982 * The children of the node. The field will be omitted if the node has no 9390 this.offset = offset;
13983 * children. 9391 this.length = length;
13984 */
13985 List<Outline> get children => _children;
13986
13987 /**
13988 * The children of the node. The field will be omitted if the node has no
13989 * children.
13990 */
13991 void set children(List<Outline> value) {
13992 this._children = value;
13993 } 9392 }
13994 9393
13995 Outline(Element element, int offset, int length, {List<Outline> children}) { 9394 factory ImplementedClass.fromJson(
13996 this.element = element;
13997 this.offset = offset;
13998 this.length = length;
13999 this.children = children;
14000 }
14001
14002 factory Outline.fromJson(
14003 JsonDecoder jsonDecoder, String jsonPath, Object json) { 9395 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14004 if (json == null) { 9396 if (json == null) {
14005 json = {}; 9397 json = {};
14006 } 9398 }
14007 if (json is Map) { 9399 if (json is Map) {
14008 Element element;
14009 if (json.containsKey("element")) {
14010 element = new Element.fromJson(
14011 jsonDecoder, jsonPath + ".element", json["element"]);
14012 } else {
14013 throw jsonDecoder.mismatch(jsonPath, "element");
14014 }
14015 int offset; 9400 int offset;
14016 if (json.containsKey("offset")) { 9401 if (json.containsKey("offset")) {
14017 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); 9402 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
14018 } else { 9403 } else {
14019 throw jsonDecoder.mismatch(jsonPath, "offset"); 9404 throw jsonDecoder.mismatch(jsonPath, "offset");
14020 } 9405 }
14021 int length; 9406 int length;
14022 if (json.containsKey("length")) { 9407 if (json.containsKey("length")) {
14023 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); 9408 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
14024 } else { 9409 } else {
14025 throw jsonDecoder.mismatch(jsonPath, "length"); 9410 throw jsonDecoder.mismatch(jsonPath, "length");
14026 } 9411 }
14027 List<Outline> children; 9412 return new ImplementedClass(offset, length);
14028 if (json.containsKey("children")) {
14029 children = jsonDecoder.decodeList(
14030 jsonPath + ".children",
14031 json["children"],
14032 (String jsonPath, Object json) =>
14033 new Outline.fromJson(jsonDecoder, jsonPath, json));
14034 }
14035 return new Outline(element, offset, length, children: children);
14036 } else { 9413 } else {
14037 throw jsonDecoder.mismatch(jsonPath, "Outline", json); 9414 throw jsonDecoder.mismatch(jsonPath, "ImplementedClass", json);
14038 } 9415 }
14039 } 9416 }
14040 9417
14041 @override 9418 @override
14042 Map<String, dynamic> toJson() { 9419 Map<String, dynamic> toJson() {
14043 Map<String, dynamic> result = {}; 9420 Map<String, dynamic> result = {};
14044 result["element"] = element.toJson();
14045 result["offset"] = offset; 9421 result["offset"] = offset;
14046 result["length"] = length; 9422 result["length"] = length;
14047 if (children != null) {
14048 result["children"] =
14049 children.map((Outline value) => value.toJson()).toList();
14050 }
14051 return result; 9423 return result;
14052 } 9424 }
14053 9425
14054 @override 9426 @override
14055 String toString() => JSON.encode(toJson()); 9427 String toString() => JSON.encode(toJson());
14056 9428
14057 @override 9429 @override
14058 bool operator ==(other) { 9430 bool operator ==(other) {
14059 if (other is Outline) { 9431 if (other is ImplementedClass) {
14060 return element == other.element && 9432 return offset == other.offset && length == other.length;
14061 offset == other.offset &&
14062 length == other.length &&
14063 listEqual(children, other.children, (Outline a, Outline b) => a == b);
14064 } 9433 }
14065 return false; 9434 return false;
14066 } 9435 }
14067 9436
14068 @override 9437 @override
14069 int get hashCode { 9438 int get hashCode {
14070 int hash = 0; 9439 int hash = 0;
14071 hash = JenkinsSmiHash.combine(hash, element.hashCode);
14072 hash = JenkinsSmiHash.combine(hash, offset.hashCode); 9440 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
14073 hash = JenkinsSmiHash.combine(hash, length.hashCode); 9441 hash = JenkinsSmiHash.combine(hash, length.hashCode);
14074 hash = JenkinsSmiHash.combine(hash, children.hashCode);
14075 return JenkinsSmiHash.finish(hash); 9442 return JenkinsSmiHash.finish(hash);
14076 } 9443 }
14077 } 9444 }
14078 9445
14079 /** 9446 /**
14080 * OverriddenMember 9447 * ImplementedMember
14081 * 9448 *
14082 * { 9449 * {
14083 * "element": Element 9450 * "offset": int
14084 * "className": String 9451 * "length": int
14085 * } 9452 * }
14086 * 9453 *
14087 * Clients may not extend, implement or mix-in this class. 9454 * Clients may not extend, implement or mix-in this class.
14088 */ 9455 */
14089 class OverriddenMember implements HasToJson { 9456 class ImplementedMember implements HasToJson {
14090 Element _element; 9457 int _offset;
14091 9458
14092 String _className; 9459 int _length;
14093 9460
14094 /** 9461 /**
14095 * The element that is being overridden. 9462 * The offset of the name of the implemented member.
14096 */ 9463 */
14097 Element get element => _element; 9464 int get offset => _offset;
14098 9465
14099 /** 9466 /**
14100 * The element that is being overridden. 9467 * The offset of the name of the implemented member.
14101 */ 9468 */
14102 void set element(Element value) { 9469 void set offset(int value) {
14103 assert(value != null); 9470 assert(value != null);
14104 this._element = value; 9471 this._offset = value;
14105 } 9472 }
14106 9473
14107 /** 9474 /**
14108 * The name of the class in which the member is defined. 9475 * The length of the name of the implemented member.
14109 */ 9476 */
14110 String get className => _className; 9477 int get length => _length;
14111 9478
14112 /** 9479 /**
14113 * The name of the class in which the member is defined. 9480 * The length of the name of the implemented member.
14114 */ 9481 */
14115 void set className(String value) { 9482 void set length(int value) {
14116 assert(value != null); 9483 assert(value != null);
14117 this._className = value; 9484 this._length = value;
14118 } 9485 }
14119 9486
14120 OverriddenMember(Element element, String className) { 9487 ImplementedMember(int offset, int length) {
14121 this.element = element; 9488 this.offset = offset;
14122 this.className = className; 9489 this.length = length;
14123 } 9490 }
14124 9491
14125 factory OverriddenMember.fromJson( 9492 factory ImplementedMember.fromJson(
14126 JsonDecoder jsonDecoder, String jsonPath, Object json) { 9493 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14127 if (json == null) { 9494 if (json == null) {
14128 json = {}; 9495 json = {};
14129 } 9496 }
14130 if (json is Map) { 9497 if (json is Map) {
14131 Element element; 9498 int offset;
14132 if (json.containsKey("element")) { 9499 if (json.containsKey("offset")) {
14133 element = new Element.fromJson( 9500 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
14134 jsonDecoder, jsonPath + ".element", json["element"]);
14135 } else { 9501 } else {
14136 throw jsonDecoder.mismatch(jsonPath, "element"); 9502 throw jsonDecoder.mismatch(jsonPath, "offset");
14137 } 9503 }
14138 String className; 9504 int length;
14139 if (json.containsKey("className")) { 9505 if (json.containsKey("length")) {
14140 className = jsonDecoder.decodeString( 9506 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
14141 jsonPath + ".className", json["className"]);
14142 } else { 9507 } else {
14143 throw jsonDecoder.mismatch(jsonPath, "className"); 9508 throw jsonDecoder.mismatch(jsonPath, "length");
14144 } 9509 }
14145 return new OverriddenMember(element, className); 9510 return new ImplementedMember(offset, length);
14146 } else { 9511 } else {
14147 throw jsonDecoder.mismatch(jsonPath, "OverriddenMember", json); 9512 throw jsonDecoder.mismatch(jsonPath, "ImplementedMember", json);
14148 } 9513 }
14149 } 9514 }
14150 9515
14151 @override 9516 @override
14152 Map<String, dynamic> toJson() { 9517 Map<String, dynamic> toJson() {
14153 Map<String, dynamic> result = {}; 9518 Map<String, dynamic> result = {};
14154 result["element"] = element.toJson(); 9519 result["offset"] = offset;
14155 result["className"] = className; 9520 result["length"] = length;
14156 return result; 9521 return result;
14157 } 9522 }
14158 9523
14159 @override 9524 @override
14160 String toString() => JSON.encode(toJson()); 9525 String toString() => JSON.encode(toJson());
14161 9526
14162 @override 9527 @override
14163 bool operator ==(other) { 9528 bool operator ==(other) {
14164 if (other is OverriddenMember) { 9529 if (other is ImplementedMember) {
14165 return element == other.element && className == other.className; 9530 return offset == other.offset && length == other.length;
14166 } 9531 }
14167 return false; 9532 return false;
14168 } 9533 }
14169 9534
14170 @override 9535 @override
14171 int get hashCode { 9536 int get hashCode {
14172 int hash = 0; 9537 int hash = 0;
14173 hash = JenkinsSmiHash.combine(hash, element.hashCode); 9538 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
14174 hash = JenkinsSmiHash.combine(hash, className.hashCode); 9539 hash = JenkinsSmiHash.combine(hash, length.hashCode);
14175 return JenkinsSmiHash.finish(hash); 9540 return JenkinsSmiHash.finish(hash);
14176 } 9541 }
14177 } 9542 }
14178 9543
14179 /** 9544 /**
14180 * Override 9545 * inlineLocalVariable feedback
14181 * 9546 *
14182 * { 9547 * {
14183 * "offset": int 9548 * "name": String
14184 * "length": int 9549 * "occurrences": int
14185 * "superclassMember": optional OverriddenMember
14186 * "interfaceMembers": optional List<OverriddenMember>
14187 * } 9550 * }
14188 * 9551 *
14189 * Clients may not extend, implement or mix-in this class. 9552 * Clients may not extend, implement or mix-in this class.
14190 */ 9553 */
14191 class Override implements HasToJson { 9554 class InlineLocalVariableFeedback extends RefactoringFeedback {
14192 int _offset; 9555 String _name;
14193 9556
14194 int _length; 9557 int _occurrences;
14195
14196 OverriddenMember _superclassMember;
14197
14198 List<OverriddenMember> _interfaceMembers;
14199 9558
14200 /** 9559 /**
14201 * The offset of the name of the overriding member. 9560 * The name of the variable being inlined.
14202 */ 9561 */
14203 int get offset => _offset; 9562 String get name => _name;
14204 9563
14205 /** 9564 /**
14206 * The offset of the name of the overriding member. 9565 * The name of the variable being inlined.
14207 */ 9566 */
14208 void set offset(int value) { 9567 void set name(String value) {
14209 assert(value != null); 9568 assert(value != null);
14210 this._offset = value; 9569 this._name = value;
14211 } 9570 }
14212 9571
14213 /** 9572 /**
14214 * The length of the name of the overriding member. 9573 * The number of times the variable occurs.
14215 */ 9574 */
14216 int get length => _length; 9575 int get occurrences => _occurrences;
14217 9576
14218 /** 9577 /**
14219 * The length of the name of the overriding member. 9578 * The number of times the variable occurs.
14220 */ 9579 */
14221 void set length(int value) { 9580 void set occurrences(int value) {
14222 assert(value != null); 9581 assert(value != null);
14223 this._length = value; 9582 this._occurrences = value;
14224 } 9583 }
14225 9584
14226 /** 9585 InlineLocalVariableFeedback(String name, int occurrences) {
14227 * The member inherited from a superclass that is overridden by the 9586 this.name = name;
14228 * overriding member. The field is omitted if there is no superclass member, 9587 this.occurrences = occurrences;
14229 * in which case there must be at least one interface member.
14230 */
14231 OverriddenMember get superclassMember => _superclassMember;
14232
14233 /**
14234 * The member inherited from a superclass that is overridden by the
14235 * overriding member. The field is omitted if there is no superclass member,
14236 * in which case there must be at least one interface member.
14237 */
14238 void set superclassMember(OverriddenMember value) {
14239 this._superclassMember = value;
14240 } 9588 }
14241 9589
14242 /** 9590 factory InlineLocalVariableFeedback.fromJson(
14243 * The members inherited from interfaces that are overridden by the
14244 * overriding member. The field is omitted if there are no interface members,
14245 * in which case there must be a superclass member.
14246 */
14247 List<OverriddenMember> get interfaceMembers => _interfaceMembers;
14248
14249 /**
14250 * The members inherited from interfaces that are overridden by the
14251 * overriding member. The field is omitted if there are no interface members,
14252 * in which case there must be a superclass member.
14253 */
14254 void set interfaceMembers(List<OverriddenMember> value) {
14255 this._interfaceMembers = value;
14256 }
14257
14258 Override(int offset, int length,
14259 {OverriddenMember superclassMember,
14260 List<OverriddenMember> interfaceMembers}) {
14261 this.offset = offset;
14262 this.length = length;
14263 this.superclassMember = superclassMember;
14264 this.interfaceMembers = interfaceMembers;
14265 }
14266
14267 factory Override.fromJson(
14268 JsonDecoder jsonDecoder, String jsonPath, Object json) { 9591 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14269 if (json == null) { 9592 if (json == null) {
14270 json = {}; 9593 json = {};
14271 } 9594 }
14272 if (json is Map) { 9595 if (json is Map) {
14273 int offset; 9596 String name;
14274 if (json.containsKey("offset")) { 9597 if (json.containsKey("name")) {
14275 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); 9598 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
14276 } else { 9599 } else {
14277 throw jsonDecoder.mismatch(jsonPath, "offset"); 9600 throw jsonDecoder.mismatch(jsonPath, "name");
14278 } 9601 }
14279 int length; 9602 int occurrences;
14280 if (json.containsKey("length")) { 9603 if (json.containsKey("occurrences")) {
14281 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); 9604 occurrences = jsonDecoder.decodeInt(
9605 jsonPath + ".occurrences", json["occurrences"]);
14282 } else { 9606 } else {
14283 throw jsonDecoder.mismatch(jsonPath, "length"); 9607 throw jsonDecoder.mismatch(jsonPath, "occurrences");
14284 } 9608 }
14285 OverriddenMember superclassMember; 9609 return new InlineLocalVariableFeedback(name, occurrences);
14286 if (json.containsKey("superclassMember")) {
14287 superclassMember = new OverriddenMember.fromJson(jsonDecoder,
14288 jsonPath + ".superclassMember", json["superclassMember"]);
14289 }
14290 List<OverriddenMember> interfaceMembers;
14291 if (json.containsKey("interfaceMembers")) {
14292 interfaceMembers = jsonDecoder.decodeList(
14293 jsonPath + ".interfaceMembers",
14294 json["interfaceMembers"],
14295 (String jsonPath, Object json) =>
14296 new OverriddenMember.fromJson(jsonDecoder, jsonPath, json));
14297 }
14298 return new Override(offset, length,
14299 superclassMember: superclassMember,
14300 interfaceMembers: interfaceMembers);
14301 } else { 9610 } else {
14302 throw jsonDecoder.mismatch(jsonPath, "Override", json); 9611 throw jsonDecoder.mismatch(
9612 jsonPath, "inlineLocalVariable feedback", json);
14303 } 9613 }
14304 } 9614 }
14305 9615
14306 @override 9616 @override
14307 Map<String, dynamic> toJson() { 9617 Map<String, dynamic> toJson() {
14308 Map<String, dynamic> result = {}; 9618 Map<String, dynamic> result = {};
14309 result["offset"] = offset; 9619 result["name"] = name;
14310 result["length"] = length; 9620 result["occurrences"] = occurrences;
14311 if (superclassMember != null) {
14312 result["superclassMember"] = superclassMember.toJson();
14313 }
14314 if (interfaceMembers != null) {
14315 result["interfaceMembers"] = interfaceMembers
14316 .map((OverriddenMember value) => value.toJson())
14317 .toList();
14318 }
14319 return result; 9621 return result;
14320 } 9622 }
14321 9623
14322 @override 9624 @override
14323 String toString() => JSON.encode(toJson()); 9625 String toString() => JSON.encode(toJson());
14324 9626
14325 @override 9627 @override
14326 bool operator ==(other) { 9628 bool operator ==(other) {
14327 if (other is Override) { 9629 if (other is InlineLocalVariableFeedback) {
14328 return offset == other.offset && 9630 return name == other.name && occurrences == other.occurrences;
14329 length == other.length &&
14330 superclassMember == other.superclassMember &&
14331 listEqual(interfaceMembers, other.interfaceMembers,
14332 (OverriddenMember a, OverriddenMember b) => a == b);
14333 } 9631 }
14334 return false; 9632 return false;
14335 } 9633 }
14336 9634
14337 @override 9635 @override
14338 int get hashCode { 9636 int get hashCode {
14339 int hash = 0; 9637 int hash = 0;
14340 hash = JenkinsSmiHash.combine(hash, offset.hashCode); 9638 hash = JenkinsSmiHash.combine(hash, name.hashCode);
14341 hash = JenkinsSmiHash.combine(hash, length.hashCode); 9639 hash = JenkinsSmiHash.combine(hash, occurrences.hashCode);
14342 hash = JenkinsSmiHash.combine(hash, superclassMember.hashCode);
14343 hash = JenkinsSmiHash.combine(hash, interfaceMembers.hashCode);
14344 return JenkinsSmiHash.finish(hash); 9640 return JenkinsSmiHash.finish(hash);
14345 } 9641 }
14346 } 9642 }
14347 9643
14348 /** 9644 /**
14349 * Position 9645 * inlineLocalVariable options
9646 *
9647 * Clients may not extend, implement or mix-in this class.
9648 */
9649 class InlineLocalVariableOptions extends RefactoringOptions
9650 implements HasToJson {
9651 @override
9652 bool operator ==(other) {
9653 if (other is InlineLocalVariableOptions) {
9654 return true;
9655 }
9656 return false;
9657 }
9658
9659 @override
9660 int get hashCode {
9661 return 540364977;
9662 }
9663 }
9664
9665 /**
9666 * inlineMethod feedback
14350 * 9667 *
14351 * { 9668 * {
14352 * "file": FilePath 9669 * "className": optional String
14353 * "offset": int 9670 * "methodName": String
9671 * "isDeclaration": bool
14354 * } 9672 * }
14355 * 9673 *
14356 * Clients may not extend, implement or mix-in this class. 9674 * Clients may not extend, implement or mix-in this class.
14357 */ 9675 */
14358 class Position implements HasToJson { 9676 class InlineMethodFeedback extends RefactoringFeedback {
14359 String _file; 9677 String _className;
14360 9678
14361 int _offset; 9679 String _methodName;
9680
9681 bool _isDeclaration;
14362 9682
14363 /** 9683 /**
14364 * The file containing the position. 9684 * The name of the class enclosing the method being inlined. If not a class
9685 * member is being inlined, this field will be absent.
14365 */ 9686 */
14366 String get file => _file; 9687 String get className => _className;
14367 9688
14368 /** 9689 /**
14369 * The file containing the position. 9690 * The name of the class enclosing the method being inlined. If not a class
9691 * member is being inlined, this field will be absent.
14370 */ 9692 */
14371 void set file(String value) { 9693 void set className(String value) {
14372 assert(value != null); 9694 this._className = value;
14373 this._file = value;
14374 } 9695 }
14375 9696
14376 /** 9697 /**
14377 * The offset of the position. 9698 * The name of the method (or function) being inlined.
14378 */ 9699 */
14379 int get offset => _offset; 9700 String get methodName => _methodName;
14380 9701
14381 /** 9702 /**
14382 * The offset of the position. 9703 * The name of the method (or function) being inlined.
14383 */ 9704 */
14384 void set offset(int value) { 9705 void set methodName(String value) {
14385 assert(value != null); 9706 assert(value != null);
14386 this._offset = value; 9707 this._methodName = value;
14387 } 9708 }
14388 9709
14389 Position(String file, int offset) { 9710 /**
14390 this.file = file; 9711 * True if the declaration of the method is selected. So all references
14391 this.offset = offset; 9712 * should be inlined.
9713 */
9714 bool get isDeclaration => _isDeclaration;
9715
9716 /**
9717 * True if the declaration of the method is selected. So all references
9718 * should be inlined.
9719 */
9720 void set isDeclaration(bool value) {
9721 assert(value != null);
9722 this._isDeclaration = value;
14392 } 9723 }
14393 9724
14394 factory Position.fromJson( 9725 InlineMethodFeedback(String methodName, bool isDeclaration,
9726 {String className}) {
9727 this.className = className;
9728 this.methodName = methodName;
9729 this.isDeclaration = isDeclaration;
9730 }
9731
9732 factory InlineMethodFeedback.fromJson(
14395 JsonDecoder jsonDecoder, String jsonPath, Object json) { 9733 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14396 if (json == null) { 9734 if (json == null) {
14397 json = {}; 9735 json = {};
14398 } 9736 }
14399 if (json is Map) { 9737 if (json is Map) {
14400 String file; 9738 String className;
14401 if (json.containsKey("file")) { 9739 if (json.containsKey("className")) {
14402 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); 9740 className = jsonDecoder.decodeString(
9741 jsonPath + ".className", json["className"]);
9742 }
9743 String methodName;
9744 if (json.containsKey("methodName")) {
9745 methodName = jsonDecoder.decodeString(
9746 jsonPath + ".methodName", json["methodName"]);
14403 } else { 9747 } else {
14404 throw jsonDecoder.mismatch(jsonPath, "file"); 9748 throw jsonDecoder.mismatch(jsonPath, "methodName");
14405 } 9749 }
14406 int offset; 9750 bool isDeclaration;
14407 if (json.containsKey("offset")) { 9751 if (json.containsKey("isDeclaration")) {
14408 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); 9752 isDeclaration = jsonDecoder.decodeBool(
9753 jsonPath + ".isDeclaration", json["isDeclaration"]);
14409 } else { 9754 } else {
14410 throw jsonDecoder.mismatch(jsonPath, "offset"); 9755 throw jsonDecoder.mismatch(jsonPath, "isDeclaration");
14411 } 9756 }
14412 return new Position(file, offset); 9757 return new InlineMethodFeedback(methodName, isDeclaration,
9758 className: className);
14413 } else { 9759 } else {
14414 throw jsonDecoder.mismatch(jsonPath, "Position", json); 9760 throw jsonDecoder.mismatch(jsonPath, "inlineMethod feedback", json);
14415 } 9761 }
14416 } 9762 }
14417 9763
14418 @override 9764 @override
14419 Map<String, dynamic> toJson() { 9765 Map<String, dynamic> toJson() {
14420 Map<String, dynamic> result = {}; 9766 Map<String, dynamic> result = {};
14421 result["file"] = file; 9767 if (className != null) {
14422 result["offset"] = offset; 9768 result["className"] = className;
9769 }
9770 result["methodName"] = methodName;
9771 result["isDeclaration"] = isDeclaration;
14423 return result; 9772 return result;
14424 } 9773 }
14425 9774
14426 @override 9775 @override
14427 String toString() => JSON.encode(toJson()); 9776 String toString() => JSON.encode(toJson());
14428 9777
14429 @override 9778 @override
14430 bool operator ==(other) { 9779 bool operator ==(other) {
14431 if (other is Position) { 9780 if (other is InlineMethodFeedback) {
14432 return file == other.file && offset == other.offset; 9781 return className == other.className &&
9782 methodName == other.methodName &&
9783 isDeclaration == other.isDeclaration;
14433 } 9784 }
14434 return false; 9785 return false;
14435 } 9786 }
14436 9787
14437 @override 9788 @override
14438 int get hashCode { 9789 int get hashCode {
14439 int hash = 0; 9790 int hash = 0;
14440 hash = JenkinsSmiHash.combine(hash, file.hashCode); 9791 hash = JenkinsSmiHash.combine(hash, className.hashCode);
14441 hash = JenkinsSmiHash.combine(hash, offset.hashCode); 9792 hash = JenkinsSmiHash.combine(hash, methodName.hashCode);
9793 hash = JenkinsSmiHash.combine(hash, isDeclaration.hashCode);
14442 return JenkinsSmiHash.finish(hash); 9794 return JenkinsSmiHash.finish(hash);
14443 } 9795 }
14444 } 9796 }
14445 9797
14446 /** 9798 /**
14447 * PubStatus 9799 * inlineMethod options
14448 * 9800 *
14449 * { 9801 * {
14450 * "isListingPackageDirs": bool 9802 * "deleteSource": bool
9803 * "inlineAll": bool
14451 * } 9804 * }
14452 * 9805 *
14453 * Clients may not extend, implement or mix-in this class. 9806 * Clients may not extend, implement or mix-in this class.
14454 */ 9807 */
14455 class PubStatus implements HasToJson { 9808 class InlineMethodOptions extends RefactoringOptions {
14456 bool _isListingPackageDirs; 9809 bool _deleteSource;
9810
9811 bool _inlineAll;
14457 9812
14458 /** 9813 /**
14459 * True if the server is currently running pub to produce a list of package 9814 * True if the method being inlined should be removed. It is an error if this
14460 * directories. 9815 * field is true and inlineAll is false.
14461 */ 9816 */
14462 bool get isListingPackageDirs => _isListingPackageDirs; 9817 bool get deleteSource => _deleteSource;
14463 9818
14464 /** 9819 /**
14465 * True if the server is currently running pub to produce a list of package 9820 * True if the method being inlined should be removed. It is an error if this
14466 * directories. 9821 * field is true and inlineAll is false.
14467 */ 9822 */
14468 void set isListingPackageDirs(bool value) { 9823 void set deleteSource(bool value) {
14469 assert(value != null); 9824 assert(value != null);
14470 this._isListingPackageDirs = value; 9825 this._deleteSource = value;
14471 } 9826 }
14472 9827
14473 PubStatus(bool isListingPackageDirs) { 9828 /**
14474 this.isListingPackageDirs = isListingPackageDirs; 9829 * True if all invocations of the method should be inlined, or false if only
9830 * the invocation site used to create this refactoring should be inlined.
9831 */
9832 bool get inlineAll => _inlineAll;
9833
9834 /**
9835 * True if all invocations of the method should be inlined, or false if only
9836 * the invocation site used to create this refactoring should be inlined.
9837 */
9838 void set inlineAll(bool value) {
9839 assert(value != null);
9840 this._inlineAll = value;
14475 } 9841 }
14476 9842
14477 factory PubStatus.fromJson( 9843 InlineMethodOptions(bool deleteSource, bool inlineAll) {
9844 this.deleteSource = deleteSource;
9845 this.inlineAll = inlineAll;
9846 }
9847
9848 factory InlineMethodOptions.fromJson(
14478 JsonDecoder jsonDecoder, String jsonPath, Object json) { 9849 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14479 if (json == null) { 9850 if (json == null) {
14480 json = {}; 9851 json = {};
14481 } 9852 }
14482 if (json is Map) { 9853 if (json is Map) {
14483 bool isListingPackageDirs; 9854 bool deleteSource;
14484 if (json.containsKey("isListingPackageDirs")) { 9855 if (json.containsKey("deleteSource")) {
14485 isListingPackageDirs = jsonDecoder.decodeBool( 9856 deleteSource = jsonDecoder.decodeBool(
14486 jsonPath + ".isListingPackageDirs", json["isListingPackageDirs"]); 9857 jsonPath + ".deleteSource", json["deleteSource"]);
14487 } else { 9858 } else {
14488 throw jsonDecoder.mismatch(jsonPath, "isListingPackageDirs"); 9859 throw jsonDecoder.mismatch(jsonPath, "deleteSource");
14489 } 9860 }
14490 return new PubStatus(isListingPackageDirs); 9861 bool inlineAll;
9862 if (json.containsKey("inlineAll")) {
9863 inlineAll =
9864 jsonDecoder.decodeBool(jsonPath + ".inlineAll", json["inlineAll"]);
9865 } else {
9866 throw jsonDecoder.mismatch(jsonPath, "inlineAll");
9867 }
9868 return new InlineMethodOptions(deleteSource, inlineAll);
14491 } else { 9869 } else {
14492 throw jsonDecoder.mismatch(jsonPath, "PubStatus", json); 9870 throw jsonDecoder.mismatch(jsonPath, "inlineMethod options", json);
14493 } 9871 }
14494 } 9872 }
14495 9873
9874 factory InlineMethodOptions.fromRefactoringParams(
9875 EditGetRefactoringParams refactoringParams, Request request) {
9876 return new InlineMethodOptions.fromJson(
9877 new RequestDecoder(request), "options", refactoringParams.options);
9878 }
9879
14496 @override 9880 @override
14497 Map<String, dynamic> toJson() { 9881 Map<String, dynamic> toJson() {
14498 Map<String, dynamic> result = {}; 9882 Map<String, dynamic> result = {};
14499 result["isListingPackageDirs"] = isListingPackageDirs; 9883 result["deleteSource"] = deleteSource;
9884 result["inlineAll"] = inlineAll;
14500 return result; 9885 return result;
14501 } 9886 }
14502 9887
14503 @override 9888 @override
14504 String toString() => JSON.encode(toJson()); 9889 String toString() => JSON.encode(toJson());
14505 9890
14506 @override 9891 @override
14507 bool operator ==(other) { 9892 bool operator ==(other) {
14508 if (other is PubStatus) { 9893 if (other is InlineMethodOptions) {
14509 return isListingPackageDirs == other.isListingPackageDirs; 9894 return deleteSource == other.deleteSource && inlineAll == other.inlineAll;
14510 } 9895 }
14511 return false; 9896 return false;
14512 } 9897 }
14513 9898
14514 @override 9899 @override
14515 int get hashCode { 9900 int get hashCode {
14516 int hash = 0; 9901 int hash = 0;
14517 hash = JenkinsSmiHash.combine(hash, isListingPackageDirs.hashCode); 9902 hash = JenkinsSmiHash.combine(hash, deleteSource.hashCode);
9903 hash = JenkinsSmiHash.combine(hash, inlineAll.hashCode);
14518 return JenkinsSmiHash.finish(hash); 9904 return JenkinsSmiHash.finish(hash);
14519 } 9905 }
14520 } 9906 }
14521 9907
14522 /** 9908 /**
14523 * RefactoringFeedback 9909 * moveFile feedback
14524 *
14525 * {
14526 * }
14527 * 9910 *
14528 * Clients may not extend, implement or mix-in this class. 9911 * Clients may not extend, implement or mix-in this class.
14529 */ 9912 */
14530 class RefactoringFeedback implements HasToJson { 9913 class MoveFileFeedback extends RefactoringFeedback implements HasToJson {
14531 RefactoringFeedback();
14532
14533 factory RefactoringFeedback.fromJson(
14534 JsonDecoder jsonDecoder, String jsonPath, Object json, Map responseJson) {
14535 return refactoringFeedbackFromJson(
14536 jsonDecoder, jsonPath, json, responseJson);
14537 }
14538
14539 @override
14540 Map<String, dynamic> toJson() {
14541 Map<String, dynamic> result = {};
14542 return result;
14543 }
14544
14545 @override
14546 String toString() => JSON.encode(toJson());
14547
14548 @override 9914 @override
14549 bool operator ==(other) { 9915 bool operator ==(other) {
14550 if (other is RefactoringFeedback) { 9916 if (other is MoveFileFeedback) {
14551 return true; 9917 return true;
14552 } 9918 }
14553 return false; 9919 return false;
14554 } 9920 }
14555 9921
14556 @override 9922 @override
14557 int get hashCode { 9923 int get hashCode {
14558 int hash = 0; 9924 return 438975893;
14559 return JenkinsSmiHash.finish(hash);
14560 } 9925 }
14561 } 9926 }
14562 9927
14563 /** 9928 /**
14564 * RefactoringKind 9929 * moveFile options
14565 * 9930 *
14566 * enum { 9931 * {
14567 * CONVERT_GETTER_TO_METHOD 9932 * "newFile": FilePath
14568 * CONVERT_METHOD_TO_GETTER
14569 * EXTRACT_LOCAL_VARIABLE
14570 * EXTRACT_METHOD
14571 * INLINE_LOCAL_VARIABLE
14572 * INLINE_METHOD
14573 * MOVE_FILE
14574 * RENAME
14575 * SORT_MEMBERS
14576 * } 9933 * }
14577 * 9934 *
14578 * Clients may not extend, implement or mix-in this class. 9935 * Clients may not extend, implement or mix-in this class.
14579 */ 9936 */
14580 class RefactoringKind implements Enum { 9937 class MoveFileOptions extends RefactoringOptions {
14581 static const RefactoringKind CONVERT_GETTER_TO_METHOD = 9938 String _newFile;
14582 const RefactoringKind._("CONVERT_GETTER_TO_METHOD");
14583
14584 static const RefactoringKind CONVERT_METHOD_TO_GETTER =
14585 const RefactoringKind._("CONVERT_METHOD_TO_GETTER");
14586
14587 static const RefactoringKind EXTRACT_LOCAL_VARIABLE =
14588 const RefactoringKind._("EXTRACT_LOCAL_VARIABLE");
14589
14590 static const RefactoringKind EXTRACT_METHOD =
14591 const RefactoringKind._("EXTRACT_METHOD");
14592
14593 static const RefactoringKind INLINE_LOCAL_VARIABLE =
14594 const RefactoringKind._("INLINE_LOCAL_VARIABLE");
14595
14596 static const RefactoringKind INLINE_METHOD =
14597 const RefactoringKind._("INLINE_METHOD");
14598
14599 static const RefactoringKind MOVE_FILE = const RefactoringKind._("MOVE_FILE");
14600
14601 static const RefactoringKind RENAME = const RefactoringKind._("RENAME");
14602
14603 static const RefactoringKind SORT_MEMBERS =
14604 const RefactoringKind._("SORT_MEMBERS");
14605 9939
14606 /** 9940 /**
14607 * A list containing all of the enum values that are defined. 9941 * The new file path to which the given file is being moved.
14608 */ 9942 */
14609 static const List<RefactoringKind> VALUES = const <RefactoringKind>[ 9943 String get newFile => _newFile;
14610 CONVERT_GETTER_TO_METHOD,
14611 CONVERT_METHOD_TO_GETTER,
14612 EXTRACT_LOCAL_VARIABLE,
14613 EXTRACT_METHOD,
14614 INLINE_LOCAL_VARIABLE,
14615 INLINE_METHOD,
14616 MOVE_FILE,
14617 RENAME,
14618 SORT_MEMBERS
14619 ];
14620 9944
14621 @override 9945 /**
14622 final String name; 9946 * The new file path to which the given file is being moved.
14623 9947 */
14624 const RefactoringKind._(this.name); 9948 void set newFile(String value) {
14625 9949 assert(value != null);
14626 factory RefactoringKind(String name) { 9950 this._newFile = value;
14627 switch (name) {
14628 case "CONVERT_GETTER_TO_METHOD":
14629 return CONVERT_GETTER_TO_METHOD;
14630 case "CONVERT_METHOD_TO_GETTER":
14631 return CONVERT_METHOD_TO_GETTER;
14632 case "EXTRACT_LOCAL_VARIABLE":
14633 return EXTRACT_LOCAL_VARIABLE;
14634 case "EXTRACT_METHOD":
14635 return EXTRACT_METHOD;
14636 case "INLINE_LOCAL_VARIABLE":
14637 return INLINE_LOCAL_VARIABLE;
14638 case "INLINE_METHOD":
14639 return INLINE_METHOD;
14640 case "MOVE_FILE":
14641 return MOVE_FILE;
14642 case "RENAME":
14643 return RENAME;
14644 case "SORT_MEMBERS":
14645 return SORT_MEMBERS;
14646 }
14647 throw new Exception('Illegal enum value: $name');
14648 } 9951 }
14649 9952
14650 factory RefactoringKind.fromJson( 9953 MoveFileOptions(String newFile) {
14651 JsonDecoder jsonDecoder, String jsonPath, Object json) { 9954 this.newFile = newFile;
14652 if (json is String) {
14653 try {
14654 return new RefactoringKind(json);
14655 } catch (_) {
14656 // Fall through
14657 }
14658 }
14659 throw jsonDecoder.mismatch(jsonPath, "RefactoringKind", json);
14660 } 9955 }
14661 9956
14662 @override 9957 factory MoveFileOptions.fromJson(
14663 String toString() => "RefactoringKind.$name";
14664
14665 String toJson() => name;
14666 }
14667
14668 /**
14669 * RefactoringMethodParameter
14670 *
14671 * {
14672 * "id": optional String
14673 * "kind": RefactoringMethodParameterKind
14674 * "type": String
14675 * "name": String
14676 * "parameters": optional String
14677 * }
14678 *
14679 * Clients may not extend, implement or mix-in this class.
14680 */
14681 class RefactoringMethodParameter implements HasToJson {
14682 String _id;
14683
14684 RefactoringMethodParameterKind _kind;
14685
14686 String _type;
14687
14688 String _name;
14689
14690 String _parameters;
14691
14692 /**
14693 * The unique identifier of the parameter. Clients may omit this field for
14694 * the parameters they want to add.
14695 */
14696 String get id => _id;
14697
14698 /**
14699 * The unique identifier of the parameter. Clients may omit this field for
14700 * the parameters they want to add.
14701 */
14702 void set id(String value) {
14703 this._id = value;
14704 }
14705
14706 /**
14707 * The kind of the parameter.
14708 */
14709 RefactoringMethodParameterKind get kind => _kind;
14710
14711 /**
14712 * The kind of the parameter.
14713 */
14714 void set kind(RefactoringMethodParameterKind value) {
14715 assert(value != null);
14716 this._kind = value;
14717 }
14718
14719 /**
14720 * The type that should be given to the parameter, or the return type of the
14721 * parameter's function type.
14722 */
14723 String get type => _type;
14724
14725 /**
14726 * The type that should be given to the parameter, or the return type of the
14727 * parameter's function type.
14728 */
14729 void set type(String value) {
14730 assert(value != null);
14731 this._type = value;
14732 }
14733
14734 /**
14735 * The name that should be given to the parameter.
14736 */
14737 String get name => _name;
14738
14739 /**
14740 * The name that should be given to the parameter.
14741 */
14742 void set name(String value) {
14743 assert(value != null);
14744 this._name = value;
14745 }
14746
14747 /**
14748 * The parameter list of the parameter's function type. If the parameter is
14749 * not of a function type, this field will not be defined. If the function
14750 * type has zero parameters, this field will have a value of "()".
14751 */
14752 String get parameters => _parameters;
14753
14754 /**
14755 * The parameter list of the parameter's function type. If the parameter is
14756 * not of a function type, this field will not be defined. If the function
14757 * type has zero parameters, this field will have a value of "()".
14758 */
14759 void set parameters(String value) {
14760 this._parameters = value;
14761 }
14762
14763 RefactoringMethodParameter(
14764 RefactoringMethodParameterKind kind, String type, String name,
14765 {String id, String parameters}) {
14766 this.id = id;
14767 this.kind = kind;
14768 this.type = type;
14769 this.name = name;
14770 this.parameters = parameters;
14771 }
14772
14773 factory RefactoringMethodParameter.fromJson(
14774 JsonDecoder jsonDecoder, String jsonPath, Object json) { 9958 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14775 if (json == null) { 9959 if (json == null) {
14776 json = {}; 9960 json = {};
14777 } 9961 }
14778 if (json is Map) { 9962 if (json is Map) {
14779 String id; 9963 String newFile;
14780 if (json.containsKey("id")) { 9964 if (json.containsKey("newFile")) {
14781 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); 9965 newFile =
9966 jsonDecoder.decodeString(jsonPath + ".newFile", json["newFile"]);
9967 } else {
9968 throw jsonDecoder.mismatch(jsonPath, "newFile");
14782 } 9969 }
14783 RefactoringMethodParameterKind kind; 9970 return new MoveFileOptions(newFile);
14784 if (json.containsKey("kind")) {
14785 kind = new RefactoringMethodParameterKind.fromJson(
14786 jsonDecoder, jsonPath + ".kind", json["kind"]);
14787 } else {
14788 throw jsonDecoder.mismatch(jsonPath, "kind");
14789 }
14790 String type;
14791 if (json.containsKey("type")) {
14792 type = jsonDecoder.decodeString(jsonPath + ".type", json["type"]);
14793 } else {
14794 throw jsonDecoder.mismatch(jsonPath, "type");
14795 }
14796 String name;
14797 if (json.containsKey("name")) {
14798 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
14799 } else {
14800 throw jsonDecoder.mismatch(jsonPath, "name");
14801 }
14802 String parameters;
14803 if (json.containsKey("parameters")) {
14804 parameters = jsonDecoder.decodeString(
14805 jsonPath + ".parameters", json["parameters"]);
14806 }
14807 return new RefactoringMethodParameter(kind, type, name,
14808 id: id, parameters: parameters);
14809 } else { 9971 } else {
14810 throw jsonDecoder.mismatch(jsonPath, "RefactoringMethodParameter", json); 9972 throw jsonDecoder.mismatch(jsonPath, "moveFile options", json);
14811 } 9973 }
14812 } 9974 }
14813 9975
9976 factory MoveFileOptions.fromRefactoringParams(
9977 EditGetRefactoringParams refactoringParams, Request request) {
9978 return new MoveFileOptions.fromJson(
9979 new RequestDecoder(request), "options", refactoringParams.options);
9980 }
9981
14814 @override 9982 @override
14815 Map<String, dynamic> toJson() { 9983 Map<String, dynamic> toJson() {
14816 Map<String, dynamic> result = {}; 9984 Map<String, dynamic> result = {};
14817 if (id != null) { 9985 result["newFile"] = newFile;
14818 result["id"] = id;
14819 }
14820 result["kind"] = kind.toJson();
14821 result["type"] = type;
14822 result["name"] = name;
14823 if (parameters != null) {
14824 result["parameters"] = parameters;
14825 }
14826 return result; 9986 return result;
14827 } 9987 }
14828 9988
14829 @override 9989 @override
14830 String toString() => JSON.encode(toJson()); 9990 String toString() => JSON.encode(toJson());
14831 9991
14832 @override 9992 @override
14833 bool operator ==(other) { 9993 bool operator ==(other) {
14834 if (other is RefactoringMethodParameter) { 9994 if (other is MoveFileOptions) {
14835 return id == other.id && 9995 return newFile == other.newFile;
14836 kind == other.kind &&
14837 type == other.type &&
14838 name == other.name &&
14839 parameters == other.parameters;
14840 } 9996 }
14841 return false; 9997 return false;
14842 } 9998 }
14843 9999
14844 @override 10000 @override
14845 int get hashCode { 10001 int get hashCode {
14846 int hash = 0; 10002 int hash = 0;
14847 hash = JenkinsSmiHash.combine(hash, id.hashCode); 10003 hash = JenkinsSmiHash.combine(hash, newFile.hashCode);
14848 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
14849 hash = JenkinsSmiHash.combine(hash, type.hashCode);
14850 hash = JenkinsSmiHash.combine(hash, name.hashCode);
14851 hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
14852 return JenkinsSmiHash.finish(hash); 10004 return JenkinsSmiHash.finish(hash);
14853 } 10005 }
14854 } 10006 }
14855 10007
14856 /** 10008 /**
14857 * RefactoringMethodParameterKind 10009 * OverriddenMember
14858 * 10010 *
14859 * enum { 10011 * {
14860 * REQUIRED 10012 * "element": Element
14861 * POSITIONAL 10013 * "className": String
14862 * NAMED
14863 * } 10014 * }
14864 * 10015 *
14865 * Clients may not extend, implement or mix-in this class. 10016 * Clients may not extend, implement or mix-in this class.
14866 */ 10017 */
14867 class RefactoringMethodParameterKind implements Enum { 10018 class OverriddenMember implements HasToJson {
14868 static const RefactoringMethodParameterKind REQUIRED = 10019 Element _element;
14869 const RefactoringMethodParameterKind._("REQUIRED");
14870 10020
14871 static const RefactoringMethodParameterKind POSITIONAL = 10021 String _className;
14872 const RefactoringMethodParameterKind._("POSITIONAL");
14873
14874 static const RefactoringMethodParameterKind NAMED =
14875 const RefactoringMethodParameterKind._("NAMED");
14876 10022
14877 /** 10023 /**
14878 * A list containing all of the enum values that are defined. 10024 * The element that is being overridden.
14879 */ 10025 */
14880 static const List<RefactoringMethodParameterKind> VALUES = 10026 Element get element => _element;
14881 const <RefactoringMethodParameterKind>[REQUIRED, POSITIONAL, NAMED];
14882 10027
14883 @override 10028 /**
14884 final String name; 10029 * The element that is being overridden.
14885 10030 */
14886 const RefactoringMethodParameterKind._(this.name); 10031 void set element(Element value) {
14887 10032 assert(value != null);
14888 factory RefactoringMethodParameterKind(String name) { 10033 this._element = value;
14889 switch (name) {
14890 case "REQUIRED":
14891 return REQUIRED;
14892 case "POSITIONAL":
14893 return POSITIONAL;
14894 case "NAMED":
14895 return NAMED;
14896 }
14897 throw new Exception('Illegal enum value: $name');
14898 } 10034 }
14899 10035
14900 factory RefactoringMethodParameterKind.fromJson( 10036 /**
14901 JsonDecoder jsonDecoder, String jsonPath, Object json) { 10037 * The name of the class in which the member is defined.
14902 if (json is String) { 10038 */
14903 try { 10039 String get className => _className;
14904 return new RefactoringMethodParameterKind(json); 10040
14905 } catch (_) { 10041 /**
14906 // Fall through 10042 * The name of the class in which the member is defined.
14907 } 10043 */
14908 } 10044 void set className(String value) {
14909 throw jsonDecoder.mismatch( 10045 assert(value != null);
14910 jsonPath, "RefactoringMethodParameterKind", json); 10046 this._className = value;
14911 } 10047 }
14912 10048
14913 @override 10049 OverriddenMember(Element element, String className) {
14914 String toString() => "RefactoringMethodParameterKind.$name"; 10050 this.element = element;
10051 this.className = className;
10052 }
14915 10053
14916 String toJson() => name; 10054 factory OverriddenMember.fromJson(
14917 } 10055 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14918 10056 if (json == null) {
14919 /** 10057 json = {};
14920 * RefactoringOptions 10058 }
14921 * 10059 if (json is Map) {
14922 * { 10060 Element element;
14923 * } 10061 if (json.containsKey("element")) {
14924 * 10062 element = new Element.fromJson(
14925 * Clients may not extend, implement or mix-in this class. 10063 jsonDecoder, jsonPath + ".element", json["element"]);
14926 */ 10064 } else {
14927 class RefactoringOptions implements HasToJson { 10065 throw jsonDecoder.mismatch(jsonPath, "element");
14928 RefactoringOptions(); 10066 }
14929 10067 String className;
14930 factory RefactoringOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath, 10068 if (json.containsKey("className")) {
14931 Object json, RefactoringKind kind) { 10069 className = jsonDecoder.decodeString(
14932 return refactoringOptionsFromJson(jsonDecoder, jsonPath, json, kind); 10070 jsonPath + ".className", json["className"]);
10071 } else {
10072 throw jsonDecoder.mismatch(jsonPath, "className");
10073 }
10074 return new OverriddenMember(element, className);
10075 } else {
10076 throw jsonDecoder.mismatch(jsonPath, "OverriddenMember", json);
10077 }
14933 } 10078 }
14934 10079
14935 @override 10080 @override
14936 Map<String, dynamic> toJson() { 10081 Map<String, dynamic> toJson() {
14937 Map<String, dynamic> result = {}; 10082 Map<String, dynamic> result = {};
10083 result["element"] = element.toJson();
10084 result["className"] = className;
14938 return result; 10085 return result;
14939 } 10086 }
14940 10087
14941 @override 10088 @override
14942 String toString() => JSON.encode(toJson()); 10089 String toString() => JSON.encode(toJson());
14943 10090
14944 @override 10091 @override
14945 bool operator ==(other) { 10092 bool operator ==(other) {
14946 if (other is RefactoringOptions) { 10093 if (other is OverriddenMember) {
14947 return true; 10094 return element == other.element && className == other.className;
14948 } 10095 }
14949 return false; 10096 return false;
14950 } 10097 }
14951 10098
14952 @override 10099 @override
14953 int get hashCode { 10100 int get hashCode {
14954 int hash = 0; 10101 int hash = 0;
10102 hash = JenkinsSmiHash.combine(hash, element.hashCode);
10103 hash = JenkinsSmiHash.combine(hash, className.hashCode);
14955 return JenkinsSmiHash.finish(hash); 10104 return JenkinsSmiHash.finish(hash);
14956 } 10105 }
14957 } 10106 }
14958 10107
14959 /** 10108 /**
14960 * RefactoringProblem 10109 * Override
14961 * 10110 *
14962 * { 10111 * {
14963 * "severity": RefactoringProblemSeverity 10112 * "offset": int
14964 * "message": String 10113 * "length": int
14965 * "location": optional Location 10114 * "superclassMember": optional OverriddenMember
10115 * "interfaceMembers": optional List<OverriddenMember>
14966 * } 10116 * }
14967 * 10117 *
14968 * Clients may not extend, implement or mix-in this class. 10118 * Clients may not extend, implement or mix-in this class.
14969 */ 10119 */
14970 class RefactoringProblem implements HasToJson { 10120 class Override implements HasToJson {
14971 RefactoringProblemSeverity _severity; 10121 int _offset;
14972 10122
14973 String _message; 10123 int _length;
14974 10124
14975 Location _location; 10125 OverriddenMember _superclassMember;
10126
10127 List<OverriddenMember> _interfaceMembers;
14976 10128
14977 /** 10129 /**
14978 * The severity of the problem being represented. 10130 * The offset of the name of the overriding member.
14979 */ 10131 */
14980 RefactoringProblemSeverity get severity => _severity; 10132 int get offset => _offset;
14981 10133
14982 /** 10134 /**
14983 * The severity of the problem being represented. 10135 * The offset of the name of the overriding member.
14984 */ 10136 */
14985 void set severity(RefactoringProblemSeverity value) { 10137 void set offset(int value) {
14986 assert(value != null); 10138 assert(value != null);
14987 this._severity = value; 10139 this._offset = value;
14988 } 10140 }
14989 10141
14990 /** 10142 /**
14991 * A human-readable description of the problem being represented. 10143 * The length of the name of the overriding member.
14992 */ 10144 */
14993 String get message => _message; 10145 int get length => _length;
14994 10146
14995 /** 10147 /**
14996 * A human-readable description of the problem being represented. 10148 * The length of the name of the overriding member.
14997 */ 10149 */
14998 void set message(String value) { 10150 void set length(int value) {
14999 assert(value != null); 10151 assert(value != null);
15000 this._message = value; 10152 this._length = value;
15001 } 10153 }
15002 10154
15003 /** 10155 /**
15004 * The location of the problem being represented. This field is omitted 10156 * The member inherited from a superclass that is overridden by the
15005 * unless there is a specific location associated with the problem (such as a 10157 * overriding member. The field is omitted if there is no superclass member,
15006 * location where an element being renamed will be shadowed). 10158 * in which case there must be at least one interface member.
15007 */ 10159 */
15008 Location get location => _location; 10160 OverriddenMember get superclassMember => _superclassMember;
15009 10161
15010 /** 10162 /**
15011 * The location of the problem being represented. This field is omitted 10163 * The member inherited from a superclass that is overridden by the
15012 * unless there is a specific location associated with the problem (such as a 10164 * overriding member. The field is omitted if there is no superclass member,
15013 * location where an element being renamed will be shadowed). 10165 * in which case there must be at least one interface member.
15014 */ 10166 */
15015 void set location(Location value) { 10167 void set superclassMember(OverriddenMember value) {
15016 this._location = value; 10168 this._superclassMember = value;
15017 } 10169 }
15018 10170
15019 RefactoringProblem(RefactoringProblemSeverity severity, String message, 10171 /**
15020 {Location location}) { 10172 * The members inherited from interfaces that are overridden by the
15021 this.severity = severity; 10173 * overriding member. The field is omitted if there are no interface members,
15022 this.message = message; 10174 * in which case there must be a superclass member.
15023 this.location = location; 10175 */
10176 List<OverriddenMember> get interfaceMembers => _interfaceMembers;
10177
10178 /**
10179 * The members inherited from interfaces that are overridden by the
10180 * overriding member. The field is omitted if there are no interface members,
10181 * in which case there must be a superclass member.
10182 */
10183 void set interfaceMembers(List<OverriddenMember> value) {
10184 this._interfaceMembers = value;
15024 } 10185 }
15025 10186
15026 factory RefactoringProblem.fromJson( 10187 Override(int offset, int length,
10188 {OverriddenMember superclassMember,
10189 List<OverriddenMember> interfaceMembers}) {
10190 this.offset = offset;
10191 this.length = length;
10192 this.superclassMember = superclassMember;
10193 this.interfaceMembers = interfaceMembers;
10194 }
10195
10196 factory Override.fromJson(
15027 JsonDecoder jsonDecoder, String jsonPath, Object json) { 10197 JsonDecoder jsonDecoder, String jsonPath, Object json) {
15028 if (json == null) { 10198 if (json == null) {
15029 json = {}; 10199 json = {};
15030 } 10200 }
15031 if (json is Map) { 10201 if (json is Map) {
15032 RefactoringProblemSeverity severity; 10202 int offset;
15033 if (json.containsKey("severity")) { 10203 if (json.containsKey("offset")) {
15034 severity = new RefactoringProblemSeverity.fromJson( 10204 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
15035 jsonDecoder, jsonPath + ".severity", json["severity"]);
15036 } else { 10205 } else {
15037 throw jsonDecoder.mismatch(jsonPath, "severity"); 10206 throw jsonDecoder.mismatch(jsonPath, "offset");
15038 } 10207 }
15039 String message; 10208 int length;
15040 if (json.containsKey("message")) { 10209 if (json.containsKey("length")) {
15041 message = 10210 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
15042 jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
15043 } else { 10211 } else {
15044 throw jsonDecoder.mismatch(jsonPath, "message"); 10212 throw jsonDecoder.mismatch(jsonPath, "length");
15045 } 10213 }
15046 Location location; 10214 OverriddenMember superclassMember;
15047 if (json.containsKey("location")) { 10215 if (json.containsKey("superclassMember")) {
15048 location = new Location.fromJson( 10216 superclassMember = new OverriddenMember.fromJson(jsonDecoder,
15049 jsonDecoder, jsonPath + ".location", json["location"]); 10217 jsonPath + ".superclassMember", json["superclassMember"]);
15050 } 10218 }
15051 return new RefactoringProblem(severity, message, location: location); 10219 List<OverriddenMember> interfaceMembers;
10220 if (json.containsKey("interfaceMembers")) {
10221 interfaceMembers = jsonDecoder.decodeList(
10222 jsonPath + ".interfaceMembers",
10223 json["interfaceMembers"],
10224 (String jsonPath, Object json) =>
10225 new OverriddenMember.fromJson(jsonDecoder, jsonPath, json));
10226 }
10227 return new Override(offset, length,
10228 superclassMember: superclassMember,
10229 interfaceMembers: interfaceMembers);
15052 } else { 10230 } else {
15053 throw jsonDecoder.mismatch(jsonPath, "RefactoringProblem", json); 10231 throw jsonDecoder.mismatch(jsonPath, "Override", json);
15054 } 10232 }
15055 } 10233 }
15056 10234
15057 @override 10235 @override
15058 Map<String, dynamic> toJson() { 10236 Map<String, dynamic> toJson() {
15059 Map<String, dynamic> result = {}; 10237 Map<String, dynamic> result = {};
15060 result["severity"] = severity.toJson(); 10238 result["offset"] = offset;
15061 result["message"] = message; 10239 result["length"] = length;
15062 if (location != null) { 10240 if (superclassMember != null) {
15063 result["location"] = location.toJson(); 10241 result["superclassMember"] = superclassMember.toJson();
10242 }
10243 if (interfaceMembers != null) {
10244 result["interfaceMembers"] = interfaceMembers
10245 .map((OverriddenMember value) => value.toJson())
10246 .toList();
15064 } 10247 }
15065 return result; 10248 return result;
15066 } 10249 }
15067 10250
15068 @override 10251 @override
15069 String toString() => JSON.encode(toJson()); 10252 String toString() => JSON.encode(toJson());
15070 10253
15071 @override 10254 @override
15072 bool operator ==(other) { 10255 bool operator ==(other) {
15073 if (other is RefactoringProblem) { 10256 if (other is Override) {
15074 return severity == other.severity && 10257 return offset == other.offset &&
15075 message == other.message && 10258 length == other.length &&
15076 location == other.location; 10259 superclassMember == other.superclassMember &&
10260 listEqual(interfaceMembers, other.interfaceMembers,
10261 (OverriddenMember a, OverriddenMember b) => a == b);
15077 } 10262 }
15078 return false; 10263 return false;
15079 } 10264 }
15080 10265
15081 @override 10266 @override
15082 int get hashCode { 10267 int get hashCode {
15083 int hash = 0; 10268 int hash = 0;
15084 hash = JenkinsSmiHash.combine(hash, severity.hashCode); 10269 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
15085 hash = JenkinsSmiHash.combine(hash, message.hashCode); 10270 hash = JenkinsSmiHash.combine(hash, length.hashCode);
15086 hash = JenkinsSmiHash.combine(hash, location.hashCode); 10271 hash = JenkinsSmiHash.combine(hash, superclassMember.hashCode);
10272 hash = JenkinsSmiHash.combine(hash, interfaceMembers.hashCode);
15087 return JenkinsSmiHash.finish(hash); 10273 return JenkinsSmiHash.finish(hash);
15088 } 10274 }
15089 } 10275 }
15090 10276
15091 /** 10277 /**
15092 * RefactoringProblemSeverity 10278 * PubStatus
15093 * 10279 *
15094 * enum { 10280 * {
15095 * INFO 10281 * "isListingPackageDirs": bool
15096 * WARNING
15097 * ERROR
15098 * FATAL
15099 * } 10282 * }
15100 * 10283 *
15101 * Clients may not extend, implement or mix-in this class. 10284 * Clients may not extend, implement or mix-in this class.
15102 */ 10285 */
15103 class RefactoringProblemSeverity implements Enum { 10286 class PubStatus implements HasToJson {
15104 /** 10287 bool _isListingPackageDirs;
15105 * A minor code problem. No example, because it is not used yet.
15106 */
15107 static const RefactoringProblemSeverity INFO =
15108 const RefactoringProblemSeverity._("INFO");
15109 10288
15110 /** 10289 /**
15111 * A minor code problem. For example names of local variables should be camel 10290 * True if the server is currently running pub to produce a list of package
15112 * case and start with a lower case letter. Staring the name of a variable 10291 * directories.
15113 * with an upper case is OK from the language point of view, but it is nice
15114 * to warn the user.
15115 */ 10292 */
15116 static const RefactoringProblemSeverity WARNING = 10293 bool get isListingPackageDirs => _isListingPackageDirs;
15117 const RefactoringProblemSeverity._("WARNING");
15118 10294
15119 /** 10295 /**
15120 * The refactoring technically can be performed, but there is a logical 10296 * True if the server is currently running pub to produce a list of package
15121 * problem. For example the name of a local variable being extracted 10297 * directories.
15122 * conflicts with another name in the scope, or duplicate parameter names in
15123 * the method being extracted, or a conflict between a parameter name and a
15124 * local variable, etc. In some cases the location of the problem is also
15125 * provided, so the IDE can show user the location and the problem, and let
15126 * the user decide whether she wants to perform the refactoring. For example
15127 * the name conflict might be expected, and the user wants to fix it
15128 * afterwards.
15129 */ 10298 */
15130 static const RefactoringProblemSeverity ERROR = 10299 void set isListingPackageDirs(bool value) {
15131 const RefactoringProblemSeverity._("ERROR"); 10300 assert(value != null);
15132 10301 this._isListingPackageDirs = value;
15133 /**
15134 * A fatal error, which prevents performing the refactoring. For example the
15135 * name of a local variable being extracted is not a valid identifier, or
15136 * selection is not a valid expression.
15137 */
15138 static const RefactoringProblemSeverity FATAL =
15139 const RefactoringProblemSeverity._("FATAL");
15140
15141 /**
15142 * A list containing all of the enum values that are defined.
15143 */
15144 static const List<RefactoringProblemSeverity> VALUES =
15145 const <RefactoringProblemSeverity>[INFO, WARNING, ERROR, FATAL];
15146
15147 @override
15148 final String name;
15149
15150 const RefactoringProblemSeverity._(this.name);
15151
15152 factory RefactoringProblemSeverity(String name) {
15153 switch (name) {
15154 case "INFO":
15155 return INFO;
15156 case "WARNING":
15157 return WARNING;
15158 case "ERROR":
15159 return ERROR;
15160 case "FATAL":
15161 return FATAL;
15162 }
15163 throw new Exception('Illegal enum value: $name');
15164 } 10302 }
15165 10303
15166 factory RefactoringProblemSeverity.fromJson( 10304 PubStatus(bool isListingPackageDirs) {
15167 JsonDecoder jsonDecoder, String jsonPath, Object json) { 10305 this.isListingPackageDirs = isListingPackageDirs;
15168 if (json is String) {
15169 try {
15170 return new RefactoringProblemSeverity(json);
15171 } catch (_) {
15172 // Fall through
15173 }
15174 }
15175 throw jsonDecoder.mismatch(jsonPath, "RefactoringProblemSeverity", json);
15176 } 10306 }
15177 10307
15178 /** 10308 factory PubStatus.fromJson(
15179 * Returns the [RefactoringProblemSeverity] with the maximal severity.
15180 */
15181 static RefactoringProblemSeverity max(
15182 RefactoringProblemSeverity a, RefactoringProblemSeverity b) =>
15183 maxRefactoringProblemSeverity(a, b);
15184
15185 @override
15186 String toString() => "RefactoringProblemSeverity.$name";
15187
15188 String toJson() => name;
15189 }
15190
15191 /**
15192 * RemoveContentOverlay
15193 *
15194 * {
15195 * "type": "remove"
15196 * }
15197 *
15198 * Clients may not extend, implement or mix-in this class.
15199 */
15200 class RemoveContentOverlay implements HasToJson {
15201 RemoveContentOverlay();
15202
15203 factory RemoveContentOverlay.fromJson(
15204 JsonDecoder jsonDecoder, String jsonPath, Object json) { 10309 JsonDecoder jsonDecoder, String jsonPath, Object json) {
15205 if (json == null) { 10310 if (json == null) {
15206 json = {}; 10311 json = {};
15207 } 10312 }
15208 if (json is Map) { 10313 if (json is Map) {
15209 if (json["type"] != "remove") { 10314 bool isListingPackageDirs;
15210 throw jsonDecoder.mismatch(jsonPath, "equal " + "remove", json); 10315 if (json.containsKey("isListingPackageDirs")) {
10316 isListingPackageDirs = jsonDecoder.decodeBool(
10317 jsonPath + ".isListingPackageDirs", json["isListingPackageDirs"]);
10318 } else {
10319 throw jsonDecoder.mismatch(jsonPath, "isListingPackageDirs");
15211 } 10320 }
15212 return new RemoveContentOverlay(); 10321 return new PubStatus(isListingPackageDirs);
15213 } else { 10322 } else {
15214 throw jsonDecoder.mismatch(jsonPath, "RemoveContentOverlay", json); 10323 throw jsonDecoder.mismatch(jsonPath, "PubStatus", json);
15215 } 10324 }
15216 } 10325 }
15217 10326
15218 @override 10327 @override
15219 Map<String, dynamic> toJson() { 10328 Map<String, dynamic> toJson() {
15220 Map<String, dynamic> result = {}; 10329 Map<String, dynamic> result = {};
15221 result["type"] = "remove"; 10330 result["isListingPackageDirs"] = isListingPackageDirs;
15222 return result; 10331 return result;
15223 } 10332 }
15224 10333
10334 @override
10335 String toString() => JSON.encode(toJson());
10336
10337 @override
10338 bool operator ==(other) {
10339 if (other is PubStatus) {
10340 return isListingPackageDirs == other.isListingPackageDirs;
10341 }
10342 return false;
10343 }
10344
10345 @override
10346 int get hashCode {
10347 int hash = 0;
10348 hash = JenkinsSmiHash.combine(hash, isListingPackageDirs.hashCode);
10349 return JenkinsSmiHash.finish(hash);
10350 }
10351 }
10352
10353 /**
10354 * RefactoringFeedback
10355 *
10356 * {
10357 * }
10358 *
10359 * Clients may not extend, implement or mix-in this class.
10360 */
10361 class RefactoringFeedback implements HasToJson {
10362 RefactoringFeedback();
10363
10364 factory RefactoringFeedback.fromJson(
10365 JsonDecoder jsonDecoder, String jsonPath, Object json, Map responseJson) {
10366 return refactoringFeedbackFromJson(
10367 jsonDecoder, jsonPath, json, responseJson);
10368 }
10369
10370 @override
10371 Map<String, dynamic> toJson() {
10372 Map<String, dynamic> result = {};
10373 return result;
10374 }
10375
10376 @override
10377 String toString() => JSON.encode(toJson());
10378
10379 @override
10380 bool operator ==(other) {
10381 if (other is RefactoringFeedback) {
10382 return true;
10383 }
10384 return false;
10385 }
10386
10387 @override
10388 int get hashCode {
10389 int hash = 0;
10390 return JenkinsSmiHash.finish(hash);
10391 }
10392 }
10393
10394 /**
10395 * RefactoringOptions
10396 *
10397 * {
10398 * }
10399 *
10400 * Clients may not extend, implement or mix-in this class.
10401 */
10402 class RefactoringOptions implements HasToJson {
10403 RefactoringOptions();
10404
10405 factory RefactoringOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath,
10406 Object json, RefactoringKind kind) {
10407 return refactoringOptionsFromJson(jsonDecoder, jsonPath, json, kind);
10408 }
10409
10410 @override
10411 Map<String, dynamic> toJson() {
10412 Map<String, dynamic> result = {};
10413 return result;
10414 }
10415
15225 @override 10416 @override
15226 String toString() => JSON.encode(toJson()); 10417 String toString() => JSON.encode(toJson());
15227 10418
15228 @override 10419 @override
15229 bool operator ==(other) { 10420 bool operator ==(other) {
15230 if (other is RemoveContentOverlay) { 10421 if (other is RefactoringOptions) {
15231 return true; 10422 return true;
15232 } 10423 }
15233 return false; 10424 return false;
15234 } 10425 }
15235 10426
15236 @override 10427 @override
15237 int get hashCode { 10428 int get hashCode {
15238 int hash = 0; 10429 int hash = 0;
15239 hash = JenkinsSmiHash.combine(hash, 114870849);
15240 return JenkinsSmiHash.finish(hash); 10430 return JenkinsSmiHash.finish(hash);
15241 } 10431 }
15242 } 10432 }
15243 10433
15244 /** 10434 /**
15245 * rename feedback 10435 * rename feedback
15246 * 10436 *
15247 * { 10437 * {
15248 * "offset": int 10438 * "offset": int
15249 * "length": int 10439 * "length": int
(...skipping 1337 matching lines...) Expand 10 before | Expand all | Expand 10 after
16587 result["pattern"] = pattern; 11777 result["pattern"] = pattern;
16588 return result; 11778 return result;
16589 } 11779 }
16590 11780
16591 @override 11781 @override
16592 Request toRequest(String id) { 11782 Request toRequest(String id) {
16593 return new Request(id, "search.findTopLevelDeclarations", toJson()); 11783 return new Request(id, "search.findTopLevelDeclarations", toJson());
16594 } 11784 }
16595 11785
16596 @override 11786 @override
16597 String toString() => JSON.encode(toJson());
16598
16599 @override
16600 bool operator ==(other) {
16601 if (other is SearchFindTopLevelDeclarationsParams) {
16602 return pattern == other.pattern;
16603 }
16604 return false;
16605 }
16606
16607 @override
16608 int get hashCode {
16609 int hash = 0;
16610 hash = JenkinsSmiHash.combine(hash, pattern.hashCode);
16611 return JenkinsSmiHash.finish(hash);
16612 }
16613 }
16614
16615 /**
16616 * search.findTopLevelDeclarations result
16617 *
16618 * {
16619 * "id": SearchId
16620 * }
16621 *
16622 * Clients may not extend, implement or mix-in this class.
16623 */
16624 class SearchFindTopLevelDeclarationsResult implements ResponseResult {
16625 String _id;
16626
16627 /**
16628 * The identifier used to associate results with this search request.
16629 */
16630 String get id => _id;
16631
16632 /**
16633 * The identifier used to associate results with this search request.
16634 */
16635 void set id(String value) {
16636 assert(value != null);
16637 this._id = value;
16638 }
16639
16640 SearchFindTopLevelDeclarationsResult(String id) {
16641 this.id = id;
16642 }
16643
16644 factory SearchFindTopLevelDeclarationsResult.fromJson(
16645 JsonDecoder jsonDecoder, String jsonPath, Object json) {
16646 if (json == null) {
16647 json = {};
16648 }
16649 if (json is Map) {
16650 String id;
16651 if (json.containsKey("id")) {
16652 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
16653 } else {
16654 throw jsonDecoder.mismatch(jsonPath, "id");
16655 }
16656 return new SearchFindTopLevelDeclarationsResult(id);
16657 } else {
16658 throw jsonDecoder.mismatch(
16659 jsonPath, "search.findTopLevelDeclarations result", json);
16660 }
16661 }
16662
16663 factory SearchFindTopLevelDeclarationsResult.fromResponse(Response response) {
16664 return new SearchFindTopLevelDeclarationsResult.fromJson(
16665 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
16666 "result",
16667 response.result);
16668 }
16669
16670 @override
16671 Map<String, dynamic> toJson() {
16672 Map<String, dynamic> result = {};
16673 result["id"] = id;
16674 return result;
16675 }
16676
16677 @override
16678 Response toResponse(String id) {
16679 return new Response(id, result: toJson());
16680 }
16681
16682 @override
16683 String toString() => JSON.encode(toJson());
16684
16685 @override
16686 bool operator ==(other) {
16687 if (other is SearchFindTopLevelDeclarationsResult) {
16688 return id == other.id;
16689 }
16690 return false;
16691 }
16692
16693 @override
16694 int get hashCode {
16695 int hash = 0;
16696 hash = JenkinsSmiHash.combine(hash, id.hashCode);
16697 return JenkinsSmiHash.finish(hash);
16698 }
16699 }
16700
16701 /**
16702 * search.getTypeHierarchy params
16703 *
16704 * {
16705 * "file": FilePath
16706 * "offset": int
16707 * "superOnly": optional bool
16708 * }
16709 *
16710 * Clients may not extend, implement or mix-in this class.
16711 */
16712 class SearchGetTypeHierarchyParams implements RequestParams {
16713 String _file;
16714
16715 int _offset;
16716
16717 bool _superOnly;
16718
16719 /**
16720 * The file containing the declaration or reference to the type for which a
16721 * hierarchy is being requested.
16722 */
16723 String get file => _file;
16724
16725 /**
16726 * The file containing the declaration or reference to the type for which a
16727 * hierarchy is being requested.
16728 */
16729 void set file(String value) {
16730 assert(value != null);
16731 this._file = value;
16732 }
16733
16734 /**
16735 * The offset of the name of the type within the file.
16736 */
16737 int get offset => _offset;
16738
16739 /**
16740 * The offset of the name of the type within the file.
16741 */
16742 void set offset(int value) {
16743 assert(value != null);
16744 this._offset = value;
16745 }
16746
16747 /**
16748 * True if the client is only requesting superclasses and interfaces
16749 * hierarchy.
16750 */
16751 bool get superOnly => _superOnly;
16752
16753 /**
16754 * True if the client is only requesting superclasses and interfaces
16755 * hierarchy.
16756 */
16757 void set superOnly(bool value) {
16758 this._superOnly = value;
16759 }
16760
16761 SearchGetTypeHierarchyParams(String file, int offset, {bool superOnly}) {
16762 this.file = file;
16763 this.offset = offset;
16764 this.superOnly = superOnly;
16765 }
16766
16767 factory SearchGetTypeHierarchyParams.fromJson(
16768 JsonDecoder jsonDecoder, String jsonPath, Object json) {
16769 if (json == null) {
16770 json = {};
16771 }
16772 if (json is Map) {
16773 String file;
16774 if (json.containsKey("file")) {
16775 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
16776 } else {
16777 throw jsonDecoder.mismatch(jsonPath, "file");
16778 }
16779 int offset;
16780 if (json.containsKey("offset")) {
16781 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
16782 } else {
16783 throw jsonDecoder.mismatch(jsonPath, "offset");
16784 }
16785 bool superOnly;
16786 if (json.containsKey("superOnly")) {
16787 superOnly =
16788 jsonDecoder.decodeBool(jsonPath + ".superOnly", json["superOnly"]);
16789 }
16790 return new SearchGetTypeHierarchyParams(file, offset,
16791 superOnly: superOnly);
16792 } else {
16793 throw jsonDecoder.mismatch(
16794 jsonPath, "search.getTypeHierarchy params", json);
16795 }
16796 }
16797
16798 factory SearchGetTypeHierarchyParams.fromRequest(Request request) {
16799 return new SearchGetTypeHierarchyParams.fromJson(
16800 new RequestDecoder(request), "params", request.params);
16801 }
16802
16803 @override
16804 Map<String, dynamic> toJson() {
16805 Map<String, dynamic> result = {};
16806 result["file"] = file;
16807 result["offset"] = offset;
16808 if (superOnly != null) {
16809 result["superOnly"] = superOnly;
16810 }
16811 return result;
16812 }
16813
16814 @override
16815 Request toRequest(String id) {
16816 return new Request(id, "search.getTypeHierarchy", toJson());
16817 }
16818
16819 @override
16820 String toString() => JSON.encode(toJson()); 11787 String toString() => JSON.encode(toJson());
16821 11788
16822 @override 11789 @override
16823 bool operator ==(other) { 11790 bool operator ==(other) {
16824 if (other is SearchGetTypeHierarchyParams) { 11791 if (other is SearchFindTopLevelDeclarationsParams) {
16825 return file == other.file && 11792 return pattern == other.pattern;
16826 offset == other.offset &&
16827 superOnly == other.superOnly;
16828 } 11793 }
16829 return false; 11794 return false;
16830 } 11795 }
16831 11796
16832 @override 11797 @override
16833 int get hashCode { 11798 int get hashCode {
16834 int hash = 0; 11799 int hash = 0;
16835 hash = JenkinsSmiHash.combine(hash, file.hashCode); 11800 hash = JenkinsSmiHash.combine(hash, pattern.hashCode);
16836 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
16837 hash = JenkinsSmiHash.combine(hash, superOnly.hashCode);
16838 return JenkinsSmiHash.finish(hash); 11801 return JenkinsSmiHash.finish(hash);
16839 } 11802 }
16840 } 11803 }
16841 11804
16842 /** 11805 /**
16843 * search.getTypeHierarchy result 11806 * search.findTopLevelDeclarations result
16844 * 11807 *
16845 * { 11808 * {
16846 * "hierarchyItems": optional List<TypeHierarchyItem> 11809 * "id": SearchId
16847 * } 11810 * }
16848 * 11811 *
16849 * Clients may not extend, implement or mix-in this class. 11812 * Clients may not extend, implement or mix-in this class.
16850 */ 11813 */
16851 class SearchGetTypeHierarchyResult implements ResponseResult { 11814 class SearchFindTopLevelDeclarationsResult implements ResponseResult {
16852 List<TypeHierarchyItem> _hierarchyItems; 11815 String _id;
16853 11816
16854 /** 11817 /**
16855 * A list of the types in the requested hierarchy. The first element of the 11818 * The identifier used to associate results with this search request.
16856 * list is the item representing the type for which the hierarchy was
16857 * requested. The index of other elements of the list is unspecified, but
16858 * correspond to the integers used to reference supertype and subtype items
16859 * within the items.
16860 *
16861 * This field will be absent if the code at the given file and offset does
16862 * not represent a type, or if the file has not been sufficiently analyzed to
16863 * allow a type hierarchy to be produced.
16864 */ 11819 */
16865 List<TypeHierarchyItem> get hierarchyItems => _hierarchyItems; 11820 String get id => _id;
16866 11821
16867 /** 11822 /**
16868 * A list of the types in the requested hierarchy. The first element of the 11823 * The identifier used to associate results with this search request.
16869 * list is the item representing the type for which the hierarchy was
16870 * requested. The index of other elements of the list is unspecified, but
16871 * correspond to the integers used to reference supertype and subtype items
16872 * within the items.
16873 *
16874 * This field will be absent if the code at the given file and offset does
16875 * not represent a type, or if the file has not been sufficiently analyzed to
16876 * allow a type hierarchy to be produced.
16877 */ 11824 */
16878 void set hierarchyItems(List<TypeHierarchyItem> value) { 11825 void set id(String value) {
16879 this._hierarchyItems = value; 11826 assert(value != null);
11827 this._id = value;
16880 } 11828 }
16881 11829
16882 SearchGetTypeHierarchyResult({List<TypeHierarchyItem> hierarchyItems}) { 11830 SearchFindTopLevelDeclarationsResult(String id) {
16883 this.hierarchyItems = hierarchyItems; 11831 this.id = id;
16884 } 11832 }
16885 11833
16886 factory SearchGetTypeHierarchyResult.fromJson( 11834 factory SearchFindTopLevelDeclarationsResult.fromJson(
16887 JsonDecoder jsonDecoder, String jsonPath, Object json) { 11835 JsonDecoder jsonDecoder, String jsonPath, Object json) {
16888 if (json == null) { 11836 if (json == null) {
16889 json = {}; 11837 json = {};
16890 } 11838 }
16891 if (json is Map) { 11839 if (json is Map) {
16892 List<TypeHierarchyItem> hierarchyItems; 11840 String id;
16893 if (json.containsKey("hierarchyItems")) { 11841 if (json.containsKey("id")) {
16894 hierarchyItems = jsonDecoder.decodeList( 11842 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
16895 jsonPath + ".hierarchyItems", 11843 } else {
16896 json["hierarchyItems"], 11844 throw jsonDecoder.mismatch(jsonPath, "id");
16897 (String jsonPath, Object json) =>
16898 new TypeHierarchyItem.fromJson(jsonDecoder, jsonPath, json));
16899 } 11845 }
16900 return new SearchGetTypeHierarchyResult(hierarchyItems: hierarchyItems); 11846 return new SearchFindTopLevelDeclarationsResult(id);
16901 } else { 11847 } else {
16902 throw jsonDecoder.mismatch( 11848 throw jsonDecoder.mismatch(
16903 jsonPath, "search.getTypeHierarchy result", json); 11849 jsonPath, "search.findTopLevelDeclarations result", json);
16904 } 11850 }
16905 } 11851 }
16906 11852
16907 factory SearchGetTypeHierarchyResult.fromResponse(Response response) { 11853 factory SearchFindTopLevelDeclarationsResult.fromResponse(Response response) {
16908 return new SearchGetTypeHierarchyResult.fromJson( 11854 return new SearchFindTopLevelDeclarationsResult.fromJson(
16909 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 11855 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
16910 "result", 11856 "result",
16911 response.result); 11857 response.result);
16912 } 11858 }
16913 11859
16914 @override 11860 @override
16915 Map<String, dynamic> toJson() { 11861 Map<String, dynamic> toJson() {
16916 Map<String, dynamic> result = {}; 11862 Map<String, dynamic> result = {};
16917 if (hierarchyItems != null) { 11863 result["id"] = id;
16918 result["hierarchyItems"] = hierarchyItems
16919 .map((TypeHierarchyItem value) => value.toJson())
16920 .toList();
16921 }
16922 return result; 11864 return result;
16923 } 11865 }
16924 11866
16925 @override 11867 @override
16926 Response toResponse(String id) { 11868 Response toResponse(String id) {
16927 return new Response(id, result: toJson()); 11869 return new Response(id, result: toJson());
16928 } 11870 }
16929 11871
16930 @override 11872 @override
16931 String toString() => JSON.encode(toJson()); 11873 String toString() => JSON.encode(toJson());
16932 11874
16933 @override 11875 @override
16934 bool operator ==(other) { 11876 bool operator ==(other) {
16935 if (other is SearchGetTypeHierarchyResult) { 11877 if (other is SearchFindTopLevelDeclarationsResult) {
16936 return listEqual(hierarchyItems, other.hierarchyItems, 11878 return id == other.id;
16937 (TypeHierarchyItem a, TypeHierarchyItem b) => a == b);
16938 } 11879 }
16939 return false; 11880 return false;
16940 } 11881 }
16941 11882
16942 @override 11883 @override
16943 int get hashCode { 11884 int get hashCode {
16944 int hash = 0; 11885 int hash = 0;
16945 hash = JenkinsSmiHash.combine(hash, hierarchyItems.hashCode); 11886 hash = JenkinsSmiHash.combine(hash, id.hashCode);
16946 return JenkinsSmiHash.finish(hash); 11887 return JenkinsSmiHash.finish(hash);
16947 } 11888 }
16948 } 11889 }
16949 11890
16950 /** 11891 /**
16951 * SearchResult 11892 * search.getTypeHierarchy params
16952 * 11893 *
16953 * { 11894 * {
16954 * "location": Location 11895 * "file": FilePath
16955 * "kind": SearchResultKind 11896 * "offset": int
16956 * "isPotential": bool 11897 * "superOnly": optional bool
16957 * "path": List<Element>
16958 * } 11898 * }
16959 * 11899 *
16960 * Clients may not extend, implement or mix-in this class. 11900 * Clients may not extend, implement or mix-in this class.
16961 */ 11901 */
16962 class SearchResult implements HasToJson { 11902 class SearchGetTypeHierarchyParams implements RequestParams {
16963 Location _location; 11903 String _file;
16964 11904
16965 SearchResultKind _kind; 11905 int _offset;
16966 11906
16967 bool _isPotential; 11907 bool _superOnly;
16968
16969 List<Element> _path;
16970 11908
16971 /** 11909 /**
16972 * The location of the code that matched the search criteria. 11910 * The file containing the declaration or reference to the type for which a
11911 * hierarchy is being requested.
16973 */ 11912 */
16974 Location get location => _location; 11913 String get file => _file;
16975 11914
16976 /** 11915 /**
16977 * The location of the code that matched the search criteria. 11916 * The file containing the declaration or reference to the type for which a
11917 * hierarchy is being requested.
16978 */ 11918 */
16979 void set location(Location value) { 11919 void set file(String value) {
16980 assert(value != null); 11920 assert(value != null);
16981 this._location = value; 11921 this._file = value;
16982 } 11922 }
16983 11923
16984 /** 11924 /**
16985 * The kind of element that was found or the kind of reference that was 11925 * The offset of the name of the type within the file.
16986 * found.
16987 */ 11926 */
16988 SearchResultKind get kind => _kind; 11927 int get offset => _offset;
16989 11928
16990 /** 11929 /**
16991 * The kind of element that was found or the kind of reference that was 11930 * The offset of the name of the type within the file.
16992 * found.
16993 */ 11931 */
16994 void set kind(SearchResultKind value) { 11932 void set offset(int value) {
16995 assert(value != null); 11933 assert(value != null);
16996 this._kind = value; 11934 this._offset = value;
16997 } 11935 }
16998 11936
16999 /** 11937 /**
17000 * True if the result is a potential match but cannot be confirmed to be a 11938 * True if the client is only requesting superclasses and interfaces
17001 * match. For example, if all references to a method m defined in some class 11939 * hierarchy.
17002 * were requested, and a reference to a method m from an unknown class were
17003 * found, it would be marked as being a potential match.
17004 */ 11940 */
17005 bool get isPotential => _isPotential; 11941 bool get superOnly => _superOnly;
17006 11942
17007 /** 11943 /**
17008 * True if the result is a potential match but cannot be confirmed to be a 11944 * True if the client is only requesting superclasses and interfaces
17009 * match. For example, if all references to a method m defined in some class 11945 * hierarchy.
17010 * were requested, and a reference to a method m from an unknown class were
17011 * found, it would be marked as being a potential match.
17012 */ 11946 */
17013 void set isPotential(bool value) { 11947 void set superOnly(bool value) {
17014 assert(value != null); 11948 this._superOnly = value;
17015 this._isPotential = value;
17016 } 11949 }
17017 11950
17018 /** 11951 SearchGetTypeHierarchyParams(String file, int offset, {bool superOnly}) {
17019 * The elements that contain the result, starting with the most immediately 11952 this.file = file;
17020 * enclosing ancestor and ending with the library. 11953 this.offset = offset;
17021 */ 11954 this.superOnly = superOnly;
17022 List<Element> get path => _path;
17023
17024 /**
17025 * The elements that contain the result, starting with the most immediately
17026 * enclosing ancestor and ending with the library.
17027 */
17028 void set path(List<Element> value) {
17029 assert(value != null);
17030 this._path = value;
17031 } 11955 }
17032 11956
17033 SearchResult(Location location, SearchResultKind kind, bool isPotential, 11957 factory SearchGetTypeHierarchyParams.fromJson(
17034 List<Element> path) {
17035 this.location = location;
17036 this.kind = kind;
17037 this.isPotential = isPotential;
17038 this.path = path;
17039 }
17040
17041 factory SearchResult.fromJson(
17042 JsonDecoder jsonDecoder, String jsonPath, Object json) { 11958 JsonDecoder jsonDecoder, String jsonPath, Object json) {
17043 if (json == null) { 11959 if (json == null) {
17044 json = {}; 11960 json = {};
17045 } 11961 }
17046 if (json is Map) { 11962 if (json is Map) {
17047 Location location; 11963 String file;
17048 if (json.containsKey("location")) { 11964 if (json.containsKey("file")) {
17049 location = new Location.fromJson( 11965 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
17050 jsonDecoder, jsonPath + ".location", json["location"]);
17051 } else { 11966 } else {
17052 throw jsonDecoder.mismatch(jsonPath, "location"); 11967 throw jsonDecoder.mismatch(jsonPath, "file");
17053 } 11968 }
17054 SearchResultKind kind; 11969 int offset;
17055 if (json.containsKey("kind")) { 11970 if (json.containsKey("offset")) {
17056 kind = new SearchResultKind.fromJson( 11971 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
17057 jsonDecoder, jsonPath + ".kind", json["kind"]);
17058 } else { 11972 } else {
17059 throw jsonDecoder.mismatch(jsonPath, "kind"); 11973 throw jsonDecoder.mismatch(jsonPath, "offset");
17060 } 11974 }
17061 bool isPotential; 11975 bool superOnly;
17062 if (json.containsKey("isPotential")) { 11976 if (json.containsKey("superOnly")) {
17063 isPotential = jsonDecoder.decodeBool( 11977 superOnly =
17064 jsonPath + ".isPotential", json["isPotential"]); 11978 jsonDecoder.decodeBool(jsonPath + ".superOnly", json["superOnly"]);
17065 } else {
17066 throw jsonDecoder.mismatch(jsonPath, "isPotential");
17067 } 11979 }
17068 List<Element> path; 11980 return new SearchGetTypeHierarchyParams(file, offset,
17069 if (json.containsKey("path")) { 11981 superOnly: superOnly);
17070 path = jsonDecoder.decodeList(
17071 jsonPath + ".path",
17072 json["path"],
17073 (String jsonPath, Object json) =>
17074 new Element.fromJson(jsonDecoder, jsonPath, json));
17075 } else {
17076 throw jsonDecoder.mismatch(jsonPath, "path");
17077 }
17078 return new SearchResult(location, kind, isPotential, path);
17079 } else { 11982 } else {
17080 throw jsonDecoder.mismatch(jsonPath, "SearchResult", json); 11983 throw jsonDecoder.mismatch(
11984 jsonPath, "search.getTypeHierarchy params", json);
17081 } 11985 }
17082 } 11986 }
17083 11987
11988 factory SearchGetTypeHierarchyParams.fromRequest(Request request) {
11989 return new SearchGetTypeHierarchyParams.fromJson(
11990 new RequestDecoder(request), "params", request.params);
11991 }
11992
17084 @override 11993 @override
17085 Map<String, dynamic> toJson() { 11994 Map<String, dynamic> toJson() {
17086 Map<String, dynamic> result = {}; 11995 Map<String, dynamic> result = {};
17087 result["location"] = location.toJson(); 11996 result["file"] = file;
17088 result["kind"] = kind.toJson(); 11997 result["offset"] = offset;
17089 result["isPotential"] = isPotential; 11998 if (superOnly != null) {
17090 result["path"] = path.map((Element value) => value.toJson()).toList(); 11999 result["superOnly"] = superOnly;
12000 }
17091 return result; 12001 return result;
17092 } 12002 }
17093 12003
17094 @override 12004 @override
12005 Request toRequest(String id) {
12006 return new Request(id, "search.getTypeHierarchy", toJson());
12007 }
12008
12009 @override
17095 String toString() => JSON.encode(toJson()); 12010 String toString() => JSON.encode(toJson());
17096 12011
17097 @override 12012 @override
17098 bool operator ==(other) { 12013 bool operator ==(other) {
17099 if (other is SearchResult) { 12014 if (other is SearchGetTypeHierarchyParams) {
17100 return location == other.location && 12015 return file == other.file &&
17101 kind == other.kind && 12016 offset == other.offset &&
17102 isPotential == other.isPotential && 12017 superOnly == other.superOnly;
17103 listEqual(path, other.path, (Element a, Element b) => a == b);
17104 } 12018 }
17105 return false; 12019 return false;
17106 } 12020 }
17107 12021
17108 @override 12022 @override
17109 int get hashCode { 12023 int get hashCode {
17110 int hash = 0; 12024 int hash = 0;
17111 hash = JenkinsSmiHash.combine(hash, location.hashCode); 12025 hash = JenkinsSmiHash.combine(hash, file.hashCode);
17112 hash = JenkinsSmiHash.combine(hash, kind.hashCode); 12026 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
17113 hash = JenkinsSmiHash.combine(hash, isPotential.hashCode); 12027 hash = JenkinsSmiHash.combine(hash, superOnly.hashCode);
17114 hash = JenkinsSmiHash.combine(hash, path.hashCode);
17115 return JenkinsSmiHash.finish(hash); 12028 return JenkinsSmiHash.finish(hash);
17116 } 12029 }
17117 } 12030 }
17118 12031
17119 /** 12032 /**
17120 * SearchResultKind 12033 * search.getTypeHierarchy result
17121 * 12034 *
17122 * enum { 12035 * {
17123 * DECLARATION 12036 * "hierarchyItems": optional List<TypeHierarchyItem>
17124 * INVOCATION
17125 * READ
17126 * READ_WRITE
17127 * REFERENCE
17128 * UNKNOWN
17129 * WRITE
17130 * } 12037 * }
17131 * 12038 *
17132 * Clients may not extend, implement or mix-in this class. 12039 * Clients may not extend, implement or mix-in this class.
17133 */ 12040 */
17134 class SearchResultKind implements Enum { 12041 class SearchGetTypeHierarchyResult implements ResponseResult {
17135 /** 12042 List<TypeHierarchyItem> _hierarchyItems;
17136 * The declaration of an element. 12043
17137 */ 12044 /**
17138 static const SearchResultKind DECLARATION = 12045 * A list of the types in the requested hierarchy. The first element of the
17139 const SearchResultKind._("DECLARATION"); 12046 * list is the item representing the type for which the hierarchy was
17140 12047 * requested. The index of other elements of the list is unspecified, but
17141 /** 12048 * correspond to the integers used to reference supertype and subtype items
17142 * The invocation of a function or method. 12049 * within the items.
17143 */ 12050 *
17144 static const SearchResultKind INVOCATION = 12051 * This field will be absent if the code at the given file and offset does
17145 const SearchResultKind._("INVOCATION"); 12052 * not represent a type, or if the file has not been sufficiently analyzed to
17146 12053 * allow a type hierarchy to be produced.
17147 /** 12054 */
17148 * A reference to a field, parameter or variable where it is being read. 12055 List<TypeHierarchyItem> get hierarchyItems => _hierarchyItems;
17149 */ 12056
17150 static const SearchResultKind READ = const SearchResultKind._("READ"); 12057 /**
17151 12058 * A list of the types in the requested hierarchy. The first element of the
17152 /** 12059 * list is the item representing the type for which the hierarchy was
17153 * A reference to a field, parameter or variable where it is being read and 12060 * requested. The index of other elements of the list is unspecified, but
17154 * written. 12061 * correspond to the integers used to reference supertype and subtype items
17155 */ 12062 * within the items.
17156 static const SearchResultKind READ_WRITE = 12063 *
17157 const SearchResultKind._("READ_WRITE"); 12064 * This field will be absent if the code at the given file and offset does
17158 12065 * not represent a type, or if the file has not been sufficiently analyzed to
17159 /** 12066 * allow a type hierarchy to be produced.
17160 * A reference to an element. 12067 */
17161 */ 12068 void set hierarchyItems(List<TypeHierarchyItem> value) {
17162 static const SearchResultKind REFERENCE = 12069 this._hierarchyItems = value;
17163 const SearchResultKind._("REFERENCE"); 12070 }
17164 12071
17165 /** 12072 SearchGetTypeHierarchyResult({List<TypeHierarchyItem> hierarchyItems}) {
17166 * Some other kind of search result. 12073 this.hierarchyItems = hierarchyItems;
17167 */ 12074 }
17168 static const SearchResultKind UNKNOWN = const SearchResultKind._("UNKNOWN"); 12075
17169 12076 factory SearchGetTypeHierarchyResult.fromJson(
17170 /**
17171 * A reference to a field, parameter or variable where it is being written.
17172 */
17173 static const SearchResultKind WRITE = const SearchResultKind._("WRITE");
17174
17175 /**
17176 * A list containing all of the enum values that are defined.
17177 */
17178 static const List<SearchResultKind> VALUES = const <SearchResultKind>[
17179 DECLARATION,
17180 INVOCATION,
17181 READ,
17182 READ_WRITE,
17183 REFERENCE,
17184 UNKNOWN,
17185 WRITE
17186 ];
17187
17188 @override
17189 final String name;
17190
17191 const SearchResultKind._(this.name);
17192
17193 factory SearchResultKind(String name) {
17194 switch (name) {
17195 case "DECLARATION":
17196 return DECLARATION;
17197 case "INVOCATION":
17198 return INVOCATION;
17199 case "READ":
17200 return READ;
17201 case "READ_WRITE":
17202 return READ_WRITE;
17203 case "REFERENCE":
17204 return REFERENCE;
17205 case "UNKNOWN":
17206 return UNKNOWN;
17207 case "WRITE":
17208 return WRITE;
17209 }
17210 throw new Exception('Illegal enum value: $name');
17211 }
17212
17213 factory SearchResultKind.fromJson(
17214 JsonDecoder jsonDecoder, String jsonPath, Object json) {
17215 if (json is String) {
17216 try {
17217 return new SearchResultKind(json);
17218 } catch (_) {
17219 // Fall through
17220 }
17221 }
17222 throw jsonDecoder.mismatch(jsonPath, "SearchResultKind", json);
17223 }
17224
17225 @override
17226 String toString() => "SearchResultKind.$name";
17227
17228 String toJson() => name;
17229 }
17230
17231 /**
17232 * search.results params
17233 *
17234 * {
17235 * "id": SearchId
17236 * "results": List<SearchResult>
17237 * "isLast": bool
17238 * }
17239 *
17240 * Clients may not extend, implement or mix-in this class.
17241 */
17242 class SearchResultsParams implements HasToJson {
17243 String _id;
17244
17245 List<SearchResult> _results;
17246
17247 bool _isLast;
17248
17249 /**
17250 * The id associated with the search.
17251 */
17252 String get id => _id;
17253
17254 /**
17255 * The id associated with the search.
17256 */
17257 void set id(String value) {
17258 assert(value != null);
17259 this._id = value;
17260 }
17261
17262 /**
17263 * The search results being reported.
17264 */
17265 List<SearchResult> get results => _results;
17266
17267 /**
17268 * The search results being reported.
17269 */
17270 void set results(List<SearchResult> value) {
17271 assert(value != null);
17272 this._results = value;
17273 }
17274
17275 /**
17276 * True if this is that last set of results that will be returned for the
17277 * indicated search.
17278 */
17279 bool get isLast => _isLast;
17280
17281 /**
17282 * True if this is that last set of results that will be returned for the
17283 * indicated search.
17284 */
17285 void set isLast(bool value) {
17286 assert(value != null);
17287 this._isLast = value;
17288 }
17289
17290 SearchResultsParams(String id, List<SearchResult> results, bool isLast) {
17291 this.id = id;
17292 this.results = results;
17293 this.isLast = isLast;
17294 }
17295
17296 factory SearchResultsParams.fromJson(
17297 JsonDecoder jsonDecoder, String jsonPath, Object json) { 12077 JsonDecoder jsonDecoder, String jsonPath, Object json) {
17298 if (json == null) { 12078 if (json == null) {
17299 json = {}; 12079 json = {};
17300 } 12080 }
17301 if (json is Map) { 12081 if (json is Map) {
17302 String id; 12082 List<TypeHierarchyItem> hierarchyItems;
17303 if (json.containsKey("id")) { 12083 if (json.containsKey("hierarchyItems")) {
17304 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); 12084 hierarchyItems = jsonDecoder.decodeList(
17305 } else { 12085 jsonPath + ".hierarchyItems",
17306 throw jsonDecoder.mismatch(jsonPath, "id"); 12086 json["hierarchyItems"],
17307 }
17308 List<SearchResult> results;
17309 if (json.containsKey("results")) {
17310 results = jsonDecoder.decodeList(
17311 jsonPath + ".results",
17312 json["results"],
17313 (String jsonPath, Object json) => 12087 (String jsonPath, Object json) =>
17314 new SearchResult.fromJson(jsonDecoder, jsonPath, json)); 12088 new TypeHierarchyItem.fromJson(jsonDecoder, jsonPath, json));
17315 } else { 12089 }
17316 throw jsonDecoder.mismatch(jsonPath, "results"); 12090 return new SearchGetTypeHierarchyResult(hierarchyItems: hierarchyItems);
17317 }
17318 bool isLast;
17319 if (json.containsKey("isLast")) {
17320 isLast = jsonDecoder.decodeBool(jsonPath + ".isLast", json["isLast"]);
17321 } else {
17322 throw jsonDecoder.mismatch(jsonPath, "isLast");
17323 }
17324 return new SearchResultsParams(id, results, isLast);
17325 } else { 12091 } else {
17326 throw jsonDecoder.mismatch(jsonPath, "search.results params", json); 12092 throw jsonDecoder.mismatch(
17327 } 12093 jsonPath, "search.getTypeHierarchy result", json);
17328 } 12094 }
17329 12095 }
17330 factory SearchResultsParams.fromNotification(Notification notification) { 12096
17331 return new SearchResultsParams.fromJson( 12097 factory SearchGetTypeHierarchyResult.fromResponse(Response response) {
17332 new ResponseDecoder(null), "params", notification.params); 12098 return new SearchGetTypeHierarchyResult.fromJson(
12099 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
12100 "result",
12101 response.result);
17333 } 12102 }
17334 12103
17335 @override 12104 @override
17336 Map<String, dynamic> toJson() { 12105 Map<String, dynamic> toJson() {
17337 Map<String, dynamic> result = {}; 12106 Map<String, dynamic> result = {};
17338 result["id"] = id; 12107 if (hierarchyItems != null) {
17339 result["results"] = 12108 result["hierarchyItems"] = hierarchyItems
17340 results.map((SearchResult value) => value.toJson()).toList(); 12109 .map((TypeHierarchyItem value) => value.toJson())
17341 result["isLast"] = isLast; 12110 .toList();
12111 }
17342 return result; 12112 return result;
17343 } 12113 }
17344 12114
17345 Notification toNotification() { 12115 @override
17346 return new Notification("search.results", toJson()); 12116 Response toResponse(String id) {
12117 return new Response(id, result: toJson());
17347 } 12118 }
17348 12119
17349 @override 12120 @override
17350 String toString() => JSON.encode(toJson()); 12121 String toString() => JSON.encode(toJson());
17351 12122
17352 @override 12123 @override
17353 bool operator ==(other) { 12124 bool operator ==(other) {
17354 if (other is SearchResultsParams) { 12125 if (other is SearchGetTypeHierarchyResult) {
17355 return id == other.id && 12126 return listEqual(hierarchyItems, other.hierarchyItems,
17356 listEqual(results, other.results, 12127 (TypeHierarchyItem a, TypeHierarchyItem b) => a == b);
17357 (SearchResult a, SearchResult b) => a == b) &&
17358 isLast == other.isLast;
17359 } 12128 }
17360 return false; 12129 return false;
17361 } 12130 }
12131
12132 @override
12133 int get hashCode {
12134 int hash = 0;
12135 hash = JenkinsSmiHash.combine(hash, hierarchyItems.hashCode);
12136 return JenkinsSmiHash.finish(hash);
12137 }
12138 }
12139
12140 /**
12141 * SearchResult
12142 *
12143 * {
12144 * "location": Location
12145 * "kind": SearchResultKind
12146 * "isPotential": bool
12147 * "path": List<Element>
12148 * }
12149 *
12150 * Clients may not extend, implement or mix-in this class.
12151 */
12152 class SearchResult implements HasToJson {
12153 Location _location;
12154
12155 SearchResultKind _kind;
12156
12157 bool _isPotential;
12158
12159 List<Element> _path;
12160
12161 /**
12162 * The location of the code that matched the search criteria.
12163 */
12164 Location get location => _location;
12165
12166 /**
12167 * The location of the code that matched the search criteria.
12168 */
12169 void set location(Location value) {
12170 assert(value != null);
12171 this._location = value;
12172 }
12173
12174 /**
12175 * The kind of element that was found or the kind of reference that was
12176 * found.
12177 */
12178 SearchResultKind get kind => _kind;
12179
12180 /**
12181 * The kind of element that was found or the kind of reference that was
12182 * found.
12183 */
12184 void set kind(SearchResultKind value) {
12185 assert(value != null);
12186 this._kind = value;
12187 }
12188
12189 /**
12190 * True if the result is a potential match but cannot be confirmed to be a
12191 * match. For example, if all references to a method m defined in some class
12192 * were requested, and a reference to a method m from an unknown class were
12193 * found, it would be marked as being a potential match.
12194 */
12195 bool get isPotential => _isPotential;
12196
12197 /**
12198 * True if the result is a potential match but cannot be confirmed to be a
12199 * match. For example, if all references to a method m defined in some class
12200 * were requested, and a reference to a method m from an unknown class were
12201 * found, it would be marked as being a potential match.
12202 */
12203 void set isPotential(bool value) {
12204 assert(value != null);
12205 this._isPotential = value;
12206 }
12207
12208 /**
12209 * The elements that contain the result, starting with the most immediately
12210 * enclosing ancestor and ending with the library.
12211 */
12212 List<Element> get path => _path;
12213
12214 /**
12215 * The elements that contain the result, starting with the most immediately
12216 * enclosing ancestor and ending with the library.
12217 */
12218 void set path(List<Element> value) {
12219 assert(value != null);
12220 this._path = value;
12221 }
12222
12223 SearchResult(Location location, SearchResultKind kind, bool isPotential,
12224 List<Element> path) {
12225 this.location = location;
12226 this.kind = kind;
12227 this.isPotential = isPotential;
12228 this.path = path;
12229 }
12230
12231 factory SearchResult.fromJson(
12232 JsonDecoder jsonDecoder, String jsonPath, Object json) {
12233 if (json == null) {
12234 json = {};
12235 }
12236 if (json is Map) {
12237 Location location;
12238 if (json.containsKey("location")) {
12239 location = new Location.fromJson(
12240 jsonDecoder, jsonPath + ".location", json["location"]);
12241 } else {
12242 throw jsonDecoder.mismatch(jsonPath, "location");
12243 }
12244 SearchResultKind kind;
12245 if (json.containsKey("kind")) {
12246 kind = new SearchResultKind.fromJson(
12247 jsonDecoder, jsonPath + ".kind", json["kind"]);
12248 } else {
12249 throw jsonDecoder.mismatch(jsonPath, "kind");
12250 }
12251 bool isPotential;
12252 if (json.containsKey("isPotential")) {
12253 isPotential = jsonDecoder.decodeBool(
12254 jsonPath + ".isPotential", json["isPotential"]);
12255 } else {
12256 throw jsonDecoder.mismatch(jsonPath, "isPotential");
12257 }
12258 List<Element> path;
12259 if (json.containsKey("path")) {
12260 path = jsonDecoder.decodeList(
12261 jsonPath + ".path",
12262 json["path"],
12263 (String jsonPath, Object json) =>
12264 new Element.fromJson(jsonDecoder, jsonPath, json));
12265 } else {
12266 throw jsonDecoder.mismatch(jsonPath, "path");
12267 }
12268 return new SearchResult(location, kind, isPotential, path);
12269 } else {
12270 throw jsonDecoder.mismatch(jsonPath, "SearchResult", json);
12271 }
12272 }
12273
12274 @override
12275 Map<String, dynamic> toJson() {
12276 Map<String, dynamic> result = {};
12277 result["location"] = location.toJson();
12278 result["kind"] = kind.toJson();
12279 result["isPotential"] = isPotential;
12280 result["path"] = path.map((Element value) => value.toJson()).toList();
12281 return result;
12282 }
12283
12284 @override
12285 String toString() => JSON.encode(toJson());
12286
12287 @override
12288 bool operator ==(other) {
12289 if (other is SearchResult) {
12290 return location == other.location &&
12291 kind == other.kind &&
12292 isPotential == other.isPotential &&
12293 listEqual(path, other.path, (Element a, Element b) => a == b);
12294 }
12295 return false;
12296 }
17362 12297
17363 @override 12298 @override
17364 int get hashCode { 12299 int get hashCode {
17365 int hash = 0; 12300 int hash = 0;
17366 hash = JenkinsSmiHash.combine(hash, id.hashCode); 12301 hash = JenkinsSmiHash.combine(hash, location.hashCode);
17367 hash = JenkinsSmiHash.combine(hash, results.hashCode); 12302 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
17368 hash = JenkinsSmiHash.combine(hash, isLast.hashCode); 12303 hash = JenkinsSmiHash.combine(hash, isPotential.hashCode);
12304 hash = JenkinsSmiHash.combine(hash, path.hashCode);
17369 return JenkinsSmiHash.finish(hash); 12305 return JenkinsSmiHash.finish(hash);
17370 } 12306 }
17371 } 12307 }
17372 12308
17373 /** 12309 /**
17374 * server.connected params 12310 * SearchResultKind
17375 * 12311 *
17376 * { 12312 * enum {
17377 * "version": String 12313 * DECLARATION
17378 * "pid": int 12314 * INVOCATION
17379 * "sessionId": optional String 12315 * READ
12316 * READ_WRITE
12317 * REFERENCE
12318 * UNKNOWN
12319 * WRITE
17380 * } 12320 * }
17381 * 12321 *
17382 * Clients may not extend, implement or mix-in this class. 12322 * Clients may not extend, implement or mix-in this class.
17383 */ 12323 */
17384 class ServerConnectedParams implements HasToJson { 12324 class SearchResultKind implements Enum {
17385 String _version; 12325 /**
17386 12326 * The declaration of an element.
17387 int _pid; 12327 */
17388 12328 static const SearchResultKind DECLARATION =
17389 String _sessionId; 12329 const SearchResultKind._("DECLARATION");
17390 12330
17391 /** 12331 /**
17392 * The version number of the analysis server. 12332 * The invocation of a function or method.
17393 */ 12333 */
17394 String get version => _version; 12334 static const SearchResultKind INVOCATION =
17395 12335 const SearchResultKind._("INVOCATION");
17396 /** 12336
17397 * The version number of the analysis server. 12337 /**
17398 */ 12338 * A reference to a field, parameter or variable where it is being read.
17399 void set version(String value) { 12339 */
12340 static const SearchResultKind READ = const SearchResultKind._("READ");
12341
12342 /**
12343 * A reference to a field, parameter or variable where it is being read and
12344 * written.
12345 */
12346 static const SearchResultKind READ_WRITE =
12347 const SearchResultKind._("READ_WRITE");
12348
12349 /**
12350 * A reference to an element.
12351 */
12352 static const SearchResultKind REFERENCE =
12353 const SearchResultKind._("REFERENCE");
12354
12355 /**
12356 * Some other kind of search result.
12357 */
12358 static const SearchResultKind UNKNOWN = const SearchResultKind._("UNKNOWN");
12359
12360 /**
12361 * A reference to a field, parameter or variable where it is being written.
12362 */
12363 static const SearchResultKind WRITE = const SearchResultKind._("WRITE");
12364
12365 /**
12366 * A list containing all of the enum values that are defined.
12367 */
12368 static const List<SearchResultKind> VALUES = const <SearchResultKind>[
12369 DECLARATION,
12370 INVOCATION,
12371 READ,
12372 READ_WRITE,
12373 REFERENCE,
12374 UNKNOWN,
12375 WRITE
12376 ];
12377
12378 @override
12379 final String name;
12380
12381 const SearchResultKind._(this.name);
12382
12383 factory SearchResultKind(String name) {
12384 switch (name) {
12385 case "DECLARATION":
12386 return DECLARATION;
12387 case "INVOCATION":
12388 return INVOCATION;
12389 case "READ":
12390 return READ;
12391 case "READ_WRITE":
12392 return READ_WRITE;
12393 case "REFERENCE":
12394 return REFERENCE;
12395 case "UNKNOWN":
12396 return UNKNOWN;
12397 case "WRITE":
12398 return WRITE;
12399 }
12400 throw new Exception('Illegal enum value: $name');
12401 }
12402
12403 factory SearchResultKind.fromJson(
12404 JsonDecoder jsonDecoder, String jsonPath, Object json) {
12405 if (json is String) {
12406 try {
12407 return new SearchResultKind(json);
12408 } catch (_) {
12409 // Fall through
12410 }
12411 }
12412 throw jsonDecoder.mismatch(jsonPath, "SearchResultKind", json);
12413 }
12414
12415 @override
12416 String toString() => "SearchResultKind.$name";
12417
12418 String toJson() => name;
12419 }
12420
12421 /**
12422 * search.results params
12423 *
12424 * {
12425 * "id": SearchId
12426 * "results": List<SearchResult>
12427 * "isLast": bool
12428 * }
12429 *
12430 * Clients may not extend, implement or mix-in this class.
12431 */
12432 class SearchResultsParams implements HasToJson {
12433 String _id;
12434
12435 List<SearchResult> _results;
12436
12437 bool _isLast;
12438
12439 /**
12440 * The id associated with the search.
12441 */
12442 String get id => _id;
12443
12444 /**
12445 * The id associated with the search.
12446 */
12447 void set id(String value) {
17400 assert(value != null); 12448 assert(value != null);
17401 this._version = value; 12449 this._id = value;
17402 } 12450 }
17403 12451
17404 /** 12452 /**
17405 * The process id of the analysis server process. 12453 * The search results being reported.
17406 */ 12454 */
17407 int get pid => _pid; 12455 List<SearchResult> get results => _results;
17408 12456
17409 /** 12457 /**
17410 * The process id of the analysis server process. 12458 * The search results being reported.
17411 */ 12459 */
17412 void set pid(int value) { 12460 void set results(List<SearchResult> value) {
17413 assert(value != null); 12461 assert(value != null);
17414 this._pid = value; 12462 this._results = value;
17415 } 12463 }
17416 12464
17417 /** 12465 /**
17418 * The session id for this session. 12466 * True if this is that last set of results that will be returned for the
17419 */ 12467 * indicated search.
17420 String get sessionId => _sessionId; 12468 */
17421 12469 bool get isLast => _isLast;
17422 /** 12470
17423 * The session id for this session. 12471 /**
17424 */ 12472 * True if this is that last set of results that will be returned for the
17425 void set sessionId(String value) { 12473 * indicated search.
17426 this._sessionId = value; 12474 */
17427 } 12475 void set isLast(bool value) {
17428 12476 assert(value != null);
17429 ServerConnectedParams(String version, int pid, {String sessionId}) { 12477 this._isLast = value;
17430 this.version = version; 12478 }
17431 this.pid = pid; 12479
17432 this.sessionId = sessionId; 12480 SearchResultsParams(String id, List<SearchResult> results, bool isLast) {
17433 } 12481 this.id = id;
17434 12482 this.results = results;
17435 factory ServerConnectedParams.fromJson( 12483 this.isLast = isLast;
12484 }
12485
12486 factory SearchResultsParams.fromJson(
17436 JsonDecoder jsonDecoder, String jsonPath, Object json) { 12487 JsonDecoder jsonDecoder, String jsonPath, Object json) {
17437 if (json == null) { 12488 if (json == null) {
17438 json = {}; 12489 json = {};
17439 } 12490 }
17440 if (json is Map) { 12491 if (json is Map) {
17441 String version; 12492 String id;
17442 if (json.containsKey("version")) { 12493 if (json.containsKey("id")) {
17443 version = 12494 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
17444 jsonDecoder.decodeString(jsonPath + ".version", json["version"]);
17445 } else { 12495 } else {
17446 throw jsonDecoder.mismatch(jsonPath, "version"); 12496 throw jsonDecoder.mismatch(jsonPath, "id");
17447 } 12497 }
17448 int pid; 12498 List<SearchResult> results;
17449 if (json.containsKey("pid")) { 12499 if (json.containsKey("results")) {
17450 pid = jsonDecoder.decodeInt(jsonPath + ".pid", json["pid"]); 12500 results = jsonDecoder.decodeList(
12501 jsonPath + ".results",
12502 json["results"],
12503 (String jsonPath, Object json) =>
12504 new SearchResult.fromJson(jsonDecoder, jsonPath, json));
17451 } else { 12505 } else {
17452 throw jsonDecoder.mismatch(jsonPath, "pid"); 12506 throw jsonDecoder.mismatch(jsonPath, "results");
17453 } 12507 }
17454 String sessionId; 12508 bool isLast;
17455 if (json.containsKey("sessionId")) { 12509 if (json.containsKey("isLast")) {
17456 sessionId = jsonDecoder.decodeString( 12510 isLast = jsonDecoder.decodeBool(jsonPath + ".isLast", json["isLast"]);
17457 jsonPath + ".sessionId", json["sessionId"]); 12511 } else {
17458 } 12512 throw jsonDecoder.mismatch(jsonPath, "isLast");
17459 return new ServerConnectedParams(version, pid, sessionId: sessionId); 12513 }
12514 return new SearchResultsParams(id, results, isLast);
17460 } else { 12515 } else {
17461 throw jsonDecoder.mismatch(jsonPath, "server.connected params", json); 12516 throw jsonDecoder.mismatch(jsonPath, "search.results params", json);
17462 } 12517 }
17463 } 12518 }
17464 12519
17465 factory ServerConnectedParams.fromNotification(Notification notification) { 12520 factory SearchResultsParams.fromNotification(Notification notification) {
17466 return new ServerConnectedParams.fromJson( 12521 return new SearchResultsParams.fromJson(
17467 new ResponseDecoder(null), "params", notification.params); 12522 new ResponseDecoder(null), "params", notification.params);
17468 } 12523 }
17469 12524
17470 @override 12525 @override
17471 Map<String, dynamic> toJson() { 12526 Map<String, dynamic> toJson() {
17472 Map<String, dynamic> result = {}; 12527 Map<String, dynamic> result = {};
17473 result["version"] = version; 12528 result["id"] = id;
17474 result["pid"] = pid; 12529 result["results"] =
17475 if (sessionId != null) { 12530 results.map((SearchResult value) => value.toJson()).toList();
17476 result["sessionId"] = sessionId; 12531 result["isLast"] = isLast;
17477 }
17478 return result; 12532 return result;
17479 } 12533 }
17480 12534
17481 Notification toNotification() { 12535 Notification toNotification() {
17482 return new Notification("server.connected", toJson()); 12536 return new Notification("search.results", toJson());
17483 } 12537 }
17484 12538
17485 @override 12539 @override
17486 String toString() => JSON.encode(toJson());
17487
17488 @override
17489 bool operator ==(other) {
17490 if (other is ServerConnectedParams) {
17491 return version == other.version &&
17492 pid == other.pid &&
17493 sessionId == other.sessionId;
17494 }
17495 return false;
17496 }
17497
17498 @override
17499 int get hashCode {
17500 int hash = 0;
17501 hash = JenkinsSmiHash.combine(hash, version.hashCode);
17502 hash = JenkinsSmiHash.combine(hash, pid.hashCode);
17503 hash = JenkinsSmiHash.combine(hash, sessionId.hashCode);
17504 return JenkinsSmiHash.finish(hash);
17505 }
17506 }
17507
17508 /**
17509 * server.error params
17510 *
17511 * {
17512 * "isFatal": bool
17513 * "message": String
17514 * "stackTrace": String
17515 * }
17516 *
17517 * Clients may not extend, implement or mix-in this class.
17518 */
17519 class ServerErrorParams implements HasToJson {
17520 bool _isFatal;
17521
17522 String _message;
17523
17524 String _stackTrace;
17525
17526 /**
17527 * True if the error is a fatal error, meaning that the server will shutdown
17528 * automatically after sending this notification.
17529 */
17530 bool get isFatal => _isFatal;
17531
17532 /**
17533 * True if the error is a fatal error, meaning that the server will shutdown
17534 * automatically after sending this notification.
17535 */
17536 void set isFatal(bool value) {
17537 assert(value != null);
17538 this._isFatal = value;
17539 }
17540
17541 /**
17542 * The error message indicating what kind of error was encountered.
17543 */
17544 String get message => _message;
17545
17546 /**
17547 * The error message indicating what kind of error was encountered.
17548 */
17549 void set message(String value) {
17550 assert(value != null);
17551 this._message = value;
17552 }
17553
17554 /**
17555 * The stack trace associated with the generation of the error, used for
17556 * debugging the server.
17557 */
17558 String get stackTrace => _stackTrace;
17559
17560 /**
17561 * The stack trace associated with the generation of the error, used for
17562 * debugging the server.
17563 */
17564 void set stackTrace(String value) {
17565 assert(value != null);
17566 this._stackTrace = value;
17567 }
17568
17569 ServerErrorParams(bool isFatal, String message, String stackTrace) {
17570 this.isFatal = isFatal;
17571 this.message = message;
17572 this.stackTrace = stackTrace;
17573 }
17574
17575 factory ServerErrorParams.fromJson(
17576 JsonDecoder jsonDecoder, String jsonPath, Object json) {
17577 if (json == null) {
17578 json = {};
17579 }
17580 if (json is Map) {
17581 bool isFatal;
17582 if (json.containsKey("isFatal")) {
17583 isFatal =
17584 jsonDecoder.decodeBool(jsonPath + ".isFatal", json["isFatal"]);
17585 } else {
17586 throw jsonDecoder.mismatch(jsonPath, "isFatal");
17587 }
17588 String message;
17589 if (json.containsKey("message")) {
17590 message =
17591 jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
17592 } else {
17593 throw jsonDecoder.mismatch(jsonPath, "message");
17594 }
17595 String stackTrace;
17596 if (json.containsKey("stackTrace")) {
17597 stackTrace = jsonDecoder.decodeString(
17598 jsonPath + ".stackTrace", json["stackTrace"]);
17599 } else {
17600 throw jsonDecoder.mismatch(jsonPath, "stackTrace");
17601 }
17602 return new ServerErrorParams(isFatal, message, stackTrace);
17603 } else {
17604 throw jsonDecoder.mismatch(jsonPath, "server.error params", json);
17605 }
17606 }
17607
17608 factory ServerErrorParams.fromNotification(Notification notification) {
17609 return new ServerErrorParams.fromJson(
17610 new ResponseDecoder(null), "params", notification.params);
17611 }
17612
17613 @override
17614 Map<String, dynamic> toJson() {
17615 Map<String, dynamic> result = {};
17616 result["isFatal"] = isFatal;
17617 result["message"] = message;
17618 result["stackTrace"] = stackTrace;
17619 return result;
17620 }
17621
17622 Notification toNotification() {
17623 return new Notification("server.error", toJson());
17624 }
17625
17626 @override
17627 String toString() => JSON.encode(toJson()); 12540 String toString() => JSON.encode(toJson());
17628 12541
17629 @override 12542 @override
17630 bool operator ==(other) { 12543 bool operator ==(other) {
17631 if (other is ServerErrorParams) { 12544 if (other is SearchResultsParams) {
17632 return isFatal == other.isFatal && 12545 return id == other.id &&
17633 message == other.message && 12546 listEqual(results, other.results,
17634 stackTrace == other.stackTrace; 12547 (SearchResult a, SearchResult b) => a == b) &&
12548 isLast == other.isLast;
17635 } 12549 }
17636 return false; 12550 return false;
17637 } 12551 }
17638 12552
17639 @override 12553 @override
17640 int get hashCode { 12554 int get hashCode {
17641 int hash = 0; 12555 int hash = 0;
17642 hash = JenkinsSmiHash.combine(hash, isFatal.hashCode); 12556 hash = JenkinsSmiHash.combine(hash, id.hashCode);
17643 hash = JenkinsSmiHash.combine(hash, message.hashCode); 12557 hash = JenkinsSmiHash.combine(hash, results.hashCode);
17644 hash = JenkinsSmiHash.combine(hash, stackTrace.hashCode); 12558 hash = JenkinsSmiHash.combine(hash, isLast.hashCode);
17645 return JenkinsSmiHash.finish(hash); 12559 return JenkinsSmiHash.finish(hash);
17646 } 12560 }
17647 } 12561 }
17648 12562
17649 /** 12563 /**
17650 * server.getVersion params 12564 * server.connected params
17651 *
17652 * Clients may not extend, implement or mix-in this class.
17653 */
17654 class ServerGetVersionParams implements RequestParams {
17655 @override
17656 Map<String, dynamic> toJson() => <String, dynamic>{};
17657
17658 @override
17659 Request toRequest(String id) {
17660 return new Request(id, "server.getVersion", null);
17661 }
17662
17663 @override
17664 bool operator ==(other) {
17665 if (other is ServerGetVersionParams) {
17666 return true;
17667 }
17668 return false;
17669 }
17670
17671 @override
17672 int get hashCode {
17673 return 55877452;
17674 }
17675 }
17676
17677 /**
17678 * server.getVersion result
17679 * 12565 *
17680 * { 12566 * {
17681 * "version": String 12567 * "version": String
12568 * "pid": int
12569 * "sessionId": optional String
17682 * } 12570 * }
17683 * 12571 *
17684 * Clients may not extend, implement or mix-in this class. 12572 * Clients may not extend, implement or mix-in this class.
17685 */ 12573 */
17686 class ServerGetVersionResult implements ResponseResult { 12574 class ServerConnectedParams implements HasToJson {
17687 String _version; 12575 String _version;
17688 12576
12577 int _pid;
12578
12579 String _sessionId;
12580
17689 /** 12581 /**
17690 * The version number of the analysis server. 12582 * The version number of the analysis server.
17691 */ 12583 */
17692 String get version => _version; 12584 String get version => _version;
17693 12585
17694 /** 12586 /**
17695 * The version number of the analysis server. 12587 * The version number of the analysis server.
17696 */ 12588 */
17697 void set version(String value) { 12589 void set version(String value) {
17698 assert(value != null); 12590 assert(value != null);
17699 this._version = value; 12591 this._version = value;
17700 } 12592 }
17701 12593
17702 ServerGetVersionResult(String version) { 12594 /**
17703 this.version = version; 12595 * The process id of the analysis server process.
12596 */
12597 int get pid => _pid;
12598
12599 /**
12600 * The process id of the analysis server process.
12601 */
12602 void set pid(int value) {
12603 assert(value != null);
12604 this._pid = value;
17704 } 12605 }
17705 12606
17706 factory ServerGetVersionResult.fromJson( 12607 /**
12608 * The session id for this session.
12609 */
12610 String get sessionId => _sessionId;
12611
12612 /**
12613 * The session id for this session.
12614 */
12615 void set sessionId(String value) {
12616 this._sessionId = value;
12617 }
12618
12619 ServerConnectedParams(String version, int pid, {String sessionId}) {
12620 this.version = version;
12621 this.pid = pid;
12622 this.sessionId = sessionId;
12623 }
12624
12625 factory ServerConnectedParams.fromJson(
17707 JsonDecoder jsonDecoder, String jsonPath, Object json) { 12626 JsonDecoder jsonDecoder, String jsonPath, Object json) {
17708 if (json == null) { 12627 if (json == null) {
17709 json = {}; 12628 json = {};
17710 } 12629 }
17711 if (json is Map) { 12630 if (json is Map) {
17712 String version; 12631 String version;
17713 if (json.containsKey("version")) { 12632 if (json.containsKey("version")) {
17714 version = 12633 version =
17715 jsonDecoder.decodeString(jsonPath + ".version", json["version"]); 12634 jsonDecoder.decodeString(jsonPath + ".version", json["version"]);
17716 } else { 12635 } else {
17717 throw jsonDecoder.mismatch(jsonPath, "version"); 12636 throw jsonDecoder.mismatch(jsonPath, "version");
17718 } 12637 }
17719 return new ServerGetVersionResult(version); 12638 int pid;
12639 if (json.containsKey("pid")) {
12640 pid = jsonDecoder.decodeInt(jsonPath + ".pid", json["pid"]);
12641 } else {
12642 throw jsonDecoder.mismatch(jsonPath, "pid");
12643 }
12644 String sessionId;
12645 if (json.containsKey("sessionId")) {
12646 sessionId = jsonDecoder.decodeString(
12647 jsonPath + ".sessionId", json["sessionId"]);
12648 }
12649 return new ServerConnectedParams(version, pid, sessionId: sessionId);
17720 } else { 12650 } else {
17721 throw jsonDecoder.mismatch(jsonPath, "server.getVersion result", json); 12651 throw jsonDecoder.mismatch(jsonPath, "server.connected params", json);
17722 } 12652 }
17723 } 12653 }
17724 12654
17725 factory ServerGetVersionResult.fromResponse(Response response) { 12655 factory ServerConnectedParams.fromNotification(Notification notification) {
17726 return new ServerGetVersionResult.fromJson( 12656 return new ServerConnectedParams.fromJson(
17727 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 12657 new ResponseDecoder(null), "params", notification.params);
17728 "result",
17729 response.result);
17730 } 12658 }
17731 12659
17732 @override 12660 @override
17733 Map<String, dynamic> toJson() { 12661 Map<String, dynamic> toJson() {
17734 Map<String, dynamic> result = {}; 12662 Map<String, dynamic> result = {};
17735 result["version"] = version; 12663 result["version"] = version;
12664 result["pid"] = pid;
12665 if (sessionId != null) {
12666 result["sessionId"] = sessionId;
12667 }
17736 return result; 12668 return result;
17737 } 12669 }
17738 12670
17739 @override 12671 Notification toNotification() {
17740 Response toResponse(String id) { 12672 return new Notification("server.connected", toJson());
17741 return new Response(id, result: toJson());
17742 } 12673 }
17743 12674
17744 @override 12675 @override
17745 String toString() => JSON.encode(toJson()); 12676 String toString() => JSON.encode(toJson());
17746 12677
17747 @override 12678 @override
17748 bool operator ==(other) { 12679 bool operator ==(other) {
17749 if (other is ServerGetVersionResult) { 12680 if (other is ServerConnectedParams) {
17750 return version == other.version; 12681 return version == other.version &&
12682 pid == other.pid &&
12683 sessionId == other.sessionId;
17751 } 12684 }
17752 return false; 12685 return false;
17753 } 12686 }
17754 12687
17755 @override 12688 @override
17756 int get hashCode { 12689 int get hashCode {
17757 int hash = 0; 12690 int hash = 0;
17758 hash = JenkinsSmiHash.combine(hash, version.hashCode); 12691 hash = JenkinsSmiHash.combine(hash, version.hashCode);
12692 hash = JenkinsSmiHash.combine(hash, pid.hashCode);
12693 hash = JenkinsSmiHash.combine(hash, sessionId.hashCode);
17759 return JenkinsSmiHash.finish(hash); 12694 return JenkinsSmiHash.finish(hash);
17760 } 12695 }
17761 } 12696 }
17762 12697
17763 /** 12698 /**
17764 * ServerService 12699 * server.error params
17765 * 12700 *
17766 * enum { 12701 * {
17767 * STATUS 12702 * "isFatal": bool
12703 * "message": String
12704 * "stackTrace": String
17768 * } 12705 * }
17769 * 12706 *
17770 * Clients may not extend, implement or mix-in this class. 12707 * Clients may not extend, implement or mix-in this class.
17771 */ 12708 */
17772 class ServerService implements Enum { 12709 class ServerErrorParams implements HasToJson {
17773 static const ServerService STATUS = const ServerService._("STATUS"); 12710 bool _isFatal;
12711
12712 String _message;
12713
12714 String _stackTrace;
17774 12715
17775 /** 12716 /**
17776 * A list containing all of the enum values that are defined. 12717 * True if the error is a fatal error, meaning that the server will shutdown
12718 * automatically after sending this notification.
17777 */ 12719 */
17778 static const List<ServerService> VALUES = const <ServerService>[STATUS]; 12720 bool get isFatal => _isFatal;
17779 12721
17780 @override 12722 /**
17781 final String name; 12723 * True if the error is a fatal error, meaning that the server will shutdown
17782 12724 * automatically after sending this notification.
17783 const ServerService._(this.name); 12725 */
17784 12726 void set isFatal(bool value) {
17785 factory ServerService(String name) { 12727 assert(value != null);
17786 switch (name) { 12728 this._isFatal = value;
17787 case "STATUS":
17788 return STATUS;
17789 }
17790 throw new Exception('Illegal enum value: $name');
17791 } 12729 }
17792 12730
17793 factory ServerService.fromJson( 12731 /**
17794 JsonDecoder jsonDecoder, String jsonPath, Object json) { 12732 * The error message indicating what kind of error was encountered.
17795 if (json is String) { 12733 */
17796 try { 12734 String get message => _message;
17797 return new ServerService(json); 12735
17798 } catch (_) { 12736 /**
17799 // Fall through 12737 * The error message indicating what kind of error was encountered.
17800 } 12738 */
17801 } 12739 void set message(String value) {
17802 throw jsonDecoder.mismatch(jsonPath, "ServerService", json); 12740 assert(value != null);
12741 this._message = value;
17803 } 12742 }
17804 12743
17805 @override 12744 /**
17806 String toString() => "ServerService.$name"; 12745 * The stack trace associated with the generation of the error, used for
17807 12746 * debugging the server.
17808 String toJson() => name; 12747 */
17809 } 12748 String get stackTrace => _stackTrace;
17810
17811 /**
17812 * server.setSubscriptions params
17813 *
17814 * {
17815 * "subscriptions": List<ServerService>
17816 * }
17817 *
17818 * Clients may not extend, implement or mix-in this class.
17819 */
17820 class ServerSetSubscriptionsParams implements RequestParams {
17821 List<ServerService> _subscriptions;
17822 12749
17823 /** 12750 /**
17824 * A list of the services being subscribed to. 12751 * The stack trace associated with the generation of the error, used for
12752 * debugging the server.
17825 */ 12753 */
17826 List<ServerService> get subscriptions => _subscriptions; 12754 void set stackTrace(String value) {
17827
17828 /**
17829 * A list of the services being subscribed to.
17830 */
17831 void set subscriptions(List<ServerService> value) {
17832 assert(value != null); 12755 assert(value != null);
17833 this._subscriptions = value; 12756 this._stackTrace = value;
17834 } 12757 }
17835 12758
17836 ServerSetSubscriptionsParams(List<ServerService> subscriptions) { 12759 ServerErrorParams(bool isFatal, String message, String stackTrace) {
17837 this.subscriptions = subscriptions; 12760 this.isFatal = isFatal;
12761 this.message = message;
12762 this.stackTrace = stackTrace;
17838 } 12763 }
17839 12764
17840 factory ServerSetSubscriptionsParams.fromJson( 12765 factory ServerErrorParams.fromJson(
17841 JsonDecoder jsonDecoder, String jsonPath, Object json) { 12766 JsonDecoder jsonDecoder, String jsonPath, Object json) {
17842 if (json == null) { 12767 if (json == null) {
17843 json = {}; 12768 json = {};
17844 } 12769 }
17845 if (json is Map) { 12770 if (json is Map) {
17846 List<ServerService> subscriptions; 12771 bool isFatal;
17847 if (json.containsKey("subscriptions")) { 12772 if (json.containsKey("isFatal")) {
17848 subscriptions = jsonDecoder.decodeList( 12773 isFatal =
17849 jsonPath + ".subscriptions", 12774 jsonDecoder.decodeBool(jsonPath + ".isFatal", json["isFatal"]);
17850 json["subscriptions"],
17851 (String jsonPath, Object json) =>
17852 new ServerService.fromJson(jsonDecoder, jsonPath, json));
17853 } else { 12775 } else {
17854 throw jsonDecoder.mismatch(jsonPath, "subscriptions"); 12776 throw jsonDecoder.mismatch(jsonPath, "isFatal");
17855 } 12777 }
17856 return new ServerSetSubscriptionsParams(subscriptions); 12778 String message;
12779 if (json.containsKey("message")) {
12780 message =
12781 jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
12782 } else {
12783 throw jsonDecoder.mismatch(jsonPath, "message");
12784 }
12785 String stackTrace;
12786 if (json.containsKey("stackTrace")) {
12787 stackTrace = jsonDecoder.decodeString(
12788 jsonPath + ".stackTrace", json["stackTrace"]);
12789 } else {
12790 throw jsonDecoder.mismatch(jsonPath, "stackTrace");
12791 }
12792 return new ServerErrorParams(isFatal, message, stackTrace);
17857 } else { 12793 } else {
17858 throw jsonDecoder.mismatch( 12794 throw jsonDecoder.mismatch(jsonPath, "server.error params", json);
17859 jsonPath, "server.setSubscriptions params", json);
17860 } 12795 }
17861 } 12796 }
17862 12797
17863 factory ServerSetSubscriptionsParams.fromRequest(Request request) { 12798 factory ServerErrorParams.fromNotification(Notification notification) {
17864 return new ServerSetSubscriptionsParams.fromJson( 12799 return new ServerErrorParams.fromJson(
17865 new RequestDecoder(request), "params", request.params); 12800 new ResponseDecoder(null), "params", notification.params);
17866 } 12801 }
17867 12802
17868 @override 12803 @override
17869 Map<String, dynamic> toJson() { 12804 Map<String, dynamic> toJson() {
17870 Map<String, dynamic> result = {}; 12805 Map<String, dynamic> result = {};
17871 result["subscriptions"] = 12806 result["isFatal"] = isFatal;
17872 subscriptions.map((ServerService value) => value.toJson()).toList(); 12807 result["message"] = message;
12808 result["stackTrace"] = stackTrace;
17873 return result; 12809 return result;
17874 } 12810 }
17875 12811
17876 @override 12812 Notification toNotification() {
17877 Request toRequest(String id) { 12813 return new Notification("server.error", toJson());
17878 return new Request(id, "server.setSubscriptions", toJson());
17879 } 12814 }
17880 12815
17881 @override 12816 @override
17882 String toString() => JSON.encode(toJson()); 12817 String toString() => JSON.encode(toJson());
17883 12818
17884 @override 12819 @override
17885 bool operator ==(other) { 12820 bool operator ==(other) {
17886 if (other is ServerSetSubscriptionsParams) { 12821 if (other is ServerErrorParams) {
17887 return listEqual(subscriptions, other.subscriptions, 12822 return isFatal == other.isFatal &&
17888 (ServerService a, ServerService b) => a == b); 12823 message == other.message &&
12824 stackTrace == other.stackTrace;
17889 } 12825 }
17890 return false; 12826 return false;
17891 } 12827 }
17892 12828
17893 @override 12829 @override
17894 int get hashCode { 12830 int get hashCode {
17895 int hash = 0; 12831 int hash = 0;
17896 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode); 12832 hash = JenkinsSmiHash.combine(hash, isFatal.hashCode);
12833 hash = JenkinsSmiHash.combine(hash, message.hashCode);
12834 hash = JenkinsSmiHash.combine(hash, stackTrace.hashCode);
17897 return JenkinsSmiHash.finish(hash); 12835 return JenkinsSmiHash.finish(hash);
17898 } 12836 }
17899 } 12837 }
17900 12838
17901 /** 12839 /**
17902 * server.setSubscriptions result 12840 * server.getVersion params
17903 * 12841 *
17904 * Clients may not extend, implement or mix-in this class. 12842 * Clients may not extend, implement or mix-in this class.
17905 */ 12843 */
17906 class ServerSetSubscriptionsResult implements ResponseResult { 12844 class ServerGetVersionParams implements RequestParams {
17907 @override
17908 Map<String, dynamic> toJson() => <String, dynamic>{};
17909
17910 @override
17911 Response toResponse(String id) {
17912 return new Response(id, result: null);
17913 }
17914
17915 @override
17916 bool operator ==(other) {
17917 if (other is ServerSetSubscriptionsResult) {
17918 return true;
17919 }
17920 return false;
17921 }
17922
17923 @override
17924 int get hashCode {
17925 return 748820900;
17926 }
17927 }
17928
17929 /**
17930 * server.shutdown params
17931 *
17932 * Clients may not extend, implement or mix-in this class.
17933 */
17934 class ServerShutdownParams implements RequestParams {
17935 @override 12845 @override
17936 Map<String, dynamic> toJson() => <String, dynamic>{}; 12846 Map<String, dynamic> toJson() => <String, dynamic>{};
17937 12847
17938 @override 12848 @override
17939 Request toRequest(String id) { 12849 Request toRequest(String id) {
17940 return new Request(id, "server.shutdown", null); 12850 return new Request(id, "server.getVersion", null);
17941 } 12851 }
17942 12852
17943 @override 12853 @override
17944 bool operator ==(other) { 12854 bool operator ==(other) {
17945 if (other is ServerShutdownParams) { 12855 if (other is ServerGetVersionParams) {
17946 return true; 12856 return true;
17947 } 12857 }
17948 return false; 12858 return false;
17949 }
17950
17951 @override
17952 int get hashCode {
17953 return 366630911;
17954 }
17955 }
17956
17957 /**
17958 * server.shutdown result
17959 *
17960 * Clients may not extend, implement or mix-in this class.
17961 */
17962 class ServerShutdownResult implements ResponseResult {
17963 @override
17964 Map<String, dynamic> toJson() => <String, dynamic>{};
17965
17966 @override
17967 Response toResponse(String id) {
17968 return new Response(id, result: null);
17969 }
17970
17971 @override
17972 bool operator ==(other) {
17973 if (other is ServerShutdownResult) {
17974 return true;
17975 }
17976 return false;
17977 } 12859 }
17978 12860
17979 @override 12861 @override
17980 int get hashCode { 12862 int get hashCode {
17981 return 193626532; 12863 return 55877452;
17982 } 12864 }
17983 } 12865 }
17984 12866
17985 /** 12867 /**
17986 * server.status params 12868 * server.getVersion result
17987 * 12869 *
17988 * { 12870 * {
17989 * "analysis": optional AnalysisStatus 12871 * "version": String
17990 * "pub": optional PubStatus
17991 * } 12872 * }
17992 * 12873 *
17993 * Clients may not extend, implement or mix-in this class. 12874 * Clients may not extend, implement or mix-in this class.
17994 */ 12875 */
17995 class ServerStatusParams implements HasToJson { 12876 class ServerGetVersionResult implements ResponseResult {
17996 AnalysisStatus _analysis; 12877 String _version;
17997
17998 PubStatus _pub;
17999 12878
18000 /** 12879 /**
18001 * The current status of analysis, including whether analysis is being 12880 * The version number of the analysis server.
18002 * performed and if so what is being analyzed.
18003 */ 12881 */
18004 AnalysisStatus get analysis => _analysis; 12882 String get version => _version;
18005 12883
18006 /** 12884 /**
18007 * The current status of analysis, including whether analysis is being 12885 * The version number of the analysis server.
18008 * performed and if so what is being analyzed.
18009 */ 12886 */
18010 void set analysis(AnalysisStatus value) { 12887 void set version(String value) {
18011 this._analysis = value; 12888 assert(value != null);
12889 this._version = value;
18012 } 12890 }
18013 12891
18014 /** 12892 ServerGetVersionResult(String version) {
18015 * The current status of pub execution, indicating whether we are currently 12893 this.version = version;
18016 * running pub.
18017 */
18018 PubStatus get pub => _pub;
18019
18020 /**
18021 * The current status of pub execution, indicating whether we are currently
18022 * running pub.
18023 */
18024 void set pub(PubStatus value) {
18025 this._pub = value;
18026 } 12894 }
18027 12895
18028 ServerStatusParams({AnalysisStatus analysis, PubStatus pub}) { 12896 factory ServerGetVersionResult.fromJson(
18029 this.analysis = analysis;
18030 this.pub = pub;
18031 }
18032
18033 factory ServerStatusParams.fromJson(
18034 JsonDecoder jsonDecoder, String jsonPath, Object json) { 12897 JsonDecoder jsonDecoder, String jsonPath, Object json) {
18035 if (json == null) { 12898 if (json == null) {
18036 json = {}; 12899 json = {};
18037 } 12900 }
18038 if (json is Map) { 12901 if (json is Map) {
18039 AnalysisStatus analysis; 12902 String version;
18040 if (json.containsKey("analysis")) { 12903 if (json.containsKey("version")) {
18041 analysis = new AnalysisStatus.fromJson( 12904 version =
18042 jsonDecoder, jsonPath + ".analysis", json["analysis"]); 12905 jsonDecoder.decodeString(jsonPath + ".version", json["version"]);
12906 } else {
12907 throw jsonDecoder.mismatch(jsonPath, "version");
18043 } 12908 }
18044 PubStatus pub; 12909 return new ServerGetVersionResult(version);
18045 if (json.containsKey("pub")) {
18046 pub =
18047 new PubStatus.fromJson(jsonDecoder, jsonPath + ".pub", json["pub"]);
18048 }
18049 return new ServerStatusParams(analysis: analysis, pub: pub);
18050 } else { 12910 } else {
18051 throw jsonDecoder.mismatch(jsonPath, "server.status params", json); 12911 throw jsonDecoder.mismatch(jsonPath, "server.getVersion result", json);
18052 } 12912 }
18053 } 12913 }
18054 12914
18055 factory ServerStatusParams.fromNotification(Notification notification) { 12915 factory ServerGetVersionResult.fromResponse(Response response) {
18056 return new ServerStatusParams.fromJson( 12916 return new ServerGetVersionResult.fromJson(
18057 new ResponseDecoder(null), "params", notification.params); 12917 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
12918 "result",
12919 response.result);
18058 } 12920 }
18059 12921
18060 @override 12922 @override
18061 Map<String, dynamic> toJson() { 12923 Map<String, dynamic> toJson() {
18062 Map<String, dynamic> result = {}; 12924 Map<String, dynamic> result = {};
18063 if (analysis != null) { 12925 result["version"] = version;
18064 result["analysis"] = analysis.toJson();
18065 }
18066 if (pub != null) {
18067 result["pub"] = pub.toJson();
18068 }
18069 return result; 12926 return result;
18070 } 12927 }
18071 12928
18072 Notification toNotification() { 12929 @override
18073 return new Notification("server.status", toJson()); 12930 Response toResponse(String id) {
12931 return new Response(id, result: toJson());
18074 } 12932 }
18075 12933
18076 @override 12934 @override
18077 String toString() => JSON.encode(toJson()); 12935 String toString() => JSON.encode(toJson());
18078 12936
18079 @override 12937 @override
18080 bool operator ==(other) { 12938 bool operator ==(other) {
18081 if (other is ServerStatusParams) { 12939 if (other is ServerGetVersionResult) {
18082 return analysis == other.analysis && pub == other.pub; 12940 return version == other.version;
18083 } 12941 }
18084 return false; 12942 return false;
18085 } 12943 }
18086 12944
18087 @override 12945 @override
18088 int get hashCode { 12946 int get hashCode {
18089 int hash = 0; 12947 int hash = 0;
18090 hash = JenkinsSmiHash.combine(hash, analysis.hashCode); 12948 hash = JenkinsSmiHash.combine(hash, version.hashCode);
18091 hash = JenkinsSmiHash.combine(hash, pub.hashCode);
18092 return JenkinsSmiHash.finish(hash); 12949 return JenkinsSmiHash.finish(hash);
18093 } 12950 }
18094 } 12951 }
18095 12952
18096 /** 12953 /**
18097 * SourceChange 12954 * ServerService
18098 * 12955 *
18099 * { 12956 * enum {
18100 * "message": String 12957 * STATUS
18101 * "edits": List<SourceFileEdit>
18102 * "linkedEditGroups": List<LinkedEditGroup>
18103 * "selection": optional Position
18104 * } 12958 * }
18105 * 12959 *
18106 * Clients may not extend, implement or mix-in this class. 12960 * Clients may not extend, implement or mix-in this class.
18107 */ 12961 */
18108 class SourceChange implements HasToJson { 12962 class ServerService implements Enum {
18109 String _message; 12963 static const ServerService STATUS = const ServerService._("STATUS");
18110
18111 List<SourceFileEdit> _edits;
18112
18113 List<LinkedEditGroup> _linkedEditGroups;
18114
18115 Position _selection;
18116 12964
18117 /** 12965 /**
18118 * A human-readable description of the change to be applied. 12966 * A list containing all of the enum values that are defined.
18119 */ 12967 */
18120 String get message => _message; 12968 static const List<ServerService> VALUES = const <ServerService>[STATUS];
12969
12970 @override
12971 final String name;
12972
12973 const ServerService._(this.name);
12974
12975 factory ServerService(String name) {
12976 switch (name) {
12977 case "STATUS":
12978 return STATUS;
12979 }
12980 throw new Exception('Illegal enum value: $name');
12981 }
12982
12983 factory ServerService.fromJson(
12984 JsonDecoder jsonDecoder, String jsonPath, Object json) {
12985 if (json is String) {
12986 try {
12987 return new ServerService(json);
12988 } catch (_) {
12989 // Fall through
12990 }
12991 }
12992 throw jsonDecoder.mismatch(jsonPath, "ServerService", json);
12993 }
12994
12995 @override
12996 String toString() => "ServerService.$name";
12997
12998 String toJson() => name;
12999 }
13000
13001 /**
13002 * server.setSubscriptions params
13003 *
13004 * {
13005 * "subscriptions": List<ServerService>
13006 * }
13007 *
13008 * Clients may not extend, implement or mix-in this class.
13009 */
13010 class ServerSetSubscriptionsParams implements RequestParams {
13011 List<ServerService> _subscriptions;
18121 13012
18122 /** 13013 /**
18123 * A human-readable description of the change to be applied. 13014 * A list of the services being subscribed to.
18124 */ 13015 */
18125 void set message(String value) { 13016 List<ServerService> get subscriptions => _subscriptions;
13017
13018 /**
13019 * A list of the services being subscribed to.
13020 */
13021 void set subscriptions(List<ServerService> value) {
18126 assert(value != null); 13022 assert(value != null);
18127 this._message = value; 13023 this._subscriptions = value;
18128 } 13024 }
18129 13025
18130 /** 13026 ServerSetSubscriptionsParams(List<ServerService> subscriptions) {
18131 * A list of the edits used to effect the change, grouped by file. 13027 this.subscriptions = subscriptions;
18132 */
18133 List<SourceFileEdit> get edits => _edits;
18134
18135 /**
18136 * A list of the edits used to effect the change, grouped by file.
18137 */
18138 void set edits(List<SourceFileEdit> value) {
18139 assert(value != null);
18140 this._edits = value;
18141 } 13028 }
18142 13029
18143 /** 13030 factory ServerSetSubscriptionsParams.fromJson(
18144 * A list of the linked editing groups used to customize the changes that
18145 * were made.
18146 */
18147 List<LinkedEditGroup> get linkedEditGroups => _linkedEditGroups;
18148
18149 /**
18150 * A list of the linked editing groups used to customize the changes that
18151 * were made.
18152 */
18153 void set linkedEditGroups(List<LinkedEditGroup> value) {
18154 assert(value != null);
18155 this._linkedEditGroups = value;
18156 }
18157
18158 /**
18159 * The position that should be selected after the edits have been applied.
18160 */
18161 Position get selection => _selection;
18162
18163 /**
18164 * The position that should be selected after the edits have been applied.
18165 */
18166 void set selection(Position value) {
18167 this._selection = value;
18168 }
18169
18170 SourceChange(String message,
18171 {List<SourceFileEdit> edits,
18172 List<LinkedEditGroup> linkedEditGroups,
18173 Position selection}) {
18174 this.message = message;
18175 if (edits == null) {
18176 this.edits = <SourceFileEdit>[];
18177 } else {
18178 this.edits = edits;
18179 }
18180 if (linkedEditGroups == null) {
18181 this.linkedEditGroups = <LinkedEditGroup>[];
18182 } else {
18183 this.linkedEditGroups = linkedEditGroups;
18184 }
18185 this.selection = selection;
18186 }
18187
18188 factory SourceChange.fromJson(
18189 JsonDecoder jsonDecoder, String jsonPath, Object json) { 13031 JsonDecoder jsonDecoder, String jsonPath, Object json) {
18190 if (json == null) { 13032 if (json == null) {
18191 json = {}; 13033 json = {};
18192 } 13034 }
18193 if (json is Map) { 13035 if (json is Map) {
18194 String message; 13036 List<ServerService> subscriptions;
18195 if (json.containsKey("message")) { 13037 if (json.containsKey("subscriptions")) {
18196 message = 13038 subscriptions = jsonDecoder.decodeList(
18197 jsonDecoder.decodeString(jsonPath + ".message", json["message"]); 13039 jsonPath + ".subscriptions",
13040 json["subscriptions"],
13041 (String jsonPath, Object json) =>
13042 new ServerService.fromJson(jsonDecoder, jsonPath, json));
18198 } else { 13043 } else {
18199 throw jsonDecoder.mismatch(jsonPath, "message"); 13044 throw jsonDecoder.mismatch(jsonPath, "subscriptions");
18200 } 13045 }
18201 List<SourceFileEdit> edits; 13046 return new ServerSetSubscriptionsParams(subscriptions);
18202 if (json.containsKey("edits")) {
18203 edits = jsonDecoder.decodeList(
18204 jsonPath + ".edits",
18205 json["edits"],
18206 (String jsonPath, Object json) =>
18207 new SourceFileEdit.fromJson(jsonDecoder, jsonPath, json));
18208 } else {
18209 throw jsonDecoder.mismatch(jsonPath, "edits");
18210 }
18211 List<LinkedEditGroup> linkedEditGroups;
18212 if (json.containsKey("linkedEditGroups")) {
18213 linkedEditGroups = jsonDecoder.decodeList(
18214 jsonPath + ".linkedEditGroups",
18215 json["linkedEditGroups"],
18216 (String jsonPath, Object json) =>
18217 new LinkedEditGroup.fromJson(jsonDecoder, jsonPath, json));
18218 } else {
18219 throw jsonDecoder.mismatch(jsonPath, "linkedEditGroups");
18220 }
18221 Position selection;
18222 if (json.containsKey("selection")) {
18223 selection = new Position.fromJson(
18224 jsonDecoder, jsonPath + ".selection", json["selection"]);
18225 }
18226 return new SourceChange(message,
18227 edits: edits,
18228 linkedEditGroups: linkedEditGroups,
18229 selection: selection);
18230 } else { 13047 } else {
18231 throw jsonDecoder.mismatch(jsonPath, "SourceChange", json); 13048 throw jsonDecoder.mismatch(
13049 jsonPath, "server.setSubscriptions params", json);
18232 } 13050 }
18233 } 13051 }
18234 13052
13053 factory ServerSetSubscriptionsParams.fromRequest(Request request) {
13054 return new ServerSetSubscriptionsParams.fromJson(
13055 new RequestDecoder(request), "params", request.params);
13056 }
13057
18235 @override 13058 @override
18236 Map<String, dynamic> toJson() { 13059 Map<String, dynamic> toJson() {
18237 Map<String, dynamic> result = {}; 13060 Map<String, dynamic> result = {};
18238 result["message"] = message; 13061 result["subscriptions"] =
18239 result["edits"] = 13062 subscriptions.map((ServerService value) => value.toJson()).toList();
18240 edits.map((SourceFileEdit value) => value.toJson()).toList();
18241 result["linkedEditGroups"] = linkedEditGroups
18242 .map((LinkedEditGroup value) => value.toJson())
18243 .toList();
18244 if (selection != null) {
18245 result["selection"] = selection.toJson();
18246 }
18247 return result; 13063 return result;
18248 } 13064 }
18249 13065
18250 /** 13066 @override
18251 * Adds [edit] to the [FileEdit] for the given [file]. 13067 Request toRequest(String id) {
18252 */ 13068 return new Request(id, "server.setSubscriptions", toJson());
18253 void addEdit(String file, int fileStamp, SourceEdit edit) =>
18254 addEditToSourceChange(this, file, fileStamp, edit);
18255
18256 /**
18257 * Adds the given [FileEdit].
18258 */
18259 void addFileEdit(SourceFileEdit edit) {
18260 edits.add(edit);
18261 } 13069 }
18262 13070
18263 /**
18264 * Adds the given [LinkedEditGroup].
18265 */
18266 void addLinkedEditGroup(LinkedEditGroup linkedEditGroup) {
18267 linkedEditGroups.add(linkedEditGroup);
18268 }
18269
18270 /**
18271 * Returns the [FileEdit] for the given [file], maybe `null`.
18272 */
18273 SourceFileEdit getFileEdit(String file) => getChangeFileEdit(this, file);
18274
18275 @override 13071 @override
18276 String toString() => JSON.encode(toJson()); 13072 String toString() => JSON.encode(toJson());
18277 13073
18278 @override 13074 @override
18279 bool operator ==(other) { 13075 bool operator ==(other) {
18280 if (other is SourceChange) { 13076 if (other is ServerSetSubscriptionsParams) {
18281 return message == other.message && 13077 return listEqual(subscriptions, other.subscriptions,
18282 listEqual(edits, other.edits, 13078 (ServerService a, ServerService b) => a == b);
18283 (SourceFileEdit a, SourceFileEdit b) => a == b) &&
18284 listEqual(linkedEditGroups, other.linkedEditGroups,
18285 (LinkedEditGroup a, LinkedEditGroup b) => a == b) &&
18286 selection == other.selection;
18287 } 13079 }
18288 return false; 13080 return false;
18289 } 13081 }
18290 13082
18291 @override 13083 @override
18292 int get hashCode { 13084 int get hashCode {
18293 int hash = 0; 13085 int hash = 0;
18294 hash = JenkinsSmiHash.combine(hash, message.hashCode); 13086 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode);
18295 hash = JenkinsSmiHash.combine(hash, edits.hashCode);
18296 hash = JenkinsSmiHash.combine(hash, linkedEditGroups.hashCode);
18297 hash = JenkinsSmiHash.combine(hash, selection.hashCode);
18298 return JenkinsSmiHash.finish(hash); 13087 return JenkinsSmiHash.finish(hash);
18299 } 13088 }
18300 } 13089 }
18301 13090
18302 /** 13091 /**
18303 * SourceEdit 13092 * server.setSubscriptions result
13093 *
13094 * Clients may not extend, implement or mix-in this class.
13095 */
13096 class ServerSetSubscriptionsResult implements ResponseResult {
13097 @override
13098 Map<String, dynamic> toJson() => <String, dynamic>{};
13099
13100 @override
13101 Response toResponse(String id) {
13102 return new Response(id, result: null);
13103 }
13104
13105 @override
13106 bool operator ==(other) {
13107 if (other is ServerSetSubscriptionsResult) {
13108 return true;
13109 }
13110 return false;
13111 }
13112
13113 @override
13114 int get hashCode {
13115 return 748820900;
13116 }
13117 }
13118
13119 /**
13120 * server.shutdown params
13121 *
13122 * Clients may not extend, implement or mix-in this class.
13123 */
13124 class ServerShutdownParams implements RequestParams {
13125 @override
13126 Map<String, dynamic> toJson() => <String, dynamic>{};
13127
13128 @override
13129 Request toRequest(String id) {
13130 return new Request(id, "server.shutdown", null);
13131 }
13132
13133 @override
13134 bool operator ==(other) {
13135 if (other is ServerShutdownParams) {
13136 return true;
13137 }
13138 return false;
13139 }
13140
13141 @override
13142 int get hashCode {
13143 return 366630911;
13144 }
13145 }
13146
13147 /**
13148 * server.shutdown result
13149 *
13150 * Clients may not extend, implement or mix-in this class.
13151 */
13152 class ServerShutdownResult implements ResponseResult {
13153 @override
13154 Map<String, dynamic> toJson() => <String, dynamic>{};
13155
13156 @override
13157 Response toResponse(String id) {
13158 return new Response(id, result: null);
13159 }
13160
13161 @override
13162 bool operator ==(other) {
13163 if (other is ServerShutdownResult) {
13164 return true;
13165 }
13166 return false;
13167 }
13168
13169 @override
13170 int get hashCode {
13171 return 193626532;
13172 }
13173 }
13174
13175 /**
13176 * server.status params
18304 * 13177 *
18305 * { 13178 * {
18306 * "offset": int 13179 * "analysis": optional AnalysisStatus
18307 * "length": int 13180 * "pub": optional PubStatus
18308 * "replacement": String
18309 * "id": optional String
18310 * } 13181 * }
18311 * 13182 *
18312 * Clients may not extend, implement or mix-in this class. 13183 * Clients may not extend, implement or mix-in this class.
18313 */ 13184 */
18314 class SourceEdit implements HasToJson { 13185 class ServerStatusParams implements HasToJson {
18315 /** 13186 AnalysisStatus _analysis;
18316 * Get the result of applying a set of [edits] to the given [code]. Edits are
18317 * applied in the order they appear in [edits].
18318 */
18319 static String applySequence(String code, Iterable<SourceEdit> edits) =>
18320 applySequenceOfEdits(code, edits);
18321 13187
18322 int _offset; 13188 PubStatus _pub;
18323
18324 int _length;
18325
18326 String _replacement;
18327
18328 String _id;
18329 13189
18330 /** 13190 /**
18331 * The offset of the region to be modified. 13191 * The current status of analysis, including whether analysis is being
13192 * performed and if so what is being analyzed.
18332 */ 13193 */
18333 int get offset => _offset; 13194 AnalysisStatus get analysis => _analysis;
18334 13195
18335 /** 13196 /**
18336 * The offset of the region to be modified. 13197 * The current status of analysis, including whether analysis is being
13198 * performed and if so what is being analyzed.
18337 */ 13199 */
18338 void set offset(int value) { 13200 void set analysis(AnalysisStatus value) {
18339 assert(value != null); 13201 this._analysis = value;
18340 this._offset = value;
18341 } 13202 }
18342 13203
18343 /** 13204 /**
18344 * The length of the region to be modified. 13205 * The current status of pub execution, indicating whether we are currently
13206 * running pub.
18345 */ 13207 */
18346 int get length => _length; 13208 PubStatus get pub => _pub;
18347 13209
18348 /** 13210 /**
18349 * The length of the region to be modified. 13211 * The current status of pub execution, indicating whether we are currently
13212 * running pub.
18350 */ 13213 */
18351 void set length(int value) { 13214 void set pub(PubStatus value) {
18352 assert(value != null); 13215 this._pub = value;
18353 this._length = value;
18354 } 13216 }
18355 13217
18356 /** 13218 ServerStatusParams({AnalysisStatus analysis, PubStatus pub}) {
18357 * The code that is to replace the specified region in the original code. 13219 this.analysis = analysis;
18358 */ 13220 this.pub = pub;
18359 String get replacement => _replacement;
18360
18361 /**
18362 * The code that is to replace the specified region in the original code.
18363 */
18364 void set replacement(String value) {
18365 assert(value != null);
18366 this._replacement = value;
18367 } 13221 }
18368 13222
18369 /** 13223 factory ServerStatusParams.fromJson(
18370 * An identifier that uniquely identifies this source edit from other edits
18371 * in the same response. This field is omitted unless a containing structure
18372 * needs to be able to identify the edit for some reason.
18373 *
18374 * For example, some refactoring operations can produce edits that might not
18375 * be appropriate (referred to as potential edits). Such edits will have an
18376 * id so that they can be referenced. Edits in the same response that do not
18377 * need to be referenced will not have an id.
18378 */
18379 String get id => _id;
18380
18381 /**
18382 * An identifier that uniquely identifies this source edit from other edits
18383 * in the same response. This field is omitted unless a containing structure
18384 * needs to be able to identify the edit for some reason.
18385 *
18386 * For example, some refactoring operations can produce edits that might not
18387 * be appropriate (referred to as potential edits). Such edits will have an
18388 * id so that they can be referenced. Edits in the same response that do not
18389 * need to be referenced will not have an id.
18390 */
18391 void set id(String value) {
18392 this._id = value;
18393 }
18394
18395 SourceEdit(int offset, int length, String replacement, {String id}) {
18396 this.offset = offset;
18397 this.length = length;
18398 this.replacement = replacement;
18399 this.id = id;
18400 }
18401
18402 factory SourceEdit.fromJson(
18403 JsonDecoder jsonDecoder, String jsonPath, Object json) { 13224 JsonDecoder jsonDecoder, String jsonPath, Object json) {
18404 if (json == null) { 13225 if (json == null) {
18405 json = {}; 13226 json = {};
18406 } 13227 }
18407 if (json is Map) { 13228 if (json is Map) {
18408 int offset; 13229 AnalysisStatus analysis;
18409 if (json.containsKey("offset")) { 13230 if (json.containsKey("analysis")) {
18410 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); 13231 analysis = new AnalysisStatus.fromJson(
18411 } else { 13232 jsonDecoder, jsonPath + ".analysis", json["analysis"]);
18412 throw jsonDecoder.mismatch(jsonPath, "offset");
18413 } 13233 }
18414 int length; 13234 PubStatus pub;
18415 if (json.containsKey("length")) { 13235 if (json.containsKey("pub")) {
18416 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); 13236 pub =
18417 } else { 13237 new PubStatus.fromJson(jsonDecoder, jsonPath + ".pub", json["pub"]);
18418 throw jsonDecoder.mismatch(jsonPath, "length");
18419 } 13238 }
18420 String replacement; 13239 return new ServerStatusParams(analysis: analysis, pub: pub);
18421 if (json.containsKey("replacement")) {
18422 replacement = jsonDecoder.decodeString(
18423 jsonPath + ".replacement", json["replacement"]);
18424 } else {
18425 throw jsonDecoder.mismatch(jsonPath, "replacement");
18426 }
18427 String id;
18428 if (json.containsKey("id")) {
18429 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
18430 }
18431 return new SourceEdit(offset, length, replacement, id: id);
18432 } else { 13240 } else {
18433 throw jsonDecoder.mismatch(jsonPath, "SourceEdit", json); 13241 throw jsonDecoder.mismatch(jsonPath, "server.status params", json);
18434 } 13242 }
18435 } 13243 }
18436 13244
18437 /** 13245 factory ServerStatusParams.fromNotification(Notification notification) {
18438 * The end of the region to be modified. 13246 return new ServerStatusParams.fromJson(
18439 */ 13247 new ResponseDecoder(null), "params", notification.params);
18440 int get end => offset + length; 13248 }
18441 13249
18442 @override 13250 @override
18443 Map<String, dynamic> toJson() { 13251 Map<String, dynamic> toJson() {
18444 Map<String, dynamic> result = {}; 13252 Map<String, dynamic> result = {};
18445 result["offset"] = offset; 13253 if (analysis != null) {
18446 result["length"] = length; 13254 result["analysis"] = analysis.toJson();
18447 result["replacement"] = replacement; 13255 }
18448 if (id != null) { 13256 if (pub != null) {
18449 result["id"] = id; 13257 result["pub"] = pub.toJson();
18450 } 13258 }
18451 return result; 13259 return result;
18452 } 13260 }
18453 13261
18454 /** 13262 Notification toNotification() {
18455 * Get the result of applying the edit to the given [code]. 13263 return new Notification("server.status", toJson());
18456 */ 13264 }
18457 String apply(String code) => applyEdit(code, this);
18458 13265
18459 @override 13266 @override
18460 String toString() => JSON.encode(toJson()); 13267 String toString() => JSON.encode(toJson());
18461 13268
18462 @override 13269 @override
18463 bool operator ==(other) { 13270 bool operator ==(other) {
18464 if (other is SourceEdit) { 13271 if (other is ServerStatusParams) {
18465 return offset == other.offset && 13272 return analysis == other.analysis && pub == other.pub;
18466 length == other.length &&
18467 replacement == other.replacement &&
18468 id == other.id;
18469 } 13273 }
18470 return false; 13274 return false;
18471 } 13275 }
18472
18473 @override
18474 int get hashCode {
18475 int hash = 0;
18476 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
18477 hash = JenkinsSmiHash.combine(hash, length.hashCode);
18478 hash = JenkinsSmiHash.combine(hash, replacement.hashCode);
18479 hash = JenkinsSmiHash.combine(hash, id.hashCode);
18480 return JenkinsSmiHash.finish(hash);
18481 }
18482 }
18483
18484 /**
18485 * SourceFileEdit
18486 *
18487 * {
18488 * "file": FilePath
18489 * "fileStamp": long
18490 * "edits": List<SourceEdit>
18491 * }
18492 *
18493 * Clients may not extend, implement or mix-in this class.
18494 */
18495 class SourceFileEdit implements HasToJson {
18496 String _file;
18497
18498 int _fileStamp;
18499
18500 List<SourceEdit> _edits;
18501
18502 /**
18503 * The file containing the code to be modified.
18504 */
18505 String get file => _file;
18506
18507 /**
18508 * The file containing the code to be modified.
18509 */
18510 void set file(String value) {
18511 assert(value != null);
18512 this._file = value;
18513 }
18514
18515 /**
18516 * The modification stamp of the file at the moment when the change was
18517 * created, in milliseconds since the "Unix epoch". Will be -1 if the file
18518 * did not exist and should be created. The client may use this field to make
18519 * sure that the file was not changed since then, so it is safe to apply the
18520 * change.
18521 */
18522 int get fileStamp => _fileStamp;
18523
18524 /**
18525 * The modification stamp of the file at the moment when the change was
18526 * created, in milliseconds since the "Unix epoch". Will be -1 if the file
18527 * did not exist and should be created. The client may use this field to make
18528 * sure that the file was not changed since then, so it is safe to apply the
18529 * change.
18530 */
18531 void set fileStamp(int value) {
18532 assert(value != null);
18533 this._fileStamp = value;
18534 }
18535
18536 /**
18537 * A list of the edits used to effect the change.
18538 */
18539 List<SourceEdit> get edits => _edits;
18540
18541 /**
18542 * A list of the edits used to effect the change.
18543 */
18544 void set edits(List<SourceEdit> value) {
18545 assert(value != null);
18546 this._edits = value;
18547 }
18548
18549 SourceFileEdit(String file, int fileStamp, {List<SourceEdit> edits}) {
18550 this.file = file;
18551 this.fileStamp = fileStamp;
18552 if (edits == null) {
18553 this.edits = <SourceEdit>[];
18554 } else {
18555 this.edits = edits;
18556 }
18557 }
18558
18559 factory SourceFileEdit.fromJson(
18560 JsonDecoder jsonDecoder, String jsonPath, Object json) {
18561 if (json == null) {
18562 json = {};
18563 }
18564 if (json is Map) {
18565 String file;
18566 if (json.containsKey("file")) {
18567 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
18568 } else {
18569 throw jsonDecoder.mismatch(jsonPath, "file");
18570 }
18571 int fileStamp;
18572 if (json.containsKey("fileStamp")) {
18573 fileStamp =
18574 jsonDecoder.decodeInt(jsonPath + ".fileStamp", json["fileStamp"]);
18575 } else {
18576 throw jsonDecoder.mismatch(jsonPath, "fileStamp");
18577 }
18578 List<SourceEdit> edits;
18579 if (json.containsKey("edits")) {
18580 edits = jsonDecoder.decodeList(
18581 jsonPath + ".edits",
18582 json["edits"],
18583 (String jsonPath, Object json) =>
18584 new SourceEdit.fromJson(jsonDecoder, jsonPath, json));
18585 } else {
18586 throw jsonDecoder.mismatch(jsonPath, "edits");
18587 }
18588 return new SourceFileEdit(file, fileStamp, edits: edits);
18589 } else {
18590 throw jsonDecoder.mismatch(jsonPath, "SourceFileEdit", json);
18591 }
18592 }
18593
18594 @override
18595 Map<String, dynamic> toJson() {
18596 Map<String, dynamic> result = {};
18597 result["file"] = file;
18598 result["fileStamp"] = fileStamp;
18599 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList();
18600 return result;
18601 }
18602
18603 /**
18604 * Adds the given [Edit] to the list.
18605 */
18606 void add(SourceEdit edit) => addEditForSource(this, edit);
18607
18608 /**
18609 * Adds the given [Edit]s.
18610 */
18611 void addAll(Iterable<SourceEdit> edits) => addAllEditsForSource(this, edits);
18612
18613 @override
18614 String toString() => JSON.encode(toJson());
18615
18616 @override
18617 bool operator ==(other) {
18618 if (other is SourceFileEdit) {
18619 return file == other.file &&
18620 fileStamp == other.fileStamp &&
18621 listEqual(edits, other.edits, (SourceEdit a, SourceEdit b) => a == b);
18622 }
18623 return false;
18624 }
18625 13276
18626 @override 13277 @override
18627 int get hashCode { 13278 int get hashCode {
18628 int hash = 0; 13279 int hash = 0;
18629 hash = JenkinsSmiHash.combine(hash, file.hashCode); 13280 hash = JenkinsSmiHash.combine(hash, analysis.hashCode);
18630 hash = JenkinsSmiHash.combine(hash, fileStamp.hashCode); 13281 hash = JenkinsSmiHash.combine(hash, pub.hashCode);
18631 hash = JenkinsSmiHash.combine(hash, edits.hashCode);
18632 return JenkinsSmiHash.finish(hash); 13282 return JenkinsSmiHash.finish(hash);
18633 } 13283 }
18634 } 13284 }
18635 13285
18636 /** 13286 /**
18637 * TypeHierarchyItem 13287 * TypeHierarchyItem
18638 * 13288 *
18639 * { 13289 * {
18640 * "classElement": Element 13290 * "classElement": Element
18641 * "displayName": optional String 13291 * "displayName": optional String
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
18904 hash = JenkinsSmiHash.combine(hash, classElement.hashCode); 13554 hash = JenkinsSmiHash.combine(hash, classElement.hashCode);
18905 hash = JenkinsSmiHash.combine(hash, displayName.hashCode); 13555 hash = JenkinsSmiHash.combine(hash, displayName.hashCode);
18906 hash = JenkinsSmiHash.combine(hash, memberElement.hashCode); 13556 hash = JenkinsSmiHash.combine(hash, memberElement.hashCode);
18907 hash = JenkinsSmiHash.combine(hash, superclass.hashCode); 13557 hash = JenkinsSmiHash.combine(hash, superclass.hashCode);
18908 hash = JenkinsSmiHash.combine(hash, interfaces.hashCode); 13558 hash = JenkinsSmiHash.combine(hash, interfaces.hashCode);
18909 hash = JenkinsSmiHash.combine(hash, mixins.hashCode); 13559 hash = JenkinsSmiHash.combine(hash, mixins.hashCode);
18910 hash = JenkinsSmiHash.combine(hash, subclasses.hashCode); 13560 hash = JenkinsSmiHash.combine(hash, subclasses.hashCode);
18911 return JenkinsSmiHash.finish(hash); 13561 return JenkinsSmiHash.finish(hash);
18912 } 13562 }
18913 } 13563 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/protocol/protocol.dart ('k') | pkg/analysis_server/lib/src/analysis_server.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698