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

Side by Side Diff: pkg/analysis_server/lib/plugin/protocol/generated_protocol.dart

Issue 2844273003: Unify the server and plugin versions of the generators (Closed)
Patch Set: add missed files 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
(Empty)
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
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.
4 //
5 // This file has been automatically generated. Please do not edit it manually.
6 // To regenerate the file, use the script
7 // "pkg/analysis_server/tool/spec/generate_files".
8
9 part of analysis_server.plugin.protocol.protocol;
10
11 /**
12 * server.getVersion params
13 *
14 * Clients may not extend, implement or mix-in this class.
15 */
16 class ServerGetVersionParams {
17 Request toRequest(String id) {
18 return new Request(id, "server.getVersion", null);
19 }
20
21 @override
22 bool operator ==(other) {
23 if (other is ServerGetVersionParams) {
24 return true;
25 }
26 return false;
27 }
28
29 @override
30 int get hashCode {
31 return 55877452;
32 }
33 }
34
35 /**
36 * server.getVersion result
37 *
38 * {
39 * "version": String
40 * }
41 *
42 * Clients may not extend, implement or mix-in this class.
43 */
44 class ServerGetVersionResult implements HasToJson {
45 String _version;
46
47 /**
48 * The version number of the analysis server.
49 */
50 String get version => _version;
51
52 /**
53 * The version number of the analysis server.
54 */
55 void set version(String value) {
56 assert(value != null);
57 this._version = value;
58 }
59
60 ServerGetVersionResult(String version) {
61 this.version = version;
62 }
63
64 factory ServerGetVersionResult.fromJson(
65 JsonDecoder jsonDecoder, String jsonPath, Object json) {
66 if (json == null) {
67 json = {};
68 }
69 if (json is Map) {
70 String version;
71 if (json.containsKey("version")) {
72 version =
73 jsonDecoder.decodeString(jsonPath + ".version", json["version"]);
74 } else {
75 throw jsonDecoder.missingKey(jsonPath, "version");
76 }
77 return new ServerGetVersionResult(version);
78 } else {
79 throw jsonDecoder.mismatch(jsonPath, "server.getVersion result", json);
80 }
81 }
82
83 factory ServerGetVersionResult.fromResponse(Response response) {
84 return new ServerGetVersionResult.fromJson(
85 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
86 "result",
87 response._result);
88 }
89
90 Map<String, dynamic> toJson() {
91 Map<String, dynamic> result = {};
92 result["version"] = version;
93 return result;
94 }
95
96 Response toResponse(String id) {
97 return new Response(id, result: toJson());
98 }
99
100 @override
101 String toString() => JSON.encode(toJson());
102
103 @override
104 bool operator ==(other) {
105 if (other is ServerGetVersionResult) {
106 return version == other.version;
107 }
108 return false;
109 }
110
111 @override
112 int get hashCode {
113 int hash = 0;
114 hash = JenkinsSmiHash.combine(hash, version.hashCode);
115 return JenkinsSmiHash.finish(hash);
116 }
117 }
118
119 /**
120 * server.shutdown params
121 *
122 * Clients may not extend, implement or mix-in this class.
123 */
124 class ServerShutdownParams {
125 Request toRequest(String id) {
126 return new Request(id, "server.shutdown", null);
127 }
128
129 @override
130 bool operator ==(other) {
131 if (other is ServerShutdownParams) {
132 return true;
133 }
134 return false;
135 }
136
137 @override
138 int get hashCode {
139 return 366630911;
140 }
141 }
142
143 /**
144 * server.shutdown result
145 *
146 * Clients may not extend, implement or mix-in this class.
147 */
148 class ServerShutdownResult {
149 Response toResponse(String id) {
150 return new Response(id, result: null);
151 }
152
153 @override
154 bool operator ==(other) {
155 if (other is ServerShutdownResult) {
156 return true;
157 }
158 return false;
159 }
160
161 @override
162 int get hashCode {
163 return 193626532;
164 }
165 }
166
167 /**
168 * server.setSubscriptions params
169 *
170 * {
171 * "subscriptions": List<ServerService>
172 * }
173 *
174 * Clients may not extend, implement or mix-in this class.
175 */
176 class ServerSetSubscriptionsParams implements HasToJson {
177 List<ServerService> _subscriptions;
178
179 /**
180 * A list of the services being subscribed to.
181 */
182 List<ServerService> get subscriptions => _subscriptions;
183
184 /**
185 * A list of the services being subscribed to.
186 */
187 void set subscriptions(List<ServerService> value) {
188 assert(value != null);
189 this._subscriptions = value;
190 }
191
192 ServerSetSubscriptionsParams(List<ServerService> subscriptions) {
193 this.subscriptions = subscriptions;
194 }
195
196 factory ServerSetSubscriptionsParams.fromJson(
197 JsonDecoder jsonDecoder, String jsonPath, Object json) {
198 if (json == null) {
199 json = {};
200 }
201 if (json is Map) {
202 List<ServerService> subscriptions;
203 if (json.containsKey("subscriptions")) {
204 subscriptions = jsonDecoder.decodeList(
205 jsonPath + ".subscriptions",
206 json["subscriptions"],
207 (String jsonPath, Object json) =>
208 new ServerService.fromJson(jsonDecoder, jsonPath, json));
209 } else {
210 throw jsonDecoder.missingKey(jsonPath, "subscriptions");
211 }
212 return new ServerSetSubscriptionsParams(subscriptions);
213 } else {
214 throw jsonDecoder.mismatch(
215 jsonPath, "server.setSubscriptions params", json);
216 }
217 }
218
219 factory ServerSetSubscriptionsParams.fromRequest(Request request) {
220 return new ServerSetSubscriptionsParams.fromJson(
221 new RequestDecoder(request), "params", request._params);
222 }
223
224 Map<String, dynamic> toJson() {
225 Map<String, dynamic> result = {};
226 result["subscriptions"] =
227 subscriptions.map((ServerService value) => value.toJson()).toList();
228 return result;
229 }
230
231 Request toRequest(String id) {
232 return new Request(id, "server.setSubscriptions", toJson());
233 }
234
235 @override
236 String toString() => JSON.encode(toJson());
237
238 @override
239 bool operator ==(other) {
240 if (other is ServerSetSubscriptionsParams) {
241 return listEqual(subscriptions, other.subscriptions,
242 (ServerService a, ServerService b) => a == b);
243 }
244 return false;
245 }
246
247 @override
248 int get hashCode {
249 int hash = 0;
250 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode);
251 return JenkinsSmiHash.finish(hash);
252 }
253 }
254
255 /**
256 * server.setSubscriptions result
257 *
258 * Clients may not extend, implement or mix-in this class.
259 */
260 class ServerSetSubscriptionsResult {
261 Response toResponse(String id) {
262 return new Response(id, result: null);
263 }
264
265 @override
266 bool operator ==(other) {
267 if (other is ServerSetSubscriptionsResult) {
268 return true;
269 }
270 return false;
271 }
272
273 @override
274 int get hashCode {
275 return 748820900;
276 }
277 }
278
279 /**
280 * server.connected params
281 *
282 * {
283 * "version": String
284 * "pid": int
285 * "sessionId": optional String
286 * }
287 *
288 * Clients may not extend, implement or mix-in this class.
289 */
290 class ServerConnectedParams implements HasToJson {
291 String _version;
292
293 int _pid;
294
295 String _sessionId;
296
297 /**
298 * The version number of the analysis server.
299 */
300 String get version => _version;
301
302 /**
303 * The version number of the analysis server.
304 */
305 void set version(String value) {
306 assert(value != null);
307 this._version = value;
308 }
309
310 /**
311 * The process id of the analysis server process.
312 */
313 int get pid => _pid;
314
315 /**
316 * The process id of the analysis server process.
317 */
318 void set pid(int value) {
319 assert(value != null);
320 this._pid = value;
321 }
322
323 /**
324 * The session id for this session.
325 */
326 String get sessionId => _sessionId;
327
328 /**
329 * The session id for this session.
330 */
331 void set sessionId(String value) {
332 this._sessionId = value;
333 }
334
335 ServerConnectedParams(String version, int pid, {String sessionId}) {
336 this.version = version;
337 this.pid = pid;
338 this.sessionId = sessionId;
339 }
340
341 factory ServerConnectedParams.fromJson(
342 JsonDecoder jsonDecoder, String jsonPath, Object json) {
343 if (json == null) {
344 json = {};
345 }
346 if (json is Map) {
347 String version;
348 if (json.containsKey("version")) {
349 version =
350 jsonDecoder.decodeString(jsonPath + ".version", json["version"]);
351 } else {
352 throw jsonDecoder.missingKey(jsonPath, "version");
353 }
354 int pid;
355 if (json.containsKey("pid")) {
356 pid = jsonDecoder.decodeInt(jsonPath + ".pid", json["pid"]);
357 } else {
358 throw jsonDecoder.missingKey(jsonPath, "pid");
359 }
360 String sessionId;
361 if (json.containsKey("sessionId")) {
362 sessionId = jsonDecoder.decodeString(
363 jsonPath + ".sessionId", json["sessionId"]);
364 }
365 return new ServerConnectedParams(version, pid, sessionId: sessionId);
366 } else {
367 throw jsonDecoder.mismatch(jsonPath, "server.connected params", json);
368 }
369 }
370
371 factory ServerConnectedParams.fromNotification(Notification notification) {
372 return new ServerConnectedParams.fromJson(
373 new ResponseDecoder(null), "params", notification._params);
374 }
375
376 Map<String, dynamic> toJson() {
377 Map<String, dynamic> result = {};
378 result["version"] = version;
379 result["pid"] = pid;
380 if (sessionId != null) {
381 result["sessionId"] = sessionId;
382 }
383 return result;
384 }
385
386 Notification toNotification() {
387 return new Notification("server.connected", toJson());
388 }
389
390 @override
391 String toString() => JSON.encode(toJson());
392
393 @override
394 bool operator ==(other) {
395 if (other is ServerConnectedParams) {
396 return version == other.version &&
397 pid == other.pid &&
398 sessionId == other.sessionId;
399 }
400 return false;
401 }
402
403 @override
404 int get hashCode {
405 int hash = 0;
406 hash = JenkinsSmiHash.combine(hash, version.hashCode);
407 hash = JenkinsSmiHash.combine(hash, pid.hashCode);
408 hash = JenkinsSmiHash.combine(hash, sessionId.hashCode);
409 return JenkinsSmiHash.finish(hash);
410 }
411 }
412
413 /**
414 * server.error params
415 *
416 * {
417 * "isFatal": bool
418 * "message": String
419 * "stackTrace": String
420 * }
421 *
422 * Clients may not extend, implement or mix-in this class.
423 */
424 class ServerErrorParams implements HasToJson {
425 bool _isFatal;
426
427 String _message;
428
429 String _stackTrace;
430
431 /**
432 * True if the error is a fatal error, meaning that the server will shutdown
433 * automatically after sending this notification.
434 */
435 bool get isFatal => _isFatal;
436
437 /**
438 * True if the error is a fatal error, meaning that the server will shutdown
439 * automatically after sending this notification.
440 */
441 void set isFatal(bool value) {
442 assert(value != null);
443 this._isFatal = value;
444 }
445
446 /**
447 * The error message indicating what kind of error was encountered.
448 */
449 String get message => _message;
450
451 /**
452 * The error message indicating what kind of error was encountered.
453 */
454 void set message(String value) {
455 assert(value != null);
456 this._message = value;
457 }
458
459 /**
460 * The stack trace associated with the generation of the error, used for
461 * debugging the server.
462 */
463 String get stackTrace => _stackTrace;
464
465 /**
466 * The stack trace associated with the generation of the error, used for
467 * debugging the server.
468 */
469 void set stackTrace(String value) {
470 assert(value != null);
471 this._stackTrace = value;
472 }
473
474 ServerErrorParams(bool isFatal, String message, String stackTrace) {
475 this.isFatal = isFatal;
476 this.message = message;
477 this.stackTrace = stackTrace;
478 }
479
480 factory ServerErrorParams.fromJson(
481 JsonDecoder jsonDecoder, String jsonPath, Object json) {
482 if (json == null) {
483 json = {};
484 }
485 if (json is Map) {
486 bool isFatal;
487 if (json.containsKey("isFatal")) {
488 isFatal =
489 jsonDecoder.decodeBool(jsonPath + ".isFatal", json["isFatal"]);
490 } else {
491 throw jsonDecoder.missingKey(jsonPath, "isFatal");
492 }
493 String message;
494 if (json.containsKey("message")) {
495 message =
496 jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
497 } else {
498 throw jsonDecoder.missingKey(jsonPath, "message");
499 }
500 String stackTrace;
501 if (json.containsKey("stackTrace")) {
502 stackTrace = jsonDecoder.decodeString(
503 jsonPath + ".stackTrace", json["stackTrace"]);
504 } else {
505 throw jsonDecoder.missingKey(jsonPath, "stackTrace");
506 }
507 return new ServerErrorParams(isFatal, message, stackTrace);
508 } else {
509 throw jsonDecoder.mismatch(jsonPath, "server.error params", json);
510 }
511 }
512
513 factory ServerErrorParams.fromNotification(Notification notification) {
514 return new ServerErrorParams.fromJson(
515 new ResponseDecoder(null), "params", notification._params);
516 }
517
518 Map<String, dynamic> toJson() {
519 Map<String, dynamic> result = {};
520 result["isFatal"] = isFatal;
521 result["message"] = message;
522 result["stackTrace"] = stackTrace;
523 return result;
524 }
525
526 Notification toNotification() {
527 return new Notification("server.error", toJson());
528 }
529
530 @override
531 String toString() => JSON.encode(toJson());
532
533 @override
534 bool operator ==(other) {
535 if (other is ServerErrorParams) {
536 return isFatal == other.isFatal &&
537 message == other.message &&
538 stackTrace == other.stackTrace;
539 }
540 return false;
541 }
542
543 @override
544 int get hashCode {
545 int hash = 0;
546 hash = JenkinsSmiHash.combine(hash, isFatal.hashCode);
547 hash = JenkinsSmiHash.combine(hash, message.hashCode);
548 hash = JenkinsSmiHash.combine(hash, stackTrace.hashCode);
549 return JenkinsSmiHash.finish(hash);
550 }
551 }
552
553 /**
554 * server.status params
555 *
556 * {
557 * "analysis": optional AnalysisStatus
558 * "pub": optional PubStatus
559 * }
560 *
561 * Clients may not extend, implement or mix-in this class.
562 */
563 class ServerStatusParams implements HasToJson {
564 AnalysisStatus _analysis;
565
566 PubStatus _pub;
567
568 /**
569 * The current status of analysis, including whether analysis is being
570 * performed and if so what is being analyzed.
571 */
572 AnalysisStatus get analysis => _analysis;
573
574 /**
575 * The current status of analysis, including whether analysis is being
576 * performed and if so what is being analyzed.
577 */
578 void set analysis(AnalysisStatus value) {
579 this._analysis = value;
580 }
581
582 /**
583 * The current status of pub execution, indicating whether we are currently
584 * running pub.
585 */
586 PubStatus get pub => _pub;
587
588 /**
589 * The current status of pub execution, indicating whether we are currently
590 * running pub.
591 */
592 void set pub(PubStatus value) {
593 this._pub = value;
594 }
595
596 ServerStatusParams({AnalysisStatus analysis, PubStatus pub}) {
597 this.analysis = analysis;
598 this.pub = pub;
599 }
600
601 factory ServerStatusParams.fromJson(
602 JsonDecoder jsonDecoder, String jsonPath, Object json) {
603 if (json == null) {
604 json = {};
605 }
606 if (json is Map) {
607 AnalysisStatus analysis;
608 if (json.containsKey("analysis")) {
609 analysis = new AnalysisStatus.fromJson(
610 jsonDecoder, jsonPath + ".analysis", json["analysis"]);
611 }
612 PubStatus pub;
613 if (json.containsKey("pub")) {
614 pub =
615 new PubStatus.fromJson(jsonDecoder, jsonPath + ".pub", json["pub"]);
616 }
617 return new ServerStatusParams(analysis: analysis, pub: pub);
618 } else {
619 throw jsonDecoder.mismatch(jsonPath, "server.status params", json);
620 }
621 }
622
623 factory ServerStatusParams.fromNotification(Notification notification) {
624 return new ServerStatusParams.fromJson(
625 new ResponseDecoder(null), "params", notification._params);
626 }
627
628 Map<String, dynamic> toJson() {
629 Map<String, dynamic> result = {};
630 if (analysis != null) {
631 result["analysis"] = analysis.toJson();
632 }
633 if (pub != null) {
634 result["pub"] = pub.toJson();
635 }
636 return result;
637 }
638
639 Notification toNotification() {
640 return new Notification("server.status", toJson());
641 }
642
643 @override
644 String toString() => JSON.encode(toJson());
645
646 @override
647 bool operator ==(other) {
648 if (other is ServerStatusParams) {
649 return analysis == other.analysis && pub == other.pub;
650 }
651 return false;
652 }
653
654 @override
655 int get hashCode {
656 int hash = 0;
657 hash = JenkinsSmiHash.combine(hash, analysis.hashCode);
658 hash = JenkinsSmiHash.combine(hash, pub.hashCode);
659 return JenkinsSmiHash.finish(hash);
660 }
661 }
662
663 /**
664 * analysis.getErrors params
665 *
666 * {
667 * "file": FilePath
668 * }
669 *
670 * Clients may not extend, implement or mix-in this class.
671 */
672 class AnalysisGetErrorsParams implements HasToJson {
673 String _file;
674
675 /**
676 * The file for which errors are being requested.
677 */
678 String get file => _file;
679
680 /**
681 * The file for which errors are being requested.
682 */
683 void set file(String value) {
684 assert(value != null);
685 this._file = value;
686 }
687
688 AnalysisGetErrorsParams(String file) {
689 this.file = file;
690 }
691
692 factory AnalysisGetErrorsParams.fromJson(
693 JsonDecoder jsonDecoder, String jsonPath, Object json) {
694 if (json == null) {
695 json = {};
696 }
697 if (json is Map) {
698 String file;
699 if (json.containsKey("file")) {
700 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
701 } else {
702 throw jsonDecoder.missingKey(jsonPath, "file");
703 }
704 return new AnalysisGetErrorsParams(file);
705 } else {
706 throw jsonDecoder.mismatch(jsonPath, "analysis.getErrors params", json);
707 }
708 }
709
710 factory AnalysisGetErrorsParams.fromRequest(Request request) {
711 return new AnalysisGetErrorsParams.fromJson(
712 new RequestDecoder(request), "params", request._params);
713 }
714
715 Map<String, dynamic> toJson() {
716 Map<String, dynamic> result = {};
717 result["file"] = file;
718 return result;
719 }
720
721 Request toRequest(String id) {
722 return new Request(id, "analysis.getErrors", toJson());
723 }
724
725 @override
726 String toString() => JSON.encode(toJson());
727
728 @override
729 bool operator ==(other) {
730 if (other is AnalysisGetErrorsParams) {
731 return file == other.file;
732 }
733 return false;
734 }
735
736 @override
737 int get hashCode {
738 int hash = 0;
739 hash = JenkinsSmiHash.combine(hash, file.hashCode);
740 return JenkinsSmiHash.finish(hash);
741 }
742 }
743
744 /**
745 * analysis.getErrors result
746 *
747 * {
748 * "errors": List<AnalysisError>
749 * }
750 *
751 * Clients may not extend, implement or mix-in this class.
752 */
753 class AnalysisGetErrorsResult implements HasToJson {
754 List<AnalysisError> _errors;
755
756 /**
757 * The errors associated with the file.
758 */
759 List<AnalysisError> get errors => _errors;
760
761 /**
762 * The errors associated with the file.
763 */
764 void set errors(List<AnalysisError> value) {
765 assert(value != null);
766 this._errors = value;
767 }
768
769 AnalysisGetErrorsResult(List<AnalysisError> errors) {
770 this.errors = errors;
771 }
772
773 factory AnalysisGetErrorsResult.fromJson(
774 JsonDecoder jsonDecoder, String jsonPath, Object json) {
775 if (json == null) {
776 json = {};
777 }
778 if (json is Map) {
779 List<AnalysisError> errors;
780 if (json.containsKey("errors")) {
781 errors = jsonDecoder.decodeList(
782 jsonPath + ".errors",
783 json["errors"],
784 (String jsonPath, Object json) =>
785 new AnalysisError.fromJson(jsonDecoder, jsonPath, json));
786 } else {
787 throw jsonDecoder.missingKey(jsonPath, "errors");
788 }
789 return new AnalysisGetErrorsResult(errors);
790 } else {
791 throw jsonDecoder.mismatch(jsonPath, "analysis.getErrors result", json);
792 }
793 }
794
795 factory AnalysisGetErrorsResult.fromResponse(Response response) {
796 return new AnalysisGetErrorsResult.fromJson(
797 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
798 "result",
799 response._result);
800 }
801
802 Map<String, dynamic> toJson() {
803 Map<String, dynamic> result = {};
804 result["errors"] =
805 errors.map((AnalysisError value) => value.toJson()).toList();
806 return result;
807 }
808
809 Response toResponse(String id) {
810 return new Response(id, result: toJson());
811 }
812
813 @override
814 String toString() => JSON.encode(toJson());
815
816 @override
817 bool operator ==(other) {
818 if (other is AnalysisGetErrorsResult) {
819 return listEqual(
820 errors, other.errors, (AnalysisError a, AnalysisError b) => a == b);
821 }
822 return false;
823 }
824
825 @override
826 int get hashCode {
827 int hash = 0;
828 hash = JenkinsSmiHash.combine(hash, errors.hashCode);
829 return JenkinsSmiHash.finish(hash);
830 }
831 }
832
833 /**
834 * analysis.getHover params
835 *
836 * {
837 * "file": FilePath
838 * "offset": int
839 * }
840 *
841 * Clients may not extend, implement or mix-in this class.
842 */
843 class AnalysisGetHoverParams implements HasToJson {
844 String _file;
845
846 int _offset;
847
848 /**
849 * The file in which hover information is being requested.
850 */
851 String get file => _file;
852
853 /**
854 * The file in which hover information is being requested.
855 */
856 void set file(String value) {
857 assert(value != null);
858 this._file = value;
859 }
860
861 /**
862 * The offset for which hover information is being requested.
863 */
864 int get offset => _offset;
865
866 /**
867 * The offset for which hover information is being requested.
868 */
869 void set offset(int value) {
870 assert(value != null);
871 this._offset = value;
872 }
873
874 AnalysisGetHoverParams(String file, int offset) {
875 this.file = file;
876 this.offset = offset;
877 }
878
879 factory AnalysisGetHoverParams.fromJson(
880 JsonDecoder jsonDecoder, String jsonPath, Object json) {
881 if (json == null) {
882 json = {};
883 }
884 if (json is Map) {
885 String file;
886 if (json.containsKey("file")) {
887 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
888 } else {
889 throw jsonDecoder.missingKey(jsonPath, "file");
890 }
891 int offset;
892 if (json.containsKey("offset")) {
893 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
894 } else {
895 throw jsonDecoder.missingKey(jsonPath, "offset");
896 }
897 return new AnalysisGetHoverParams(file, offset);
898 } else {
899 throw jsonDecoder.mismatch(jsonPath, "analysis.getHover params", json);
900 }
901 }
902
903 factory AnalysisGetHoverParams.fromRequest(Request request) {
904 return new AnalysisGetHoverParams.fromJson(
905 new RequestDecoder(request), "params", request._params);
906 }
907
908 Map<String, dynamic> toJson() {
909 Map<String, dynamic> result = {};
910 result["file"] = file;
911 result["offset"] = offset;
912 return result;
913 }
914
915 Request toRequest(String id) {
916 return new Request(id, "analysis.getHover", toJson());
917 }
918
919 @override
920 String toString() => JSON.encode(toJson());
921
922 @override
923 bool operator ==(other) {
924 if (other is AnalysisGetHoverParams) {
925 return file == other.file && offset == other.offset;
926 }
927 return false;
928 }
929
930 @override
931 int get hashCode {
932 int hash = 0;
933 hash = JenkinsSmiHash.combine(hash, file.hashCode);
934 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
935 return JenkinsSmiHash.finish(hash);
936 }
937 }
938
939 /**
940 * analysis.getHover result
941 *
942 * {
943 * "hovers": List<HoverInformation>
944 * }
945 *
946 * Clients may not extend, implement or mix-in this class.
947 */
948 class AnalysisGetHoverResult implements HasToJson {
949 List<HoverInformation> _hovers;
950
951 /**
952 * The hover information associated with the location. The list will be empty
953 * if no information could be determined for the location. The list can
954 * contain multiple items if the file is being analyzed in multiple contexts
955 * in conflicting ways (such as a part that is included in multiple
956 * libraries).
957 */
958 List<HoverInformation> get hovers => _hovers;
959
960 /**
961 * The hover information associated with the location. The list will be empty
962 * if no information could be determined for the location. The list can
963 * contain multiple items if the file is being analyzed in multiple contexts
964 * in conflicting ways (such as a part that is included in multiple
965 * libraries).
966 */
967 void set hovers(List<HoverInformation> value) {
968 assert(value != null);
969 this._hovers = value;
970 }
971
972 AnalysisGetHoverResult(List<HoverInformation> hovers) {
973 this.hovers = hovers;
974 }
975
976 factory AnalysisGetHoverResult.fromJson(
977 JsonDecoder jsonDecoder, String jsonPath, Object json) {
978 if (json == null) {
979 json = {};
980 }
981 if (json is Map) {
982 List<HoverInformation> hovers;
983 if (json.containsKey("hovers")) {
984 hovers = jsonDecoder.decodeList(
985 jsonPath + ".hovers",
986 json["hovers"],
987 (String jsonPath, Object json) =>
988 new HoverInformation.fromJson(jsonDecoder, jsonPath, json));
989 } else {
990 throw jsonDecoder.missingKey(jsonPath, "hovers");
991 }
992 return new AnalysisGetHoverResult(hovers);
993 } else {
994 throw jsonDecoder.mismatch(jsonPath, "analysis.getHover result", json);
995 }
996 }
997
998 factory AnalysisGetHoverResult.fromResponse(Response response) {
999 return new AnalysisGetHoverResult.fromJson(
1000 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
1001 "result",
1002 response._result);
1003 }
1004
1005 Map<String, dynamic> toJson() {
1006 Map<String, dynamic> result = {};
1007 result["hovers"] =
1008 hovers.map((HoverInformation value) => value.toJson()).toList();
1009 return result;
1010 }
1011
1012 Response toResponse(String id) {
1013 return new Response(id, result: toJson());
1014 }
1015
1016 @override
1017 String toString() => JSON.encode(toJson());
1018
1019 @override
1020 bool operator ==(other) {
1021 if (other is AnalysisGetHoverResult) {
1022 return listEqual(hovers, other.hovers,
1023 (HoverInformation a, HoverInformation b) => a == b);
1024 }
1025 return false;
1026 }
1027
1028 @override
1029 int get hashCode {
1030 int hash = 0;
1031 hash = JenkinsSmiHash.combine(hash, hovers.hashCode);
1032 return JenkinsSmiHash.finish(hash);
1033 }
1034 }
1035
1036 /**
1037 * analysis.getReachableSources params
1038 *
1039 * {
1040 * "file": FilePath
1041 * }
1042 *
1043 * Clients may not extend, implement or mix-in this class.
1044 */
1045 class AnalysisGetReachableSourcesParams implements HasToJson {
1046 String _file;
1047
1048 /**
1049 * The file for which reachable source information is being requested.
1050 */
1051 String get file => _file;
1052
1053 /**
1054 * The file for which reachable source information is being requested.
1055 */
1056 void set file(String value) {
1057 assert(value != null);
1058 this._file = value;
1059 }
1060
1061 AnalysisGetReachableSourcesParams(String file) {
1062 this.file = file;
1063 }
1064
1065 factory AnalysisGetReachableSourcesParams.fromJson(
1066 JsonDecoder jsonDecoder, String jsonPath, Object json) {
1067 if (json == null) {
1068 json = {};
1069 }
1070 if (json is Map) {
1071 String file;
1072 if (json.containsKey("file")) {
1073 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
1074 } else {
1075 throw jsonDecoder.missingKey(jsonPath, "file");
1076 }
1077 return new AnalysisGetReachableSourcesParams(file);
1078 } else {
1079 throw jsonDecoder.mismatch(
1080 jsonPath, "analysis.getReachableSources params", json);
1081 }
1082 }
1083
1084 factory AnalysisGetReachableSourcesParams.fromRequest(Request request) {
1085 return new AnalysisGetReachableSourcesParams.fromJson(
1086 new RequestDecoder(request), "params", request._params);
1087 }
1088
1089 Map<String, dynamic> toJson() {
1090 Map<String, dynamic> result = {};
1091 result["file"] = file;
1092 return result;
1093 }
1094
1095 Request toRequest(String id) {
1096 return new Request(id, "analysis.getReachableSources", toJson());
1097 }
1098
1099 @override
1100 String toString() => JSON.encode(toJson());
1101
1102 @override
1103 bool operator ==(other) {
1104 if (other is AnalysisGetReachableSourcesParams) {
1105 return file == other.file;
1106 }
1107 return false;
1108 }
1109
1110 @override
1111 int get hashCode {
1112 int hash = 0;
1113 hash = JenkinsSmiHash.combine(hash, file.hashCode);
1114 return JenkinsSmiHash.finish(hash);
1115 }
1116 }
1117
1118 /**
1119 * analysis.getReachableSources result
1120 *
1121 * {
1122 * "sources": Map<String, List<String>>
1123 * }
1124 *
1125 * Clients may not extend, implement or mix-in this class.
1126 */
1127 class AnalysisGetReachableSourcesResult implements HasToJson {
1128 Map<String, List<String>> _sources;
1129
1130 /**
1131 * A mapping from source URIs to directly reachable source URIs. For example,
1132 * a file "foo.dart" that imports "bar.dart" would have the corresponding
1133 * mapping { "file:///foo.dart" : ["file:///bar.dart"] }. If "bar.dart" has
1134 * further imports (or exports) there will be a mapping from the URI
1135 * "file:///bar.dart" to them. To check if a specific URI is reachable from a
1136 * given file, clients can check for its presence in the resulting key set.
1137 */
1138 Map<String, List<String>> get sources => _sources;
1139
1140 /**
1141 * A mapping from source URIs to directly reachable source URIs. For example,
1142 * a file "foo.dart" that imports "bar.dart" would have the corresponding
1143 * mapping { "file:///foo.dart" : ["file:///bar.dart"] }. If "bar.dart" has
1144 * further imports (or exports) there will be a mapping from the URI
1145 * "file:///bar.dart" to them. To check if a specific URI is reachable from a
1146 * given file, clients can check for its presence in the resulting key set.
1147 */
1148 void set sources(Map<String, List<String>> value) {
1149 assert(value != null);
1150 this._sources = value;
1151 }
1152
1153 AnalysisGetReachableSourcesResult(Map<String, List<String>> sources) {
1154 this.sources = sources;
1155 }
1156
1157 factory AnalysisGetReachableSourcesResult.fromJson(
1158 JsonDecoder jsonDecoder, String jsonPath, Object json) {
1159 if (json == null) {
1160 json = {};
1161 }
1162 if (json is Map) {
1163 Map<String, List<String>> sources;
1164 if (json.containsKey("sources")) {
1165 sources = jsonDecoder.decodeMap(jsonPath + ".sources", json["sources"],
1166 valueDecoder: (String jsonPath, Object json) => jsonDecoder
1167 .decodeList(jsonPath, json, jsonDecoder.decodeString));
1168 } else {
1169 throw jsonDecoder.missingKey(jsonPath, "sources");
1170 }
1171 return new AnalysisGetReachableSourcesResult(sources);
1172 } else {
1173 throw jsonDecoder.mismatch(
1174 jsonPath, "analysis.getReachableSources result", json);
1175 }
1176 }
1177
1178 factory AnalysisGetReachableSourcesResult.fromResponse(Response response) {
1179 return new AnalysisGetReachableSourcesResult.fromJson(
1180 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
1181 "result",
1182 response._result);
1183 }
1184
1185 Map<String, dynamic> toJson() {
1186 Map<String, dynamic> result = {};
1187 result["sources"] = sources;
1188 return result;
1189 }
1190
1191 Response toResponse(String id) {
1192 return new Response(id, result: toJson());
1193 }
1194
1195 @override
1196 String toString() => JSON.encode(toJson());
1197
1198 @override
1199 bool operator ==(other) {
1200 if (other is AnalysisGetReachableSourcesResult) {
1201 return mapEqual(
1202 sources,
1203 other.sources,
1204 (List<String> a, List<String> b) =>
1205 listEqual(a, b, (String a, String b) => a == b));
1206 }
1207 return false;
1208 }
1209
1210 @override
1211 int get hashCode {
1212 int hash = 0;
1213 hash = JenkinsSmiHash.combine(hash, sources.hashCode);
1214 return JenkinsSmiHash.finish(hash);
1215 }
1216 }
1217
1218 /**
1219 * analysis.getLibraryDependencies params
1220 *
1221 * Clients may not extend, implement or mix-in this class.
1222 */
1223 class AnalysisGetLibraryDependenciesParams {
1224 Request toRequest(String id) {
1225 return new Request(id, "analysis.getLibraryDependencies", null);
1226 }
1227
1228 @override
1229 bool operator ==(other) {
1230 if (other is AnalysisGetLibraryDependenciesParams) {
1231 return true;
1232 }
1233 return false;
1234 }
1235
1236 @override
1237 int get hashCode {
1238 return 246577680;
1239 }
1240 }
1241
1242 /**
1243 * analysis.getLibraryDependencies result
1244 *
1245 * {
1246 * "libraries": List<FilePath>
1247 * "packageMap": Map<String, Map<String, List<FilePath>>>
1248 * }
1249 *
1250 * Clients may not extend, implement or mix-in this class.
1251 */
1252 class AnalysisGetLibraryDependenciesResult implements HasToJson {
1253 List<String> _libraries;
1254
1255 Map<String, Map<String, List<String>>> _packageMap;
1256
1257 /**
1258 * A list of the paths of library elements referenced by files in existing
1259 * analysis roots.
1260 */
1261 List<String> get libraries => _libraries;
1262
1263 /**
1264 * A list of the paths of library elements referenced by files in existing
1265 * analysis roots.
1266 */
1267 void set libraries(List<String> value) {
1268 assert(value != null);
1269 this._libraries = value;
1270 }
1271
1272 /**
1273 * A mapping from context source roots to package maps which map package
1274 * names to source directories for use in client-side package URI resolution.
1275 */
1276 Map<String, Map<String, List<String>>> get packageMap => _packageMap;
1277
1278 /**
1279 * A mapping from context source roots to package maps which map package
1280 * names to source directories for use in client-side package URI resolution.
1281 */
1282 void set packageMap(Map<String, Map<String, List<String>>> value) {
1283 assert(value != null);
1284 this._packageMap = value;
1285 }
1286
1287 AnalysisGetLibraryDependenciesResult(List<String> libraries,
1288 Map<String, Map<String, List<String>>> packageMap) {
1289 this.libraries = libraries;
1290 this.packageMap = packageMap;
1291 }
1292
1293 factory AnalysisGetLibraryDependenciesResult.fromJson(
1294 JsonDecoder jsonDecoder, String jsonPath, Object json) {
1295 if (json == null) {
1296 json = {};
1297 }
1298 if (json is Map) {
1299 List<String> libraries;
1300 if (json.containsKey("libraries")) {
1301 libraries = jsonDecoder.decodeList(jsonPath + ".libraries",
1302 json["libraries"], jsonDecoder.decodeString);
1303 } else {
1304 throw jsonDecoder.missingKey(jsonPath, "libraries");
1305 }
1306 Map<String, Map<String, List<String>>> packageMap;
1307 if (json.containsKey("packageMap")) {
1308 packageMap = jsonDecoder.decodeMap(
1309 jsonPath + ".packageMap", json["packageMap"],
1310 valueDecoder: (String jsonPath, Object json) =>
1311 jsonDecoder.decodeMap(jsonPath, json,
1312 valueDecoder: (String jsonPath, Object json) => jsonDecoder
1313 .decodeList(jsonPath, json, jsonDecoder.decodeString)));
1314 } else {
1315 throw jsonDecoder.missingKey(jsonPath, "packageMap");
1316 }
1317 return new AnalysisGetLibraryDependenciesResult(libraries, packageMap);
1318 } else {
1319 throw jsonDecoder.mismatch(
1320 jsonPath, "analysis.getLibraryDependencies result", json);
1321 }
1322 }
1323
1324 factory AnalysisGetLibraryDependenciesResult.fromResponse(Response response) {
1325 return new AnalysisGetLibraryDependenciesResult.fromJson(
1326 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
1327 "result",
1328 response._result);
1329 }
1330
1331 Map<String, dynamic> toJson() {
1332 Map<String, dynamic> result = {};
1333 result["libraries"] = libraries;
1334 result["packageMap"] = packageMap;
1335 return result;
1336 }
1337
1338 Response toResponse(String id) {
1339 return new Response(id, result: toJson());
1340 }
1341
1342 @override
1343 String toString() => JSON.encode(toJson());
1344
1345 @override
1346 bool operator ==(other) {
1347 if (other is AnalysisGetLibraryDependenciesResult) {
1348 return listEqual(
1349 libraries, other.libraries, (String a, String b) => a == b) &&
1350 mapEqual(
1351 packageMap,
1352 other.packageMap,
1353 (Map<String, List<String>> a, Map<String, List<String>> b) =>
1354 mapEqual(
1355 a,
1356 b,
1357 (List<String> a, List<String> b) =>
1358 listEqual(a, b, (String a, String b) => a == b)));
1359 }
1360 return false;
1361 }
1362
1363 @override
1364 int get hashCode {
1365 int hash = 0;
1366 hash = JenkinsSmiHash.combine(hash, libraries.hashCode);
1367 hash = JenkinsSmiHash.combine(hash, packageMap.hashCode);
1368 return JenkinsSmiHash.finish(hash);
1369 }
1370 }
1371
1372 /**
1373 * analysis.getNavigation params
1374 *
1375 * {
1376 * "file": FilePath
1377 * "offset": int
1378 * "length": int
1379 * }
1380 *
1381 * Clients may not extend, implement or mix-in this class.
1382 */
1383 class AnalysisGetNavigationParams implements HasToJson {
1384 String _file;
1385
1386 int _offset;
1387
1388 int _length;
1389
1390 /**
1391 * The file in which navigation information is being requested.
1392 */
1393 String get file => _file;
1394
1395 /**
1396 * The file in which navigation information is being requested.
1397 */
1398 void set file(String value) {
1399 assert(value != null);
1400 this._file = value;
1401 }
1402
1403 /**
1404 * The offset of the region for which navigation information is being
1405 * requested.
1406 */
1407 int get offset => _offset;
1408
1409 /**
1410 * The offset of the region for which navigation information is being
1411 * requested.
1412 */
1413 void set offset(int value) {
1414 assert(value != null);
1415 this._offset = value;
1416 }
1417
1418 /**
1419 * The length of the region for which navigation information is being
1420 * requested.
1421 */
1422 int get length => _length;
1423
1424 /**
1425 * The length of the region for which navigation information is being
1426 * requested.
1427 */
1428 void set length(int value) {
1429 assert(value != null);
1430 this._length = value;
1431 }
1432
1433 AnalysisGetNavigationParams(String file, int offset, int length) {
1434 this.file = file;
1435 this.offset = offset;
1436 this.length = length;
1437 }
1438
1439 factory AnalysisGetNavigationParams.fromJson(
1440 JsonDecoder jsonDecoder, String jsonPath, Object json) {
1441 if (json == null) {
1442 json = {};
1443 }
1444 if (json is Map) {
1445 String file;
1446 if (json.containsKey("file")) {
1447 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
1448 } else {
1449 throw jsonDecoder.missingKey(jsonPath, "file");
1450 }
1451 int offset;
1452 if (json.containsKey("offset")) {
1453 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
1454 } else {
1455 throw jsonDecoder.missingKey(jsonPath, "offset");
1456 }
1457 int length;
1458 if (json.containsKey("length")) {
1459 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
1460 } else {
1461 throw jsonDecoder.missingKey(jsonPath, "length");
1462 }
1463 return new AnalysisGetNavigationParams(file, offset, length);
1464 } else {
1465 throw jsonDecoder.mismatch(
1466 jsonPath, "analysis.getNavigation params", json);
1467 }
1468 }
1469
1470 factory AnalysisGetNavigationParams.fromRequest(Request request) {
1471 return new AnalysisGetNavigationParams.fromJson(
1472 new RequestDecoder(request), "params", request._params);
1473 }
1474
1475 Map<String, dynamic> toJson() {
1476 Map<String, dynamic> result = {};
1477 result["file"] = file;
1478 result["offset"] = offset;
1479 result["length"] = length;
1480 return result;
1481 }
1482
1483 Request toRequest(String id) {
1484 return new Request(id, "analysis.getNavigation", toJson());
1485 }
1486
1487 @override
1488 String toString() => JSON.encode(toJson());
1489
1490 @override
1491 bool operator ==(other) {
1492 if (other is AnalysisGetNavigationParams) {
1493 return file == other.file &&
1494 offset == other.offset &&
1495 length == other.length;
1496 }
1497 return false;
1498 }
1499
1500 @override
1501 int get hashCode {
1502 int hash = 0;
1503 hash = JenkinsSmiHash.combine(hash, file.hashCode);
1504 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
1505 hash = JenkinsSmiHash.combine(hash, length.hashCode);
1506 return JenkinsSmiHash.finish(hash);
1507 }
1508 }
1509
1510 /**
1511 * analysis.getNavigation result
1512 *
1513 * {
1514 * "files": List<FilePath>
1515 * "targets": List<NavigationTarget>
1516 * "regions": List<NavigationRegion>
1517 * }
1518 *
1519 * Clients may not extend, implement or mix-in this class.
1520 */
1521 class AnalysisGetNavigationResult implements HasToJson {
1522 List<String> _files;
1523
1524 List<NavigationTarget> _targets;
1525
1526 List<NavigationRegion> _regions;
1527
1528 /**
1529 * A list of the paths of files that are referenced by the navigation
1530 * targets.
1531 */
1532 List<String> get files => _files;
1533
1534 /**
1535 * A list of the paths of files that are referenced by the navigation
1536 * targets.
1537 */
1538 void set files(List<String> value) {
1539 assert(value != null);
1540 this._files = value;
1541 }
1542
1543 /**
1544 * A list of the navigation targets that are referenced by the navigation
1545 * regions.
1546 */
1547 List<NavigationTarget> get targets => _targets;
1548
1549 /**
1550 * A list of the navigation targets that are referenced by the navigation
1551 * regions.
1552 */
1553 void set targets(List<NavigationTarget> value) {
1554 assert(value != null);
1555 this._targets = value;
1556 }
1557
1558 /**
1559 * A list of the navigation regions within the requested region of the file.
1560 */
1561 List<NavigationRegion> get regions => _regions;
1562
1563 /**
1564 * A list of the navigation regions within the requested region of the file.
1565 */
1566 void set regions(List<NavigationRegion> value) {
1567 assert(value != null);
1568 this._regions = value;
1569 }
1570
1571 AnalysisGetNavigationResult(List<String> files,
1572 List<NavigationTarget> targets, List<NavigationRegion> regions) {
1573 this.files = files;
1574 this.targets = targets;
1575 this.regions = regions;
1576 }
1577
1578 factory AnalysisGetNavigationResult.fromJson(
1579 JsonDecoder jsonDecoder, String jsonPath, Object json) {
1580 if (json == null) {
1581 json = {};
1582 }
1583 if (json is Map) {
1584 List<String> files;
1585 if (json.containsKey("files")) {
1586 files = jsonDecoder.decodeList(
1587 jsonPath + ".files", json["files"], jsonDecoder.decodeString);
1588 } else {
1589 throw jsonDecoder.missingKey(jsonPath, "files");
1590 }
1591 List<NavigationTarget> targets;
1592 if (json.containsKey("targets")) {
1593 targets = jsonDecoder.decodeList(
1594 jsonPath + ".targets",
1595 json["targets"],
1596 (String jsonPath, Object json) =>
1597 new NavigationTarget.fromJson(jsonDecoder, jsonPath, json));
1598 } else {
1599 throw jsonDecoder.missingKey(jsonPath, "targets");
1600 }
1601 List<NavigationRegion> regions;
1602 if (json.containsKey("regions")) {
1603 regions = jsonDecoder.decodeList(
1604 jsonPath + ".regions",
1605 json["regions"],
1606 (String jsonPath, Object json) =>
1607 new NavigationRegion.fromJson(jsonDecoder, jsonPath, json));
1608 } else {
1609 throw jsonDecoder.missingKey(jsonPath, "regions");
1610 }
1611 return new AnalysisGetNavigationResult(files, targets, regions);
1612 } else {
1613 throw jsonDecoder.mismatch(
1614 jsonPath, "analysis.getNavigation result", json);
1615 }
1616 }
1617
1618 factory AnalysisGetNavigationResult.fromResponse(Response response) {
1619 return new AnalysisGetNavigationResult.fromJson(
1620 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
1621 "result",
1622 response._result);
1623 }
1624
1625 Map<String, dynamic> toJson() {
1626 Map<String, dynamic> result = {};
1627 result["files"] = files;
1628 result["targets"] =
1629 targets.map((NavigationTarget value) => value.toJson()).toList();
1630 result["regions"] =
1631 regions.map((NavigationRegion value) => value.toJson()).toList();
1632 return result;
1633 }
1634
1635 Response toResponse(String id) {
1636 return new Response(id, result: toJson());
1637 }
1638
1639 @override
1640 String toString() => JSON.encode(toJson());
1641
1642 @override
1643 bool operator ==(other) {
1644 if (other is AnalysisGetNavigationResult) {
1645 return listEqual(files, other.files, (String a, String b) => a == b) &&
1646 listEqual(targets, other.targets,
1647 (NavigationTarget a, NavigationTarget b) => a == b) &&
1648 listEqual(regions, other.regions,
1649 (NavigationRegion a, NavigationRegion b) => a == b);
1650 }
1651 return false;
1652 }
1653
1654 @override
1655 int get hashCode {
1656 int hash = 0;
1657 hash = JenkinsSmiHash.combine(hash, files.hashCode);
1658 hash = JenkinsSmiHash.combine(hash, targets.hashCode);
1659 hash = JenkinsSmiHash.combine(hash, regions.hashCode);
1660 return JenkinsSmiHash.finish(hash);
1661 }
1662 }
1663
1664 /**
1665 * analysis.reanalyze params
1666 *
1667 * {
1668 * "roots": optional List<FilePath>
1669 * }
1670 *
1671 * Clients may not extend, implement or mix-in this class.
1672 */
1673 class AnalysisReanalyzeParams implements HasToJson {
1674 List<String> _roots;
1675
1676 /**
1677 * A list of the analysis roots that are to be re-analyzed.
1678 */
1679 List<String> get roots => _roots;
1680
1681 /**
1682 * A list of the analysis roots that are to be re-analyzed.
1683 */
1684 void set roots(List<String> value) {
1685 this._roots = value;
1686 }
1687
1688 AnalysisReanalyzeParams({List<String> roots}) {
1689 this.roots = roots;
1690 }
1691
1692 factory AnalysisReanalyzeParams.fromJson(
1693 JsonDecoder jsonDecoder, String jsonPath, Object json) {
1694 if (json == null) {
1695 json = {};
1696 }
1697 if (json is Map) {
1698 List<String> roots;
1699 if (json.containsKey("roots")) {
1700 roots = jsonDecoder.decodeList(
1701 jsonPath + ".roots", json["roots"], jsonDecoder.decodeString);
1702 }
1703 return new AnalysisReanalyzeParams(roots: roots);
1704 } else {
1705 throw jsonDecoder.mismatch(jsonPath, "analysis.reanalyze params", json);
1706 }
1707 }
1708
1709 factory AnalysisReanalyzeParams.fromRequest(Request request) {
1710 return new AnalysisReanalyzeParams.fromJson(
1711 new RequestDecoder(request), "params", request._params);
1712 }
1713
1714 Map<String, dynamic> toJson() {
1715 Map<String, dynamic> result = {};
1716 if (roots != null) {
1717 result["roots"] = roots;
1718 }
1719 return result;
1720 }
1721
1722 Request toRequest(String id) {
1723 return new Request(id, "analysis.reanalyze", toJson());
1724 }
1725
1726 @override
1727 String toString() => JSON.encode(toJson());
1728
1729 @override
1730 bool operator ==(other) {
1731 if (other is AnalysisReanalyzeParams) {
1732 return listEqual(roots, other.roots, (String a, String b) => a == b);
1733 }
1734 return false;
1735 }
1736
1737 @override
1738 int get hashCode {
1739 int hash = 0;
1740 hash = JenkinsSmiHash.combine(hash, roots.hashCode);
1741 return JenkinsSmiHash.finish(hash);
1742 }
1743 }
1744
1745 /**
1746 * analysis.reanalyze result
1747 *
1748 * Clients may not extend, implement or mix-in this class.
1749 */
1750 class AnalysisReanalyzeResult {
1751 Response toResponse(String id) {
1752 return new Response(id, result: null);
1753 }
1754
1755 @override
1756 bool operator ==(other) {
1757 if (other is AnalysisReanalyzeResult) {
1758 return true;
1759 }
1760 return false;
1761 }
1762
1763 @override
1764 int get hashCode {
1765 return 846803925;
1766 }
1767 }
1768
1769 /**
1770 * analysis.setAnalysisRoots params
1771 *
1772 * {
1773 * "included": List<FilePath>
1774 * "excluded": List<FilePath>
1775 * "packageRoots": optional Map<FilePath, FilePath>
1776 * }
1777 *
1778 * Clients may not extend, implement or mix-in this class.
1779 */
1780 class AnalysisSetAnalysisRootsParams implements HasToJson {
1781 List<String> _included;
1782
1783 List<String> _excluded;
1784
1785 Map<String, String> _packageRoots;
1786
1787 /**
1788 * A list of the files and directories that should be analyzed.
1789 */
1790 List<String> get included => _included;
1791
1792 /**
1793 * A list of the files and directories that should be analyzed.
1794 */
1795 void set included(List<String> value) {
1796 assert(value != null);
1797 this._included = value;
1798 }
1799
1800 /**
1801 * A list of the files and directories within the included directories that
1802 * should not be analyzed.
1803 */
1804 List<String> get excluded => _excluded;
1805
1806 /**
1807 * A list of the files and directories within the included directories that
1808 * should not be analyzed.
1809 */
1810 void set excluded(List<String> value) {
1811 assert(value != null);
1812 this._excluded = value;
1813 }
1814
1815 /**
1816 * A mapping from source directories to package roots that should override
1817 * the normal package: URI resolution mechanism.
1818 *
1819 * If a package root is a directory, then the analyzer will behave as though
1820 * the associated source directory in the map contains a special pubspec.yaml
1821 * file which resolves any package: URI to the corresponding path within that
1822 * package root directory. The effect is the same as specifying the package
1823 * root directory as a "--package_root" parameter to the Dart VM when
1824 * executing any Dart file inside the source directory.
1825 *
1826 * If a package root is a file, then the analyzer will behave as though that
1827 * file is a ".packages" file in the source directory. The effect is the same
1828 * as specifying the file as a "--packages" parameter to the Dart VM when
1829 * executing any Dart file inside the source directory.
1830 *
1831 * Files in any directories that are not overridden by this mapping have
1832 * their package: URI's resolved using the normal pubspec.yaml mechanism. If
1833 * this field is absent, or the empty map is specified, that indicates that
1834 * the normal pubspec.yaml mechanism should always be used.
1835 */
1836 Map<String, String> get packageRoots => _packageRoots;
1837
1838 /**
1839 * A mapping from source directories to package roots that should override
1840 * the normal package: URI resolution mechanism.
1841 *
1842 * If a package root is a directory, then the analyzer will behave as though
1843 * the associated source directory in the map contains a special pubspec.yaml
1844 * file which resolves any package: URI to the corresponding path within that
1845 * package root directory. The effect is the same as specifying the package
1846 * root directory as a "--package_root" parameter to the Dart VM when
1847 * executing any Dart file inside the source directory.
1848 *
1849 * If a package root is a file, then the analyzer will behave as though that
1850 * file is a ".packages" file in the source directory. The effect is the same
1851 * as specifying the file as a "--packages" parameter to the Dart VM when
1852 * executing any Dart file inside the source directory.
1853 *
1854 * Files in any directories that are not overridden by this mapping have
1855 * their package: URI's resolved using the normal pubspec.yaml mechanism. If
1856 * this field is absent, or the empty map is specified, that indicates that
1857 * the normal pubspec.yaml mechanism should always be used.
1858 */
1859 void set packageRoots(Map<String, String> value) {
1860 this._packageRoots = value;
1861 }
1862
1863 AnalysisSetAnalysisRootsParams(List<String> included, List<String> excluded,
1864 {Map<String, String> packageRoots}) {
1865 this.included = included;
1866 this.excluded = excluded;
1867 this.packageRoots = packageRoots;
1868 }
1869
1870 factory AnalysisSetAnalysisRootsParams.fromJson(
1871 JsonDecoder jsonDecoder, String jsonPath, Object json) {
1872 if (json == null) {
1873 json = {};
1874 }
1875 if (json is Map) {
1876 List<String> included;
1877 if (json.containsKey("included")) {
1878 included = jsonDecoder.decodeList(
1879 jsonPath + ".included", json["included"], jsonDecoder.decodeString);
1880 } else {
1881 throw jsonDecoder.missingKey(jsonPath, "included");
1882 }
1883 List<String> excluded;
1884 if (json.containsKey("excluded")) {
1885 excluded = jsonDecoder.decodeList(
1886 jsonPath + ".excluded", json["excluded"], jsonDecoder.decodeString);
1887 } else {
1888 throw jsonDecoder.missingKey(jsonPath, "excluded");
1889 }
1890 Map<String, String> packageRoots;
1891 if (json.containsKey("packageRoots")) {
1892 packageRoots = jsonDecoder.decodeMap(
1893 jsonPath + ".packageRoots", json["packageRoots"],
1894 valueDecoder: jsonDecoder.decodeString);
1895 }
1896 return new AnalysisSetAnalysisRootsParams(included, excluded,
1897 packageRoots: packageRoots);
1898 } else {
1899 throw jsonDecoder.mismatch(
1900 jsonPath, "analysis.setAnalysisRoots params", json);
1901 }
1902 }
1903
1904 factory AnalysisSetAnalysisRootsParams.fromRequest(Request request) {
1905 return new AnalysisSetAnalysisRootsParams.fromJson(
1906 new RequestDecoder(request), "params", request._params);
1907 }
1908
1909 Map<String, dynamic> toJson() {
1910 Map<String, dynamic> result = {};
1911 result["included"] = included;
1912 result["excluded"] = excluded;
1913 if (packageRoots != null) {
1914 result["packageRoots"] = packageRoots;
1915 }
1916 return result;
1917 }
1918
1919 Request toRequest(String id) {
1920 return new Request(id, "analysis.setAnalysisRoots", toJson());
1921 }
1922
1923 @override
1924 String toString() => JSON.encode(toJson());
1925
1926 @override
1927 bool operator ==(other) {
1928 if (other is AnalysisSetAnalysisRootsParams) {
1929 return listEqual(
1930 included, other.included, (String a, String b) => a == b) &&
1931 listEqual(excluded, other.excluded, (String a, String b) => a == b) &&
1932 mapEqual(
1933 packageRoots, other.packageRoots, (String a, String b) => a == b);
1934 }
1935 return false;
1936 }
1937
1938 @override
1939 int get hashCode {
1940 int hash = 0;
1941 hash = JenkinsSmiHash.combine(hash, included.hashCode);
1942 hash = JenkinsSmiHash.combine(hash, excluded.hashCode);
1943 hash = JenkinsSmiHash.combine(hash, packageRoots.hashCode);
1944 return JenkinsSmiHash.finish(hash);
1945 }
1946 }
1947
1948 /**
1949 * analysis.setAnalysisRoots result
1950 *
1951 * Clients may not extend, implement or mix-in this class.
1952 */
1953 class AnalysisSetAnalysisRootsResult {
1954 Response toResponse(String id) {
1955 return new Response(id, result: null);
1956 }
1957
1958 @override
1959 bool operator ==(other) {
1960 if (other is AnalysisSetAnalysisRootsResult) {
1961 return true;
1962 }
1963 return false;
1964 }
1965
1966 @override
1967 int get hashCode {
1968 return 866004753;
1969 }
1970 }
1971
1972 /**
1973 * analysis.setGeneralSubscriptions params
1974 *
1975 * {
1976 * "subscriptions": List<GeneralAnalysisService>
1977 * }
1978 *
1979 * Clients may not extend, implement or mix-in this class.
1980 */
1981 class AnalysisSetGeneralSubscriptionsParams implements HasToJson {
1982 List<GeneralAnalysisService> _subscriptions;
1983
1984 /**
1985 * A list of the services being subscribed to.
1986 */
1987 List<GeneralAnalysisService> get subscriptions => _subscriptions;
1988
1989 /**
1990 * A list of the services being subscribed to.
1991 */
1992 void set subscriptions(List<GeneralAnalysisService> value) {
1993 assert(value != null);
1994 this._subscriptions = value;
1995 }
1996
1997 AnalysisSetGeneralSubscriptionsParams(
1998 List<GeneralAnalysisService> subscriptions) {
1999 this.subscriptions = subscriptions;
2000 }
2001
2002 factory AnalysisSetGeneralSubscriptionsParams.fromJson(
2003 JsonDecoder jsonDecoder, String jsonPath, Object json) {
2004 if (json == null) {
2005 json = {};
2006 }
2007 if (json is Map) {
2008 List<GeneralAnalysisService> subscriptions;
2009 if (json.containsKey("subscriptions")) {
2010 subscriptions = jsonDecoder.decodeList(
2011 jsonPath + ".subscriptions",
2012 json["subscriptions"],
2013 (String jsonPath, Object json) =>
2014 new GeneralAnalysisService.fromJson(
2015 jsonDecoder, jsonPath, json));
2016 } else {
2017 throw jsonDecoder.missingKey(jsonPath, "subscriptions");
2018 }
2019 return new AnalysisSetGeneralSubscriptionsParams(subscriptions);
2020 } else {
2021 throw jsonDecoder.mismatch(
2022 jsonPath, "analysis.setGeneralSubscriptions params", json);
2023 }
2024 }
2025
2026 factory AnalysisSetGeneralSubscriptionsParams.fromRequest(Request request) {
2027 return new AnalysisSetGeneralSubscriptionsParams.fromJson(
2028 new RequestDecoder(request), "params", request._params);
2029 }
2030
2031 Map<String, dynamic> toJson() {
2032 Map<String, dynamic> result = {};
2033 result["subscriptions"] = subscriptions
2034 .map((GeneralAnalysisService value) => value.toJson())
2035 .toList();
2036 return result;
2037 }
2038
2039 Request toRequest(String id) {
2040 return new Request(id, "analysis.setGeneralSubscriptions", toJson());
2041 }
2042
2043 @override
2044 String toString() => JSON.encode(toJson());
2045
2046 @override
2047 bool operator ==(other) {
2048 if (other is AnalysisSetGeneralSubscriptionsParams) {
2049 return listEqual(subscriptions, other.subscriptions,
2050 (GeneralAnalysisService a, GeneralAnalysisService b) => a == b);
2051 }
2052 return false;
2053 }
2054
2055 @override
2056 int get hashCode {
2057 int hash = 0;
2058 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode);
2059 return JenkinsSmiHash.finish(hash);
2060 }
2061 }
2062
2063 /**
2064 * analysis.setGeneralSubscriptions result
2065 *
2066 * Clients may not extend, implement or mix-in this class.
2067 */
2068 class AnalysisSetGeneralSubscriptionsResult {
2069 Response toResponse(String id) {
2070 return new Response(id, result: null);
2071 }
2072
2073 @override
2074 bool operator ==(other) {
2075 if (other is AnalysisSetGeneralSubscriptionsResult) {
2076 return true;
2077 }
2078 return false;
2079 }
2080
2081 @override
2082 int get hashCode {
2083 return 386759562;
2084 }
2085 }
2086
2087 /**
2088 * analysis.setPriorityFiles params
2089 *
2090 * {
2091 * "files": List<FilePath>
2092 * }
2093 *
2094 * Clients may not extend, implement or mix-in this class.
2095 */
2096 class AnalysisSetPriorityFilesParams implements HasToJson {
2097 List<String> _files;
2098
2099 /**
2100 * The files that are to be a priority for analysis.
2101 */
2102 List<String> get files => _files;
2103
2104 /**
2105 * The files that are to be a priority for analysis.
2106 */
2107 void set files(List<String> value) {
2108 assert(value != null);
2109 this._files = value;
2110 }
2111
2112 AnalysisSetPriorityFilesParams(List<String> files) {
2113 this.files = files;
2114 }
2115
2116 factory AnalysisSetPriorityFilesParams.fromJson(
2117 JsonDecoder jsonDecoder, String jsonPath, Object json) {
2118 if (json == null) {
2119 json = {};
2120 }
2121 if (json is Map) {
2122 List<String> files;
2123 if (json.containsKey("files")) {
2124 files = jsonDecoder.decodeList(
2125 jsonPath + ".files", json["files"], jsonDecoder.decodeString);
2126 } else {
2127 throw jsonDecoder.missingKey(jsonPath, "files");
2128 }
2129 return new AnalysisSetPriorityFilesParams(files);
2130 } else {
2131 throw jsonDecoder.mismatch(
2132 jsonPath, "analysis.setPriorityFiles params", json);
2133 }
2134 }
2135
2136 factory AnalysisSetPriorityFilesParams.fromRequest(Request request) {
2137 return new AnalysisSetPriorityFilesParams.fromJson(
2138 new RequestDecoder(request), "params", request._params);
2139 }
2140
2141 Map<String, dynamic> toJson() {
2142 Map<String, dynamic> result = {};
2143 result["files"] = files;
2144 return result;
2145 }
2146
2147 Request toRequest(String id) {
2148 return new Request(id, "analysis.setPriorityFiles", toJson());
2149 }
2150
2151 @override
2152 String toString() => JSON.encode(toJson());
2153
2154 @override
2155 bool operator ==(other) {
2156 if (other is AnalysisSetPriorityFilesParams) {
2157 return listEqual(files, other.files, (String a, String b) => a == b);
2158 }
2159 return false;
2160 }
2161
2162 @override
2163 int get hashCode {
2164 int hash = 0;
2165 hash = JenkinsSmiHash.combine(hash, files.hashCode);
2166 return JenkinsSmiHash.finish(hash);
2167 }
2168 }
2169
2170 /**
2171 * analysis.setPriorityFiles result
2172 *
2173 * Clients may not extend, implement or mix-in this class.
2174 */
2175 class AnalysisSetPriorityFilesResult {
2176 Response toResponse(String id) {
2177 return new Response(id, result: null);
2178 }
2179
2180 @override
2181 bool operator ==(other) {
2182 if (other is AnalysisSetPriorityFilesResult) {
2183 return true;
2184 }
2185 return false;
2186 }
2187
2188 @override
2189 int get hashCode {
2190 return 330050055;
2191 }
2192 }
2193
2194 /**
2195 * analysis.setSubscriptions params
2196 *
2197 * {
2198 * "subscriptions": Map<AnalysisService, List<FilePath>>
2199 * }
2200 *
2201 * Clients may not extend, implement or mix-in this class.
2202 */
2203 class AnalysisSetSubscriptionsParams implements HasToJson {
2204 Map<AnalysisService, List<String>> _subscriptions;
2205
2206 /**
2207 * A table mapping services to a list of the files being subscribed to the
2208 * service.
2209 */
2210 Map<AnalysisService, List<String>> get subscriptions => _subscriptions;
2211
2212 /**
2213 * A table mapping services to a list of the files being subscribed to the
2214 * service.
2215 */
2216 void set subscriptions(Map<AnalysisService, List<String>> value) {
2217 assert(value != null);
2218 this._subscriptions = value;
2219 }
2220
2221 AnalysisSetSubscriptionsParams(
2222 Map<AnalysisService, List<String>> subscriptions) {
2223 this.subscriptions = subscriptions;
2224 }
2225
2226 factory AnalysisSetSubscriptionsParams.fromJson(
2227 JsonDecoder jsonDecoder, String jsonPath, Object json) {
2228 if (json == null) {
2229 json = {};
2230 }
2231 if (json is Map) {
2232 Map<AnalysisService, List<String>> subscriptions;
2233 if (json.containsKey("subscriptions")) {
2234 subscriptions = jsonDecoder.decodeMap(
2235 jsonPath + ".subscriptions", json["subscriptions"],
2236 keyDecoder: (String jsonPath, Object json) =>
2237 new AnalysisService.fromJson(jsonDecoder, jsonPath, json),
2238 valueDecoder: (String jsonPath, Object json) => jsonDecoder
2239 .decodeList(jsonPath, json, jsonDecoder.decodeString));
2240 } else {
2241 throw jsonDecoder.missingKey(jsonPath, "subscriptions");
2242 }
2243 return new AnalysisSetSubscriptionsParams(subscriptions);
2244 } else {
2245 throw jsonDecoder.mismatch(
2246 jsonPath, "analysis.setSubscriptions params", json);
2247 }
2248 }
2249
2250 factory AnalysisSetSubscriptionsParams.fromRequest(Request request) {
2251 return new AnalysisSetSubscriptionsParams.fromJson(
2252 new RequestDecoder(request), "params", request._params);
2253 }
2254
2255 Map<String, dynamic> toJson() {
2256 Map<String, dynamic> result = {};
2257 result["subscriptions"] = mapMap(subscriptions,
2258 keyCallback: (AnalysisService value) => value.toJson());
2259 return result;
2260 }
2261
2262 Request toRequest(String id) {
2263 return new Request(id, "analysis.setSubscriptions", toJson());
2264 }
2265
2266 @override
2267 String toString() => JSON.encode(toJson());
2268
2269 @override
2270 bool operator ==(other) {
2271 if (other is AnalysisSetSubscriptionsParams) {
2272 return mapEqual(
2273 subscriptions,
2274 other.subscriptions,
2275 (List<String> a, List<String> b) =>
2276 listEqual(a, b, (String a, String b) => a == b));
2277 }
2278 return false;
2279 }
2280
2281 @override
2282 int get hashCode {
2283 int hash = 0;
2284 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode);
2285 return JenkinsSmiHash.finish(hash);
2286 }
2287 }
2288
2289 /**
2290 * analysis.setSubscriptions result
2291 *
2292 * Clients may not extend, implement or mix-in this class.
2293 */
2294 class AnalysisSetSubscriptionsResult {
2295 Response toResponse(String id) {
2296 return new Response(id, result: null);
2297 }
2298
2299 @override
2300 bool operator ==(other) {
2301 if (other is AnalysisSetSubscriptionsResult) {
2302 return true;
2303 }
2304 return false;
2305 }
2306
2307 @override
2308 int get hashCode {
2309 return 218088493;
2310 }
2311 }
2312
2313 /**
2314 * analysis.updateContent params
2315 *
2316 * {
2317 * "files": Map<FilePath, AddContentOverlay | ChangeContentOverlay | RemoveCon tentOverlay>
2318 * }
2319 *
2320 * Clients may not extend, implement or mix-in this class.
2321 */
2322 class AnalysisUpdateContentParams implements HasToJson {
2323 Map<String, dynamic> _files;
2324
2325 /**
2326 * A table mapping the files whose content has changed to a description of
2327 * the content change.
2328 */
2329 Map<String, dynamic> get files => _files;
2330
2331 /**
2332 * A table mapping the files whose content has changed to a description of
2333 * the content change.
2334 */
2335 void set files(Map<String, dynamic> value) {
2336 assert(value != null);
2337 this._files = value;
2338 }
2339
2340 AnalysisUpdateContentParams(Map<String, dynamic> files) {
2341 this.files = files;
2342 }
2343
2344 factory AnalysisUpdateContentParams.fromJson(
2345 JsonDecoder jsonDecoder, String jsonPath, Object json) {
2346 if (json == null) {
2347 json = {};
2348 }
2349 if (json is Map) {
2350 Map<String, dynamic> files;
2351 if (json.containsKey("files")) {
2352 files = jsonDecoder.decodeMap(jsonPath + ".files", json["files"],
2353 valueDecoder: (String jsonPath, Object json) =>
2354 jsonDecoder.decodeUnion(jsonPath, json, "type", {
2355 "add": (String jsonPath, Object json) =>
2356 new AddContentOverlay.fromJson(
2357 jsonDecoder, jsonPath, json),
2358 "change": (String jsonPath, Object json) =>
2359 new ChangeContentOverlay.fromJson(
2360 jsonDecoder, jsonPath, json),
2361 "remove": (String jsonPath, Object json) =>
2362 new RemoveContentOverlay.fromJson(
2363 jsonDecoder, jsonPath, json)
2364 }));
2365 } else {
2366 throw jsonDecoder.missingKey(jsonPath, "files");
2367 }
2368 return new AnalysisUpdateContentParams(files);
2369 } else {
2370 throw jsonDecoder.mismatch(
2371 jsonPath, "analysis.updateContent params", json);
2372 }
2373 }
2374
2375 factory AnalysisUpdateContentParams.fromRequest(Request request) {
2376 return new AnalysisUpdateContentParams.fromJson(
2377 new RequestDecoder(request), "params", request._params);
2378 }
2379
2380 Map<String, dynamic> toJson() {
2381 Map<String, dynamic> result = {};
2382 result["files"] =
2383 mapMap(files, valueCallback: (dynamic value) => value.toJson());
2384 return result;
2385 }
2386
2387 Request toRequest(String id) {
2388 return new Request(id, "analysis.updateContent", toJson());
2389 }
2390
2391 @override
2392 String toString() => JSON.encode(toJson());
2393
2394 @override
2395 bool operator ==(other) {
2396 if (other is AnalysisUpdateContentParams) {
2397 return mapEqual(files, other.files, (dynamic a, dynamic b) => a == b);
2398 }
2399 return false;
2400 }
2401
2402 @override
2403 int get hashCode {
2404 int hash = 0;
2405 hash = JenkinsSmiHash.combine(hash, files.hashCode);
2406 return JenkinsSmiHash.finish(hash);
2407 }
2408 }
2409
2410 /**
2411 * analysis.updateContent result
2412 *
2413 * {
2414 * }
2415 *
2416 * Clients may not extend, implement or mix-in this class.
2417 */
2418 class AnalysisUpdateContentResult implements HasToJson {
2419 AnalysisUpdateContentResult();
2420
2421 factory AnalysisUpdateContentResult.fromJson(
2422 JsonDecoder jsonDecoder, String jsonPath, Object json) {
2423 if (json == null) {
2424 json = {};
2425 }
2426 if (json is Map) {
2427 return new AnalysisUpdateContentResult();
2428 } else {
2429 throw jsonDecoder.mismatch(
2430 jsonPath, "analysis.updateContent result", json);
2431 }
2432 }
2433
2434 factory AnalysisUpdateContentResult.fromResponse(Response response) {
2435 return new AnalysisUpdateContentResult.fromJson(
2436 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
2437 "result",
2438 response._result);
2439 }
2440
2441 Map<String, dynamic> toJson() {
2442 Map<String, dynamic> result = {};
2443 return result;
2444 }
2445
2446 Response toResponse(String id) {
2447 return new Response(id, result: toJson());
2448 }
2449
2450 @override
2451 String toString() => JSON.encode(toJson());
2452
2453 @override
2454 bool operator ==(other) {
2455 if (other is AnalysisUpdateContentResult) {
2456 return true;
2457 }
2458 return false;
2459 }
2460
2461 @override
2462 int get hashCode {
2463 int hash = 0;
2464 return JenkinsSmiHash.finish(hash);
2465 }
2466 }
2467
2468 /**
2469 * analysis.updateOptions params
2470 *
2471 * {
2472 * "options": AnalysisOptions
2473 * }
2474 *
2475 * Clients may not extend, implement or mix-in this class.
2476 */
2477 class AnalysisUpdateOptionsParams implements HasToJson {
2478 AnalysisOptions _options;
2479
2480 /**
2481 * The options that are to be used to control analysis.
2482 */
2483 AnalysisOptions get options => _options;
2484
2485 /**
2486 * The options that are to be used to control analysis.
2487 */
2488 void set options(AnalysisOptions value) {
2489 assert(value != null);
2490 this._options = value;
2491 }
2492
2493 AnalysisUpdateOptionsParams(AnalysisOptions options) {
2494 this.options = options;
2495 }
2496
2497 factory AnalysisUpdateOptionsParams.fromJson(
2498 JsonDecoder jsonDecoder, String jsonPath, Object json) {
2499 if (json == null) {
2500 json = {};
2501 }
2502 if (json is Map) {
2503 AnalysisOptions options;
2504 if (json.containsKey("options")) {
2505 options = new AnalysisOptions.fromJson(
2506 jsonDecoder, jsonPath + ".options", json["options"]);
2507 } else {
2508 throw jsonDecoder.missingKey(jsonPath, "options");
2509 }
2510 return new AnalysisUpdateOptionsParams(options);
2511 } else {
2512 throw jsonDecoder.mismatch(
2513 jsonPath, "analysis.updateOptions params", json);
2514 }
2515 }
2516
2517 factory AnalysisUpdateOptionsParams.fromRequest(Request request) {
2518 return new AnalysisUpdateOptionsParams.fromJson(
2519 new RequestDecoder(request), "params", request._params);
2520 }
2521
2522 Map<String, dynamic> toJson() {
2523 Map<String, dynamic> result = {};
2524 result["options"] = options.toJson();
2525 return result;
2526 }
2527
2528 Request toRequest(String id) {
2529 return new Request(id, "analysis.updateOptions", toJson());
2530 }
2531
2532 @override
2533 String toString() => JSON.encode(toJson());
2534
2535 @override
2536 bool operator ==(other) {
2537 if (other is AnalysisUpdateOptionsParams) {
2538 return options == other.options;
2539 }
2540 return false;
2541 }
2542
2543 @override
2544 int get hashCode {
2545 int hash = 0;
2546 hash = JenkinsSmiHash.combine(hash, options.hashCode);
2547 return JenkinsSmiHash.finish(hash);
2548 }
2549 }
2550
2551 /**
2552 * analysis.updateOptions result
2553 *
2554 * Clients may not extend, implement or mix-in this class.
2555 */
2556 class AnalysisUpdateOptionsResult {
2557 Response toResponse(String id) {
2558 return new Response(id, result: null);
2559 }
2560
2561 @override
2562 bool operator ==(other) {
2563 if (other is AnalysisUpdateOptionsResult) {
2564 return true;
2565 }
2566 return false;
2567 }
2568
2569 @override
2570 int get hashCode {
2571 return 179689467;
2572 }
2573 }
2574
2575 /**
2576 * analysis.analyzedFiles params
2577 *
2578 * {
2579 * "directories": List<FilePath>
2580 * }
2581 *
2582 * Clients may not extend, implement or mix-in this class.
2583 */
2584 class AnalysisAnalyzedFilesParams implements HasToJson {
2585 List<String> _directories;
2586
2587 /**
2588 * A list of the paths of the files that are being analyzed.
2589 */
2590 List<String> get directories => _directories;
2591
2592 /**
2593 * A list of the paths of the files that are being analyzed.
2594 */
2595 void set directories(List<String> value) {
2596 assert(value != null);
2597 this._directories = value;
2598 }
2599
2600 AnalysisAnalyzedFilesParams(List<String> directories) {
2601 this.directories = directories;
2602 }
2603
2604 factory AnalysisAnalyzedFilesParams.fromJson(
2605 JsonDecoder jsonDecoder, String jsonPath, Object json) {
2606 if (json == null) {
2607 json = {};
2608 }
2609 if (json is Map) {
2610 List<String> directories;
2611 if (json.containsKey("directories")) {
2612 directories = jsonDecoder.decodeList(jsonPath + ".directories",
2613 json["directories"], jsonDecoder.decodeString);
2614 } else {
2615 throw jsonDecoder.missingKey(jsonPath, "directories");
2616 }
2617 return new AnalysisAnalyzedFilesParams(directories);
2618 } else {
2619 throw jsonDecoder.mismatch(
2620 jsonPath, "analysis.analyzedFiles params", json);
2621 }
2622 }
2623
2624 factory AnalysisAnalyzedFilesParams.fromNotification(
2625 Notification notification) {
2626 return new AnalysisAnalyzedFilesParams.fromJson(
2627 new ResponseDecoder(null), "params", notification._params);
2628 }
2629
2630 Map<String, dynamic> toJson() {
2631 Map<String, dynamic> result = {};
2632 result["directories"] = directories;
2633 return result;
2634 }
2635
2636 Notification toNotification() {
2637 return new Notification("analysis.analyzedFiles", toJson());
2638 }
2639
2640 @override
2641 String toString() => JSON.encode(toJson());
2642
2643 @override
2644 bool operator ==(other) {
2645 if (other is AnalysisAnalyzedFilesParams) {
2646 return listEqual(
2647 directories, other.directories, (String a, String b) => a == b);
2648 }
2649 return false;
2650 }
2651
2652 @override
2653 int get hashCode {
2654 int hash = 0;
2655 hash = JenkinsSmiHash.combine(hash, directories.hashCode);
2656 return JenkinsSmiHash.finish(hash);
2657 }
2658 }
2659
2660 /**
2661 * analysis.errors params
2662 *
2663 * {
2664 * "file": FilePath
2665 * "errors": List<AnalysisError>
2666 * }
2667 *
2668 * Clients may not extend, implement or mix-in this class.
2669 */
2670 class AnalysisErrorsParams implements HasToJson {
2671 String _file;
2672
2673 List<AnalysisError> _errors;
2674
2675 /**
2676 * The file containing the errors.
2677 */
2678 String get file => _file;
2679
2680 /**
2681 * The file containing the errors.
2682 */
2683 void set file(String value) {
2684 assert(value != null);
2685 this._file = value;
2686 }
2687
2688 /**
2689 * The errors contained in the file.
2690 */
2691 List<AnalysisError> get errors => _errors;
2692
2693 /**
2694 * The errors contained in the file.
2695 */
2696 void set errors(List<AnalysisError> value) {
2697 assert(value != null);
2698 this._errors = value;
2699 }
2700
2701 AnalysisErrorsParams(String file, List<AnalysisError> errors) {
2702 this.file = file;
2703 this.errors = errors;
2704 }
2705
2706 factory AnalysisErrorsParams.fromJson(
2707 JsonDecoder jsonDecoder, String jsonPath, Object json) {
2708 if (json == null) {
2709 json = {};
2710 }
2711 if (json is Map) {
2712 String file;
2713 if (json.containsKey("file")) {
2714 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
2715 } else {
2716 throw jsonDecoder.missingKey(jsonPath, "file");
2717 }
2718 List<AnalysisError> errors;
2719 if (json.containsKey("errors")) {
2720 errors = jsonDecoder.decodeList(
2721 jsonPath + ".errors",
2722 json["errors"],
2723 (String jsonPath, Object json) =>
2724 new AnalysisError.fromJson(jsonDecoder, jsonPath, json));
2725 } else {
2726 throw jsonDecoder.missingKey(jsonPath, "errors");
2727 }
2728 return new AnalysisErrorsParams(file, errors);
2729 } else {
2730 throw jsonDecoder.mismatch(jsonPath, "analysis.errors params", json);
2731 }
2732 }
2733
2734 factory AnalysisErrorsParams.fromNotification(Notification notification) {
2735 return new AnalysisErrorsParams.fromJson(
2736 new ResponseDecoder(null), "params", notification._params);
2737 }
2738
2739 Map<String, dynamic> toJson() {
2740 Map<String, dynamic> result = {};
2741 result["file"] = file;
2742 result["errors"] =
2743 errors.map((AnalysisError value) => value.toJson()).toList();
2744 return result;
2745 }
2746
2747 Notification toNotification() {
2748 return new Notification("analysis.errors", toJson());
2749 }
2750
2751 @override
2752 String toString() => JSON.encode(toJson());
2753
2754 @override
2755 bool operator ==(other) {
2756 if (other is AnalysisErrorsParams) {
2757 return file == other.file &&
2758 listEqual(errors, other.errors,
2759 (AnalysisError a, AnalysisError b) => a == b);
2760 }
2761 return false;
2762 }
2763
2764 @override
2765 int get hashCode {
2766 int hash = 0;
2767 hash = JenkinsSmiHash.combine(hash, file.hashCode);
2768 hash = JenkinsSmiHash.combine(hash, errors.hashCode);
2769 return JenkinsSmiHash.finish(hash);
2770 }
2771 }
2772
2773 /**
2774 * analysis.flushResults params
2775 *
2776 * {
2777 * "files": List<FilePath>
2778 * }
2779 *
2780 * Clients may not extend, implement or mix-in this class.
2781 */
2782 class AnalysisFlushResultsParams implements HasToJson {
2783 List<String> _files;
2784
2785 /**
2786 * The files that are no longer being analyzed.
2787 */
2788 List<String> get files => _files;
2789
2790 /**
2791 * The files that are no longer being analyzed.
2792 */
2793 void set files(List<String> value) {
2794 assert(value != null);
2795 this._files = value;
2796 }
2797
2798 AnalysisFlushResultsParams(List<String> files) {
2799 this.files = files;
2800 }
2801
2802 factory AnalysisFlushResultsParams.fromJson(
2803 JsonDecoder jsonDecoder, String jsonPath, Object json) {
2804 if (json == null) {
2805 json = {};
2806 }
2807 if (json is Map) {
2808 List<String> files;
2809 if (json.containsKey("files")) {
2810 files = jsonDecoder.decodeList(
2811 jsonPath + ".files", json["files"], jsonDecoder.decodeString);
2812 } else {
2813 throw jsonDecoder.missingKey(jsonPath, "files");
2814 }
2815 return new AnalysisFlushResultsParams(files);
2816 } else {
2817 throw jsonDecoder.mismatch(
2818 jsonPath, "analysis.flushResults params", json);
2819 }
2820 }
2821
2822 factory AnalysisFlushResultsParams.fromNotification(
2823 Notification notification) {
2824 return new AnalysisFlushResultsParams.fromJson(
2825 new ResponseDecoder(null), "params", notification._params);
2826 }
2827
2828 Map<String, dynamic> toJson() {
2829 Map<String, dynamic> result = {};
2830 result["files"] = files;
2831 return result;
2832 }
2833
2834 Notification toNotification() {
2835 return new Notification("analysis.flushResults", toJson());
2836 }
2837
2838 @override
2839 String toString() => JSON.encode(toJson());
2840
2841 @override
2842 bool operator ==(other) {
2843 if (other is AnalysisFlushResultsParams) {
2844 return listEqual(files, other.files, (String a, String b) => a == b);
2845 }
2846 return false;
2847 }
2848
2849 @override
2850 int get hashCode {
2851 int hash = 0;
2852 hash = JenkinsSmiHash.combine(hash, files.hashCode);
2853 return JenkinsSmiHash.finish(hash);
2854 }
2855 }
2856
2857 /**
2858 * analysis.folding params
2859 *
2860 * {
2861 * "file": FilePath
2862 * "regions": List<FoldingRegion>
2863 * }
2864 *
2865 * Clients may not extend, implement or mix-in this class.
2866 */
2867 class AnalysisFoldingParams implements HasToJson {
2868 String _file;
2869
2870 List<FoldingRegion> _regions;
2871
2872 /**
2873 * The file containing the folding regions.
2874 */
2875 String get file => _file;
2876
2877 /**
2878 * The file containing the folding regions.
2879 */
2880 void set file(String value) {
2881 assert(value != null);
2882 this._file = value;
2883 }
2884
2885 /**
2886 * The folding regions contained in the file.
2887 */
2888 List<FoldingRegion> get regions => _regions;
2889
2890 /**
2891 * The folding regions contained in the file.
2892 */
2893 void set regions(List<FoldingRegion> value) {
2894 assert(value != null);
2895 this._regions = value;
2896 }
2897
2898 AnalysisFoldingParams(String file, List<FoldingRegion> regions) {
2899 this.file = file;
2900 this.regions = regions;
2901 }
2902
2903 factory AnalysisFoldingParams.fromJson(
2904 JsonDecoder jsonDecoder, String jsonPath, Object json) {
2905 if (json == null) {
2906 json = {};
2907 }
2908 if (json is Map) {
2909 String file;
2910 if (json.containsKey("file")) {
2911 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
2912 } else {
2913 throw jsonDecoder.missingKey(jsonPath, "file");
2914 }
2915 List<FoldingRegion> regions;
2916 if (json.containsKey("regions")) {
2917 regions = jsonDecoder.decodeList(
2918 jsonPath + ".regions",
2919 json["regions"],
2920 (String jsonPath, Object json) =>
2921 new FoldingRegion.fromJson(jsonDecoder, jsonPath, json));
2922 } else {
2923 throw jsonDecoder.missingKey(jsonPath, "regions");
2924 }
2925 return new AnalysisFoldingParams(file, regions);
2926 } else {
2927 throw jsonDecoder.mismatch(jsonPath, "analysis.folding params", json);
2928 }
2929 }
2930
2931 factory AnalysisFoldingParams.fromNotification(Notification notification) {
2932 return new AnalysisFoldingParams.fromJson(
2933 new ResponseDecoder(null), "params", notification._params);
2934 }
2935
2936 Map<String, dynamic> toJson() {
2937 Map<String, dynamic> result = {};
2938 result["file"] = file;
2939 result["regions"] =
2940 regions.map((FoldingRegion value) => value.toJson()).toList();
2941 return result;
2942 }
2943
2944 Notification toNotification() {
2945 return new Notification("analysis.folding", toJson());
2946 }
2947
2948 @override
2949 String toString() => JSON.encode(toJson());
2950
2951 @override
2952 bool operator ==(other) {
2953 if (other is AnalysisFoldingParams) {
2954 return file == other.file &&
2955 listEqual(regions, other.regions,
2956 (FoldingRegion a, FoldingRegion b) => a == b);
2957 }
2958 return false;
2959 }
2960
2961 @override
2962 int get hashCode {
2963 int hash = 0;
2964 hash = JenkinsSmiHash.combine(hash, file.hashCode);
2965 hash = JenkinsSmiHash.combine(hash, regions.hashCode);
2966 return JenkinsSmiHash.finish(hash);
2967 }
2968 }
2969
2970 /**
2971 * analysis.highlights params
2972 *
2973 * {
2974 * "file": FilePath
2975 * "regions": List<HighlightRegion>
2976 * }
2977 *
2978 * Clients may not extend, implement or mix-in this class.
2979 */
2980 class AnalysisHighlightsParams implements HasToJson {
2981 String _file;
2982
2983 List<HighlightRegion> _regions;
2984
2985 /**
2986 * The file containing the highlight regions.
2987 */
2988 String get file => _file;
2989
2990 /**
2991 * The file containing the highlight regions.
2992 */
2993 void set file(String value) {
2994 assert(value != null);
2995 this._file = value;
2996 }
2997
2998 /**
2999 * The highlight regions contained in the file. Each highlight region
3000 * represents a particular syntactic or semantic meaning associated with some
3001 * range. Note that the highlight regions that are returned can overlap other
3002 * highlight regions if there is more than one meaning associated with a
3003 * particular region.
3004 */
3005 List<HighlightRegion> get regions => _regions;
3006
3007 /**
3008 * The highlight regions contained in the file. Each highlight region
3009 * represents a particular syntactic or semantic meaning associated with some
3010 * range. Note that the highlight regions that are returned can overlap other
3011 * highlight regions if there is more than one meaning associated with a
3012 * particular region.
3013 */
3014 void set regions(List<HighlightRegion> value) {
3015 assert(value != null);
3016 this._regions = value;
3017 }
3018
3019 AnalysisHighlightsParams(String file, List<HighlightRegion> regions) {
3020 this.file = file;
3021 this.regions = regions;
3022 }
3023
3024 factory AnalysisHighlightsParams.fromJson(
3025 JsonDecoder jsonDecoder, String jsonPath, Object json) {
3026 if (json == null) {
3027 json = {};
3028 }
3029 if (json is Map) {
3030 String file;
3031 if (json.containsKey("file")) {
3032 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
3033 } else {
3034 throw jsonDecoder.missingKey(jsonPath, "file");
3035 }
3036 List<HighlightRegion> regions;
3037 if (json.containsKey("regions")) {
3038 regions = jsonDecoder.decodeList(
3039 jsonPath + ".regions",
3040 json["regions"],
3041 (String jsonPath, Object json) =>
3042 new HighlightRegion.fromJson(jsonDecoder, jsonPath, json));
3043 } else {
3044 throw jsonDecoder.missingKey(jsonPath, "regions");
3045 }
3046 return new AnalysisHighlightsParams(file, regions);
3047 } else {
3048 throw jsonDecoder.mismatch(jsonPath, "analysis.highlights params", json);
3049 }
3050 }
3051
3052 factory AnalysisHighlightsParams.fromNotification(Notification notification) {
3053 return new AnalysisHighlightsParams.fromJson(
3054 new ResponseDecoder(null), "params", notification._params);
3055 }
3056
3057 Map<String, dynamic> toJson() {
3058 Map<String, dynamic> result = {};
3059 result["file"] = file;
3060 result["regions"] =
3061 regions.map((HighlightRegion value) => value.toJson()).toList();
3062 return result;
3063 }
3064
3065 Notification toNotification() {
3066 return new Notification("analysis.highlights", toJson());
3067 }
3068
3069 @override
3070 String toString() => JSON.encode(toJson());
3071
3072 @override
3073 bool operator ==(other) {
3074 if (other is AnalysisHighlightsParams) {
3075 return file == other.file &&
3076 listEqual(regions, other.regions,
3077 (HighlightRegion a, HighlightRegion b) => a == b);
3078 }
3079 return false;
3080 }
3081
3082 @override
3083 int get hashCode {
3084 int hash = 0;
3085 hash = JenkinsSmiHash.combine(hash, file.hashCode);
3086 hash = JenkinsSmiHash.combine(hash, regions.hashCode);
3087 return JenkinsSmiHash.finish(hash);
3088 }
3089 }
3090
3091 /**
3092 * analysis.implemented params
3093 *
3094 * {
3095 * "file": FilePath
3096 * "classes": List<ImplementedClass>
3097 * "members": List<ImplementedMember>
3098 * }
3099 *
3100 * Clients may not extend, implement or mix-in this class.
3101 */
3102 class AnalysisImplementedParams implements HasToJson {
3103 String _file;
3104
3105 List<ImplementedClass> _classes;
3106
3107 List<ImplementedMember> _members;
3108
3109 /**
3110 * The file with which the implementations are associated.
3111 */
3112 String get file => _file;
3113
3114 /**
3115 * The file with which the implementations are associated.
3116 */
3117 void set file(String value) {
3118 assert(value != null);
3119 this._file = value;
3120 }
3121
3122 /**
3123 * The classes defined in the file that are implemented or extended.
3124 */
3125 List<ImplementedClass> get classes => _classes;
3126
3127 /**
3128 * The classes defined in the file that are implemented or extended.
3129 */
3130 void set classes(List<ImplementedClass> value) {
3131 assert(value != null);
3132 this._classes = value;
3133 }
3134
3135 /**
3136 * The member defined in the file that are implemented or overridden.
3137 */
3138 List<ImplementedMember> get members => _members;
3139
3140 /**
3141 * The member defined in the file that are implemented or overridden.
3142 */
3143 void set members(List<ImplementedMember> value) {
3144 assert(value != null);
3145 this._members = value;
3146 }
3147
3148 AnalysisImplementedParams(String file, List<ImplementedClass> classes,
3149 List<ImplementedMember> members) {
3150 this.file = file;
3151 this.classes = classes;
3152 this.members = members;
3153 }
3154
3155 factory AnalysisImplementedParams.fromJson(
3156 JsonDecoder jsonDecoder, String jsonPath, Object json) {
3157 if (json == null) {
3158 json = {};
3159 }
3160 if (json is Map) {
3161 String file;
3162 if (json.containsKey("file")) {
3163 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
3164 } else {
3165 throw jsonDecoder.missingKey(jsonPath, "file");
3166 }
3167 List<ImplementedClass> classes;
3168 if (json.containsKey("classes")) {
3169 classes = jsonDecoder.decodeList(
3170 jsonPath + ".classes",
3171 json["classes"],
3172 (String jsonPath, Object json) =>
3173 new ImplementedClass.fromJson(jsonDecoder, jsonPath, json));
3174 } else {
3175 throw jsonDecoder.missingKey(jsonPath, "classes");
3176 }
3177 List<ImplementedMember> members;
3178 if (json.containsKey("members")) {
3179 members = jsonDecoder.decodeList(
3180 jsonPath + ".members",
3181 json["members"],
3182 (String jsonPath, Object json) =>
3183 new ImplementedMember.fromJson(jsonDecoder, jsonPath, json));
3184 } else {
3185 throw jsonDecoder.missingKey(jsonPath, "members");
3186 }
3187 return new AnalysisImplementedParams(file, classes, members);
3188 } else {
3189 throw jsonDecoder.mismatch(jsonPath, "analysis.implemented params", json);
3190 }
3191 }
3192
3193 factory AnalysisImplementedParams.fromNotification(
3194 Notification notification) {
3195 return new AnalysisImplementedParams.fromJson(
3196 new ResponseDecoder(null), "params", notification._params);
3197 }
3198
3199 Map<String, dynamic> toJson() {
3200 Map<String, dynamic> result = {};
3201 result["file"] = file;
3202 result["classes"] =
3203 classes.map((ImplementedClass value) => value.toJson()).toList();
3204 result["members"] =
3205 members.map((ImplementedMember value) => value.toJson()).toList();
3206 return result;
3207 }
3208
3209 Notification toNotification() {
3210 return new Notification("analysis.implemented", toJson());
3211 }
3212
3213 @override
3214 String toString() => JSON.encode(toJson());
3215
3216 @override
3217 bool operator ==(other) {
3218 if (other is AnalysisImplementedParams) {
3219 return file == other.file &&
3220 listEqual(classes, other.classes,
3221 (ImplementedClass a, ImplementedClass b) => a == b) &&
3222 listEqual(members, other.members,
3223 (ImplementedMember a, ImplementedMember b) => a == b);
3224 }
3225 return false;
3226 }
3227
3228 @override
3229 int get hashCode {
3230 int hash = 0;
3231 hash = JenkinsSmiHash.combine(hash, file.hashCode);
3232 hash = JenkinsSmiHash.combine(hash, classes.hashCode);
3233 hash = JenkinsSmiHash.combine(hash, members.hashCode);
3234 return JenkinsSmiHash.finish(hash);
3235 }
3236 }
3237
3238 /**
3239 * analysis.invalidate params
3240 *
3241 * {
3242 * "file": FilePath
3243 * "offset": int
3244 * "length": int
3245 * "delta": int
3246 * }
3247 *
3248 * Clients may not extend, implement or mix-in this class.
3249 */
3250 class AnalysisInvalidateParams implements HasToJson {
3251 String _file;
3252
3253 int _offset;
3254
3255 int _length;
3256
3257 int _delta;
3258
3259 /**
3260 * The file whose information has been invalidated.
3261 */
3262 String get file => _file;
3263
3264 /**
3265 * The file whose information has been invalidated.
3266 */
3267 void set file(String value) {
3268 assert(value != null);
3269 this._file = value;
3270 }
3271
3272 /**
3273 * The offset of the invalidated region.
3274 */
3275 int get offset => _offset;
3276
3277 /**
3278 * The offset of the invalidated region.
3279 */
3280 void set offset(int value) {
3281 assert(value != null);
3282 this._offset = value;
3283 }
3284
3285 /**
3286 * The length of the invalidated region.
3287 */
3288 int get length => _length;
3289
3290 /**
3291 * The length of the invalidated region.
3292 */
3293 void set length(int value) {
3294 assert(value != null);
3295 this._length = value;
3296 }
3297
3298 /**
3299 * The delta to be applied to the offsets in information that follows the
3300 * invalidated region in order to update it so that it doesn't need to be
3301 * re-requested.
3302 */
3303 int get delta => _delta;
3304
3305 /**
3306 * The delta to be applied to the offsets in information that follows the
3307 * invalidated region in order to update it so that it doesn't need to be
3308 * re-requested.
3309 */
3310 void set delta(int value) {
3311 assert(value != null);
3312 this._delta = value;
3313 }
3314
3315 AnalysisInvalidateParams(String file, int offset, int length, int delta) {
3316 this.file = file;
3317 this.offset = offset;
3318 this.length = length;
3319 this.delta = delta;
3320 }
3321
3322 factory AnalysisInvalidateParams.fromJson(
3323 JsonDecoder jsonDecoder, String jsonPath, Object json) {
3324 if (json == null) {
3325 json = {};
3326 }
3327 if (json is Map) {
3328 String file;
3329 if (json.containsKey("file")) {
3330 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
3331 } else {
3332 throw jsonDecoder.missingKey(jsonPath, "file");
3333 }
3334 int offset;
3335 if (json.containsKey("offset")) {
3336 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
3337 } else {
3338 throw jsonDecoder.missingKey(jsonPath, "offset");
3339 }
3340 int length;
3341 if (json.containsKey("length")) {
3342 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
3343 } else {
3344 throw jsonDecoder.missingKey(jsonPath, "length");
3345 }
3346 int delta;
3347 if (json.containsKey("delta")) {
3348 delta = jsonDecoder.decodeInt(jsonPath + ".delta", json["delta"]);
3349 } else {
3350 throw jsonDecoder.missingKey(jsonPath, "delta");
3351 }
3352 return new AnalysisInvalidateParams(file, offset, length, delta);
3353 } else {
3354 throw jsonDecoder.mismatch(jsonPath, "analysis.invalidate params", json);
3355 }
3356 }
3357
3358 factory AnalysisInvalidateParams.fromNotification(Notification notification) {
3359 return new AnalysisInvalidateParams.fromJson(
3360 new ResponseDecoder(null), "params", notification._params);
3361 }
3362
3363 Map<String, dynamic> toJson() {
3364 Map<String, dynamic> result = {};
3365 result["file"] = file;
3366 result["offset"] = offset;
3367 result["length"] = length;
3368 result["delta"] = delta;
3369 return result;
3370 }
3371
3372 Notification toNotification() {
3373 return new Notification("analysis.invalidate", toJson());
3374 }
3375
3376 @override
3377 String toString() => JSON.encode(toJson());
3378
3379 @override
3380 bool operator ==(other) {
3381 if (other is AnalysisInvalidateParams) {
3382 return file == other.file &&
3383 offset == other.offset &&
3384 length == other.length &&
3385 delta == other.delta;
3386 }
3387 return false;
3388 }
3389
3390 @override
3391 int get hashCode {
3392 int hash = 0;
3393 hash = JenkinsSmiHash.combine(hash, file.hashCode);
3394 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
3395 hash = JenkinsSmiHash.combine(hash, length.hashCode);
3396 hash = JenkinsSmiHash.combine(hash, delta.hashCode);
3397 return JenkinsSmiHash.finish(hash);
3398 }
3399 }
3400
3401 /**
3402 * analysis.navigation params
3403 *
3404 * {
3405 * "file": FilePath
3406 * "regions": List<NavigationRegion>
3407 * "targets": List<NavigationTarget>
3408 * "files": List<FilePath>
3409 * }
3410 *
3411 * Clients may not extend, implement or mix-in this class.
3412 */
3413 class AnalysisNavigationParams implements HasToJson {
3414 String _file;
3415
3416 List<NavigationRegion> _regions;
3417
3418 List<NavigationTarget> _targets;
3419
3420 List<String> _files;
3421
3422 /**
3423 * The file containing the navigation regions.
3424 */
3425 String get file => _file;
3426
3427 /**
3428 * The file containing the navigation regions.
3429 */
3430 void set file(String value) {
3431 assert(value != null);
3432 this._file = value;
3433 }
3434
3435 /**
3436 * The navigation regions contained in the file. The regions are sorted by
3437 * their offsets. Each navigation region represents a list of targets
3438 * associated with some range. The lists will usually contain a single
3439 * target, but can contain more in the case of a part that is included in
3440 * multiple libraries or in Dart code that is compiled against multiple
3441 * versions of a package. Note that the navigation regions that are returned
3442 * do not overlap other navigation regions.
3443 */
3444 List<NavigationRegion> get regions => _regions;
3445
3446 /**
3447 * The navigation regions contained in the file. The regions are sorted by
3448 * their offsets. Each navigation region represents a list of targets
3449 * associated with some range. The lists will usually contain a single
3450 * target, but can contain more in the case of a part that is included in
3451 * multiple libraries or in Dart code that is compiled against multiple
3452 * versions of a package. Note that the navigation regions that are returned
3453 * do not overlap other navigation regions.
3454 */
3455 void set regions(List<NavigationRegion> value) {
3456 assert(value != null);
3457 this._regions = value;
3458 }
3459
3460 /**
3461 * The navigation targets referenced in the file. They are referenced by
3462 * NavigationRegions by their index in this array.
3463 */
3464 List<NavigationTarget> get targets => _targets;
3465
3466 /**
3467 * The navigation targets referenced in the file. They are referenced by
3468 * NavigationRegions by their index in this array.
3469 */
3470 void set targets(List<NavigationTarget> value) {
3471 assert(value != null);
3472 this._targets = value;
3473 }
3474
3475 /**
3476 * The files containing navigation targets referenced in the file. They are
3477 * referenced by NavigationTargets by their index in this array.
3478 */
3479 List<String> get files => _files;
3480
3481 /**
3482 * The files containing navigation targets referenced in the file. They are
3483 * referenced by NavigationTargets by their index in this array.
3484 */
3485 void set files(List<String> value) {
3486 assert(value != null);
3487 this._files = value;
3488 }
3489
3490 AnalysisNavigationParams(String file, List<NavigationRegion> regions,
3491 List<NavigationTarget> targets, List<String> files) {
3492 this.file = file;
3493 this.regions = regions;
3494 this.targets = targets;
3495 this.files = files;
3496 }
3497
3498 factory AnalysisNavigationParams.fromJson(
3499 JsonDecoder jsonDecoder, String jsonPath, Object json) {
3500 if (json == null) {
3501 json = {};
3502 }
3503 if (json is Map) {
3504 String file;
3505 if (json.containsKey("file")) {
3506 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
3507 } else {
3508 throw jsonDecoder.missingKey(jsonPath, "file");
3509 }
3510 List<NavigationRegion> regions;
3511 if (json.containsKey("regions")) {
3512 regions = jsonDecoder.decodeList(
3513 jsonPath + ".regions",
3514 json["regions"],
3515 (String jsonPath, Object json) =>
3516 new NavigationRegion.fromJson(jsonDecoder, jsonPath, json));
3517 } else {
3518 throw jsonDecoder.missingKey(jsonPath, "regions");
3519 }
3520 List<NavigationTarget> targets;
3521 if (json.containsKey("targets")) {
3522 targets = jsonDecoder.decodeList(
3523 jsonPath + ".targets",
3524 json["targets"],
3525 (String jsonPath, Object json) =>
3526 new NavigationTarget.fromJson(jsonDecoder, jsonPath, json));
3527 } else {
3528 throw jsonDecoder.missingKey(jsonPath, "targets");
3529 }
3530 List<String> files;
3531 if (json.containsKey("files")) {
3532 files = jsonDecoder.decodeList(
3533 jsonPath + ".files", json["files"], jsonDecoder.decodeString);
3534 } else {
3535 throw jsonDecoder.missingKey(jsonPath, "files");
3536 }
3537 return new AnalysisNavigationParams(file, regions, targets, files);
3538 } else {
3539 throw jsonDecoder.mismatch(jsonPath, "analysis.navigation params", json);
3540 }
3541 }
3542
3543 factory AnalysisNavigationParams.fromNotification(Notification notification) {
3544 return new AnalysisNavigationParams.fromJson(
3545 new ResponseDecoder(null), "params", notification._params);
3546 }
3547
3548 Map<String, dynamic> toJson() {
3549 Map<String, dynamic> result = {};
3550 result["file"] = file;
3551 result["regions"] =
3552 regions.map((NavigationRegion value) => value.toJson()).toList();
3553 result["targets"] =
3554 targets.map((NavigationTarget value) => value.toJson()).toList();
3555 result["files"] = files;
3556 return result;
3557 }
3558
3559 Notification toNotification() {
3560 return new Notification("analysis.navigation", toJson());
3561 }
3562
3563 @override
3564 String toString() => JSON.encode(toJson());
3565
3566 @override
3567 bool operator ==(other) {
3568 if (other is AnalysisNavigationParams) {
3569 return file == other.file &&
3570 listEqual(regions, other.regions,
3571 (NavigationRegion a, NavigationRegion b) => a == b) &&
3572 listEqual(targets, other.targets,
3573 (NavigationTarget a, NavigationTarget b) => a == b) &&
3574 listEqual(files, other.files, (String a, String b) => a == b);
3575 }
3576 return false;
3577 }
3578
3579 @override
3580 int get hashCode {
3581 int hash = 0;
3582 hash = JenkinsSmiHash.combine(hash, file.hashCode);
3583 hash = JenkinsSmiHash.combine(hash, regions.hashCode);
3584 hash = JenkinsSmiHash.combine(hash, targets.hashCode);
3585 hash = JenkinsSmiHash.combine(hash, files.hashCode);
3586 return JenkinsSmiHash.finish(hash);
3587 }
3588 }
3589
3590 /**
3591 * analysis.occurrences params
3592 *
3593 * {
3594 * "file": FilePath
3595 * "occurrences": List<Occurrences>
3596 * }
3597 *
3598 * Clients may not extend, implement or mix-in this class.
3599 */
3600 class AnalysisOccurrencesParams implements HasToJson {
3601 String _file;
3602
3603 List<Occurrences> _occurrences;
3604
3605 /**
3606 * The file in which the references occur.
3607 */
3608 String get file => _file;
3609
3610 /**
3611 * The file in which the references occur.
3612 */
3613 void set file(String value) {
3614 assert(value != null);
3615 this._file = value;
3616 }
3617
3618 /**
3619 * The occurrences of references to elements within the file.
3620 */
3621 List<Occurrences> get occurrences => _occurrences;
3622
3623 /**
3624 * The occurrences of references to elements within the file.
3625 */
3626 void set occurrences(List<Occurrences> value) {
3627 assert(value != null);
3628 this._occurrences = value;
3629 }
3630
3631 AnalysisOccurrencesParams(String file, List<Occurrences> occurrences) {
3632 this.file = file;
3633 this.occurrences = occurrences;
3634 }
3635
3636 factory AnalysisOccurrencesParams.fromJson(
3637 JsonDecoder jsonDecoder, String jsonPath, Object json) {
3638 if (json == null) {
3639 json = {};
3640 }
3641 if (json is Map) {
3642 String file;
3643 if (json.containsKey("file")) {
3644 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
3645 } else {
3646 throw jsonDecoder.missingKey(jsonPath, "file");
3647 }
3648 List<Occurrences> occurrences;
3649 if (json.containsKey("occurrences")) {
3650 occurrences = jsonDecoder.decodeList(
3651 jsonPath + ".occurrences",
3652 json["occurrences"],
3653 (String jsonPath, Object json) =>
3654 new Occurrences.fromJson(jsonDecoder, jsonPath, json));
3655 } else {
3656 throw jsonDecoder.missingKey(jsonPath, "occurrences");
3657 }
3658 return new AnalysisOccurrencesParams(file, occurrences);
3659 } else {
3660 throw jsonDecoder.mismatch(jsonPath, "analysis.occurrences params", json);
3661 }
3662 }
3663
3664 factory AnalysisOccurrencesParams.fromNotification(
3665 Notification notification) {
3666 return new AnalysisOccurrencesParams.fromJson(
3667 new ResponseDecoder(null), "params", notification._params);
3668 }
3669
3670 Map<String, dynamic> toJson() {
3671 Map<String, dynamic> result = {};
3672 result["file"] = file;
3673 result["occurrences"] =
3674 occurrences.map((Occurrences value) => value.toJson()).toList();
3675 return result;
3676 }
3677
3678 Notification toNotification() {
3679 return new Notification("analysis.occurrences", toJson());
3680 }
3681
3682 @override
3683 String toString() => JSON.encode(toJson());
3684
3685 @override
3686 bool operator ==(other) {
3687 if (other is AnalysisOccurrencesParams) {
3688 return file == other.file &&
3689 listEqual(occurrences, other.occurrences,
3690 (Occurrences a, Occurrences b) => a == b);
3691 }
3692 return false;
3693 }
3694
3695 @override
3696 int get hashCode {
3697 int hash = 0;
3698 hash = JenkinsSmiHash.combine(hash, file.hashCode);
3699 hash = JenkinsSmiHash.combine(hash, occurrences.hashCode);
3700 return JenkinsSmiHash.finish(hash);
3701 }
3702 }
3703
3704 /**
3705 * analysis.outline params
3706 *
3707 * {
3708 * "file": FilePath
3709 * "kind": FileKind
3710 * "libraryName": optional String
3711 * "outline": Outline
3712 * }
3713 *
3714 * Clients may not extend, implement or mix-in this class.
3715 */
3716 class AnalysisOutlineParams implements HasToJson {
3717 String _file;
3718
3719 FileKind _kind;
3720
3721 String _libraryName;
3722
3723 Outline _outline;
3724
3725 /**
3726 * The file with which the outline is associated.
3727 */
3728 String get file => _file;
3729
3730 /**
3731 * The file with which the outline is associated.
3732 */
3733 void set file(String value) {
3734 assert(value != null);
3735 this._file = value;
3736 }
3737
3738 /**
3739 * The kind of the file.
3740 */
3741 FileKind get kind => _kind;
3742
3743 /**
3744 * The kind of the file.
3745 */
3746 void set kind(FileKind value) {
3747 assert(value != null);
3748 this._kind = value;
3749 }
3750
3751 /**
3752 * The name of the library defined by the file using a "library" directive,
3753 * or referenced by a "part of" directive. If both "library" and "part of"
3754 * directives are present, then the "library" directive takes precedence.
3755 * This field will be omitted if the file has neither "library" nor "part of"
3756 * directives.
3757 */
3758 String get libraryName => _libraryName;
3759
3760 /**
3761 * The name of the library defined by the file using a "library" directive,
3762 * or referenced by a "part of" directive. If both "library" and "part of"
3763 * directives are present, then the "library" directive takes precedence.
3764 * This field will be omitted if the file has neither "library" nor "part of"
3765 * directives.
3766 */
3767 void set libraryName(String value) {
3768 this._libraryName = value;
3769 }
3770
3771 /**
3772 * The outline associated with the file.
3773 */
3774 Outline get outline => _outline;
3775
3776 /**
3777 * The outline associated with the file.
3778 */
3779 void set outline(Outline value) {
3780 assert(value != null);
3781 this._outline = value;
3782 }
3783
3784 AnalysisOutlineParams(String file, FileKind kind, Outline outline,
3785 {String libraryName}) {
3786 this.file = file;
3787 this.kind = kind;
3788 this.libraryName = libraryName;
3789 this.outline = outline;
3790 }
3791
3792 factory AnalysisOutlineParams.fromJson(
3793 JsonDecoder jsonDecoder, String jsonPath, Object json) {
3794 if (json == null) {
3795 json = {};
3796 }
3797 if (json is Map) {
3798 String file;
3799 if (json.containsKey("file")) {
3800 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
3801 } else {
3802 throw jsonDecoder.missingKey(jsonPath, "file");
3803 }
3804 FileKind kind;
3805 if (json.containsKey("kind")) {
3806 kind = new FileKind.fromJson(
3807 jsonDecoder, jsonPath + ".kind", json["kind"]);
3808 } else {
3809 throw jsonDecoder.missingKey(jsonPath, "kind");
3810 }
3811 String libraryName;
3812 if (json.containsKey("libraryName")) {
3813 libraryName = jsonDecoder.decodeString(
3814 jsonPath + ".libraryName", json["libraryName"]);
3815 }
3816 Outline outline;
3817 if (json.containsKey("outline")) {
3818 outline = new Outline.fromJson(
3819 jsonDecoder, jsonPath + ".outline", json["outline"]);
3820 } else {
3821 throw jsonDecoder.missingKey(jsonPath, "outline");
3822 }
3823 return new AnalysisOutlineParams(file, kind, outline,
3824 libraryName: libraryName);
3825 } else {
3826 throw jsonDecoder.mismatch(jsonPath, "analysis.outline params", json);
3827 }
3828 }
3829
3830 factory AnalysisOutlineParams.fromNotification(Notification notification) {
3831 return new AnalysisOutlineParams.fromJson(
3832 new ResponseDecoder(null), "params", notification._params);
3833 }
3834
3835 Map<String, dynamic> toJson() {
3836 Map<String, dynamic> result = {};
3837 result["file"] = file;
3838 result["kind"] = kind.toJson();
3839 if (libraryName != null) {
3840 result["libraryName"] = libraryName;
3841 }
3842 result["outline"] = outline.toJson();
3843 return result;
3844 }
3845
3846 Notification toNotification() {
3847 return new Notification("analysis.outline", toJson());
3848 }
3849
3850 @override
3851 String toString() => JSON.encode(toJson());
3852
3853 @override
3854 bool operator ==(other) {
3855 if (other is AnalysisOutlineParams) {
3856 return file == other.file &&
3857 kind == other.kind &&
3858 libraryName == other.libraryName &&
3859 outline == other.outline;
3860 }
3861 return false;
3862 }
3863
3864 @override
3865 int get hashCode {
3866 int hash = 0;
3867 hash = JenkinsSmiHash.combine(hash, file.hashCode);
3868 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
3869 hash = JenkinsSmiHash.combine(hash, libraryName.hashCode);
3870 hash = JenkinsSmiHash.combine(hash, outline.hashCode);
3871 return JenkinsSmiHash.finish(hash);
3872 }
3873 }
3874
3875 /**
3876 * analysis.overrides params
3877 *
3878 * {
3879 * "file": FilePath
3880 * "overrides": List<Override>
3881 * }
3882 *
3883 * Clients may not extend, implement or mix-in this class.
3884 */
3885 class AnalysisOverridesParams implements HasToJson {
3886 String _file;
3887
3888 List<Override> _overrides;
3889
3890 /**
3891 * The file with which the overrides are associated.
3892 */
3893 String get file => _file;
3894
3895 /**
3896 * The file with which the overrides are associated.
3897 */
3898 void set file(String value) {
3899 assert(value != null);
3900 this._file = value;
3901 }
3902
3903 /**
3904 * The overrides associated with the file.
3905 */
3906 List<Override> get overrides => _overrides;
3907
3908 /**
3909 * The overrides associated with the file.
3910 */
3911 void set overrides(List<Override> value) {
3912 assert(value != null);
3913 this._overrides = value;
3914 }
3915
3916 AnalysisOverridesParams(String file, List<Override> overrides) {
3917 this.file = file;
3918 this.overrides = overrides;
3919 }
3920
3921 factory AnalysisOverridesParams.fromJson(
3922 JsonDecoder jsonDecoder, String jsonPath, Object json) {
3923 if (json == null) {
3924 json = {};
3925 }
3926 if (json is Map) {
3927 String file;
3928 if (json.containsKey("file")) {
3929 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
3930 } else {
3931 throw jsonDecoder.missingKey(jsonPath, "file");
3932 }
3933 List<Override> overrides;
3934 if (json.containsKey("overrides")) {
3935 overrides = jsonDecoder.decodeList(
3936 jsonPath + ".overrides",
3937 json["overrides"],
3938 (String jsonPath, Object json) =>
3939 new Override.fromJson(jsonDecoder, jsonPath, json));
3940 } else {
3941 throw jsonDecoder.missingKey(jsonPath, "overrides");
3942 }
3943 return new AnalysisOverridesParams(file, overrides);
3944 } else {
3945 throw jsonDecoder.mismatch(jsonPath, "analysis.overrides params", json);
3946 }
3947 }
3948
3949 factory AnalysisOverridesParams.fromNotification(Notification notification) {
3950 return new AnalysisOverridesParams.fromJson(
3951 new ResponseDecoder(null), "params", notification._params);
3952 }
3953
3954 Map<String, dynamic> toJson() {
3955 Map<String, dynamic> result = {};
3956 result["file"] = file;
3957 result["overrides"] =
3958 overrides.map((Override value) => value.toJson()).toList();
3959 return result;
3960 }
3961
3962 Notification toNotification() {
3963 return new Notification("analysis.overrides", toJson());
3964 }
3965
3966 @override
3967 String toString() => JSON.encode(toJson());
3968
3969 @override
3970 bool operator ==(other) {
3971 if (other is AnalysisOverridesParams) {
3972 return file == other.file &&
3973 listEqual(
3974 overrides, other.overrides, (Override a, Override b) => a == b);
3975 }
3976 return false;
3977 }
3978
3979 @override
3980 int get hashCode {
3981 int hash = 0;
3982 hash = JenkinsSmiHash.combine(hash, file.hashCode);
3983 hash = JenkinsSmiHash.combine(hash, overrides.hashCode);
3984 return JenkinsSmiHash.finish(hash);
3985 }
3986 }
3987
3988 /**
3989 * completion.getSuggestions params
3990 *
3991 * {
3992 * "file": FilePath
3993 * "offset": int
3994 * }
3995 *
3996 * Clients may not extend, implement or mix-in this class.
3997 */
3998 class CompletionGetSuggestionsParams implements HasToJson {
3999 String _file;
4000
4001 int _offset;
4002
4003 /**
4004 * The file containing the point at which suggestions are to be made.
4005 */
4006 String get file => _file;
4007
4008 /**
4009 * The file containing the point at which suggestions are to be made.
4010 */
4011 void set file(String value) {
4012 assert(value != null);
4013 this._file = value;
4014 }
4015
4016 /**
4017 * The offset within the file at which suggestions are to be made.
4018 */
4019 int get offset => _offset;
4020
4021 /**
4022 * The offset within the file at which suggestions are to be made.
4023 */
4024 void set offset(int value) {
4025 assert(value != null);
4026 this._offset = value;
4027 }
4028
4029 CompletionGetSuggestionsParams(String file, int offset) {
4030 this.file = file;
4031 this.offset = offset;
4032 }
4033
4034 factory CompletionGetSuggestionsParams.fromJson(
4035 JsonDecoder jsonDecoder, String jsonPath, Object json) {
4036 if (json == null) {
4037 json = {};
4038 }
4039 if (json is Map) {
4040 String file;
4041 if (json.containsKey("file")) {
4042 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
4043 } else {
4044 throw jsonDecoder.missingKey(jsonPath, "file");
4045 }
4046 int offset;
4047 if (json.containsKey("offset")) {
4048 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
4049 } else {
4050 throw jsonDecoder.missingKey(jsonPath, "offset");
4051 }
4052 return new CompletionGetSuggestionsParams(file, offset);
4053 } else {
4054 throw jsonDecoder.mismatch(
4055 jsonPath, "completion.getSuggestions params", json);
4056 }
4057 }
4058
4059 factory CompletionGetSuggestionsParams.fromRequest(Request request) {
4060 return new CompletionGetSuggestionsParams.fromJson(
4061 new RequestDecoder(request), "params", request._params);
4062 }
4063
4064 Map<String, dynamic> toJson() {
4065 Map<String, dynamic> result = {};
4066 result["file"] = file;
4067 result["offset"] = offset;
4068 return result;
4069 }
4070
4071 Request toRequest(String id) {
4072 return new Request(id, "completion.getSuggestions", toJson());
4073 }
4074
4075 @override
4076 String toString() => JSON.encode(toJson());
4077
4078 @override
4079 bool operator ==(other) {
4080 if (other is CompletionGetSuggestionsParams) {
4081 return file == other.file && offset == other.offset;
4082 }
4083 return false;
4084 }
4085
4086 @override
4087 int get hashCode {
4088 int hash = 0;
4089 hash = JenkinsSmiHash.combine(hash, file.hashCode);
4090 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
4091 return JenkinsSmiHash.finish(hash);
4092 }
4093 }
4094
4095 /**
4096 * completion.getSuggestions result
4097 *
4098 * {
4099 * "id": CompletionId
4100 * }
4101 *
4102 * Clients may not extend, implement or mix-in this class.
4103 */
4104 class CompletionGetSuggestionsResult implements HasToJson {
4105 String _id;
4106
4107 /**
4108 * The identifier used to associate results with this completion request.
4109 */
4110 String get id => _id;
4111
4112 /**
4113 * The identifier used to associate results with this completion request.
4114 */
4115 void set id(String value) {
4116 assert(value != null);
4117 this._id = value;
4118 }
4119
4120 CompletionGetSuggestionsResult(String id) {
4121 this.id = id;
4122 }
4123
4124 factory CompletionGetSuggestionsResult.fromJson(
4125 JsonDecoder jsonDecoder, String jsonPath, Object json) {
4126 if (json == null) {
4127 json = {};
4128 }
4129 if (json is Map) {
4130 String id;
4131 if (json.containsKey("id")) {
4132 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
4133 } else {
4134 throw jsonDecoder.missingKey(jsonPath, "id");
4135 }
4136 return new CompletionGetSuggestionsResult(id);
4137 } else {
4138 throw jsonDecoder.mismatch(
4139 jsonPath, "completion.getSuggestions result", json);
4140 }
4141 }
4142
4143 factory CompletionGetSuggestionsResult.fromResponse(Response response) {
4144 return new CompletionGetSuggestionsResult.fromJson(
4145 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
4146 "result",
4147 response._result);
4148 }
4149
4150 Map<String, dynamic> toJson() {
4151 Map<String, dynamic> result = {};
4152 result["id"] = id;
4153 return result;
4154 }
4155
4156 Response toResponse(String id) {
4157 return new Response(id, result: toJson());
4158 }
4159
4160 @override
4161 String toString() => JSON.encode(toJson());
4162
4163 @override
4164 bool operator ==(other) {
4165 if (other is CompletionGetSuggestionsResult) {
4166 return id == other.id;
4167 }
4168 return false;
4169 }
4170
4171 @override
4172 int get hashCode {
4173 int hash = 0;
4174 hash = JenkinsSmiHash.combine(hash, id.hashCode);
4175 return JenkinsSmiHash.finish(hash);
4176 }
4177 }
4178
4179 /**
4180 * completion.results params
4181 *
4182 * {
4183 * "id": CompletionId
4184 * "replacementOffset": int
4185 * "replacementLength": int
4186 * "results": List<CompletionSuggestion>
4187 * "isLast": bool
4188 * }
4189 *
4190 * Clients may not extend, implement or mix-in this class.
4191 */
4192 class CompletionResultsParams implements HasToJson {
4193 String _id;
4194
4195 int _replacementOffset;
4196
4197 int _replacementLength;
4198
4199 List<CompletionSuggestion> _results;
4200
4201 bool _isLast;
4202
4203 /**
4204 * The id associated with the completion.
4205 */
4206 String get id => _id;
4207
4208 /**
4209 * The id associated with the completion.
4210 */
4211 void set id(String value) {
4212 assert(value != null);
4213 this._id = value;
4214 }
4215
4216 /**
4217 * The offset of the start of the text to be replaced. This will be different
4218 * than the offset used to request the completion suggestions if there was a
4219 * portion of an identifier before the original offset. In particular, the
4220 * replacementOffset will be the offset of the beginning of said identifier.
4221 */
4222 int get replacementOffset => _replacementOffset;
4223
4224 /**
4225 * The offset of the start of the text to be replaced. This will be different
4226 * than the offset used to request the completion suggestions if there was a
4227 * portion of an identifier before the original offset. In particular, the
4228 * replacementOffset will be the offset of the beginning of said identifier.
4229 */
4230 void set replacementOffset(int value) {
4231 assert(value != null);
4232 this._replacementOffset = value;
4233 }
4234
4235 /**
4236 * The length of the text to be replaced if the remainder of the identifier
4237 * containing the cursor is to be replaced when the suggestion is applied
4238 * (that is, the number of characters in the existing identifier).
4239 */
4240 int get replacementLength => _replacementLength;
4241
4242 /**
4243 * The length of the text to be replaced if the remainder of the identifier
4244 * containing the cursor is to be replaced when the suggestion is applied
4245 * (that is, the number of characters in the existing identifier).
4246 */
4247 void set replacementLength(int value) {
4248 assert(value != null);
4249 this._replacementLength = value;
4250 }
4251
4252 /**
4253 * The completion suggestions being reported. The notification contains all
4254 * possible completions at the requested cursor position, even those that do
4255 * not match the characters the user has already typed. This allows the
4256 * client to respond to further keystrokes from the user without having to
4257 * make additional requests.
4258 */
4259 List<CompletionSuggestion> get results => _results;
4260
4261 /**
4262 * The completion suggestions being reported. The notification contains all
4263 * possible completions at the requested cursor position, even those that do
4264 * not match the characters the user has already typed. This allows the
4265 * client to respond to further keystrokes from the user without having to
4266 * make additional requests.
4267 */
4268 void set results(List<CompletionSuggestion> value) {
4269 assert(value != null);
4270 this._results = value;
4271 }
4272
4273 /**
4274 * True if this is that last set of results that will be returned for the
4275 * indicated completion.
4276 */
4277 bool get isLast => _isLast;
4278
4279 /**
4280 * True if this is that last set of results that will be returned for the
4281 * indicated completion.
4282 */
4283 void set isLast(bool value) {
4284 assert(value != null);
4285 this._isLast = value;
4286 }
4287
4288 CompletionResultsParams(String id, int replacementOffset,
4289 int replacementLength, List<CompletionSuggestion> results, bool isLast) {
4290 this.id = id;
4291 this.replacementOffset = replacementOffset;
4292 this.replacementLength = replacementLength;
4293 this.results = results;
4294 this.isLast = isLast;
4295 }
4296
4297 factory CompletionResultsParams.fromJson(
4298 JsonDecoder jsonDecoder, String jsonPath, Object json) {
4299 if (json == null) {
4300 json = {};
4301 }
4302 if (json is Map) {
4303 String id;
4304 if (json.containsKey("id")) {
4305 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
4306 } else {
4307 throw jsonDecoder.missingKey(jsonPath, "id");
4308 }
4309 int replacementOffset;
4310 if (json.containsKey("replacementOffset")) {
4311 replacementOffset = jsonDecoder.decodeInt(
4312 jsonPath + ".replacementOffset", json["replacementOffset"]);
4313 } else {
4314 throw jsonDecoder.missingKey(jsonPath, "replacementOffset");
4315 }
4316 int replacementLength;
4317 if (json.containsKey("replacementLength")) {
4318 replacementLength = jsonDecoder.decodeInt(
4319 jsonPath + ".replacementLength", json["replacementLength"]);
4320 } else {
4321 throw jsonDecoder.missingKey(jsonPath, "replacementLength");
4322 }
4323 List<CompletionSuggestion> results;
4324 if (json.containsKey("results")) {
4325 results = jsonDecoder.decodeList(
4326 jsonPath + ".results",
4327 json["results"],
4328 (String jsonPath, Object json) =>
4329 new CompletionSuggestion.fromJson(jsonDecoder, jsonPath, json));
4330 } else {
4331 throw jsonDecoder.missingKey(jsonPath, "results");
4332 }
4333 bool isLast;
4334 if (json.containsKey("isLast")) {
4335 isLast = jsonDecoder.decodeBool(jsonPath + ".isLast", json["isLast"]);
4336 } else {
4337 throw jsonDecoder.missingKey(jsonPath, "isLast");
4338 }
4339 return new CompletionResultsParams(
4340 id, replacementOffset, replacementLength, results, isLast);
4341 } else {
4342 throw jsonDecoder.mismatch(jsonPath, "completion.results params", json);
4343 }
4344 }
4345
4346 factory CompletionResultsParams.fromNotification(Notification notification) {
4347 return new CompletionResultsParams.fromJson(
4348 new ResponseDecoder(null), "params", notification._params);
4349 }
4350
4351 Map<String, dynamic> toJson() {
4352 Map<String, dynamic> result = {};
4353 result["id"] = id;
4354 result["replacementOffset"] = replacementOffset;
4355 result["replacementLength"] = replacementLength;
4356 result["results"] =
4357 results.map((CompletionSuggestion value) => value.toJson()).toList();
4358 result["isLast"] = isLast;
4359 return result;
4360 }
4361
4362 Notification toNotification() {
4363 return new Notification("completion.results", toJson());
4364 }
4365
4366 @override
4367 String toString() => JSON.encode(toJson());
4368
4369 @override
4370 bool operator ==(other) {
4371 if (other is CompletionResultsParams) {
4372 return id == other.id &&
4373 replacementOffset == other.replacementOffset &&
4374 replacementLength == other.replacementLength &&
4375 listEqual(results, other.results,
4376 (CompletionSuggestion a, CompletionSuggestion b) => a == b) &&
4377 isLast == other.isLast;
4378 }
4379 return false;
4380 }
4381
4382 @override
4383 int get hashCode {
4384 int hash = 0;
4385 hash = JenkinsSmiHash.combine(hash, id.hashCode);
4386 hash = JenkinsSmiHash.combine(hash, replacementOffset.hashCode);
4387 hash = JenkinsSmiHash.combine(hash, replacementLength.hashCode);
4388 hash = JenkinsSmiHash.combine(hash, results.hashCode);
4389 hash = JenkinsSmiHash.combine(hash, isLast.hashCode);
4390 return JenkinsSmiHash.finish(hash);
4391 }
4392 }
4393
4394 /**
4395 * search.findElementReferences params
4396 *
4397 * {
4398 * "file": FilePath
4399 * "offset": int
4400 * "includePotential": bool
4401 * }
4402 *
4403 * Clients may not extend, implement or mix-in this class.
4404 */
4405 class SearchFindElementReferencesParams implements HasToJson {
4406 String _file;
4407
4408 int _offset;
4409
4410 bool _includePotential;
4411
4412 /**
4413 * The file containing the declaration of or reference to the element used to
4414 * define the search.
4415 */
4416 String get file => _file;
4417
4418 /**
4419 * The file containing the declaration of or reference to the element used to
4420 * define the search.
4421 */
4422 void set file(String value) {
4423 assert(value != null);
4424 this._file = value;
4425 }
4426
4427 /**
4428 * The offset within the file of the declaration of or reference to the
4429 * element.
4430 */
4431 int get offset => _offset;
4432
4433 /**
4434 * The offset within the file of the declaration of or reference to the
4435 * element.
4436 */
4437 void set offset(int value) {
4438 assert(value != null);
4439 this._offset = value;
4440 }
4441
4442 /**
4443 * True if potential matches are to be included in the results.
4444 */
4445 bool get includePotential => _includePotential;
4446
4447 /**
4448 * True if potential matches are to be included in the results.
4449 */
4450 void set includePotential(bool value) {
4451 assert(value != null);
4452 this._includePotential = value;
4453 }
4454
4455 SearchFindElementReferencesParams(
4456 String file, int offset, bool includePotential) {
4457 this.file = file;
4458 this.offset = offset;
4459 this.includePotential = includePotential;
4460 }
4461
4462 factory SearchFindElementReferencesParams.fromJson(
4463 JsonDecoder jsonDecoder, String jsonPath, Object json) {
4464 if (json == null) {
4465 json = {};
4466 }
4467 if (json is Map) {
4468 String file;
4469 if (json.containsKey("file")) {
4470 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
4471 } else {
4472 throw jsonDecoder.missingKey(jsonPath, "file");
4473 }
4474 int offset;
4475 if (json.containsKey("offset")) {
4476 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
4477 } else {
4478 throw jsonDecoder.missingKey(jsonPath, "offset");
4479 }
4480 bool includePotential;
4481 if (json.containsKey("includePotential")) {
4482 includePotential = jsonDecoder.decodeBool(
4483 jsonPath + ".includePotential", json["includePotential"]);
4484 } else {
4485 throw jsonDecoder.missingKey(jsonPath, "includePotential");
4486 }
4487 return new SearchFindElementReferencesParams(
4488 file, offset, includePotential);
4489 } else {
4490 throw jsonDecoder.mismatch(
4491 jsonPath, "search.findElementReferences params", json);
4492 }
4493 }
4494
4495 factory SearchFindElementReferencesParams.fromRequest(Request request) {
4496 return new SearchFindElementReferencesParams.fromJson(
4497 new RequestDecoder(request), "params", request._params);
4498 }
4499
4500 Map<String, dynamic> toJson() {
4501 Map<String, dynamic> result = {};
4502 result["file"] = file;
4503 result["offset"] = offset;
4504 result["includePotential"] = includePotential;
4505 return result;
4506 }
4507
4508 Request toRequest(String id) {
4509 return new Request(id, "search.findElementReferences", toJson());
4510 }
4511
4512 @override
4513 String toString() => JSON.encode(toJson());
4514
4515 @override
4516 bool operator ==(other) {
4517 if (other is SearchFindElementReferencesParams) {
4518 return file == other.file &&
4519 offset == other.offset &&
4520 includePotential == other.includePotential;
4521 }
4522 return false;
4523 }
4524
4525 @override
4526 int get hashCode {
4527 int hash = 0;
4528 hash = JenkinsSmiHash.combine(hash, file.hashCode);
4529 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
4530 hash = JenkinsSmiHash.combine(hash, includePotential.hashCode);
4531 return JenkinsSmiHash.finish(hash);
4532 }
4533 }
4534
4535 /**
4536 * search.findElementReferences result
4537 *
4538 * {
4539 * "id": optional SearchId
4540 * "element": optional Element
4541 * }
4542 *
4543 * Clients may not extend, implement or mix-in this class.
4544 */
4545 class SearchFindElementReferencesResult implements HasToJson {
4546 String _id;
4547
4548 Element _element;
4549
4550 /**
4551 * The identifier used to associate results with this search request.
4552 *
4553 * If no element was found at the given location, this field will be absent,
4554 * and no results will be reported via the search.results notification.
4555 */
4556 String get id => _id;
4557
4558 /**
4559 * The identifier used to associate results with this search request.
4560 *
4561 * If no element was found at the given location, this field will be absent,
4562 * and no results will be reported via the search.results notification.
4563 */
4564 void set id(String value) {
4565 this._id = value;
4566 }
4567
4568 /**
4569 * The element referenced or defined at the given offset and whose references
4570 * will be returned in the search results.
4571 *
4572 * If no element was found at the given location, this field will be absent.
4573 */
4574 Element get element => _element;
4575
4576 /**
4577 * The element referenced or defined at the given offset and whose references
4578 * will be returned in the search results.
4579 *
4580 * If no element was found at the given location, this field will be absent.
4581 */
4582 void set element(Element value) {
4583 this._element = value;
4584 }
4585
4586 SearchFindElementReferencesResult({String id, Element element}) {
4587 this.id = id;
4588 this.element = element;
4589 }
4590
4591 factory SearchFindElementReferencesResult.fromJson(
4592 JsonDecoder jsonDecoder, String jsonPath, Object json) {
4593 if (json == null) {
4594 json = {};
4595 }
4596 if (json is Map) {
4597 String id;
4598 if (json.containsKey("id")) {
4599 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
4600 }
4601 Element element;
4602 if (json.containsKey("element")) {
4603 element = new Element.fromJson(
4604 jsonDecoder, jsonPath + ".element", json["element"]);
4605 }
4606 return new SearchFindElementReferencesResult(id: id, element: element);
4607 } else {
4608 throw jsonDecoder.mismatch(
4609 jsonPath, "search.findElementReferences result", json);
4610 }
4611 }
4612
4613 factory SearchFindElementReferencesResult.fromResponse(Response response) {
4614 return new SearchFindElementReferencesResult.fromJson(
4615 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
4616 "result",
4617 response._result);
4618 }
4619
4620 Map<String, dynamic> toJson() {
4621 Map<String, dynamic> result = {};
4622 if (id != null) {
4623 result["id"] = id;
4624 }
4625 if (element != null) {
4626 result["element"] = element.toJson();
4627 }
4628 return result;
4629 }
4630
4631 Response toResponse(String id) {
4632 return new Response(id, result: toJson());
4633 }
4634
4635 @override
4636 String toString() => JSON.encode(toJson());
4637
4638 @override
4639 bool operator ==(other) {
4640 if (other is SearchFindElementReferencesResult) {
4641 return id == other.id && element == other.element;
4642 }
4643 return false;
4644 }
4645
4646 @override
4647 int get hashCode {
4648 int hash = 0;
4649 hash = JenkinsSmiHash.combine(hash, id.hashCode);
4650 hash = JenkinsSmiHash.combine(hash, element.hashCode);
4651 return JenkinsSmiHash.finish(hash);
4652 }
4653 }
4654
4655 /**
4656 * search.findMemberDeclarations params
4657 *
4658 * {
4659 * "name": String
4660 * }
4661 *
4662 * Clients may not extend, implement or mix-in this class.
4663 */
4664 class SearchFindMemberDeclarationsParams implements HasToJson {
4665 String _name;
4666
4667 /**
4668 * The name of the declarations to be found.
4669 */
4670 String get name => _name;
4671
4672 /**
4673 * The name of the declarations to be found.
4674 */
4675 void set name(String value) {
4676 assert(value != null);
4677 this._name = value;
4678 }
4679
4680 SearchFindMemberDeclarationsParams(String name) {
4681 this.name = name;
4682 }
4683
4684 factory SearchFindMemberDeclarationsParams.fromJson(
4685 JsonDecoder jsonDecoder, String jsonPath, Object json) {
4686 if (json == null) {
4687 json = {};
4688 }
4689 if (json is Map) {
4690 String name;
4691 if (json.containsKey("name")) {
4692 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
4693 } else {
4694 throw jsonDecoder.missingKey(jsonPath, "name");
4695 }
4696 return new SearchFindMemberDeclarationsParams(name);
4697 } else {
4698 throw jsonDecoder.mismatch(
4699 jsonPath, "search.findMemberDeclarations params", json);
4700 }
4701 }
4702
4703 factory SearchFindMemberDeclarationsParams.fromRequest(Request request) {
4704 return new SearchFindMemberDeclarationsParams.fromJson(
4705 new RequestDecoder(request), "params", request._params);
4706 }
4707
4708 Map<String, dynamic> toJson() {
4709 Map<String, dynamic> result = {};
4710 result["name"] = name;
4711 return result;
4712 }
4713
4714 Request toRequest(String id) {
4715 return new Request(id, "search.findMemberDeclarations", toJson());
4716 }
4717
4718 @override
4719 String toString() => JSON.encode(toJson());
4720
4721 @override
4722 bool operator ==(other) {
4723 if (other is SearchFindMemberDeclarationsParams) {
4724 return name == other.name;
4725 }
4726 return false;
4727 }
4728
4729 @override
4730 int get hashCode {
4731 int hash = 0;
4732 hash = JenkinsSmiHash.combine(hash, name.hashCode);
4733 return JenkinsSmiHash.finish(hash);
4734 }
4735 }
4736
4737 /**
4738 * search.findMemberDeclarations result
4739 *
4740 * {
4741 * "id": SearchId
4742 * }
4743 *
4744 * Clients may not extend, implement or mix-in this class.
4745 */
4746 class SearchFindMemberDeclarationsResult implements HasToJson {
4747 String _id;
4748
4749 /**
4750 * The identifier used to associate results with this search request.
4751 */
4752 String get id => _id;
4753
4754 /**
4755 * The identifier used to associate results with this search request.
4756 */
4757 void set id(String value) {
4758 assert(value != null);
4759 this._id = value;
4760 }
4761
4762 SearchFindMemberDeclarationsResult(String id) {
4763 this.id = id;
4764 }
4765
4766 factory SearchFindMemberDeclarationsResult.fromJson(
4767 JsonDecoder jsonDecoder, String jsonPath, Object json) {
4768 if (json == null) {
4769 json = {};
4770 }
4771 if (json is Map) {
4772 String id;
4773 if (json.containsKey("id")) {
4774 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
4775 } else {
4776 throw jsonDecoder.missingKey(jsonPath, "id");
4777 }
4778 return new SearchFindMemberDeclarationsResult(id);
4779 } else {
4780 throw jsonDecoder.mismatch(
4781 jsonPath, "search.findMemberDeclarations result", json);
4782 }
4783 }
4784
4785 factory SearchFindMemberDeclarationsResult.fromResponse(Response response) {
4786 return new SearchFindMemberDeclarationsResult.fromJson(
4787 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
4788 "result",
4789 response._result);
4790 }
4791
4792 Map<String, dynamic> toJson() {
4793 Map<String, dynamic> result = {};
4794 result["id"] = id;
4795 return result;
4796 }
4797
4798 Response toResponse(String id) {
4799 return new Response(id, result: toJson());
4800 }
4801
4802 @override
4803 String toString() => JSON.encode(toJson());
4804
4805 @override
4806 bool operator ==(other) {
4807 if (other is SearchFindMemberDeclarationsResult) {
4808 return id == other.id;
4809 }
4810 return false;
4811 }
4812
4813 @override
4814 int get hashCode {
4815 int hash = 0;
4816 hash = JenkinsSmiHash.combine(hash, id.hashCode);
4817 return JenkinsSmiHash.finish(hash);
4818 }
4819 }
4820
4821 /**
4822 * search.findMemberReferences params
4823 *
4824 * {
4825 * "name": String
4826 * }
4827 *
4828 * Clients may not extend, implement or mix-in this class.
4829 */
4830 class SearchFindMemberReferencesParams implements HasToJson {
4831 String _name;
4832
4833 /**
4834 * The name of the references to be found.
4835 */
4836 String get name => _name;
4837
4838 /**
4839 * The name of the references to be found.
4840 */
4841 void set name(String value) {
4842 assert(value != null);
4843 this._name = value;
4844 }
4845
4846 SearchFindMemberReferencesParams(String name) {
4847 this.name = name;
4848 }
4849
4850 factory SearchFindMemberReferencesParams.fromJson(
4851 JsonDecoder jsonDecoder, String jsonPath, Object json) {
4852 if (json == null) {
4853 json = {};
4854 }
4855 if (json is Map) {
4856 String name;
4857 if (json.containsKey("name")) {
4858 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
4859 } else {
4860 throw jsonDecoder.missingKey(jsonPath, "name");
4861 }
4862 return new SearchFindMemberReferencesParams(name);
4863 } else {
4864 throw jsonDecoder.mismatch(
4865 jsonPath, "search.findMemberReferences params", json);
4866 }
4867 }
4868
4869 factory SearchFindMemberReferencesParams.fromRequest(Request request) {
4870 return new SearchFindMemberReferencesParams.fromJson(
4871 new RequestDecoder(request), "params", request._params);
4872 }
4873
4874 Map<String, dynamic> toJson() {
4875 Map<String, dynamic> result = {};
4876 result["name"] = name;
4877 return result;
4878 }
4879
4880 Request toRequest(String id) {
4881 return new Request(id, "search.findMemberReferences", toJson());
4882 }
4883
4884 @override
4885 String toString() => JSON.encode(toJson());
4886
4887 @override
4888 bool operator ==(other) {
4889 if (other is SearchFindMemberReferencesParams) {
4890 return name == other.name;
4891 }
4892 return false;
4893 }
4894
4895 @override
4896 int get hashCode {
4897 int hash = 0;
4898 hash = JenkinsSmiHash.combine(hash, name.hashCode);
4899 return JenkinsSmiHash.finish(hash);
4900 }
4901 }
4902
4903 /**
4904 * search.findMemberReferences result
4905 *
4906 * {
4907 * "id": SearchId
4908 * }
4909 *
4910 * Clients may not extend, implement or mix-in this class.
4911 */
4912 class SearchFindMemberReferencesResult implements HasToJson {
4913 String _id;
4914
4915 /**
4916 * The identifier used to associate results with this search request.
4917 */
4918 String get id => _id;
4919
4920 /**
4921 * The identifier used to associate results with this search request.
4922 */
4923 void set id(String value) {
4924 assert(value != null);
4925 this._id = value;
4926 }
4927
4928 SearchFindMemberReferencesResult(String id) {
4929 this.id = id;
4930 }
4931
4932 factory SearchFindMemberReferencesResult.fromJson(
4933 JsonDecoder jsonDecoder, String jsonPath, Object json) {
4934 if (json == null) {
4935 json = {};
4936 }
4937 if (json is Map) {
4938 String id;
4939 if (json.containsKey("id")) {
4940 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
4941 } else {
4942 throw jsonDecoder.missingKey(jsonPath, "id");
4943 }
4944 return new SearchFindMemberReferencesResult(id);
4945 } else {
4946 throw jsonDecoder.mismatch(
4947 jsonPath, "search.findMemberReferences result", json);
4948 }
4949 }
4950
4951 factory SearchFindMemberReferencesResult.fromResponse(Response response) {
4952 return new SearchFindMemberReferencesResult.fromJson(
4953 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
4954 "result",
4955 response._result);
4956 }
4957
4958 Map<String, dynamic> toJson() {
4959 Map<String, dynamic> result = {};
4960 result["id"] = id;
4961 return result;
4962 }
4963
4964 Response toResponse(String id) {
4965 return new Response(id, result: toJson());
4966 }
4967
4968 @override
4969 String toString() => JSON.encode(toJson());
4970
4971 @override
4972 bool operator ==(other) {
4973 if (other is SearchFindMemberReferencesResult) {
4974 return id == other.id;
4975 }
4976 return false;
4977 }
4978
4979 @override
4980 int get hashCode {
4981 int hash = 0;
4982 hash = JenkinsSmiHash.combine(hash, id.hashCode);
4983 return JenkinsSmiHash.finish(hash);
4984 }
4985 }
4986
4987 /**
4988 * search.findTopLevelDeclarations params
4989 *
4990 * {
4991 * "pattern": String
4992 * }
4993 *
4994 * Clients may not extend, implement or mix-in this class.
4995 */
4996 class SearchFindTopLevelDeclarationsParams implements HasToJson {
4997 String _pattern;
4998
4999 /**
5000 * The regular expression used to match the names of the declarations to be
5001 * found.
5002 */
5003 String get pattern => _pattern;
5004
5005 /**
5006 * The regular expression used to match the names of the declarations to be
5007 * found.
5008 */
5009 void set pattern(String value) {
5010 assert(value != null);
5011 this._pattern = value;
5012 }
5013
5014 SearchFindTopLevelDeclarationsParams(String pattern) {
5015 this.pattern = pattern;
5016 }
5017
5018 factory SearchFindTopLevelDeclarationsParams.fromJson(
5019 JsonDecoder jsonDecoder, String jsonPath, Object json) {
5020 if (json == null) {
5021 json = {};
5022 }
5023 if (json is Map) {
5024 String pattern;
5025 if (json.containsKey("pattern")) {
5026 pattern =
5027 jsonDecoder.decodeString(jsonPath + ".pattern", json["pattern"]);
5028 } else {
5029 throw jsonDecoder.missingKey(jsonPath, "pattern");
5030 }
5031 return new SearchFindTopLevelDeclarationsParams(pattern);
5032 } else {
5033 throw jsonDecoder.mismatch(
5034 jsonPath, "search.findTopLevelDeclarations params", json);
5035 }
5036 }
5037
5038 factory SearchFindTopLevelDeclarationsParams.fromRequest(Request request) {
5039 return new SearchFindTopLevelDeclarationsParams.fromJson(
5040 new RequestDecoder(request), "params", request._params);
5041 }
5042
5043 Map<String, dynamic> toJson() {
5044 Map<String, dynamic> result = {};
5045 result["pattern"] = pattern;
5046 return result;
5047 }
5048
5049 Request toRequest(String id) {
5050 return new Request(id, "search.findTopLevelDeclarations", toJson());
5051 }
5052
5053 @override
5054 String toString() => JSON.encode(toJson());
5055
5056 @override
5057 bool operator ==(other) {
5058 if (other is SearchFindTopLevelDeclarationsParams) {
5059 return pattern == other.pattern;
5060 }
5061 return false;
5062 }
5063
5064 @override
5065 int get hashCode {
5066 int hash = 0;
5067 hash = JenkinsSmiHash.combine(hash, pattern.hashCode);
5068 return JenkinsSmiHash.finish(hash);
5069 }
5070 }
5071
5072 /**
5073 * search.findTopLevelDeclarations result
5074 *
5075 * {
5076 * "id": SearchId
5077 * }
5078 *
5079 * Clients may not extend, implement or mix-in this class.
5080 */
5081 class SearchFindTopLevelDeclarationsResult implements HasToJson {
5082 String _id;
5083
5084 /**
5085 * The identifier used to associate results with this search request.
5086 */
5087 String get id => _id;
5088
5089 /**
5090 * The identifier used to associate results with this search request.
5091 */
5092 void set id(String value) {
5093 assert(value != null);
5094 this._id = value;
5095 }
5096
5097 SearchFindTopLevelDeclarationsResult(String id) {
5098 this.id = id;
5099 }
5100
5101 factory SearchFindTopLevelDeclarationsResult.fromJson(
5102 JsonDecoder jsonDecoder, String jsonPath, Object json) {
5103 if (json == null) {
5104 json = {};
5105 }
5106 if (json is Map) {
5107 String id;
5108 if (json.containsKey("id")) {
5109 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
5110 } else {
5111 throw jsonDecoder.missingKey(jsonPath, "id");
5112 }
5113 return new SearchFindTopLevelDeclarationsResult(id);
5114 } else {
5115 throw jsonDecoder.mismatch(
5116 jsonPath, "search.findTopLevelDeclarations result", json);
5117 }
5118 }
5119
5120 factory SearchFindTopLevelDeclarationsResult.fromResponse(Response response) {
5121 return new SearchFindTopLevelDeclarationsResult.fromJson(
5122 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
5123 "result",
5124 response._result);
5125 }
5126
5127 Map<String, dynamic> toJson() {
5128 Map<String, dynamic> result = {};
5129 result["id"] = id;
5130 return result;
5131 }
5132
5133 Response toResponse(String id) {
5134 return new Response(id, result: toJson());
5135 }
5136
5137 @override
5138 String toString() => JSON.encode(toJson());
5139
5140 @override
5141 bool operator ==(other) {
5142 if (other is SearchFindTopLevelDeclarationsResult) {
5143 return id == other.id;
5144 }
5145 return false;
5146 }
5147
5148 @override
5149 int get hashCode {
5150 int hash = 0;
5151 hash = JenkinsSmiHash.combine(hash, id.hashCode);
5152 return JenkinsSmiHash.finish(hash);
5153 }
5154 }
5155
5156 /**
5157 * search.getTypeHierarchy params
5158 *
5159 * {
5160 * "file": FilePath
5161 * "offset": int
5162 * "superOnly": optional bool
5163 * }
5164 *
5165 * Clients may not extend, implement or mix-in this class.
5166 */
5167 class SearchGetTypeHierarchyParams implements HasToJson {
5168 String _file;
5169
5170 int _offset;
5171
5172 bool _superOnly;
5173
5174 /**
5175 * The file containing the declaration or reference to the type for which a
5176 * hierarchy is being requested.
5177 */
5178 String get file => _file;
5179
5180 /**
5181 * The file containing the declaration or reference to the type for which a
5182 * hierarchy is being requested.
5183 */
5184 void set file(String value) {
5185 assert(value != null);
5186 this._file = value;
5187 }
5188
5189 /**
5190 * The offset of the name of the type within the file.
5191 */
5192 int get offset => _offset;
5193
5194 /**
5195 * The offset of the name of the type within the file.
5196 */
5197 void set offset(int value) {
5198 assert(value != null);
5199 this._offset = value;
5200 }
5201
5202 /**
5203 * True if the client is only requesting superclasses and interfaces
5204 * hierarchy.
5205 */
5206 bool get superOnly => _superOnly;
5207
5208 /**
5209 * True if the client is only requesting superclasses and interfaces
5210 * hierarchy.
5211 */
5212 void set superOnly(bool value) {
5213 this._superOnly = value;
5214 }
5215
5216 SearchGetTypeHierarchyParams(String file, int offset, {bool superOnly}) {
5217 this.file = file;
5218 this.offset = offset;
5219 this.superOnly = superOnly;
5220 }
5221
5222 factory SearchGetTypeHierarchyParams.fromJson(
5223 JsonDecoder jsonDecoder, String jsonPath, Object json) {
5224 if (json == null) {
5225 json = {};
5226 }
5227 if (json is Map) {
5228 String file;
5229 if (json.containsKey("file")) {
5230 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
5231 } else {
5232 throw jsonDecoder.missingKey(jsonPath, "file");
5233 }
5234 int offset;
5235 if (json.containsKey("offset")) {
5236 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
5237 } else {
5238 throw jsonDecoder.missingKey(jsonPath, "offset");
5239 }
5240 bool superOnly;
5241 if (json.containsKey("superOnly")) {
5242 superOnly =
5243 jsonDecoder.decodeBool(jsonPath + ".superOnly", json["superOnly"]);
5244 }
5245 return new SearchGetTypeHierarchyParams(file, offset,
5246 superOnly: superOnly);
5247 } else {
5248 throw jsonDecoder.mismatch(
5249 jsonPath, "search.getTypeHierarchy params", json);
5250 }
5251 }
5252
5253 factory SearchGetTypeHierarchyParams.fromRequest(Request request) {
5254 return new SearchGetTypeHierarchyParams.fromJson(
5255 new RequestDecoder(request), "params", request._params);
5256 }
5257
5258 Map<String, dynamic> toJson() {
5259 Map<String, dynamic> result = {};
5260 result["file"] = file;
5261 result["offset"] = offset;
5262 if (superOnly != null) {
5263 result["superOnly"] = superOnly;
5264 }
5265 return result;
5266 }
5267
5268 Request toRequest(String id) {
5269 return new Request(id, "search.getTypeHierarchy", toJson());
5270 }
5271
5272 @override
5273 String toString() => JSON.encode(toJson());
5274
5275 @override
5276 bool operator ==(other) {
5277 if (other is SearchGetTypeHierarchyParams) {
5278 return file == other.file &&
5279 offset == other.offset &&
5280 superOnly == other.superOnly;
5281 }
5282 return false;
5283 }
5284
5285 @override
5286 int get hashCode {
5287 int hash = 0;
5288 hash = JenkinsSmiHash.combine(hash, file.hashCode);
5289 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
5290 hash = JenkinsSmiHash.combine(hash, superOnly.hashCode);
5291 return JenkinsSmiHash.finish(hash);
5292 }
5293 }
5294
5295 /**
5296 * search.getTypeHierarchy result
5297 *
5298 * {
5299 * "hierarchyItems": optional List<TypeHierarchyItem>
5300 * }
5301 *
5302 * Clients may not extend, implement or mix-in this class.
5303 */
5304 class SearchGetTypeHierarchyResult implements HasToJson {
5305 List<TypeHierarchyItem> _hierarchyItems;
5306
5307 /**
5308 * A list of the types in the requested hierarchy. The first element of the
5309 * list is the item representing the type for which the hierarchy was
5310 * requested. The index of other elements of the list is unspecified, but
5311 * correspond to the integers used to reference supertype and subtype items
5312 * within the items.
5313 *
5314 * This field will be absent if the code at the given file and offset does
5315 * not represent a type, or if the file has not been sufficiently analyzed to
5316 * allow a type hierarchy to be produced.
5317 */
5318 List<TypeHierarchyItem> get hierarchyItems => _hierarchyItems;
5319
5320 /**
5321 * A list of the types in the requested hierarchy. The first element of the
5322 * list is the item representing the type for which the hierarchy was
5323 * requested. The index of other elements of the list is unspecified, but
5324 * correspond to the integers used to reference supertype and subtype items
5325 * within the items.
5326 *
5327 * This field will be absent if the code at the given file and offset does
5328 * not represent a type, or if the file has not been sufficiently analyzed to
5329 * allow a type hierarchy to be produced.
5330 */
5331 void set hierarchyItems(List<TypeHierarchyItem> value) {
5332 this._hierarchyItems = value;
5333 }
5334
5335 SearchGetTypeHierarchyResult({List<TypeHierarchyItem> hierarchyItems}) {
5336 this.hierarchyItems = hierarchyItems;
5337 }
5338
5339 factory SearchGetTypeHierarchyResult.fromJson(
5340 JsonDecoder jsonDecoder, String jsonPath, Object json) {
5341 if (json == null) {
5342 json = {};
5343 }
5344 if (json is Map) {
5345 List<TypeHierarchyItem> hierarchyItems;
5346 if (json.containsKey("hierarchyItems")) {
5347 hierarchyItems = jsonDecoder.decodeList(
5348 jsonPath + ".hierarchyItems",
5349 json["hierarchyItems"],
5350 (String jsonPath, Object json) =>
5351 new TypeHierarchyItem.fromJson(jsonDecoder, jsonPath, json));
5352 }
5353 return new SearchGetTypeHierarchyResult(hierarchyItems: hierarchyItems);
5354 } else {
5355 throw jsonDecoder.mismatch(
5356 jsonPath, "search.getTypeHierarchy result", json);
5357 }
5358 }
5359
5360 factory SearchGetTypeHierarchyResult.fromResponse(Response response) {
5361 return new SearchGetTypeHierarchyResult.fromJson(
5362 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
5363 "result",
5364 response._result);
5365 }
5366
5367 Map<String, dynamic> toJson() {
5368 Map<String, dynamic> result = {};
5369 if (hierarchyItems != null) {
5370 result["hierarchyItems"] = hierarchyItems
5371 .map((TypeHierarchyItem value) => value.toJson())
5372 .toList();
5373 }
5374 return result;
5375 }
5376
5377 Response toResponse(String id) {
5378 return new Response(id, result: toJson());
5379 }
5380
5381 @override
5382 String toString() => JSON.encode(toJson());
5383
5384 @override
5385 bool operator ==(other) {
5386 if (other is SearchGetTypeHierarchyResult) {
5387 return listEqual(hierarchyItems, other.hierarchyItems,
5388 (TypeHierarchyItem a, TypeHierarchyItem b) => a == b);
5389 }
5390 return false;
5391 }
5392
5393 @override
5394 int get hashCode {
5395 int hash = 0;
5396 hash = JenkinsSmiHash.combine(hash, hierarchyItems.hashCode);
5397 return JenkinsSmiHash.finish(hash);
5398 }
5399 }
5400
5401 /**
5402 * search.results params
5403 *
5404 * {
5405 * "id": SearchId
5406 * "results": List<SearchResult>
5407 * "isLast": bool
5408 * }
5409 *
5410 * Clients may not extend, implement or mix-in this class.
5411 */
5412 class SearchResultsParams implements HasToJson {
5413 String _id;
5414
5415 List<SearchResult> _results;
5416
5417 bool _isLast;
5418
5419 /**
5420 * The id associated with the search.
5421 */
5422 String get id => _id;
5423
5424 /**
5425 * The id associated with the search.
5426 */
5427 void set id(String value) {
5428 assert(value != null);
5429 this._id = value;
5430 }
5431
5432 /**
5433 * The search results being reported.
5434 */
5435 List<SearchResult> get results => _results;
5436
5437 /**
5438 * The search results being reported.
5439 */
5440 void set results(List<SearchResult> value) {
5441 assert(value != null);
5442 this._results = value;
5443 }
5444
5445 /**
5446 * True if this is that last set of results that will be returned for the
5447 * indicated search.
5448 */
5449 bool get isLast => _isLast;
5450
5451 /**
5452 * True if this is that last set of results that will be returned for the
5453 * indicated search.
5454 */
5455 void set isLast(bool value) {
5456 assert(value != null);
5457 this._isLast = value;
5458 }
5459
5460 SearchResultsParams(String id, List<SearchResult> results, bool isLast) {
5461 this.id = id;
5462 this.results = results;
5463 this.isLast = isLast;
5464 }
5465
5466 factory SearchResultsParams.fromJson(
5467 JsonDecoder jsonDecoder, String jsonPath, Object json) {
5468 if (json == null) {
5469 json = {};
5470 }
5471 if (json is Map) {
5472 String id;
5473 if (json.containsKey("id")) {
5474 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
5475 } else {
5476 throw jsonDecoder.missingKey(jsonPath, "id");
5477 }
5478 List<SearchResult> results;
5479 if (json.containsKey("results")) {
5480 results = jsonDecoder.decodeList(
5481 jsonPath + ".results",
5482 json["results"],
5483 (String jsonPath, Object json) =>
5484 new SearchResult.fromJson(jsonDecoder, jsonPath, json));
5485 } else {
5486 throw jsonDecoder.missingKey(jsonPath, "results");
5487 }
5488 bool isLast;
5489 if (json.containsKey("isLast")) {
5490 isLast = jsonDecoder.decodeBool(jsonPath + ".isLast", json["isLast"]);
5491 } else {
5492 throw jsonDecoder.missingKey(jsonPath, "isLast");
5493 }
5494 return new SearchResultsParams(id, results, isLast);
5495 } else {
5496 throw jsonDecoder.mismatch(jsonPath, "search.results params", json);
5497 }
5498 }
5499
5500 factory SearchResultsParams.fromNotification(Notification notification) {
5501 return new SearchResultsParams.fromJson(
5502 new ResponseDecoder(null), "params", notification._params);
5503 }
5504
5505 Map<String, dynamic> toJson() {
5506 Map<String, dynamic> result = {};
5507 result["id"] = id;
5508 result["results"] =
5509 results.map((SearchResult value) => value.toJson()).toList();
5510 result["isLast"] = isLast;
5511 return result;
5512 }
5513
5514 Notification toNotification() {
5515 return new Notification("search.results", toJson());
5516 }
5517
5518 @override
5519 String toString() => JSON.encode(toJson());
5520
5521 @override
5522 bool operator ==(other) {
5523 if (other is SearchResultsParams) {
5524 return id == other.id &&
5525 listEqual(results, other.results,
5526 (SearchResult a, SearchResult b) => a == b) &&
5527 isLast == other.isLast;
5528 }
5529 return false;
5530 }
5531
5532 @override
5533 int get hashCode {
5534 int hash = 0;
5535 hash = JenkinsSmiHash.combine(hash, id.hashCode);
5536 hash = JenkinsSmiHash.combine(hash, results.hashCode);
5537 hash = JenkinsSmiHash.combine(hash, isLast.hashCode);
5538 return JenkinsSmiHash.finish(hash);
5539 }
5540 }
5541
5542 /**
5543 * edit.format params
5544 *
5545 * {
5546 * "file": FilePath
5547 * "selectionOffset": int
5548 * "selectionLength": int
5549 * "lineLength": optional int
5550 * }
5551 *
5552 * Clients may not extend, implement or mix-in this class.
5553 */
5554 class EditFormatParams implements HasToJson {
5555 String _file;
5556
5557 int _selectionOffset;
5558
5559 int _selectionLength;
5560
5561 int _lineLength;
5562
5563 /**
5564 * The file containing the code to be formatted.
5565 */
5566 String get file => _file;
5567
5568 /**
5569 * The file containing the code to be formatted.
5570 */
5571 void set file(String value) {
5572 assert(value != null);
5573 this._file = value;
5574 }
5575
5576 /**
5577 * The offset of the current selection in the file.
5578 */
5579 int get selectionOffset => _selectionOffset;
5580
5581 /**
5582 * The offset of the current selection in the file.
5583 */
5584 void set selectionOffset(int value) {
5585 assert(value != null);
5586 this._selectionOffset = value;
5587 }
5588
5589 /**
5590 * The length of the current selection in the file.
5591 */
5592 int get selectionLength => _selectionLength;
5593
5594 /**
5595 * The length of the current selection in the file.
5596 */
5597 void set selectionLength(int value) {
5598 assert(value != null);
5599 this._selectionLength = value;
5600 }
5601
5602 /**
5603 * The line length to be used by the formatter.
5604 */
5605 int get lineLength => _lineLength;
5606
5607 /**
5608 * The line length to be used by the formatter.
5609 */
5610 void set lineLength(int value) {
5611 this._lineLength = value;
5612 }
5613
5614 EditFormatParams(String file, int selectionOffset, int selectionLength,
5615 {int lineLength}) {
5616 this.file = file;
5617 this.selectionOffset = selectionOffset;
5618 this.selectionLength = selectionLength;
5619 this.lineLength = lineLength;
5620 }
5621
5622 factory EditFormatParams.fromJson(
5623 JsonDecoder jsonDecoder, String jsonPath, Object json) {
5624 if (json == null) {
5625 json = {};
5626 }
5627 if (json is Map) {
5628 String file;
5629 if (json.containsKey("file")) {
5630 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
5631 } else {
5632 throw jsonDecoder.missingKey(jsonPath, "file");
5633 }
5634 int selectionOffset;
5635 if (json.containsKey("selectionOffset")) {
5636 selectionOffset = jsonDecoder.decodeInt(
5637 jsonPath + ".selectionOffset", json["selectionOffset"]);
5638 } else {
5639 throw jsonDecoder.missingKey(jsonPath, "selectionOffset");
5640 }
5641 int selectionLength;
5642 if (json.containsKey("selectionLength")) {
5643 selectionLength = jsonDecoder.decodeInt(
5644 jsonPath + ".selectionLength", json["selectionLength"]);
5645 } else {
5646 throw jsonDecoder.missingKey(jsonPath, "selectionLength");
5647 }
5648 int lineLength;
5649 if (json.containsKey("lineLength")) {
5650 lineLength =
5651 jsonDecoder.decodeInt(jsonPath + ".lineLength", json["lineLength"]);
5652 }
5653 return new EditFormatParams(file, selectionOffset, selectionLength,
5654 lineLength: lineLength);
5655 } else {
5656 throw jsonDecoder.mismatch(jsonPath, "edit.format params", json);
5657 }
5658 }
5659
5660 factory EditFormatParams.fromRequest(Request request) {
5661 return new EditFormatParams.fromJson(
5662 new RequestDecoder(request), "params", request._params);
5663 }
5664
5665 Map<String, dynamic> toJson() {
5666 Map<String, dynamic> result = {};
5667 result["file"] = file;
5668 result["selectionOffset"] = selectionOffset;
5669 result["selectionLength"] = selectionLength;
5670 if (lineLength != null) {
5671 result["lineLength"] = lineLength;
5672 }
5673 return result;
5674 }
5675
5676 Request toRequest(String id) {
5677 return new Request(id, "edit.format", toJson());
5678 }
5679
5680 @override
5681 String toString() => JSON.encode(toJson());
5682
5683 @override
5684 bool operator ==(other) {
5685 if (other is EditFormatParams) {
5686 return file == other.file &&
5687 selectionOffset == other.selectionOffset &&
5688 selectionLength == other.selectionLength &&
5689 lineLength == other.lineLength;
5690 }
5691 return false;
5692 }
5693
5694 @override
5695 int get hashCode {
5696 int hash = 0;
5697 hash = JenkinsSmiHash.combine(hash, file.hashCode);
5698 hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode);
5699 hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode);
5700 hash = JenkinsSmiHash.combine(hash, lineLength.hashCode);
5701 return JenkinsSmiHash.finish(hash);
5702 }
5703 }
5704
5705 /**
5706 * edit.format result
5707 *
5708 * {
5709 * "edits": List<SourceEdit>
5710 * "selectionOffset": int
5711 * "selectionLength": int
5712 * }
5713 *
5714 * Clients may not extend, implement or mix-in this class.
5715 */
5716 class EditFormatResult implements HasToJson {
5717 List<SourceEdit> _edits;
5718
5719 int _selectionOffset;
5720
5721 int _selectionLength;
5722
5723 /**
5724 * The edit(s) to be applied in order to format the code. The list will be
5725 * empty if the code was already formatted (there are no changes).
5726 */
5727 List<SourceEdit> get edits => _edits;
5728
5729 /**
5730 * The edit(s) to be applied in order to format the code. The list will be
5731 * empty if the code was already formatted (there are no changes).
5732 */
5733 void set edits(List<SourceEdit> value) {
5734 assert(value != null);
5735 this._edits = value;
5736 }
5737
5738 /**
5739 * The offset of the selection after formatting the code.
5740 */
5741 int get selectionOffset => _selectionOffset;
5742
5743 /**
5744 * The offset of the selection after formatting the code.
5745 */
5746 void set selectionOffset(int value) {
5747 assert(value != null);
5748 this._selectionOffset = value;
5749 }
5750
5751 /**
5752 * The length of the selection after formatting the code.
5753 */
5754 int get selectionLength => _selectionLength;
5755
5756 /**
5757 * The length of the selection after formatting the code.
5758 */
5759 void set selectionLength(int value) {
5760 assert(value != null);
5761 this._selectionLength = value;
5762 }
5763
5764 EditFormatResult(
5765 List<SourceEdit> edits, int selectionOffset, int selectionLength) {
5766 this.edits = edits;
5767 this.selectionOffset = selectionOffset;
5768 this.selectionLength = selectionLength;
5769 }
5770
5771 factory EditFormatResult.fromJson(
5772 JsonDecoder jsonDecoder, String jsonPath, Object json) {
5773 if (json == null) {
5774 json = {};
5775 }
5776 if (json is Map) {
5777 List<SourceEdit> edits;
5778 if (json.containsKey("edits")) {
5779 edits = jsonDecoder.decodeList(
5780 jsonPath + ".edits",
5781 json["edits"],
5782 (String jsonPath, Object json) =>
5783 new SourceEdit.fromJson(jsonDecoder, jsonPath, json));
5784 } else {
5785 throw jsonDecoder.missingKey(jsonPath, "edits");
5786 }
5787 int selectionOffset;
5788 if (json.containsKey("selectionOffset")) {
5789 selectionOffset = jsonDecoder.decodeInt(
5790 jsonPath + ".selectionOffset", json["selectionOffset"]);
5791 } else {
5792 throw jsonDecoder.missingKey(jsonPath, "selectionOffset");
5793 }
5794 int selectionLength;
5795 if (json.containsKey("selectionLength")) {
5796 selectionLength = jsonDecoder.decodeInt(
5797 jsonPath + ".selectionLength", json["selectionLength"]);
5798 } else {
5799 throw jsonDecoder.missingKey(jsonPath, "selectionLength");
5800 }
5801 return new EditFormatResult(edits, selectionOffset, selectionLength);
5802 } else {
5803 throw jsonDecoder.mismatch(jsonPath, "edit.format result", json);
5804 }
5805 }
5806
5807 factory EditFormatResult.fromResponse(Response response) {
5808 return new EditFormatResult.fromJson(
5809 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
5810 "result",
5811 response._result);
5812 }
5813
5814 Map<String, dynamic> toJson() {
5815 Map<String, dynamic> result = {};
5816 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList();
5817 result["selectionOffset"] = selectionOffset;
5818 result["selectionLength"] = selectionLength;
5819 return result;
5820 }
5821
5822 Response toResponse(String id) {
5823 return new Response(id, result: toJson());
5824 }
5825
5826 @override
5827 String toString() => JSON.encode(toJson());
5828
5829 @override
5830 bool operator ==(other) {
5831 if (other is EditFormatResult) {
5832 return listEqual(
5833 edits, other.edits, (SourceEdit a, SourceEdit b) => a == b) &&
5834 selectionOffset == other.selectionOffset &&
5835 selectionLength == other.selectionLength;
5836 }
5837 return false;
5838 }
5839
5840 @override
5841 int get hashCode {
5842 int hash = 0;
5843 hash = JenkinsSmiHash.combine(hash, edits.hashCode);
5844 hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode);
5845 hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode);
5846 return JenkinsSmiHash.finish(hash);
5847 }
5848 }
5849
5850 /**
5851 * edit.getAssists params
5852 *
5853 * {
5854 * "file": FilePath
5855 * "offset": int
5856 * "length": int
5857 * }
5858 *
5859 * Clients may not extend, implement or mix-in this class.
5860 */
5861 class EditGetAssistsParams implements HasToJson {
5862 String _file;
5863
5864 int _offset;
5865
5866 int _length;
5867
5868 /**
5869 * The file containing the code for which assists are being requested.
5870 */
5871 String get file => _file;
5872
5873 /**
5874 * The file containing the code for which assists are being requested.
5875 */
5876 void set file(String value) {
5877 assert(value != null);
5878 this._file = value;
5879 }
5880
5881 /**
5882 * The offset of the code for which assists are being requested.
5883 */
5884 int get offset => _offset;
5885
5886 /**
5887 * The offset of the code for which assists are being requested.
5888 */
5889 void set offset(int value) {
5890 assert(value != null);
5891 this._offset = value;
5892 }
5893
5894 /**
5895 * The length of the code for which assists are being requested.
5896 */
5897 int get length => _length;
5898
5899 /**
5900 * The length of the code for which assists are being requested.
5901 */
5902 void set length(int value) {
5903 assert(value != null);
5904 this._length = value;
5905 }
5906
5907 EditGetAssistsParams(String file, int offset, int length) {
5908 this.file = file;
5909 this.offset = offset;
5910 this.length = length;
5911 }
5912
5913 factory EditGetAssistsParams.fromJson(
5914 JsonDecoder jsonDecoder, String jsonPath, Object json) {
5915 if (json == null) {
5916 json = {};
5917 }
5918 if (json is Map) {
5919 String file;
5920 if (json.containsKey("file")) {
5921 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
5922 } else {
5923 throw jsonDecoder.missingKey(jsonPath, "file");
5924 }
5925 int offset;
5926 if (json.containsKey("offset")) {
5927 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
5928 } else {
5929 throw jsonDecoder.missingKey(jsonPath, "offset");
5930 }
5931 int length;
5932 if (json.containsKey("length")) {
5933 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
5934 } else {
5935 throw jsonDecoder.missingKey(jsonPath, "length");
5936 }
5937 return new EditGetAssistsParams(file, offset, length);
5938 } else {
5939 throw jsonDecoder.mismatch(jsonPath, "edit.getAssists params", json);
5940 }
5941 }
5942
5943 factory EditGetAssistsParams.fromRequest(Request request) {
5944 return new EditGetAssistsParams.fromJson(
5945 new RequestDecoder(request), "params", request._params);
5946 }
5947
5948 Map<String, dynamic> toJson() {
5949 Map<String, dynamic> result = {};
5950 result["file"] = file;
5951 result["offset"] = offset;
5952 result["length"] = length;
5953 return result;
5954 }
5955
5956 Request toRequest(String id) {
5957 return new Request(id, "edit.getAssists", toJson());
5958 }
5959
5960 @override
5961 String toString() => JSON.encode(toJson());
5962
5963 @override
5964 bool operator ==(other) {
5965 if (other is EditGetAssistsParams) {
5966 return file == other.file &&
5967 offset == other.offset &&
5968 length == other.length;
5969 }
5970 return false;
5971 }
5972
5973 @override
5974 int get hashCode {
5975 int hash = 0;
5976 hash = JenkinsSmiHash.combine(hash, file.hashCode);
5977 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
5978 hash = JenkinsSmiHash.combine(hash, length.hashCode);
5979 return JenkinsSmiHash.finish(hash);
5980 }
5981 }
5982
5983 /**
5984 * edit.getAssists result
5985 *
5986 * {
5987 * "assists": List<SourceChange>
5988 * }
5989 *
5990 * Clients may not extend, implement or mix-in this class.
5991 */
5992 class EditGetAssistsResult implements HasToJson {
5993 List<SourceChange> _assists;
5994
5995 /**
5996 * The assists that are available at the given location.
5997 */
5998 List<SourceChange> get assists => _assists;
5999
6000 /**
6001 * The assists that are available at the given location.
6002 */
6003 void set assists(List<SourceChange> value) {
6004 assert(value != null);
6005 this._assists = value;
6006 }
6007
6008 EditGetAssistsResult(List<SourceChange> assists) {
6009 this.assists = assists;
6010 }
6011
6012 factory EditGetAssistsResult.fromJson(
6013 JsonDecoder jsonDecoder, String jsonPath, Object json) {
6014 if (json == null) {
6015 json = {};
6016 }
6017 if (json is Map) {
6018 List<SourceChange> assists;
6019 if (json.containsKey("assists")) {
6020 assists = jsonDecoder.decodeList(
6021 jsonPath + ".assists",
6022 json["assists"],
6023 (String jsonPath, Object json) =>
6024 new SourceChange.fromJson(jsonDecoder, jsonPath, json));
6025 } else {
6026 throw jsonDecoder.missingKey(jsonPath, "assists");
6027 }
6028 return new EditGetAssistsResult(assists);
6029 } else {
6030 throw jsonDecoder.mismatch(jsonPath, "edit.getAssists result", json);
6031 }
6032 }
6033
6034 factory EditGetAssistsResult.fromResponse(Response response) {
6035 return new EditGetAssistsResult.fromJson(
6036 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
6037 "result",
6038 response._result);
6039 }
6040
6041 Map<String, dynamic> toJson() {
6042 Map<String, dynamic> result = {};
6043 result["assists"] =
6044 assists.map((SourceChange value) => value.toJson()).toList();
6045 return result;
6046 }
6047
6048 Response toResponse(String id) {
6049 return new Response(id, result: toJson());
6050 }
6051
6052 @override
6053 String toString() => JSON.encode(toJson());
6054
6055 @override
6056 bool operator ==(other) {
6057 if (other is EditGetAssistsResult) {
6058 return listEqual(
6059 assists, other.assists, (SourceChange a, SourceChange b) => a == b);
6060 }
6061 return false;
6062 }
6063
6064 @override
6065 int get hashCode {
6066 int hash = 0;
6067 hash = JenkinsSmiHash.combine(hash, assists.hashCode);
6068 return JenkinsSmiHash.finish(hash);
6069 }
6070 }
6071
6072 /**
6073 * edit.getAvailableRefactorings params
6074 *
6075 * {
6076 * "file": FilePath
6077 * "offset": int
6078 * "length": int
6079 * }
6080 *
6081 * Clients may not extend, implement or mix-in this class.
6082 */
6083 class EditGetAvailableRefactoringsParams implements HasToJson {
6084 String _file;
6085
6086 int _offset;
6087
6088 int _length;
6089
6090 /**
6091 * The file containing the code on which the refactoring would be based.
6092 */
6093 String get file => _file;
6094
6095 /**
6096 * The file containing the code on which the refactoring would be based.
6097 */
6098 void set file(String value) {
6099 assert(value != null);
6100 this._file = value;
6101 }
6102
6103 /**
6104 * The offset of the code on which the refactoring would be based.
6105 */
6106 int get offset => _offset;
6107
6108 /**
6109 * The offset of the code on which the refactoring would be based.
6110 */
6111 void set offset(int value) {
6112 assert(value != null);
6113 this._offset = value;
6114 }
6115
6116 /**
6117 * The length of the code on which the refactoring would be based.
6118 */
6119 int get length => _length;
6120
6121 /**
6122 * The length of the code on which the refactoring would be based.
6123 */
6124 void set length(int value) {
6125 assert(value != null);
6126 this._length = value;
6127 }
6128
6129 EditGetAvailableRefactoringsParams(String file, int offset, int length) {
6130 this.file = file;
6131 this.offset = offset;
6132 this.length = length;
6133 }
6134
6135 factory EditGetAvailableRefactoringsParams.fromJson(
6136 JsonDecoder jsonDecoder, String jsonPath, Object json) {
6137 if (json == null) {
6138 json = {};
6139 }
6140 if (json is Map) {
6141 String file;
6142 if (json.containsKey("file")) {
6143 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
6144 } else {
6145 throw jsonDecoder.missingKey(jsonPath, "file");
6146 }
6147 int offset;
6148 if (json.containsKey("offset")) {
6149 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
6150 } else {
6151 throw jsonDecoder.missingKey(jsonPath, "offset");
6152 }
6153 int length;
6154 if (json.containsKey("length")) {
6155 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
6156 } else {
6157 throw jsonDecoder.missingKey(jsonPath, "length");
6158 }
6159 return new EditGetAvailableRefactoringsParams(file, offset, length);
6160 } else {
6161 throw jsonDecoder.mismatch(
6162 jsonPath, "edit.getAvailableRefactorings params", json);
6163 }
6164 }
6165
6166 factory EditGetAvailableRefactoringsParams.fromRequest(Request request) {
6167 return new EditGetAvailableRefactoringsParams.fromJson(
6168 new RequestDecoder(request), "params", request._params);
6169 }
6170
6171 Map<String, dynamic> toJson() {
6172 Map<String, dynamic> result = {};
6173 result["file"] = file;
6174 result["offset"] = offset;
6175 result["length"] = length;
6176 return result;
6177 }
6178
6179 Request toRequest(String id) {
6180 return new Request(id, "edit.getAvailableRefactorings", toJson());
6181 }
6182
6183 @override
6184 String toString() => JSON.encode(toJson());
6185
6186 @override
6187 bool operator ==(other) {
6188 if (other is EditGetAvailableRefactoringsParams) {
6189 return file == other.file &&
6190 offset == other.offset &&
6191 length == other.length;
6192 }
6193 return false;
6194 }
6195
6196 @override
6197 int get hashCode {
6198 int hash = 0;
6199 hash = JenkinsSmiHash.combine(hash, file.hashCode);
6200 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
6201 hash = JenkinsSmiHash.combine(hash, length.hashCode);
6202 return JenkinsSmiHash.finish(hash);
6203 }
6204 }
6205
6206 /**
6207 * edit.getAvailableRefactorings result
6208 *
6209 * {
6210 * "kinds": List<RefactoringKind>
6211 * }
6212 *
6213 * Clients may not extend, implement or mix-in this class.
6214 */
6215 class EditGetAvailableRefactoringsResult implements HasToJson {
6216 List<RefactoringKind> _kinds;
6217
6218 /**
6219 * The kinds of refactorings that are valid for the given selection.
6220 */
6221 List<RefactoringKind> get kinds => _kinds;
6222
6223 /**
6224 * The kinds of refactorings that are valid for the given selection.
6225 */
6226 void set kinds(List<RefactoringKind> value) {
6227 assert(value != null);
6228 this._kinds = value;
6229 }
6230
6231 EditGetAvailableRefactoringsResult(List<RefactoringKind> kinds) {
6232 this.kinds = kinds;
6233 }
6234
6235 factory EditGetAvailableRefactoringsResult.fromJson(
6236 JsonDecoder jsonDecoder, String jsonPath, Object json) {
6237 if (json == null) {
6238 json = {};
6239 }
6240 if (json is Map) {
6241 List<RefactoringKind> kinds;
6242 if (json.containsKey("kinds")) {
6243 kinds = jsonDecoder.decodeList(
6244 jsonPath + ".kinds",
6245 json["kinds"],
6246 (String jsonPath, Object json) =>
6247 new RefactoringKind.fromJson(jsonDecoder, jsonPath, json));
6248 } else {
6249 throw jsonDecoder.missingKey(jsonPath, "kinds");
6250 }
6251 return new EditGetAvailableRefactoringsResult(kinds);
6252 } else {
6253 throw jsonDecoder.mismatch(
6254 jsonPath, "edit.getAvailableRefactorings result", json);
6255 }
6256 }
6257
6258 factory EditGetAvailableRefactoringsResult.fromResponse(Response response) {
6259 return new EditGetAvailableRefactoringsResult.fromJson(
6260 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
6261 "result",
6262 response._result);
6263 }
6264
6265 Map<String, dynamic> toJson() {
6266 Map<String, dynamic> result = {};
6267 result["kinds"] =
6268 kinds.map((RefactoringKind value) => value.toJson()).toList();
6269 return result;
6270 }
6271
6272 Response toResponse(String id) {
6273 return new Response(id, result: toJson());
6274 }
6275
6276 @override
6277 String toString() => JSON.encode(toJson());
6278
6279 @override
6280 bool operator ==(other) {
6281 if (other is EditGetAvailableRefactoringsResult) {
6282 return listEqual(
6283 kinds, other.kinds, (RefactoringKind a, RefactoringKind b) => a == b);
6284 }
6285 return false;
6286 }
6287
6288 @override
6289 int get hashCode {
6290 int hash = 0;
6291 hash = JenkinsSmiHash.combine(hash, kinds.hashCode);
6292 return JenkinsSmiHash.finish(hash);
6293 }
6294 }
6295
6296 /**
6297 * edit.getFixes params
6298 *
6299 * {
6300 * "file": FilePath
6301 * "offset": int
6302 * }
6303 *
6304 * Clients may not extend, implement or mix-in this class.
6305 */
6306 class EditGetFixesParams implements HasToJson {
6307 String _file;
6308
6309 int _offset;
6310
6311 /**
6312 * The file containing the errors for which fixes are being requested.
6313 */
6314 String get file => _file;
6315
6316 /**
6317 * The file containing the errors for which fixes are being requested.
6318 */
6319 void set file(String value) {
6320 assert(value != null);
6321 this._file = value;
6322 }
6323
6324 /**
6325 * The offset used to select the errors for which fixes will be returned.
6326 */
6327 int get offset => _offset;
6328
6329 /**
6330 * The offset used to select the errors for which fixes will be returned.
6331 */
6332 void set offset(int value) {
6333 assert(value != null);
6334 this._offset = value;
6335 }
6336
6337 EditGetFixesParams(String file, int offset) {
6338 this.file = file;
6339 this.offset = offset;
6340 }
6341
6342 factory EditGetFixesParams.fromJson(
6343 JsonDecoder jsonDecoder, String jsonPath, Object json) {
6344 if (json == null) {
6345 json = {};
6346 }
6347 if (json is Map) {
6348 String file;
6349 if (json.containsKey("file")) {
6350 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
6351 } else {
6352 throw jsonDecoder.missingKey(jsonPath, "file");
6353 }
6354 int offset;
6355 if (json.containsKey("offset")) {
6356 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
6357 } else {
6358 throw jsonDecoder.missingKey(jsonPath, "offset");
6359 }
6360 return new EditGetFixesParams(file, offset);
6361 } else {
6362 throw jsonDecoder.mismatch(jsonPath, "edit.getFixes params", json);
6363 }
6364 }
6365
6366 factory EditGetFixesParams.fromRequest(Request request) {
6367 return new EditGetFixesParams.fromJson(
6368 new RequestDecoder(request), "params", request._params);
6369 }
6370
6371 Map<String, dynamic> toJson() {
6372 Map<String, dynamic> result = {};
6373 result["file"] = file;
6374 result["offset"] = offset;
6375 return result;
6376 }
6377
6378 Request toRequest(String id) {
6379 return new Request(id, "edit.getFixes", toJson());
6380 }
6381
6382 @override
6383 String toString() => JSON.encode(toJson());
6384
6385 @override
6386 bool operator ==(other) {
6387 if (other is EditGetFixesParams) {
6388 return file == other.file && offset == other.offset;
6389 }
6390 return false;
6391 }
6392
6393 @override
6394 int get hashCode {
6395 int hash = 0;
6396 hash = JenkinsSmiHash.combine(hash, file.hashCode);
6397 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
6398 return JenkinsSmiHash.finish(hash);
6399 }
6400 }
6401
6402 /**
6403 * edit.getFixes result
6404 *
6405 * {
6406 * "fixes": List<AnalysisErrorFixes>
6407 * }
6408 *
6409 * Clients may not extend, implement or mix-in this class.
6410 */
6411 class EditGetFixesResult implements HasToJson {
6412 List<AnalysisErrorFixes> _fixes;
6413
6414 /**
6415 * The fixes that are available for the errors at the given offset.
6416 */
6417 List<AnalysisErrorFixes> get fixes => _fixes;
6418
6419 /**
6420 * The fixes that are available for the errors at the given offset.
6421 */
6422 void set fixes(List<AnalysisErrorFixes> value) {
6423 assert(value != null);
6424 this._fixes = value;
6425 }
6426
6427 EditGetFixesResult(List<AnalysisErrorFixes> fixes) {
6428 this.fixes = fixes;
6429 }
6430
6431 factory EditGetFixesResult.fromJson(
6432 JsonDecoder jsonDecoder, String jsonPath, Object json) {
6433 if (json == null) {
6434 json = {};
6435 }
6436 if (json is Map) {
6437 List<AnalysisErrorFixes> fixes;
6438 if (json.containsKey("fixes")) {
6439 fixes = jsonDecoder.decodeList(
6440 jsonPath + ".fixes",
6441 json["fixes"],
6442 (String jsonPath, Object json) =>
6443 new AnalysisErrorFixes.fromJson(jsonDecoder, jsonPath, json));
6444 } else {
6445 throw jsonDecoder.missingKey(jsonPath, "fixes");
6446 }
6447 return new EditGetFixesResult(fixes);
6448 } else {
6449 throw jsonDecoder.mismatch(jsonPath, "edit.getFixes result", json);
6450 }
6451 }
6452
6453 factory EditGetFixesResult.fromResponse(Response response) {
6454 return new EditGetFixesResult.fromJson(
6455 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
6456 "result",
6457 response._result);
6458 }
6459
6460 Map<String, dynamic> toJson() {
6461 Map<String, dynamic> result = {};
6462 result["fixes"] =
6463 fixes.map((AnalysisErrorFixes value) => value.toJson()).toList();
6464 return result;
6465 }
6466
6467 Response toResponse(String id) {
6468 return new Response(id, result: toJson());
6469 }
6470
6471 @override
6472 String toString() => JSON.encode(toJson());
6473
6474 @override
6475 bool operator ==(other) {
6476 if (other is EditGetFixesResult) {
6477 return listEqual(fixes, other.fixes,
6478 (AnalysisErrorFixes a, AnalysisErrorFixes b) => a == b);
6479 }
6480 return false;
6481 }
6482
6483 @override
6484 int get hashCode {
6485 int hash = 0;
6486 hash = JenkinsSmiHash.combine(hash, fixes.hashCode);
6487 return JenkinsSmiHash.finish(hash);
6488 }
6489 }
6490
6491 /**
6492 * edit.getRefactoring params
6493 *
6494 * {
6495 * "kind": RefactoringKind
6496 * "file": FilePath
6497 * "offset": int
6498 * "length": int
6499 * "validateOnly": bool
6500 * "options": optional RefactoringOptions
6501 * }
6502 *
6503 * Clients may not extend, implement or mix-in this class.
6504 */
6505 class EditGetRefactoringParams implements HasToJson {
6506 RefactoringKind _kind;
6507
6508 String _file;
6509
6510 int _offset;
6511
6512 int _length;
6513
6514 bool _validateOnly;
6515
6516 RefactoringOptions _options;
6517
6518 /**
6519 * The kind of refactoring to be performed.
6520 */
6521 RefactoringKind get kind => _kind;
6522
6523 /**
6524 * The kind of refactoring to be performed.
6525 */
6526 void set kind(RefactoringKind value) {
6527 assert(value != null);
6528 this._kind = value;
6529 }
6530
6531 /**
6532 * The file containing the code involved in the refactoring.
6533 */
6534 String get file => _file;
6535
6536 /**
6537 * The file containing the code involved in the refactoring.
6538 */
6539 void set file(String value) {
6540 assert(value != null);
6541 this._file = value;
6542 }
6543
6544 /**
6545 * The offset of the region involved in the refactoring.
6546 */
6547 int get offset => _offset;
6548
6549 /**
6550 * The offset of the region involved in the refactoring.
6551 */
6552 void set offset(int value) {
6553 assert(value != null);
6554 this._offset = value;
6555 }
6556
6557 /**
6558 * The length of the region involved in the refactoring.
6559 */
6560 int get length => _length;
6561
6562 /**
6563 * The length of the region involved in the refactoring.
6564 */
6565 void set length(int value) {
6566 assert(value != null);
6567 this._length = value;
6568 }
6569
6570 /**
6571 * True if the client is only requesting that the values of the options be
6572 * validated and no change be generated.
6573 */
6574 bool get validateOnly => _validateOnly;
6575
6576 /**
6577 * True if the client is only requesting that the values of the options be
6578 * validated and no change be generated.
6579 */
6580 void set validateOnly(bool value) {
6581 assert(value != null);
6582 this._validateOnly = value;
6583 }
6584
6585 /**
6586 * Data used to provide values provided by the user. The structure of the
6587 * data is dependent on the kind of refactoring being performed. The data
6588 * that is expected is documented in the section titled Refactorings, labeled
6589 * as "Options". This field can be omitted if the refactoring does not
6590 * require any options or if the values of those options are not known.
6591 */
6592 RefactoringOptions get options => _options;
6593
6594 /**
6595 * Data used to provide values provided by the user. The structure of the
6596 * data is dependent on the kind of refactoring being performed. The data
6597 * that is expected is documented in the section titled Refactorings, labeled
6598 * as "Options". This field can be omitted if the refactoring does not
6599 * require any options or if the values of those options are not known.
6600 */
6601 void set options(RefactoringOptions value) {
6602 this._options = value;
6603 }
6604
6605 EditGetRefactoringParams(RefactoringKind kind, String file, int offset,
6606 int length, bool validateOnly,
6607 {RefactoringOptions options}) {
6608 this.kind = kind;
6609 this.file = file;
6610 this.offset = offset;
6611 this.length = length;
6612 this.validateOnly = validateOnly;
6613 this.options = options;
6614 }
6615
6616 factory EditGetRefactoringParams.fromJson(
6617 JsonDecoder jsonDecoder, String jsonPath, Object json) {
6618 if (json == null) {
6619 json = {};
6620 }
6621 if (json is Map) {
6622 RefactoringKind kind;
6623 if (json.containsKey("kind")) {
6624 kind = new RefactoringKind.fromJson(
6625 jsonDecoder, jsonPath + ".kind", json["kind"]);
6626 } else {
6627 throw jsonDecoder.missingKey(jsonPath, "kind");
6628 }
6629 String file;
6630 if (json.containsKey("file")) {
6631 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
6632 } else {
6633 throw jsonDecoder.missingKey(jsonPath, "file");
6634 }
6635 int offset;
6636 if (json.containsKey("offset")) {
6637 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
6638 } else {
6639 throw jsonDecoder.missingKey(jsonPath, "offset");
6640 }
6641 int length;
6642 if (json.containsKey("length")) {
6643 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
6644 } else {
6645 throw jsonDecoder.missingKey(jsonPath, "length");
6646 }
6647 bool validateOnly;
6648 if (json.containsKey("validateOnly")) {
6649 validateOnly = jsonDecoder.decodeBool(
6650 jsonPath + ".validateOnly", json["validateOnly"]);
6651 } else {
6652 throw jsonDecoder.missingKey(jsonPath, "validateOnly");
6653 }
6654 RefactoringOptions options;
6655 if (json.containsKey("options")) {
6656 options = new RefactoringOptions.fromJson(
6657 jsonDecoder, jsonPath + ".options", json["options"], kind);
6658 }
6659 return new EditGetRefactoringParams(
6660 kind, file, offset, length, validateOnly,
6661 options: options);
6662 } else {
6663 throw jsonDecoder.mismatch(jsonPath, "edit.getRefactoring params", json);
6664 }
6665 }
6666
6667 factory EditGetRefactoringParams.fromRequest(Request request) {
6668 var params = new EditGetRefactoringParams.fromJson(
6669 new RequestDecoder(request), "params", request._params);
6670 REQUEST_ID_REFACTORING_KINDS[request.id] = params.kind;
6671 return params;
6672 }
6673
6674 Map<String, dynamic> toJson() {
6675 Map<String, dynamic> result = {};
6676 result["kind"] = kind.toJson();
6677 result["file"] = file;
6678 result["offset"] = offset;
6679 result["length"] = length;
6680 result["validateOnly"] = validateOnly;
6681 if (options != null) {
6682 result["options"] = options.toJson();
6683 }
6684 return result;
6685 }
6686
6687 Request toRequest(String id) {
6688 return new Request(id, "edit.getRefactoring", toJson());
6689 }
6690
6691 @override
6692 String toString() => JSON.encode(toJson());
6693
6694 @override
6695 bool operator ==(other) {
6696 if (other is EditGetRefactoringParams) {
6697 return kind == other.kind &&
6698 file == other.file &&
6699 offset == other.offset &&
6700 length == other.length &&
6701 validateOnly == other.validateOnly &&
6702 options == other.options;
6703 }
6704 return false;
6705 }
6706
6707 @override
6708 int get hashCode {
6709 int hash = 0;
6710 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
6711 hash = JenkinsSmiHash.combine(hash, file.hashCode);
6712 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
6713 hash = JenkinsSmiHash.combine(hash, length.hashCode);
6714 hash = JenkinsSmiHash.combine(hash, validateOnly.hashCode);
6715 hash = JenkinsSmiHash.combine(hash, options.hashCode);
6716 return JenkinsSmiHash.finish(hash);
6717 }
6718 }
6719
6720 /**
6721 * edit.getRefactoring result
6722 *
6723 * {
6724 * "initialProblems": List<RefactoringProblem>
6725 * "optionsProblems": List<RefactoringProblem>
6726 * "finalProblems": List<RefactoringProblem>
6727 * "feedback": optional RefactoringFeedback
6728 * "change": optional SourceChange
6729 * "potentialEdits": optional List<String>
6730 * }
6731 *
6732 * Clients may not extend, implement or mix-in this class.
6733 */
6734 class EditGetRefactoringResult implements HasToJson {
6735 List<RefactoringProblem> _initialProblems;
6736
6737 List<RefactoringProblem> _optionsProblems;
6738
6739 List<RefactoringProblem> _finalProblems;
6740
6741 RefactoringFeedback _feedback;
6742
6743 SourceChange _change;
6744
6745 List<String> _potentialEdits;
6746
6747 /**
6748 * The initial status of the refactoring, i.e. problems related to the
6749 * context in which the refactoring is requested. The array will be empty if
6750 * there are no known problems.
6751 */
6752 List<RefactoringProblem> get initialProblems => _initialProblems;
6753
6754 /**
6755 * The initial status of the refactoring, i.e. problems related to the
6756 * context in which the refactoring is requested. The array will be empty if
6757 * there are no known problems.
6758 */
6759 void set initialProblems(List<RefactoringProblem> value) {
6760 assert(value != null);
6761 this._initialProblems = value;
6762 }
6763
6764 /**
6765 * The options validation status, i.e. problems in the given options, such as
6766 * light-weight validation of a new name, flags compatibility, etc. The array
6767 * will be empty if there are no known problems.
6768 */
6769 List<RefactoringProblem> get optionsProblems => _optionsProblems;
6770
6771 /**
6772 * The options validation status, i.e. problems in the given options, such as
6773 * light-weight validation of a new name, flags compatibility, etc. The array
6774 * will be empty if there are no known problems.
6775 */
6776 void set optionsProblems(List<RefactoringProblem> value) {
6777 assert(value != null);
6778 this._optionsProblems = value;
6779 }
6780
6781 /**
6782 * The final status of the refactoring, i.e. problems identified in the
6783 * result of a full, potentially expensive validation and / or change
6784 * creation. The array will be empty if there are no known problems.
6785 */
6786 List<RefactoringProblem> get finalProblems => _finalProblems;
6787
6788 /**
6789 * The final status of the refactoring, i.e. problems identified in the
6790 * result of a full, potentially expensive validation and / or change
6791 * creation. The array will be empty if there are no known problems.
6792 */
6793 void set finalProblems(List<RefactoringProblem> value) {
6794 assert(value != null);
6795 this._finalProblems = value;
6796 }
6797
6798 /**
6799 * Data used to provide feedback to the user. The structure of the data is
6800 * dependent on the kind of refactoring being created. The data that is
6801 * returned is documented in the section titled Refactorings, labeled as
6802 * "Feedback".
6803 */
6804 RefactoringFeedback get feedback => _feedback;
6805
6806 /**
6807 * Data used to provide feedback to the user. The structure of the data is
6808 * dependent on the kind of refactoring being created. The data that is
6809 * returned is documented in the section titled Refactorings, labeled as
6810 * "Feedback".
6811 */
6812 void set feedback(RefactoringFeedback value) {
6813 this._feedback = value;
6814 }
6815
6816 /**
6817 * The changes that are to be applied to affect the refactoring. This field
6818 * will be omitted if there are problems that prevent a set of changes from
6819 * being computed, such as having no options specified for a refactoring that
6820 * requires them, or if only validation was requested.
6821 */
6822 SourceChange get change => _change;
6823
6824 /**
6825 * The changes that are to be applied to affect the refactoring. This field
6826 * will be omitted if there are problems that prevent a set of changes from
6827 * being computed, such as having no options specified for a refactoring that
6828 * requires them, or if only validation was requested.
6829 */
6830 void set change(SourceChange value) {
6831 this._change = value;
6832 }
6833
6834 /**
6835 * The ids of source edits that are not known to be valid. An edit is not
6836 * known to be valid if there was insufficient type information for the
6837 * server to be able to determine whether or not the code needs to be
6838 * modified, such as when a member is being renamed and there is a reference
6839 * to a member from an unknown type. This field will be omitted if the change
6840 * field is omitted or if there are no potential edits for the refactoring.
6841 */
6842 List<String> get potentialEdits => _potentialEdits;
6843
6844 /**
6845 * The ids of source edits that are not known to be valid. An edit is not
6846 * known to be valid if there was insufficient type information for the
6847 * server to be able to determine whether or not the code needs to be
6848 * modified, such as when a member is being renamed and there is a reference
6849 * to a member from an unknown type. This field will be omitted if the change
6850 * field is omitted or if there are no potential edits for the refactoring.
6851 */
6852 void set potentialEdits(List<String> value) {
6853 this._potentialEdits = value;
6854 }
6855
6856 EditGetRefactoringResult(
6857 List<RefactoringProblem> initialProblems,
6858 List<RefactoringProblem> optionsProblems,
6859 List<RefactoringProblem> finalProblems,
6860 {RefactoringFeedback feedback,
6861 SourceChange change,
6862 List<String> potentialEdits}) {
6863 this.initialProblems = initialProblems;
6864 this.optionsProblems = optionsProblems;
6865 this.finalProblems = finalProblems;
6866 this.feedback = feedback;
6867 this.change = change;
6868 this.potentialEdits = potentialEdits;
6869 }
6870
6871 factory EditGetRefactoringResult.fromJson(
6872 JsonDecoder jsonDecoder, String jsonPath, Object json) {
6873 if (json == null) {
6874 json = {};
6875 }
6876 if (json is Map) {
6877 List<RefactoringProblem> initialProblems;
6878 if (json.containsKey("initialProblems")) {
6879 initialProblems = jsonDecoder.decodeList(
6880 jsonPath + ".initialProblems",
6881 json["initialProblems"],
6882 (String jsonPath, Object json) =>
6883 new RefactoringProblem.fromJson(jsonDecoder, jsonPath, json));
6884 } else {
6885 throw jsonDecoder.missingKey(jsonPath, "initialProblems");
6886 }
6887 List<RefactoringProblem> optionsProblems;
6888 if (json.containsKey("optionsProblems")) {
6889 optionsProblems = jsonDecoder.decodeList(
6890 jsonPath + ".optionsProblems",
6891 json["optionsProblems"],
6892 (String jsonPath, Object json) =>
6893 new RefactoringProblem.fromJson(jsonDecoder, jsonPath, json));
6894 } else {
6895 throw jsonDecoder.missingKey(jsonPath, "optionsProblems");
6896 }
6897 List<RefactoringProblem> finalProblems;
6898 if (json.containsKey("finalProblems")) {
6899 finalProblems = jsonDecoder.decodeList(
6900 jsonPath + ".finalProblems",
6901 json["finalProblems"],
6902 (String jsonPath, Object json) =>
6903 new RefactoringProblem.fromJson(jsonDecoder, jsonPath, json));
6904 } else {
6905 throw jsonDecoder.missingKey(jsonPath, "finalProblems");
6906 }
6907 RefactoringFeedback feedback;
6908 if (json.containsKey("feedback")) {
6909 feedback = new RefactoringFeedback.fromJson(
6910 jsonDecoder, jsonPath + ".feedback", json["feedback"], json);
6911 }
6912 SourceChange change;
6913 if (json.containsKey("change")) {
6914 change = new SourceChange.fromJson(
6915 jsonDecoder, jsonPath + ".change", json["change"]);
6916 }
6917 List<String> potentialEdits;
6918 if (json.containsKey("potentialEdits")) {
6919 potentialEdits = jsonDecoder.decodeList(jsonPath + ".potentialEdits",
6920 json["potentialEdits"], jsonDecoder.decodeString);
6921 }
6922 return new EditGetRefactoringResult(
6923 initialProblems, optionsProblems, finalProblems,
6924 feedback: feedback, change: change, potentialEdits: potentialEdits);
6925 } else {
6926 throw jsonDecoder.mismatch(jsonPath, "edit.getRefactoring result", json);
6927 }
6928 }
6929
6930 factory EditGetRefactoringResult.fromResponse(Response response) {
6931 return new EditGetRefactoringResult.fromJson(
6932 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
6933 "result",
6934 response._result);
6935 }
6936
6937 Map<String, dynamic> toJson() {
6938 Map<String, dynamic> result = {};
6939 result["initialProblems"] = initialProblems
6940 .map((RefactoringProblem value) => value.toJson())
6941 .toList();
6942 result["optionsProblems"] = optionsProblems
6943 .map((RefactoringProblem value) => value.toJson())
6944 .toList();
6945 result["finalProblems"] = finalProblems
6946 .map((RefactoringProblem value) => value.toJson())
6947 .toList();
6948 if (feedback != null) {
6949 result["feedback"] = feedback.toJson();
6950 }
6951 if (change != null) {
6952 result["change"] = change.toJson();
6953 }
6954 if (potentialEdits != null) {
6955 result["potentialEdits"] = potentialEdits;
6956 }
6957 return result;
6958 }
6959
6960 Response toResponse(String id) {
6961 return new Response(id, result: toJson());
6962 }
6963
6964 @override
6965 String toString() => JSON.encode(toJson());
6966
6967 @override
6968 bool operator ==(other) {
6969 if (other is EditGetRefactoringResult) {
6970 return listEqual(initialProblems, other.initialProblems,
6971 (RefactoringProblem a, RefactoringProblem b) => a == b) &&
6972 listEqual(optionsProblems, other.optionsProblems,
6973 (RefactoringProblem a, RefactoringProblem b) => a == b) &&
6974 listEqual(finalProblems, other.finalProblems,
6975 (RefactoringProblem a, RefactoringProblem b) => a == b) &&
6976 feedback == other.feedback &&
6977 change == other.change &&
6978 listEqual(potentialEdits, other.potentialEdits,
6979 (String a, String b) => a == b);
6980 }
6981 return false;
6982 }
6983
6984 @override
6985 int get hashCode {
6986 int hash = 0;
6987 hash = JenkinsSmiHash.combine(hash, initialProblems.hashCode);
6988 hash = JenkinsSmiHash.combine(hash, optionsProblems.hashCode);
6989 hash = JenkinsSmiHash.combine(hash, finalProblems.hashCode);
6990 hash = JenkinsSmiHash.combine(hash, feedback.hashCode);
6991 hash = JenkinsSmiHash.combine(hash, change.hashCode);
6992 hash = JenkinsSmiHash.combine(hash, potentialEdits.hashCode);
6993 return JenkinsSmiHash.finish(hash);
6994 }
6995 }
6996
6997 /**
6998 * edit.getStatementCompletion params
6999 *
7000 * {
7001 * "file": FilePath
7002 * "offset": int
7003 * }
7004 *
7005 * Clients may not extend, implement or mix-in this class.
7006 */
7007 class EditGetStatementCompletionParams implements HasToJson {
7008 String _file;
7009
7010 int _offset;
7011
7012 /**
7013 * The file containing the statement to be completed.
7014 */
7015 String get file => _file;
7016
7017 /**
7018 * The file containing the statement to be completed.
7019 */
7020 void set file(String value) {
7021 assert(value != null);
7022 this._file = value;
7023 }
7024
7025 /**
7026 * The offset used to identify the statement to be completed.
7027 */
7028 int get offset => _offset;
7029
7030 /**
7031 * The offset used to identify the statement to be completed.
7032 */
7033 void set offset(int value) {
7034 assert(value != null);
7035 this._offset = value;
7036 }
7037
7038 EditGetStatementCompletionParams(String file, int offset) {
7039 this.file = file;
7040 this.offset = offset;
7041 }
7042
7043 factory EditGetStatementCompletionParams.fromJson(
7044 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7045 if (json == null) {
7046 json = {};
7047 }
7048 if (json is Map) {
7049 String file;
7050 if (json.containsKey("file")) {
7051 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
7052 } else {
7053 throw jsonDecoder.missingKey(jsonPath, "file");
7054 }
7055 int offset;
7056 if (json.containsKey("offset")) {
7057 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
7058 } else {
7059 throw jsonDecoder.missingKey(jsonPath, "offset");
7060 }
7061 return new EditGetStatementCompletionParams(file, offset);
7062 } else {
7063 throw jsonDecoder.mismatch(
7064 jsonPath, "edit.getStatementCompletion params", json);
7065 }
7066 }
7067
7068 factory EditGetStatementCompletionParams.fromRequest(Request request) {
7069 return new EditGetStatementCompletionParams.fromJson(
7070 new RequestDecoder(request), "params", request._params);
7071 }
7072
7073 Map<String, dynamic> toJson() {
7074 Map<String, dynamic> result = {};
7075 result["file"] = file;
7076 result["offset"] = offset;
7077 return result;
7078 }
7079
7080 Request toRequest(String id) {
7081 return new Request(id, "edit.getStatementCompletion", toJson());
7082 }
7083
7084 @override
7085 String toString() => JSON.encode(toJson());
7086
7087 @override
7088 bool operator ==(other) {
7089 if (other is EditGetStatementCompletionParams) {
7090 return file == other.file && offset == other.offset;
7091 }
7092 return false;
7093 }
7094
7095 @override
7096 int get hashCode {
7097 int hash = 0;
7098 hash = JenkinsSmiHash.combine(hash, file.hashCode);
7099 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
7100 return JenkinsSmiHash.finish(hash);
7101 }
7102 }
7103
7104 /**
7105 * edit.getStatementCompletion result
7106 *
7107 * {
7108 * "change": SourceChange
7109 * "whitespaceOnly": bool
7110 * }
7111 *
7112 * Clients may not extend, implement or mix-in this class.
7113 */
7114 class EditGetStatementCompletionResult implements HasToJson {
7115 SourceChange _change;
7116
7117 bool _whitespaceOnly;
7118
7119 /**
7120 * The change to be applied in order to complete the statement.
7121 */
7122 SourceChange get change => _change;
7123
7124 /**
7125 * The change to be applied in order to complete the statement.
7126 */
7127 void set change(SourceChange value) {
7128 assert(value != null);
7129 this._change = value;
7130 }
7131
7132 /**
7133 * Will be true if the change contains nothing but whitespace characters, or
7134 * is empty.
7135 */
7136 bool get whitespaceOnly => _whitespaceOnly;
7137
7138 /**
7139 * Will be true if the change contains nothing but whitespace characters, or
7140 * is empty.
7141 */
7142 void set whitespaceOnly(bool value) {
7143 assert(value != null);
7144 this._whitespaceOnly = value;
7145 }
7146
7147 EditGetStatementCompletionResult(SourceChange change, bool whitespaceOnly) {
7148 this.change = change;
7149 this.whitespaceOnly = whitespaceOnly;
7150 }
7151
7152 factory EditGetStatementCompletionResult.fromJson(
7153 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7154 if (json == null) {
7155 json = {};
7156 }
7157 if (json is Map) {
7158 SourceChange change;
7159 if (json.containsKey("change")) {
7160 change = new SourceChange.fromJson(
7161 jsonDecoder, jsonPath + ".change", json["change"]);
7162 } else {
7163 throw jsonDecoder.missingKey(jsonPath, "change");
7164 }
7165 bool whitespaceOnly;
7166 if (json.containsKey("whitespaceOnly")) {
7167 whitespaceOnly = jsonDecoder.decodeBool(
7168 jsonPath + ".whitespaceOnly", json["whitespaceOnly"]);
7169 } else {
7170 throw jsonDecoder.missingKey(jsonPath, "whitespaceOnly");
7171 }
7172 return new EditGetStatementCompletionResult(change, whitespaceOnly);
7173 } else {
7174 throw jsonDecoder.mismatch(
7175 jsonPath, "edit.getStatementCompletion result", json);
7176 }
7177 }
7178
7179 factory EditGetStatementCompletionResult.fromResponse(Response response) {
7180 return new EditGetStatementCompletionResult.fromJson(
7181 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
7182 "result",
7183 response._result);
7184 }
7185
7186 Map<String, dynamic> toJson() {
7187 Map<String, dynamic> result = {};
7188 result["change"] = change.toJson();
7189 result["whitespaceOnly"] = whitespaceOnly;
7190 return result;
7191 }
7192
7193 Response toResponse(String id) {
7194 return new Response(id, result: toJson());
7195 }
7196
7197 @override
7198 String toString() => JSON.encode(toJson());
7199
7200 @override
7201 bool operator ==(other) {
7202 if (other is EditGetStatementCompletionResult) {
7203 return change == other.change && whitespaceOnly == other.whitespaceOnly;
7204 }
7205 return false;
7206 }
7207
7208 @override
7209 int get hashCode {
7210 int hash = 0;
7211 hash = JenkinsSmiHash.combine(hash, change.hashCode);
7212 hash = JenkinsSmiHash.combine(hash, whitespaceOnly.hashCode);
7213 return JenkinsSmiHash.finish(hash);
7214 }
7215 }
7216
7217 /**
7218 * edit.sortMembers params
7219 *
7220 * {
7221 * "file": FilePath
7222 * }
7223 *
7224 * Clients may not extend, implement or mix-in this class.
7225 */
7226 class EditSortMembersParams implements HasToJson {
7227 String _file;
7228
7229 /**
7230 * The Dart file to sort.
7231 */
7232 String get file => _file;
7233
7234 /**
7235 * The Dart file to sort.
7236 */
7237 void set file(String value) {
7238 assert(value != null);
7239 this._file = value;
7240 }
7241
7242 EditSortMembersParams(String file) {
7243 this.file = file;
7244 }
7245
7246 factory EditSortMembersParams.fromJson(
7247 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7248 if (json == null) {
7249 json = {};
7250 }
7251 if (json is Map) {
7252 String file;
7253 if (json.containsKey("file")) {
7254 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
7255 } else {
7256 throw jsonDecoder.missingKey(jsonPath, "file");
7257 }
7258 return new EditSortMembersParams(file);
7259 } else {
7260 throw jsonDecoder.mismatch(jsonPath, "edit.sortMembers params", json);
7261 }
7262 }
7263
7264 factory EditSortMembersParams.fromRequest(Request request) {
7265 return new EditSortMembersParams.fromJson(
7266 new RequestDecoder(request), "params", request._params);
7267 }
7268
7269 Map<String, dynamic> toJson() {
7270 Map<String, dynamic> result = {};
7271 result["file"] = file;
7272 return result;
7273 }
7274
7275 Request toRequest(String id) {
7276 return new Request(id, "edit.sortMembers", toJson());
7277 }
7278
7279 @override
7280 String toString() => JSON.encode(toJson());
7281
7282 @override
7283 bool operator ==(other) {
7284 if (other is EditSortMembersParams) {
7285 return file == other.file;
7286 }
7287 return false;
7288 }
7289
7290 @override
7291 int get hashCode {
7292 int hash = 0;
7293 hash = JenkinsSmiHash.combine(hash, file.hashCode);
7294 return JenkinsSmiHash.finish(hash);
7295 }
7296 }
7297
7298 /**
7299 * edit.sortMembers result
7300 *
7301 * {
7302 * "edit": SourceFileEdit
7303 * }
7304 *
7305 * Clients may not extend, implement or mix-in this class.
7306 */
7307 class EditSortMembersResult implements HasToJson {
7308 SourceFileEdit _edit;
7309
7310 /**
7311 * The file edit that is to be applied to the given file to effect the
7312 * sorting.
7313 */
7314 SourceFileEdit get edit => _edit;
7315
7316 /**
7317 * The file edit that is to be applied to the given file to effect the
7318 * sorting.
7319 */
7320 void set edit(SourceFileEdit value) {
7321 assert(value != null);
7322 this._edit = value;
7323 }
7324
7325 EditSortMembersResult(SourceFileEdit edit) {
7326 this.edit = edit;
7327 }
7328
7329 factory EditSortMembersResult.fromJson(
7330 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7331 if (json == null) {
7332 json = {};
7333 }
7334 if (json is Map) {
7335 SourceFileEdit edit;
7336 if (json.containsKey("edit")) {
7337 edit = new SourceFileEdit.fromJson(
7338 jsonDecoder, jsonPath + ".edit", json["edit"]);
7339 } else {
7340 throw jsonDecoder.missingKey(jsonPath, "edit");
7341 }
7342 return new EditSortMembersResult(edit);
7343 } else {
7344 throw jsonDecoder.mismatch(jsonPath, "edit.sortMembers result", json);
7345 }
7346 }
7347
7348 factory EditSortMembersResult.fromResponse(Response response) {
7349 return new EditSortMembersResult.fromJson(
7350 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
7351 "result",
7352 response._result);
7353 }
7354
7355 Map<String, dynamic> toJson() {
7356 Map<String, dynamic> result = {};
7357 result["edit"] = edit.toJson();
7358 return result;
7359 }
7360
7361 Response toResponse(String id) {
7362 return new Response(id, result: toJson());
7363 }
7364
7365 @override
7366 String toString() => JSON.encode(toJson());
7367
7368 @override
7369 bool operator ==(other) {
7370 if (other is EditSortMembersResult) {
7371 return edit == other.edit;
7372 }
7373 return false;
7374 }
7375
7376 @override
7377 int get hashCode {
7378 int hash = 0;
7379 hash = JenkinsSmiHash.combine(hash, edit.hashCode);
7380 return JenkinsSmiHash.finish(hash);
7381 }
7382 }
7383
7384 /**
7385 * edit.organizeDirectives params
7386 *
7387 * {
7388 * "file": FilePath
7389 * }
7390 *
7391 * Clients may not extend, implement or mix-in this class.
7392 */
7393 class EditOrganizeDirectivesParams implements HasToJson {
7394 String _file;
7395
7396 /**
7397 * The Dart file to organize directives in.
7398 */
7399 String get file => _file;
7400
7401 /**
7402 * The Dart file to organize directives in.
7403 */
7404 void set file(String value) {
7405 assert(value != null);
7406 this._file = value;
7407 }
7408
7409 EditOrganizeDirectivesParams(String file) {
7410 this.file = file;
7411 }
7412
7413 factory EditOrganizeDirectivesParams.fromJson(
7414 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7415 if (json == null) {
7416 json = {};
7417 }
7418 if (json is Map) {
7419 String file;
7420 if (json.containsKey("file")) {
7421 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
7422 } else {
7423 throw jsonDecoder.missingKey(jsonPath, "file");
7424 }
7425 return new EditOrganizeDirectivesParams(file);
7426 } else {
7427 throw jsonDecoder.mismatch(
7428 jsonPath, "edit.organizeDirectives params", json);
7429 }
7430 }
7431
7432 factory EditOrganizeDirectivesParams.fromRequest(Request request) {
7433 return new EditOrganizeDirectivesParams.fromJson(
7434 new RequestDecoder(request), "params", request._params);
7435 }
7436
7437 Map<String, dynamic> toJson() {
7438 Map<String, dynamic> result = {};
7439 result["file"] = file;
7440 return result;
7441 }
7442
7443 Request toRequest(String id) {
7444 return new Request(id, "edit.organizeDirectives", toJson());
7445 }
7446
7447 @override
7448 String toString() => JSON.encode(toJson());
7449
7450 @override
7451 bool operator ==(other) {
7452 if (other is EditOrganizeDirectivesParams) {
7453 return file == other.file;
7454 }
7455 return false;
7456 }
7457
7458 @override
7459 int get hashCode {
7460 int hash = 0;
7461 hash = JenkinsSmiHash.combine(hash, file.hashCode);
7462 return JenkinsSmiHash.finish(hash);
7463 }
7464 }
7465
7466 /**
7467 * edit.organizeDirectives result
7468 *
7469 * {
7470 * "edit": SourceFileEdit
7471 * }
7472 *
7473 * Clients may not extend, implement or mix-in this class.
7474 */
7475 class EditOrganizeDirectivesResult implements HasToJson {
7476 SourceFileEdit _edit;
7477
7478 /**
7479 * The file edit that is to be applied to the given file to effect the
7480 * organizing.
7481 */
7482 SourceFileEdit get edit => _edit;
7483
7484 /**
7485 * The file edit that is to be applied to the given file to effect the
7486 * organizing.
7487 */
7488 void set edit(SourceFileEdit value) {
7489 assert(value != null);
7490 this._edit = value;
7491 }
7492
7493 EditOrganizeDirectivesResult(SourceFileEdit edit) {
7494 this.edit = edit;
7495 }
7496
7497 factory EditOrganizeDirectivesResult.fromJson(
7498 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7499 if (json == null) {
7500 json = {};
7501 }
7502 if (json is Map) {
7503 SourceFileEdit edit;
7504 if (json.containsKey("edit")) {
7505 edit = new SourceFileEdit.fromJson(
7506 jsonDecoder, jsonPath + ".edit", json["edit"]);
7507 } else {
7508 throw jsonDecoder.missingKey(jsonPath, "edit");
7509 }
7510 return new EditOrganizeDirectivesResult(edit);
7511 } else {
7512 throw jsonDecoder.mismatch(
7513 jsonPath, "edit.organizeDirectives result", json);
7514 }
7515 }
7516
7517 factory EditOrganizeDirectivesResult.fromResponse(Response response) {
7518 return new EditOrganizeDirectivesResult.fromJson(
7519 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
7520 "result",
7521 response._result);
7522 }
7523
7524 Map<String, dynamic> toJson() {
7525 Map<String, dynamic> result = {};
7526 result["edit"] = edit.toJson();
7527 return result;
7528 }
7529
7530 Response toResponse(String id) {
7531 return new Response(id, result: toJson());
7532 }
7533
7534 @override
7535 String toString() => JSON.encode(toJson());
7536
7537 @override
7538 bool operator ==(other) {
7539 if (other is EditOrganizeDirectivesResult) {
7540 return edit == other.edit;
7541 }
7542 return false;
7543 }
7544
7545 @override
7546 int get hashCode {
7547 int hash = 0;
7548 hash = JenkinsSmiHash.combine(hash, edit.hashCode);
7549 return JenkinsSmiHash.finish(hash);
7550 }
7551 }
7552
7553 /**
7554 * execution.createContext params
7555 *
7556 * {
7557 * "contextRoot": FilePath
7558 * }
7559 *
7560 * Clients may not extend, implement or mix-in this class.
7561 */
7562 class ExecutionCreateContextParams implements HasToJson {
7563 String _contextRoot;
7564
7565 /**
7566 * The path of the Dart or HTML file that will be launched, or the path of
7567 * the directory containing the file.
7568 */
7569 String get contextRoot => _contextRoot;
7570
7571 /**
7572 * The path of the Dart or HTML file that will be launched, or the path of
7573 * the directory containing the file.
7574 */
7575 void set contextRoot(String value) {
7576 assert(value != null);
7577 this._contextRoot = value;
7578 }
7579
7580 ExecutionCreateContextParams(String contextRoot) {
7581 this.contextRoot = contextRoot;
7582 }
7583
7584 factory ExecutionCreateContextParams.fromJson(
7585 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7586 if (json == null) {
7587 json = {};
7588 }
7589 if (json is Map) {
7590 String contextRoot;
7591 if (json.containsKey("contextRoot")) {
7592 contextRoot = jsonDecoder.decodeString(
7593 jsonPath + ".contextRoot", json["contextRoot"]);
7594 } else {
7595 throw jsonDecoder.missingKey(jsonPath, "contextRoot");
7596 }
7597 return new ExecutionCreateContextParams(contextRoot);
7598 } else {
7599 throw jsonDecoder.mismatch(
7600 jsonPath, "execution.createContext params", json);
7601 }
7602 }
7603
7604 factory ExecutionCreateContextParams.fromRequest(Request request) {
7605 return new ExecutionCreateContextParams.fromJson(
7606 new RequestDecoder(request), "params", request._params);
7607 }
7608
7609 Map<String, dynamic> toJson() {
7610 Map<String, dynamic> result = {};
7611 result["contextRoot"] = contextRoot;
7612 return result;
7613 }
7614
7615 Request toRequest(String id) {
7616 return new Request(id, "execution.createContext", toJson());
7617 }
7618
7619 @override
7620 String toString() => JSON.encode(toJson());
7621
7622 @override
7623 bool operator ==(other) {
7624 if (other is ExecutionCreateContextParams) {
7625 return contextRoot == other.contextRoot;
7626 }
7627 return false;
7628 }
7629
7630 @override
7631 int get hashCode {
7632 int hash = 0;
7633 hash = JenkinsSmiHash.combine(hash, contextRoot.hashCode);
7634 return JenkinsSmiHash.finish(hash);
7635 }
7636 }
7637
7638 /**
7639 * execution.createContext result
7640 *
7641 * {
7642 * "id": ExecutionContextId
7643 * }
7644 *
7645 * Clients may not extend, implement or mix-in this class.
7646 */
7647 class ExecutionCreateContextResult implements HasToJson {
7648 String _id;
7649
7650 /**
7651 * The identifier used to refer to the execution context that was created.
7652 */
7653 String get id => _id;
7654
7655 /**
7656 * The identifier used to refer to the execution context that was created.
7657 */
7658 void set id(String value) {
7659 assert(value != null);
7660 this._id = value;
7661 }
7662
7663 ExecutionCreateContextResult(String id) {
7664 this.id = id;
7665 }
7666
7667 factory ExecutionCreateContextResult.fromJson(
7668 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7669 if (json == null) {
7670 json = {};
7671 }
7672 if (json is Map) {
7673 String id;
7674 if (json.containsKey("id")) {
7675 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
7676 } else {
7677 throw jsonDecoder.missingKey(jsonPath, "id");
7678 }
7679 return new ExecutionCreateContextResult(id);
7680 } else {
7681 throw jsonDecoder.mismatch(
7682 jsonPath, "execution.createContext result", json);
7683 }
7684 }
7685
7686 factory ExecutionCreateContextResult.fromResponse(Response response) {
7687 return new ExecutionCreateContextResult.fromJson(
7688 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
7689 "result",
7690 response._result);
7691 }
7692
7693 Map<String, dynamic> toJson() {
7694 Map<String, dynamic> result = {};
7695 result["id"] = id;
7696 return result;
7697 }
7698
7699 Response toResponse(String id) {
7700 return new Response(id, result: toJson());
7701 }
7702
7703 @override
7704 String toString() => JSON.encode(toJson());
7705
7706 @override
7707 bool operator ==(other) {
7708 if (other is ExecutionCreateContextResult) {
7709 return id == other.id;
7710 }
7711 return false;
7712 }
7713
7714 @override
7715 int get hashCode {
7716 int hash = 0;
7717 hash = JenkinsSmiHash.combine(hash, id.hashCode);
7718 return JenkinsSmiHash.finish(hash);
7719 }
7720 }
7721
7722 /**
7723 * execution.deleteContext params
7724 *
7725 * {
7726 * "id": ExecutionContextId
7727 * }
7728 *
7729 * Clients may not extend, implement or mix-in this class.
7730 */
7731 class ExecutionDeleteContextParams implements HasToJson {
7732 String _id;
7733
7734 /**
7735 * The identifier of the execution context that is to be deleted.
7736 */
7737 String get id => _id;
7738
7739 /**
7740 * The identifier of the execution context that is to be deleted.
7741 */
7742 void set id(String value) {
7743 assert(value != null);
7744 this._id = value;
7745 }
7746
7747 ExecutionDeleteContextParams(String id) {
7748 this.id = id;
7749 }
7750
7751 factory ExecutionDeleteContextParams.fromJson(
7752 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7753 if (json == null) {
7754 json = {};
7755 }
7756 if (json is Map) {
7757 String id;
7758 if (json.containsKey("id")) {
7759 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
7760 } else {
7761 throw jsonDecoder.missingKey(jsonPath, "id");
7762 }
7763 return new ExecutionDeleteContextParams(id);
7764 } else {
7765 throw jsonDecoder.mismatch(
7766 jsonPath, "execution.deleteContext params", json);
7767 }
7768 }
7769
7770 factory ExecutionDeleteContextParams.fromRequest(Request request) {
7771 return new ExecutionDeleteContextParams.fromJson(
7772 new RequestDecoder(request), "params", request._params);
7773 }
7774
7775 Map<String, dynamic> toJson() {
7776 Map<String, dynamic> result = {};
7777 result["id"] = id;
7778 return result;
7779 }
7780
7781 Request toRequest(String id) {
7782 return new Request(id, "execution.deleteContext", toJson());
7783 }
7784
7785 @override
7786 String toString() => JSON.encode(toJson());
7787
7788 @override
7789 bool operator ==(other) {
7790 if (other is ExecutionDeleteContextParams) {
7791 return id == other.id;
7792 }
7793 return false;
7794 }
7795
7796 @override
7797 int get hashCode {
7798 int hash = 0;
7799 hash = JenkinsSmiHash.combine(hash, id.hashCode);
7800 return JenkinsSmiHash.finish(hash);
7801 }
7802 }
7803
7804 /**
7805 * execution.deleteContext result
7806 *
7807 * Clients may not extend, implement or mix-in this class.
7808 */
7809 class ExecutionDeleteContextResult {
7810 Response toResponse(String id) {
7811 return new Response(id, result: null);
7812 }
7813
7814 @override
7815 bool operator ==(other) {
7816 if (other is ExecutionDeleteContextResult) {
7817 return true;
7818 }
7819 return false;
7820 }
7821
7822 @override
7823 int get hashCode {
7824 return 479954425;
7825 }
7826 }
7827
7828 /**
7829 * execution.mapUri params
7830 *
7831 * {
7832 * "id": ExecutionContextId
7833 * "file": optional FilePath
7834 * "uri": optional String
7835 * }
7836 *
7837 * Clients may not extend, implement or mix-in this class.
7838 */
7839 class ExecutionMapUriParams implements HasToJson {
7840 String _id;
7841
7842 String _file;
7843
7844 String _uri;
7845
7846 /**
7847 * The identifier of the execution context in which the URI is to be mapped.
7848 */
7849 String get id => _id;
7850
7851 /**
7852 * The identifier of the execution context in which the URI is to be mapped.
7853 */
7854 void set id(String value) {
7855 assert(value != null);
7856 this._id = value;
7857 }
7858
7859 /**
7860 * The path of the file to be mapped into a URI.
7861 */
7862 String get file => _file;
7863
7864 /**
7865 * The path of the file to be mapped into a URI.
7866 */
7867 void set file(String value) {
7868 this._file = value;
7869 }
7870
7871 /**
7872 * The URI to be mapped into a file path.
7873 */
7874 String get uri => _uri;
7875
7876 /**
7877 * The URI to be mapped into a file path.
7878 */
7879 void set uri(String value) {
7880 this._uri = value;
7881 }
7882
7883 ExecutionMapUriParams(String id, {String file, String uri}) {
7884 this.id = id;
7885 this.file = file;
7886 this.uri = uri;
7887 }
7888
7889 factory ExecutionMapUriParams.fromJson(
7890 JsonDecoder jsonDecoder, String jsonPath, Object json) {
7891 if (json == null) {
7892 json = {};
7893 }
7894 if (json is Map) {
7895 String id;
7896 if (json.containsKey("id")) {
7897 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
7898 } else {
7899 throw jsonDecoder.missingKey(jsonPath, "id");
7900 }
7901 String file;
7902 if (json.containsKey("file")) {
7903 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
7904 }
7905 String uri;
7906 if (json.containsKey("uri")) {
7907 uri = jsonDecoder.decodeString(jsonPath + ".uri", json["uri"]);
7908 }
7909 return new ExecutionMapUriParams(id, file: file, uri: uri);
7910 } else {
7911 throw jsonDecoder.mismatch(jsonPath, "execution.mapUri params", json);
7912 }
7913 }
7914
7915 factory ExecutionMapUriParams.fromRequest(Request request) {
7916 return new ExecutionMapUriParams.fromJson(
7917 new RequestDecoder(request), "params", request._params);
7918 }
7919
7920 Map<String, dynamic> toJson() {
7921 Map<String, dynamic> result = {};
7922 result["id"] = id;
7923 if (file != null) {
7924 result["file"] = file;
7925 }
7926 if (uri != null) {
7927 result["uri"] = uri;
7928 }
7929 return result;
7930 }
7931
7932 Request toRequest(String id) {
7933 return new Request(id, "execution.mapUri", toJson());
7934 }
7935
7936 @override
7937 String toString() => JSON.encode(toJson());
7938
7939 @override
7940 bool operator ==(other) {
7941 if (other is ExecutionMapUriParams) {
7942 return id == other.id && file == other.file && uri == other.uri;
7943 }
7944 return false;
7945 }
7946
7947 @override
7948 int get hashCode {
7949 int hash = 0;
7950 hash = JenkinsSmiHash.combine(hash, id.hashCode);
7951 hash = JenkinsSmiHash.combine(hash, file.hashCode);
7952 hash = JenkinsSmiHash.combine(hash, uri.hashCode);
7953 return JenkinsSmiHash.finish(hash);
7954 }
7955 }
7956
7957 /**
7958 * execution.mapUri result
7959 *
7960 * {
7961 * "file": optional FilePath
7962 * "uri": optional String
7963 * }
7964 *
7965 * Clients may not extend, implement or mix-in this class.
7966 */
7967 class ExecutionMapUriResult implements HasToJson {
7968 String _file;
7969
7970 String _uri;
7971
7972 /**
7973 * The file to which the URI was mapped. This field is omitted if the uri
7974 * field was not given in the request.
7975 */
7976 String get file => _file;
7977
7978 /**
7979 * The file to which the URI was mapped. This field is omitted if the uri
7980 * field was not given in the request.
7981 */
7982 void set file(String value) {
7983 this._file = value;
7984 }
7985
7986 /**
7987 * The URI to which the file path was mapped. This field is omitted if the
7988 * file field was not given in the request.
7989 */
7990 String get uri => _uri;
7991
7992 /**
7993 * The URI to which the file path was mapped. This field is omitted if the
7994 * file field was not given in the request.
7995 */
7996 void set uri(String value) {
7997 this._uri = value;
7998 }
7999
8000 ExecutionMapUriResult({String file, String uri}) {
8001 this.file = file;
8002 this.uri = uri;
8003 }
8004
8005 factory ExecutionMapUriResult.fromJson(
8006 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8007 if (json == null) {
8008 json = {};
8009 }
8010 if (json is Map) {
8011 String file;
8012 if (json.containsKey("file")) {
8013 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
8014 }
8015 String uri;
8016 if (json.containsKey("uri")) {
8017 uri = jsonDecoder.decodeString(jsonPath + ".uri", json["uri"]);
8018 }
8019 return new ExecutionMapUriResult(file: file, uri: uri);
8020 } else {
8021 throw jsonDecoder.mismatch(jsonPath, "execution.mapUri result", json);
8022 }
8023 }
8024
8025 factory ExecutionMapUriResult.fromResponse(Response response) {
8026 return new ExecutionMapUriResult.fromJson(
8027 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
8028 "result",
8029 response._result);
8030 }
8031
8032 Map<String, dynamic> toJson() {
8033 Map<String, dynamic> result = {};
8034 if (file != null) {
8035 result["file"] = file;
8036 }
8037 if (uri != null) {
8038 result["uri"] = uri;
8039 }
8040 return result;
8041 }
8042
8043 Response toResponse(String id) {
8044 return new Response(id, result: toJson());
8045 }
8046
8047 @override
8048 String toString() => JSON.encode(toJson());
8049
8050 @override
8051 bool operator ==(other) {
8052 if (other is ExecutionMapUriResult) {
8053 return file == other.file && uri == other.uri;
8054 }
8055 return false;
8056 }
8057
8058 @override
8059 int get hashCode {
8060 int hash = 0;
8061 hash = JenkinsSmiHash.combine(hash, file.hashCode);
8062 hash = JenkinsSmiHash.combine(hash, uri.hashCode);
8063 return JenkinsSmiHash.finish(hash);
8064 }
8065 }
8066
8067 /**
8068 * execution.setSubscriptions params
8069 *
8070 * {
8071 * "subscriptions": List<ExecutionService>
8072 * }
8073 *
8074 * Clients may not extend, implement or mix-in this class.
8075 */
8076 class ExecutionSetSubscriptionsParams implements HasToJson {
8077 List<ExecutionService> _subscriptions;
8078
8079 /**
8080 * A list of the services being subscribed to.
8081 */
8082 List<ExecutionService> get subscriptions => _subscriptions;
8083
8084 /**
8085 * A list of the services being subscribed to.
8086 */
8087 void set subscriptions(List<ExecutionService> value) {
8088 assert(value != null);
8089 this._subscriptions = value;
8090 }
8091
8092 ExecutionSetSubscriptionsParams(List<ExecutionService> subscriptions) {
8093 this.subscriptions = subscriptions;
8094 }
8095
8096 factory ExecutionSetSubscriptionsParams.fromJson(
8097 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8098 if (json == null) {
8099 json = {};
8100 }
8101 if (json is Map) {
8102 List<ExecutionService> subscriptions;
8103 if (json.containsKey("subscriptions")) {
8104 subscriptions = jsonDecoder.decodeList(
8105 jsonPath + ".subscriptions",
8106 json["subscriptions"],
8107 (String jsonPath, Object json) =>
8108 new ExecutionService.fromJson(jsonDecoder, jsonPath, json));
8109 } else {
8110 throw jsonDecoder.missingKey(jsonPath, "subscriptions");
8111 }
8112 return new ExecutionSetSubscriptionsParams(subscriptions);
8113 } else {
8114 throw jsonDecoder.mismatch(
8115 jsonPath, "execution.setSubscriptions params", json);
8116 }
8117 }
8118
8119 factory ExecutionSetSubscriptionsParams.fromRequest(Request request) {
8120 return new ExecutionSetSubscriptionsParams.fromJson(
8121 new RequestDecoder(request), "params", request._params);
8122 }
8123
8124 Map<String, dynamic> toJson() {
8125 Map<String, dynamic> result = {};
8126 result["subscriptions"] =
8127 subscriptions.map((ExecutionService value) => value.toJson()).toList();
8128 return result;
8129 }
8130
8131 Request toRequest(String id) {
8132 return new Request(id, "execution.setSubscriptions", toJson());
8133 }
8134
8135 @override
8136 String toString() => JSON.encode(toJson());
8137
8138 @override
8139 bool operator ==(other) {
8140 if (other is ExecutionSetSubscriptionsParams) {
8141 return listEqual(subscriptions, other.subscriptions,
8142 (ExecutionService a, ExecutionService b) => a == b);
8143 }
8144 return false;
8145 }
8146
8147 @override
8148 int get hashCode {
8149 int hash = 0;
8150 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode);
8151 return JenkinsSmiHash.finish(hash);
8152 }
8153 }
8154
8155 /**
8156 * execution.setSubscriptions result
8157 *
8158 * Clients may not extend, implement or mix-in this class.
8159 */
8160 class ExecutionSetSubscriptionsResult {
8161 Response toResponse(String id) {
8162 return new Response(id, result: null);
8163 }
8164
8165 @override
8166 bool operator ==(other) {
8167 if (other is ExecutionSetSubscriptionsResult) {
8168 return true;
8169 }
8170 return false;
8171 }
8172
8173 @override
8174 int get hashCode {
8175 return 287678780;
8176 }
8177 }
8178
8179 /**
8180 * execution.launchData params
8181 *
8182 * {
8183 * "file": FilePath
8184 * "kind": optional ExecutableKind
8185 * "referencedFiles": optional List<FilePath>
8186 * }
8187 *
8188 * Clients may not extend, implement or mix-in this class.
8189 */
8190 class ExecutionLaunchDataParams implements HasToJson {
8191 String _file;
8192
8193 ExecutableKind _kind;
8194
8195 List<String> _referencedFiles;
8196
8197 /**
8198 * The file for which launch data is being provided. This will either be a
8199 * Dart library or an HTML file.
8200 */
8201 String get file => _file;
8202
8203 /**
8204 * The file for which launch data is being provided. This will either be a
8205 * Dart library or an HTML file.
8206 */
8207 void set file(String value) {
8208 assert(value != null);
8209 this._file = value;
8210 }
8211
8212 /**
8213 * The kind of the executable file. This field is omitted if the file is not
8214 * a Dart file.
8215 */
8216 ExecutableKind get kind => _kind;
8217
8218 /**
8219 * The kind of the executable file. This field is omitted if the file is not
8220 * a Dart file.
8221 */
8222 void set kind(ExecutableKind value) {
8223 this._kind = value;
8224 }
8225
8226 /**
8227 * A list of the Dart files that are referenced by the file. This field is
8228 * omitted if the file is not an HTML file.
8229 */
8230 List<String> get referencedFiles => _referencedFiles;
8231
8232 /**
8233 * A list of the Dart files that are referenced by the file. This field is
8234 * omitted if the file is not an HTML file.
8235 */
8236 void set referencedFiles(List<String> value) {
8237 this._referencedFiles = value;
8238 }
8239
8240 ExecutionLaunchDataParams(String file,
8241 {ExecutableKind kind, List<String> referencedFiles}) {
8242 this.file = file;
8243 this.kind = kind;
8244 this.referencedFiles = referencedFiles;
8245 }
8246
8247 factory ExecutionLaunchDataParams.fromJson(
8248 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8249 if (json == null) {
8250 json = {};
8251 }
8252 if (json is Map) {
8253 String file;
8254 if (json.containsKey("file")) {
8255 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
8256 } else {
8257 throw jsonDecoder.missingKey(jsonPath, "file");
8258 }
8259 ExecutableKind kind;
8260 if (json.containsKey("kind")) {
8261 kind = new ExecutableKind.fromJson(
8262 jsonDecoder, jsonPath + ".kind", json["kind"]);
8263 }
8264 List<String> referencedFiles;
8265 if (json.containsKey("referencedFiles")) {
8266 referencedFiles = jsonDecoder.decodeList(jsonPath + ".referencedFiles",
8267 json["referencedFiles"], jsonDecoder.decodeString);
8268 }
8269 return new ExecutionLaunchDataParams(file,
8270 kind: kind, referencedFiles: referencedFiles);
8271 } else {
8272 throw jsonDecoder.mismatch(jsonPath, "execution.launchData params", json);
8273 }
8274 }
8275
8276 factory ExecutionLaunchDataParams.fromNotification(
8277 Notification notification) {
8278 return new ExecutionLaunchDataParams.fromJson(
8279 new ResponseDecoder(null), "params", notification._params);
8280 }
8281
8282 Map<String, dynamic> toJson() {
8283 Map<String, dynamic> result = {};
8284 result["file"] = file;
8285 if (kind != null) {
8286 result["kind"] = kind.toJson();
8287 }
8288 if (referencedFiles != null) {
8289 result["referencedFiles"] = referencedFiles;
8290 }
8291 return result;
8292 }
8293
8294 Notification toNotification() {
8295 return new Notification("execution.launchData", toJson());
8296 }
8297
8298 @override
8299 String toString() => JSON.encode(toJson());
8300
8301 @override
8302 bool operator ==(other) {
8303 if (other is ExecutionLaunchDataParams) {
8304 return file == other.file &&
8305 kind == other.kind &&
8306 listEqual(referencedFiles, other.referencedFiles,
8307 (String a, String b) => a == b);
8308 }
8309 return false;
8310 }
8311
8312 @override
8313 int get hashCode {
8314 int hash = 0;
8315 hash = JenkinsSmiHash.combine(hash, file.hashCode);
8316 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
8317 hash = JenkinsSmiHash.combine(hash, referencedFiles.hashCode);
8318 return JenkinsSmiHash.finish(hash);
8319 }
8320 }
8321
8322 /**
8323 * diagnostic.getDiagnostics params
8324 *
8325 * Clients may not extend, implement or mix-in this class.
8326 */
8327 class DiagnosticGetDiagnosticsParams {
8328 Request toRequest(String id) {
8329 return new Request(id, "diagnostic.getDiagnostics", null);
8330 }
8331
8332 @override
8333 bool operator ==(other) {
8334 if (other is DiagnosticGetDiagnosticsParams) {
8335 return true;
8336 }
8337 return false;
8338 }
8339
8340 @override
8341 int get hashCode {
8342 return 587526202;
8343 }
8344 }
8345
8346 /**
8347 * diagnostic.getDiagnostics result
8348 *
8349 * {
8350 * "contexts": List<ContextData>
8351 * }
8352 *
8353 * Clients may not extend, implement or mix-in this class.
8354 */
8355 class DiagnosticGetDiagnosticsResult implements HasToJson {
8356 List<ContextData> _contexts;
8357
8358 /**
8359 * The list of analysis contexts.
8360 */
8361 List<ContextData> get contexts => _contexts;
8362
8363 /**
8364 * The list of analysis contexts.
8365 */
8366 void set contexts(List<ContextData> value) {
8367 assert(value != null);
8368 this._contexts = value;
8369 }
8370
8371 DiagnosticGetDiagnosticsResult(List<ContextData> contexts) {
8372 this.contexts = contexts;
8373 }
8374
8375 factory DiagnosticGetDiagnosticsResult.fromJson(
8376 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8377 if (json == null) {
8378 json = {};
8379 }
8380 if (json is Map) {
8381 List<ContextData> contexts;
8382 if (json.containsKey("contexts")) {
8383 contexts = jsonDecoder.decodeList(
8384 jsonPath + ".contexts",
8385 json["contexts"],
8386 (String jsonPath, Object json) =>
8387 new ContextData.fromJson(jsonDecoder, jsonPath, json));
8388 } else {
8389 throw jsonDecoder.missingKey(jsonPath, "contexts");
8390 }
8391 return new DiagnosticGetDiagnosticsResult(contexts);
8392 } else {
8393 throw jsonDecoder.mismatch(
8394 jsonPath, "diagnostic.getDiagnostics result", json);
8395 }
8396 }
8397
8398 factory DiagnosticGetDiagnosticsResult.fromResponse(Response response) {
8399 return new DiagnosticGetDiagnosticsResult.fromJson(
8400 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
8401 "result",
8402 response._result);
8403 }
8404
8405 Map<String, dynamic> toJson() {
8406 Map<String, dynamic> result = {};
8407 result["contexts"] =
8408 contexts.map((ContextData value) => value.toJson()).toList();
8409 return result;
8410 }
8411
8412 Response toResponse(String id) {
8413 return new Response(id, result: toJson());
8414 }
8415
8416 @override
8417 String toString() => JSON.encode(toJson());
8418
8419 @override
8420 bool operator ==(other) {
8421 if (other is DiagnosticGetDiagnosticsResult) {
8422 return listEqual(
8423 contexts, other.contexts, (ContextData a, ContextData b) => a == b);
8424 }
8425 return false;
8426 }
8427
8428 @override
8429 int get hashCode {
8430 int hash = 0;
8431 hash = JenkinsSmiHash.combine(hash, contexts.hashCode);
8432 return JenkinsSmiHash.finish(hash);
8433 }
8434 }
8435
8436 /**
8437 * diagnostic.getServerPort params
8438 *
8439 * Clients may not extend, implement or mix-in this class.
8440 */
8441 class DiagnosticGetServerPortParams {
8442 Request toRequest(String id) {
8443 return new Request(id, "diagnostic.getServerPort", null);
8444 }
8445
8446 @override
8447 bool operator ==(other) {
8448 if (other is DiagnosticGetServerPortParams) {
8449 return true;
8450 }
8451 return false;
8452 }
8453
8454 @override
8455 int get hashCode {
8456 return 367508704;
8457 }
8458 }
8459
8460 /**
8461 * diagnostic.getServerPort result
8462 *
8463 * {
8464 * "port": int
8465 * }
8466 *
8467 * Clients may not extend, implement or mix-in this class.
8468 */
8469 class DiagnosticGetServerPortResult implements HasToJson {
8470 int _port;
8471
8472 /**
8473 * The diagnostic server port.
8474 */
8475 int get port => _port;
8476
8477 /**
8478 * The diagnostic server port.
8479 */
8480 void set port(int value) {
8481 assert(value != null);
8482 this._port = value;
8483 }
8484
8485 DiagnosticGetServerPortResult(int port) {
8486 this.port = port;
8487 }
8488
8489 factory DiagnosticGetServerPortResult.fromJson(
8490 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8491 if (json == null) {
8492 json = {};
8493 }
8494 if (json is Map) {
8495 int port;
8496 if (json.containsKey("port")) {
8497 port = jsonDecoder.decodeInt(jsonPath + ".port", json["port"]);
8498 } else {
8499 throw jsonDecoder.missingKey(jsonPath, "port");
8500 }
8501 return new DiagnosticGetServerPortResult(port);
8502 } else {
8503 throw jsonDecoder.mismatch(
8504 jsonPath, "diagnostic.getServerPort result", json);
8505 }
8506 }
8507
8508 factory DiagnosticGetServerPortResult.fromResponse(Response response) {
8509 return new DiagnosticGetServerPortResult.fromJson(
8510 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)),
8511 "result",
8512 response._result);
8513 }
8514
8515 Map<String, dynamic> toJson() {
8516 Map<String, dynamic> result = {};
8517 result["port"] = port;
8518 return result;
8519 }
8520
8521 Response toResponse(String id) {
8522 return new Response(id, result: toJson());
8523 }
8524
8525 @override
8526 String toString() => JSON.encode(toJson());
8527
8528 @override
8529 bool operator ==(other) {
8530 if (other is DiagnosticGetServerPortResult) {
8531 return port == other.port;
8532 }
8533 return false;
8534 }
8535
8536 @override
8537 int get hashCode {
8538 int hash = 0;
8539 hash = JenkinsSmiHash.combine(hash, port.hashCode);
8540 return JenkinsSmiHash.finish(hash);
8541 }
8542 }
8543
8544 /**
8545 * AddContentOverlay
8546 *
8547 * {
8548 * "type": "add"
8549 * "content": String
8550 * }
8551 *
8552 * Clients may not extend, implement or mix-in this class.
8553 */
8554 class AddContentOverlay implements HasToJson {
8555 String _content;
8556
8557 /**
8558 * The new content of the file.
8559 */
8560 String get content => _content;
8561
8562 /**
8563 * The new content of the file.
8564 */
8565 void set content(String value) {
8566 assert(value != null);
8567 this._content = value;
8568 }
8569
8570 AddContentOverlay(String content) {
8571 this.content = content;
8572 }
8573
8574 factory AddContentOverlay.fromJson(
8575 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8576 if (json == null) {
8577 json = {};
8578 }
8579 if (json is Map) {
8580 if (json["type"] != "add") {
8581 throw jsonDecoder.mismatch(jsonPath, "equal " + "add", json);
8582 }
8583 String content;
8584 if (json.containsKey("content")) {
8585 content =
8586 jsonDecoder.decodeString(jsonPath + ".content", json["content"]);
8587 } else {
8588 throw jsonDecoder.missingKey(jsonPath, "content");
8589 }
8590 return new AddContentOverlay(content);
8591 } else {
8592 throw jsonDecoder.mismatch(jsonPath, "AddContentOverlay", json);
8593 }
8594 }
8595
8596 Map<String, dynamic> toJson() {
8597 Map<String, dynamic> result = {};
8598 result["type"] = "add";
8599 result["content"] = content;
8600 return result;
8601 }
8602
8603 @override
8604 String toString() => JSON.encode(toJson());
8605
8606 @override
8607 bool operator ==(other) {
8608 if (other is AddContentOverlay) {
8609 return content == other.content;
8610 }
8611 return false;
8612 }
8613
8614 @override
8615 int get hashCode {
8616 int hash = 0;
8617 hash = JenkinsSmiHash.combine(hash, 704418402);
8618 hash = JenkinsSmiHash.combine(hash, content.hashCode);
8619 return JenkinsSmiHash.finish(hash);
8620 }
8621 }
8622
8623 /**
8624 * AnalysisError
8625 *
8626 * {
8627 * "severity": AnalysisErrorSeverity
8628 * "type": AnalysisErrorType
8629 * "location": Location
8630 * "message": String
8631 * "correction": optional String
8632 * "code": String
8633 * "hasFix": optional bool
8634 * }
8635 *
8636 * Clients may not extend, implement or mix-in this class.
8637 */
8638 class AnalysisError implements HasToJson {
8639 AnalysisErrorSeverity _severity;
8640
8641 AnalysisErrorType _type;
8642
8643 Location _location;
8644
8645 String _message;
8646
8647 String _correction;
8648
8649 String _code;
8650
8651 bool _hasFix;
8652
8653 /**
8654 * The severity of the error.
8655 */
8656 AnalysisErrorSeverity get severity => _severity;
8657
8658 /**
8659 * The severity of the error.
8660 */
8661 void set severity(AnalysisErrorSeverity value) {
8662 assert(value != null);
8663 this._severity = value;
8664 }
8665
8666 /**
8667 * The type of the error.
8668 */
8669 AnalysisErrorType get type => _type;
8670
8671 /**
8672 * The type of the error.
8673 */
8674 void set type(AnalysisErrorType value) {
8675 assert(value != null);
8676 this._type = value;
8677 }
8678
8679 /**
8680 * The location associated with the error.
8681 */
8682 Location get location => _location;
8683
8684 /**
8685 * The location associated with the error.
8686 */
8687 void set location(Location value) {
8688 assert(value != null);
8689 this._location = value;
8690 }
8691
8692 /**
8693 * The message to be displayed for this error. The message should indicate
8694 * what is wrong with the code and why it is wrong.
8695 */
8696 String get message => _message;
8697
8698 /**
8699 * The message to be displayed for this error. The message should indicate
8700 * what is wrong with the code and why it is wrong.
8701 */
8702 void set message(String value) {
8703 assert(value != null);
8704 this._message = value;
8705 }
8706
8707 /**
8708 * The correction message to be displayed for this error. The correction
8709 * message should indicate how the user can fix the error. The field is
8710 * omitted if there is no correction message associated with the error code.
8711 */
8712 String get correction => _correction;
8713
8714 /**
8715 * The correction message to be displayed for this error. The correction
8716 * message should indicate how the user can fix the error. The field is
8717 * omitted if there is no correction message associated with the error code.
8718 */
8719 void set correction(String value) {
8720 this._correction = value;
8721 }
8722
8723 /**
8724 * The name, as a string, of the error code associated with this error.
8725 */
8726 String get code => _code;
8727
8728 /**
8729 * The name, as a string, of the error code associated with this error.
8730 */
8731 void set code(String value) {
8732 assert(value != null);
8733 this._code = value;
8734 }
8735
8736 /**
8737 * A hint to indicate to interested clients that this error has an associated
8738 * fix (or fixes). The absence of this field implies there are not known to
8739 * be fixes. Note that since the operation to calculate whether fixes apply
8740 * needs to be performant it is possible that complicated tests will be
8741 * skipped and a false negative returned. For this reason, this attribute
8742 * should be treated as a "hint". Despite the possibility of false negatives,
8743 * no false positives should be returned. If a client sees this flag set they
8744 * can proceed with the confidence that there are in fact associated fixes.
8745 */
8746 bool get hasFix => _hasFix;
8747
8748 /**
8749 * A hint to indicate to interested clients that this error has an associated
8750 * fix (or fixes). The absence of this field implies there are not known to
8751 * be fixes. Note that since the operation to calculate whether fixes apply
8752 * needs to be performant it is possible that complicated tests will be
8753 * skipped and a false negative returned. For this reason, this attribute
8754 * should be treated as a "hint". Despite the possibility of false negatives,
8755 * no false positives should be returned. If a client sees this flag set they
8756 * can proceed with the confidence that there are in fact associated fixes.
8757 */
8758 void set hasFix(bool value) {
8759 this._hasFix = value;
8760 }
8761
8762 AnalysisError(AnalysisErrorSeverity severity, AnalysisErrorType type,
8763 Location location, String message, String code,
8764 {String correction, bool hasFix}) {
8765 this.severity = severity;
8766 this.type = type;
8767 this.location = location;
8768 this.message = message;
8769 this.correction = correction;
8770 this.code = code;
8771 this.hasFix = hasFix;
8772 }
8773
8774 factory AnalysisError.fromJson(
8775 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8776 if (json == null) {
8777 json = {};
8778 }
8779 if (json is Map) {
8780 AnalysisErrorSeverity severity;
8781 if (json.containsKey("severity")) {
8782 severity = new AnalysisErrorSeverity.fromJson(
8783 jsonDecoder, jsonPath + ".severity", json["severity"]);
8784 } else {
8785 throw jsonDecoder.missingKey(jsonPath, "severity");
8786 }
8787 AnalysisErrorType type;
8788 if (json.containsKey("type")) {
8789 type = new AnalysisErrorType.fromJson(
8790 jsonDecoder, jsonPath + ".type", json["type"]);
8791 } else {
8792 throw jsonDecoder.missingKey(jsonPath, "type");
8793 }
8794 Location location;
8795 if (json.containsKey("location")) {
8796 location = new Location.fromJson(
8797 jsonDecoder, jsonPath + ".location", json["location"]);
8798 } else {
8799 throw jsonDecoder.missingKey(jsonPath, "location");
8800 }
8801 String message;
8802 if (json.containsKey("message")) {
8803 message =
8804 jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
8805 } else {
8806 throw jsonDecoder.missingKey(jsonPath, "message");
8807 }
8808 String correction;
8809 if (json.containsKey("correction")) {
8810 correction = jsonDecoder.decodeString(
8811 jsonPath + ".correction", json["correction"]);
8812 }
8813 String code;
8814 if (json.containsKey("code")) {
8815 code = jsonDecoder.decodeString(jsonPath + ".code", json["code"]);
8816 } else {
8817 throw jsonDecoder.missingKey(jsonPath, "code");
8818 }
8819 bool hasFix;
8820 if (json.containsKey("hasFix")) {
8821 hasFix = jsonDecoder.decodeBool(jsonPath + ".hasFix", json["hasFix"]);
8822 }
8823 return new AnalysisError(severity, type, location, message, code,
8824 correction: correction, hasFix: hasFix);
8825 } else {
8826 throw jsonDecoder.mismatch(jsonPath, "AnalysisError", json);
8827 }
8828 }
8829
8830 Map<String, dynamic> toJson() {
8831 Map<String, dynamic> result = {};
8832 result["severity"] = severity.toJson();
8833 result["type"] = type.toJson();
8834 result["location"] = location.toJson();
8835 result["message"] = message;
8836 if (correction != null) {
8837 result["correction"] = correction;
8838 }
8839 result["code"] = code;
8840 if (hasFix != null) {
8841 result["hasFix"] = hasFix;
8842 }
8843 return result;
8844 }
8845
8846 @override
8847 String toString() => JSON.encode(toJson());
8848
8849 @override
8850 bool operator ==(other) {
8851 if (other is AnalysisError) {
8852 return severity == other.severity &&
8853 type == other.type &&
8854 location == other.location &&
8855 message == other.message &&
8856 correction == other.correction &&
8857 code == other.code &&
8858 hasFix == other.hasFix;
8859 }
8860 return false;
8861 }
8862
8863 @override
8864 int get hashCode {
8865 int hash = 0;
8866 hash = JenkinsSmiHash.combine(hash, severity.hashCode);
8867 hash = JenkinsSmiHash.combine(hash, type.hashCode);
8868 hash = JenkinsSmiHash.combine(hash, location.hashCode);
8869 hash = JenkinsSmiHash.combine(hash, message.hashCode);
8870 hash = JenkinsSmiHash.combine(hash, correction.hashCode);
8871 hash = JenkinsSmiHash.combine(hash, code.hashCode);
8872 hash = JenkinsSmiHash.combine(hash, hasFix.hashCode);
8873 return JenkinsSmiHash.finish(hash);
8874 }
8875 }
8876
8877 /**
8878 * AnalysisErrorFixes
8879 *
8880 * {
8881 * "error": AnalysisError
8882 * "fixes": List<SourceChange>
8883 * }
8884 *
8885 * Clients may not extend, implement or mix-in this class.
8886 */
8887 class AnalysisErrorFixes implements HasToJson {
8888 AnalysisError _error;
8889
8890 List<SourceChange> _fixes;
8891
8892 /**
8893 * The error with which the fixes are associated.
8894 */
8895 AnalysisError get error => _error;
8896
8897 /**
8898 * The error with which the fixes are associated.
8899 */
8900 void set error(AnalysisError value) {
8901 assert(value != null);
8902 this._error = value;
8903 }
8904
8905 /**
8906 * The fixes associated with the error.
8907 */
8908 List<SourceChange> get fixes => _fixes;
8909
8910 /**
8911 * The fixes associated with the error.
8912 */
8913 void set fixes(List<SourceChange> value) {
8914 assert(value != null);
8915 this._fixes = value;
8916 }
8917
8918 AnalysisErrorFixes(AnalysisError error, {List<SourceChange> fixes}) {
8919 this.error = error;
8920 if (fixes == null) {
8921 this.fixes = <SourceChange>[];
8922 } else {
8923 this.fixes = fixes;
8924 }
8925 }
8926
8927 factory AnalysisErrorFixes.fromJson(
8928 JsonDecoder jsonDecoder, String jsonPath, Object json) {
8929 if (json == null) {
8930 json = {};
8931 }
8932 if (json is Map) {
8933 AnalysisError error;
8934 if (json.containsKey("error")) {
8935 error = new AnalysisError.fromJson(
8936 jsonDecoder, jsonPath + ".error", json["error"]);
8937 } else {
8938 throw jsonDecoder.missingKey(jsonPath, "error");
8939 }
8940 List<SourceChange> fixes;
8941 if (json.containsKey("fixes")) {
8942 fixes = jsonDecoder.decodeList(
8943 jsonPath + ".fixes",
8944 json["fixes"],
8945 (String jsonPath, Object json) =>
8946 new SourceChange.fromJson(jsonDecoder, jsonPath, json));
8947 } else {
8948 throw jsonDecoder.missingKey(jsonPath, "fixes");
8949 }
8950 return new AnalysisErrorFixes(error, fixes: fixes);
8951 } else {
8952 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorFixes", json);
8953 }
8954 }
8955
8956 Map<String, dynamic> toJson() {
8957 Map<String, dynamic> result = {};
8958 result["error"] = error.toJson();
8959 result["fixes"] =
8960 fixes.map((SourceChange value) => value.toJson()).toList();
8961 return result;
8962 }
8963
8964 @override
8965 String toString() => JSON.encode(toJson());
8966
8967 @override
8968 bool operator ==(other) {
8969 if (other is AnalysisErrorFixes) {
8970 return error == other.error &&
8971 listEqual(
8972 fixes, other.fixes, (SourceChange a, SourceChange b) => a == b);
8973 }
8974 return false;
8975 }
8976
8977 @override
8978 int get hashCode {
8979 int hash = 0;
8980 hash = JenkinsSmiHash.combine(hash, error.hashCode);
8981 hash = JenkinsSmiHash.combine(hash, fixes.hashCode);
8982 return JenkinsSmiHash.finish(hash);
8983 }
8984 }
8985
8986 /**
8987 * AnalysisErrorSeverity
8988 *
8989 * enum {
8990 * INFO
8991 * WARNING
8992 * ERROR
8993 * }
8994 *
8995 * Clients may not extend, implement or mix-in this class.
8996 */
8997 class AnalysisErrorSeverity implements Enum {
8998 static const AnalysisErrorSeverity INFO =
8999 const AnalysisErrorSeverity._("INFO");
9000
9001 static const AnalysisErrorSeverity WARNING =
9002 const AnalysisErrorSeverity._("WARNING");
9003
9004 static const AnalysisErrorSeverity ERROR =
9005 const AnalysisErrorSeverity._("ERROR");
9006
9007 /**
9008 * A list containing all of the enum values that are defined.
9009 */
9010 static const List<AnalysisErrorSeverity> VALUES =
9011 const <AnalysisErrorSeverity>[INFO, WARNING, ERROR];
9012
9013 final String name;
9014
9015 const AnalysisErrorSeverity._(this.name);
9016
9017 factory AnalysisErrorSeverity(String name) {
9018 switch (name) {
9019 case "INFO":
9020 return INFO;
9021 case "WARNING":
9022 return WARNING;
9023 case "ERROR":
9024 return ERROR;
9025 }
9026 throw new Exception('Illegal enum value: $name');
9027 }
9028
9029 factory AnalysisErrorSeverity.fromJson(
9030 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9031 if (json is String) {
9032 try {
9033 return new AnalysisErrorSeverity(json);
9034 } catch (_) {
9035 // Fall through
9036 }
9037 }
9038 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorSeverity", json);
9039 }
9040
9041 @override
9042 String toString() => "AnalysisErrorSeverity.$name";
9043
9044 String toJson() => name;
9045 }
9046
9047 /**
9048 * AnalysisErrorType
9049 *
9050 * enum {
9051 * CHECKED_MODE_COMPILE_TIME_ERROR
9052 * COMPILE_TIME_ERROR
9053 * HINT
9054 * LINT
9055 * STATIC_TYPE_WARNING
9056 * STATIC_WARNING
9057 * SYNTACTIC_ERROR
9058 * TODO
9059 * }
9060 *
9061 * Clients may not extend, implement or mix-in this class.
9062 */
9063 class AnalysisErrorType implements Enum {
9064 static const AnalysisErrorType CHECKED_MODE_COMPILE_TIME_ERROR =
9065 const AnalysisErrorType._("CHECKED_MODE_COMPILE_TIME_ERROR");
9066
9067 static const AnalysisErrorType COMPILE_TIME_ERROR =
9068 const AnalysisErrorType._("COMPILE_TIME_ERROR");
9069
9070 static const AnalysisErrorType HINT = const AnalysisErrorType._("HINT");
9071
9072 static const AnalysisErrorType LINT = const AnalysisErrorType._("LINT");
9073
9074 static const AnalysisErrorType STATIC_TYPE_WARNING =
9075 const AnalysisErrorType._("STATIC_TYPE_WARNING");
9076
9077 static const AnalysisErrorType STATIC_WARNING =
9078 const AnalysisErrorType._("STATIC_WARNING");
9079
9080 static const AnalysisErrorType SYNTACTIC_ERROR =
9081 const AnalysisErrorType._("SYNTACTIC_ERROR");
9082
9083 static const AnalysisErrorType TODO = const AnalysisErrorType._("TODO");
9084
9085 /**
9086 * A list containing all of the enum values that are defined.
9087 */
9088 static const List<AnalysisErrorType> VALUES = const <AnalysisErrorType>[
9089 CHECKED_MODE_COMPILE_TIME_ERROR,
9090 COMPILE_TIME_ERROR,
9091 HINT,
9092 LINT,
9093 STATIC_TYPE_WARNING,
9094 STATIC_WARNING,
9095 SYNTACTIC_ERROR,
9096 TODO
9097 ];
9098
9099 final String name;
9100
9101 const AnalysisErrorType._(this.name);
9102
9103 factory AnalysisErrorType(String name) {
9104 switch (name) {
9105 case "CHECKED_MODE_COMPILE_TIME_ERROR":
9106 return CHECKED_MODE_COMPILE_TIME_ERROR;
9107 case "COMPILE_TIME_ERROR":
9108 return COMPILE_TIME_ERROR;
9109 case "HINT":
9110 return HINT;
9111 case "LINT":
9112 return LINT;
9113 case "STATIC_TYPE_WARNING":
9114 return STATIC_TYPE_WARNING;
9115 case "STATIC_WARNING":
9116 return STATIC_WARNING;
9117 case "SYNTACTIC_ERROR":
9118 return SYNTACTIC_ERROR;
9119 case "TODO":
9120 return TODO;
9121 }
9122 throw new Exception('Illegal enum value: $name');
9123 }
9124
9125 factory AnalysisErrorType.fromJson(
9126 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9127 if (json is String) {
9128 try {
9129 return new AnalysisErrorType(json);
9130 } catch (_) {
9131 // Fall through
9132 }
9133 }
9134 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorType", json);
9135 }
9136
9137 @override
9138 String toString() => "AnalysisErrorType.$name";
9139
9140 String toJson() => name;
9141 }
9142
9143 /**
9144 * AnalysisOptions
9145 *
9146 * {
9147 * "enableAsync": optional bool
9148 * "enableDeferredLoading": optional bool
9149 * "enableEnums": optional bool
9150 * "enableNullAwareOperators": optional bool
9151 * "enableSuperMixins": optional bool
9152 * "generateDart2jsHints": optional bool
9153 * "generateHints": optional bool
9154 * "generateLints": optional bool
9155 * }
9156 *
9157 * Clients may not extend, implement or mix-in this class.
9158 */
9159 class AnalysisOptions implements HasToJson {
9160 bool _enableAsync;
9161
9162 bool _enableDeferredLoading;
9163
9164 bool _enableEnums;
9165
9166 bool _enableNullAwareOperators;
9167
9168 bool _enableSuperMixins;
9169
9170 bool _generateDart2jsHints;
9171
9172 bool _generateHints;
9173
9174 bool _generateLints;
9175
9176 /**
9177 * Deprecated: this feature is always enabled.
9178 *
9179 * True if the client wants to enable support for the proposed async feature.
9180 */
9181 bool get enableAsync => _enableAsync;
9182
9183 /**
9184 * Deprecated: this feature is always enabled.
9185 *
9186 * True if the client wants to enable support for the proposed async feature.
9187 */
9188 void set enableAsync(bool value) {
9189 this._enableAsync = value;
9190 }
9191
9192 /**
9193 * Deprecated: this feature is always enabled.
9194 *
9195 * True if the client wants to enable support for the proposed deferred
9196 * loading feature.
9197 */
9198 bool get enableDeferredLoading => _enableDeferredLoading;
9199
9200 /**
9201 * Deprecated: this feature is always enabled.
9202 *
9203 * True if the client wants to enable support for the proposed deferred
9204 * loading feature.
9205 */
9206 void set enableDeferredLoading(bool value) {
9207 this._enableDeferredLoading = value;
9208 }
9209
9210 /**
9211 * Deprecated: this feature is always enabled.
9212 *
9213 * True if the client wants to enable support for the proposed enum feature.
9214 */
9215 bool get enableEnums => _enableEnums;
9216
9217 /**
9218 * Deprecated: this feature is always enabled.
9219 *
9220 * True if the client wants to enable support for the proposed enum feature.
9221 */
9222 void set enableEnums(bool value) {
9223 this._enableEnums = value;
9224 }
9225
9226 /**
9227 * Deprecated: this feature is always enabled.
9228 *
9229 * True if the client wants to enable support for the proposed "null aware
9230 * operators" feature.
9231 */
9232 bool get enableNullAwareOperators => _enableNullAwareOperators;
9233
9234 /**
9235 * Deprecated: this feature is always enabled.
9236 *
9237 * True if the client wants to enable support for the proposed "null aware
9238 * operators" feature.
9239 */
9240 void set enableNullAwareOperators(bool value) {
9241 this._enableNullAwareOperators = value;
9242 }
9243
9244 /**
9245 * True if the client wants to enable support for the proposed "less
9246 * restricted mixins" proposal (DEP 34).
9247 */
9248 bool get enableSuperMixins => _enableSuperMixins;
9249
9250 /**
9251 * True if the client wants to enable support for the proposed "less
9252 * restricted mixins" proposal (DEP 34).
9253 */
9254 void set enableSuperMixins(bool value) {
9255 this._enableSuperMixins = value;
9256 }
9257
9258 /**
9259 * True if hints that are specific to dart2js should be generated. This
9260 * option is ignored if generateHints is false.
9261 */
9262 bool get generateDart2jsHints => _generateDart2jsHints;
9263
9264 /**
9265 * True if hints that are specific to dart2js should be generated. This
9266 * option is ignored if generateHints is false.
9267 */
9268 void set generateDart2jsHints(bool value) {
9269 this._generateDart2jsHints = value;
9270 }
9271
9272 /**
9273 * True if hints should be generated as part of generating errors and
9274 * warnings.
9275 */
9276 bool get generateHints => _generateHints;
9277
9278 /**
9279 * True if hints should be generated as part of generating errors and
9280 * warnings.
9281 */
9282 void set generateHints(bool value) {
9283 this._generateHints = value;
9284 }
9285
9286 /**
9287 * True if lints should be generated as part of generating errors and
9288 * warnings.
9289 */
9290 bool get generateLints => _generateLints;
9291
9292 /**
9293 * True if lints should be generated as part of generating errors and
9294 * warnings.
9295 */
9296 void set generateLints(bool value) {
9297 this._generateLints = value;
9298 }
9299
9300 AnalysisOptions(
9301 {bool enableAsync,
9302 bool enableDeferredLoading,
9303 bool enableEnums,
9304 bool enableNullAwareOperators,
9305 bool enableSuperMixins,
9306 bool generateDart2jsHints,
9307 bool generateHints,
9308 bool generateLints}) {
9309 this.enableAsync = enableAsync;
9310 this.enableDeferredLoading = enableDeferredLoading;
9311 this.enableEnums = enableEnums;
9312 this.enableNullAwareOperators = enableNullAwareOperators;
9313 this.enableSuperMixins = enableSuperMixins;
9314 this.generateDart2jsHints = generateDart2jsHints;
9315 this.generateHints = generateHints;
9316 this.generateLints = generateLints;
9317 }
9318
9319 factory AnalysisOptions.fromJson(
9320 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9321 if (json == null) {
9322 json = {};
9323 }
9324 if (json is Map) {
9325 bool enableAsync;
9326 if (json.containsKey("enableAsync")) {
9327 enableAsync = jsonDecoder.decodeBool(
9328 jsonPath + ".enableAsync", json["enableAsync"]);
9329 }
9330 bool enableDeferredLoading;
9331 if (json.containsKey("enableDeferredLoading")) {
9332 enableDeferredLoading = jsonDecoder.decodeBool(
9333 jsonPath + ".enableDeferredLoading", json["enableDeferredLoading"]);
9334 }
9335 bool enableEnums;
9336 if (json.containsKey("enableEnums")) {
9337 enableEnums = jsonDecoder.decodeBool(
9338 jsonPath + ".enableEnums", json["enableEnums"]);
9339 }
9340 bool enableNullAwareOperators;
9341 if (json.containsKey("enableNullAwareOperators")) {
9342 enableNullAwareOperators = jsonDecoder.decodeBool(
9343 jsonPath + ".enableNullAwareOperators",
9344 json["enableNullAwareOperators"]);
9345 }
9346 bool enableSuperMixins;
9347 if (json.containsKey("enableSuperMixins")) {
9348 enableSuperMixins = jsonDecoder.decodeBool(
9349 jsonPath + ".enableSuperMixins", json["enableSuperMixins"]);
9350 }
9351 bool generateDart2jsHints;
9352 if (json.containsKey("generateDart2jsHints")) {
9353 generateDart2jsHints = jsonDecoder.decodeBool(
9354 jsonPath + ".generateDart2jsHints", json["generateDart2jsHints"]);
9355 }
9356 bool generateHints;
9357 if (json.containsKey("generateHints")) {
9358 generateHints = jsonDecoder.decodeBool(
9359 jsonPath + ".generateHints", json["generateHints"]);
9360 }
9361 bool generateLints;
9362 if (json.containsKey("generateLints")) {
9363 generateLints = jsonDecoder.decodeBool(
9364 jsonPath + ".generateLints", json["generateLints"]);
9365 }
9366 return new AnalysisOptions(
9367 enableAsync: enableAsync,
9368 enableDeferredLoading: enableDeferredLoading,
9369 enableEnums: enableEnums,
9370 enableNullAwareOperators: enableNullAwareOperators,
9371 enableSuperMixins: enableSuperMixins,
9372 generateDart2jsHints: generateDart2jsHints,
9373 generateHints: generateHints,
9374 generateLints: generateLints);
9375 } else {
9376 throw jsonDecoder.mismatch(jsonPath, "AnalysisOptions", json);
9377 }
9378 }
9379
9380 Map<String, dynamic> toJson() {
9381 Map<String, dynamic> result = {};
9382 if (enableAsync != null) {
9383 result["enableAsync"] = enableAsync;
9384 }
9385 if (enableDeferredLoading != null) {
9386 result["enableDeferredLoading"] = enableDeferredLoading;
9387 }
9388 if (enableEnums != null) {
9389 result["enableEnums"] = enableEnums;
9390 }
9391 if (enableNullAwareOperators != null) {
9392 result["enableNullAwareOperators"] = enableNullAwareOperators;
9393 }
9394 if (enableSuperMixins != null) {
9395 result["enableSuperMixins"] = enableSuperMixins;
9396 }
9397 if (generateDart2jsHints != null) {
9398 result["generateDart2jsHints"] = generateDart2jsHints;
9399 }
9400 if (generateHints != null) {
9401 result["generateHints"] = generateHints;
9402 }
9403 if (generateLints != null) {
9404 result["generateLints"] = generateLints;
9405 }
9406 return result;
9407 }
9408
9409 @override
9410 String toString() => JSON.encode(toJson());
9411
9412 @override
9413 bool operator ==(other) {
9414 if (other is AnalysisOptions) {
9415 return enableAsync == other.enableAsync &&
9416 enableDeferredLoading == other.enableDeferredLoading &&
9417 enableEnums == other.enableEnums &&
9418 enableNullAwareOperators == other.enableNullAwareOperators &&
9419 enableSuperMixins == other.enableSuperMixins &&
9420 generateDart2jsHints == other.generateDart2jsHints &&
9421 generateHints == other.generateHints &&
9422 generateLints == other.generateLints;
9423 }
9424 return false;
9425 }
9426
9427 @override
9428 int get hashCode {
9429 int hash = 0;
9430 hash = JenkinsSmiHash.combine(hash, enableAsync.hashCode);
9431 hash = JenkinsSmiHash.combine(hash, enableDeferredLoading.hashCode);
9432 hash = JenkinsSmiHash.combine(hash, enableEnums.hashCode);
9433 hash = JenkinsSmiHash.combine(hash, enableNullAwareOperators.hashCode);
9434 hash = JenkinsSmiHash.combine(hash, enableSuperMixins.hashCode);
9435 hash = JenkinsSmiHash.combine(hash, generateDart2jsHints.hashCode);
9436 hash = JenkinsSmiHash.combine(hash, generateHints.hashCode);
9437 hash = JenkinsSmiHash.combine(hash, generateLints.hashCode);
9438 return JenkinsSmiHash.finish(hash);
9439 }
9440 }
9441
9442 /**
9443 * AnalysisService
9444 *
9445 * enum {
9446 * FOLDING
9447 * HIGHLIGHTS
9448 * IMPLEMENTED
9449 * INVALIDATE
9450 * NAVIGATION
9451 * OCCURRENCES
9452 * OUTLINE
9453 * OVERRIDES
9454 * }
9455 *
9456 * Clients may not extend, implement or mix-in this class.
9457 */
9458 class AnalysisService implements Enum {
9459 static const AnalysisService FOLDING = const AnalysisService._("FOLDING");
9460
9461 static const AnalysisService HIGHLIGHTS =
9462 const AnalysisService._("HIGHLIGHTS");
9463
9464 static const AnalysisService IMPLEMENTED =
9465 const AnalysisService._("IMPLEMENTED");
9466
9467 /**
9468 * This service is not currently implemented and will become a
9469 * GeneralAnalysisService in a future release.
9470 */
9471 static const AnalysisService INVALIDATE =
9472 const AnalysisService._("INVALIDATE");
9473
9474 static const AnalysisService NAVIGATION =
9475 const AnalysisService._("NAVIGATION");
9476
9477 static const AnalysisService OCCURRENCES =
9478 const AnalysisService._("OCCURRENCES");
9479
9480 static const AnalysisService OUTLINE = const AnalysisService._("OUTLINE");
9481
9482 static const AnalysisService OVERRIDES = const AnalysisService._("OVERRIDES");
9483
9484 /**
9485 * A list containing all of the enum values that are defined.
9486 */
9487 static const List<AnalysisService> VALUES = const <AnalysisService>[
9488 FOLDING,
9489 HIGHLIGHTS,
9490 IMPLEMENTED,
9491 INVALIDATE,
9492 NAVIGATION,
9493 OCCURRENCES,
9494 OUTLINE,
9495 OVERRIDES
9496 ];
9497
9498 final String name;
9499
9500 const AnalysisService._(this.name);
9501
9502 factory AnalysisService(String name) {
9503 switch (name) {
9504 case "FOLDING":
9505 return FOLDING;
9506 case "HIGHLIGHTS":
9507 return HIGHLIGHTS;
9508 case "IMPLEMENTED":
9509 return IMPLEMENTED;
9510 case "INVALIDATE":
9511 return INVALIDATE;
9512 case "NAVIGATION":
9513 return NAVIGATION;
9514 case "OCCURRENCES":
9515 return OCCURRENCES;
9516 case "OUTLINE":
9517 return OUTLINE;
9518 case "OVERRIDES":
9519 return OVERRIDES;
9520 }
9521 throw new Exception('Illegal enum value: $name');
9522 }
9523
9524 factory AnalysisService.fromJson(
9525 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9526 if (json is String) {
9527 try {
9528 return new AnalysisService(json);
9529 } catch (_) {
9530 // Fall through
9531 }
9532 }
9533 throw jsonDecoder.mismatch(jsonPath, "AnalysisService", json);
9534 }
9535
9536 @override
9537 String toString() => "AnalysisService.$name";
9538
9539 String toJson() => name;
9540 }
9541
9542 /**
9543 * AnalysisStatus
9544 *
9545 * {
9546 * "isAnalyzing": bool
9547 * "analysisTarget": optional String
9548 * }
9549 *
9550 * Clients may not extend, implement or mix-in this class.
9551 */
9552 class AnalysisStatus implements HasToJson {
9553 bool _isAnalyzing;
9554
9555 String _analysisTarget;
9556
9557 /**
9558 * True if analysis is currently being performed.
9559 */
9560 bool get isAnalyzing => _isAnalyzing;
9561
9562 /**
9563 * True if analysis is currently being performed.
9564 */
9565 void set isAnalyzing(bool value) {
9566 assert(value != null);
9567 this._isAnalyzing = value;
9568 }
9569
9570 /**
9571 * The name of the current target of analysis. This field is omitted if
9572 * analyzing is false.
9573 */
9574 String get analysisTarget => _analysisTarget;
9575
9576 /**
9577 * The name of the current target of analysis. This field is omitted if
9578 * analyzing is false.
9579 */
9580 void set analysisTarget(String value) {
9581 this._analysisTarget = value;
9582 }
9583
9584 AnalysisStatus(bool isAnalyzing, {String analysisTarget}) {
9585 this.isAnalyzing = isAnalyzing;
9586 this.analysisTarget = analysisTarget;
9587 }
9588
9589 factory AnalysisStatus.fromJson(
9590 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9591 if (json == null) {
9592 json = {};
9593 }
9594 if (json is Map) {
9595 bool isAnalyzing;
9596 if (json.containsKey("isAnalyzing")) {
9597 isAnalyzing = jsonDecoder.decodeBool(
9598 jsonPath + ".isAnalyzing", json["isAnalyzing"]);
9599 } else {
9600 throw jsonDecoder.missingKey(jsonPath, "isAnalyzing");
9601 }
9602 String analysisTarget;
9603 if (json.containsKey("analysisTarget")) {
9604 analysisTarget = jsonDecoder.decodeString(
9605 jsonPath + ".analysisTarget", json["analysisTarget"]);
9606 }
9607 return new AnalysisStatus(isAnalyzing, analysisTarget: analysisTarget);
9608 } else {
9609 throw jsonDecoder.mismatch(jsonPath, "AnalysisStatus", json);
9610 }
9611 }
9612
9613 Map<String, dynamic> toJson() {
9614 Map<String, dynamic> result = {};
9615 result["isAnalyzing"] = isAnalyzing;
9616 if (analysisTarget != null) {
9617 result["analysisTarget"] = analysisTarget;
9618 }
9619 return result;
9620 }
9621
9622 @override
9623 String toString() => JSON.encode(toJson());
9624
9625 @override
9626 bool operator ==(other) {
9627 if (other is AnalysisStatus) {
9628 return isAnalyzing == other.isAnalyzing &&
9629 analysisTarget == other.analysisTarget;
9630 }
9631 return false;
9632 }
9633
9634 @override
9635 int get hashCode {
9636 int hash = 0;
9637 hash = JenkinsSmiHash.combine(hash, isAnalyzing.hashCode);
9638 hash = JenkinsSmiHash.combine(hash, analysisTarget.hashCode);
9639 return JenkinsSmiHash.finish(hash);
9640 }
9641 }
9642
9643 /**
9644 * ChangeContentOverlay
9645 *
9646 * {
9647 * "type": "change"
9648 * "edits": List<SourceEdit>
9649 * }
9650 *
9651 * Clients may not extend, implement or mix-in this class.
9652 */
9653 class ChangeContentOverlay implements HasToJson {
9654 List<SourceEdit> _edits;
9655
9656 /**
9657 * The edits to be applied to the file.
9658 */
9659 List<SourceEdit> get edits => _edits;
9660
9661 /**
9662 * The edits to be applied to the file.
9663 */
9664 void set edits(List<SourceEdit> value) {
9665 assert(value != null);
9666 this._edits = value;
9667 }
9668
9669 ChangeContentOverlay(List<SourceEdit> edits) {
9670 this.edits = edits;
9671 }
9672
9673 factory ChangeContentOverlay.fromJson(
9674 JsonDecoder jsonDecoder, String jsonPath, Object json) {
9675 if (json == null) {
9676 json = {};
9677 }
9678 if (json is Map) {
9679 if (json["type"] != "change") {
9680 throw jsonDecoder.mismatch(jsonPath, "equal " + "change", json);
9681 }
9682 List<SourceEdit> edits;
9683 if (json.containsKey("edits")) {
9684 edits = jsonDecoder.decodeList(
9685 jsonPath + ".edits",
9686 json["edits"],
9687 (String jsonPath, Object json) =>
9688 new SourceEdit.fromJson(jsonDecoder, jsonPath, json));
9689 } else {
9690 throw jsonDecoder.missingKey(jsonPath, "edits");
9691 }
9692 return new ChangeContentOverlay(edits);
9693 } else {
9694 throw jsonDecoder.mismatch(jsonPath, "ChangeContentOverlay", json);
9695 }
9696 }
9697
9698 Map<String, dynamic> toJson() {
9699 Map<String, dynamic> result = {};
9700 result["type"] = "change";
9701 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList();
9702 return result;
9703 }
9704
9705 @override
9706 String toString() => JSON.encode(toJson());
9707
9708 @override
9709 bool operator ==(other) {
9710 if (other is ChangeContentOverlay) {
9711 return listEqual(
9712 edits, other.edits, (SourceEdit a, SourceEdit b) => a == b);
9713 }
9714 return false;
9715 }
9716
9717 @override
9718 int get hashCode {
9719 int hash = 0;
9720 hash = JenkinsSmiHash.combine(hash, 873118866);
9721 hash = JenkinsSmiHash.combine(hash, edits.hashCode);
9722 return JenkinsSmiHash.finish(hash);
9723 }
9724 }
9725
9726 /**
9727 * CompletionSuggestion
9728 *
9729 * {
9730 * "kind": CompletionSuggestionKind
9731 * "relevance": int
9732 * "completion": String
9733 * "selectionOffset": int
9734 * "selectionLength": int
9735 * "isDeprecated": bool
9736 * "isPotential": bool
9737 * "docSummary": optional String
9738 * "docComplete": optional String
9739 * "declaringType": optional String
9740 * "defaultArgumentListString": optional String
9741 * "defaultArgumentListTextRanges": optional List<int>
9742 * "element": optional Element
9743 * "returnType": optional String
9744 * "parameterNames": optional List<String>
9745 * "parameterTypes": optional List<String>
9746 * "requiredParameterCount": optional int
9747 * "hasNamedParameters": optional bool
9748 * "parameterName": optional String
9749 * "parameterType": optional String
9750 * "importUri": optional String
9751 * }
9752 *
9753 * Clients may not extend, implement or mix-in this class.
9754 */
9755 class CompletionSuggestion implements HasToJson {
9756 CompletionSuggestionKind _kind;
9757
9758 int _relevance;
9759
9760 String _completion;
9761
9762 int _selectionOffset;
9763
9764 int _selectionLength;
9765
9766 bool _isDeprecated;
9767
9768 bool _isPotential;
9769
9770 String _docSummary;
9771
9772 String _docComplete;
9773
9774 String _declaringType;
9775
9776 String _defaultArgumentListString;
9777
9778 List<int> _defaultArgumentListTextRanges;
9779
9780 Element _element;
9781
9782 String _returnType;
9783
9784 List<String> _parameterNames;
9785
9786 List<String> _parameterTypes;
9787
9788 int _requiredParameterCount;
9789
9790 bool _hasNamedParameters;
9791
9792 String _parameterName;
9793
9794 String _parameterType;
9795
9796 String _importUri;
9797
9798 /**
9799 * The kind of element being suggested.
9800 */
9801 CompletionSuggestionKind get kind => _kind;
9802
9803 /**
9804 * The kind of element being suggested.
9805 */
9806 void set kind(CompletionSuggestionKind value) {
9807 assert(value != null);
9808 this._kind = value;
9809 }
9810
9811 /**
9812 * The relevance of this completion suggestion where a higher number
9813 * indicates a higher relevance.
9814 */
9815 int get relevance => _relevance;
9816
9817 /**
9818 * The relevance of this completion suggestion where a higher number
9819 * indicates a higher relevance.
9820 */
9821 void set relevance(int value) {
9822 assert(value != null);
9823 this._relevance = value;
9824 }
9825
9826 /**
9827 * The identifier to be inserted if the suggestion is selected. If the
9828 * suggestion is for a method or function, the client might want to
9829 * additionally insert a template for the parameters. The information
9830 * required in order to do so is contained in other fields.
9831 */
9832 String get completion => _completion;
9833
9834 /**
9835 * The identifier to be inserted if the suggestion is selected. If the
9836 * suggestion is for a method or function, the client might want to
9837 * additionally insert a template for the parameters. The information
9838 * required in order to do so is contained in other fields.
9839 */
9840 void set completion(String value) {
9841 assert(value != null);
9842 this._completion = value;
9843 }
9844
9845 /**
9846 * The offset, relative to the beginning of the completion, of where the
9847 * selection should be placed after insertion.
9848 */
9849 int get selectionOffset => _selectionOffset;
9850
9851 /**
9852 * The offset, relative to the beginning of the completion, of where the
9853 * selection should be placed after insertion.
9854 */
9855 void set selectionOffset(int value) {
9856 assert(value != null);
9857 this._selectionOffset = value;
9858 }
9859
9860 /**
9861 * The number of characters that should be selected after insertion.
9862 */
9863 int get selectionLength => _selectionLength;
9864
9865 /**
9866 * The number of characters that should be selected after insertion.
9867 */
9868 void set selectionLength(int value) {
9869 assert(value != null);
9870 this._selectionLength = value;
9871 }
9872
9873 /**
9874 * True if the suggested element is deprecated.
9875 */
9876 bool get isDeprecated => _isDeprecated;
9877
9878 /**
9879 * True if the suggested element is deprecated.
9880 */
9881 void set isDeprecated(bool value) {
9882 assert(value != null);
9883 this._isDeprecated = value;
9884 }
9885
9886 /**
9887 * True if the element is not known to be valid for the target. This happens
9888 * if the type of the target is dynamic.
9889 */
9890 bool get isPotential => _isPotential;
9891
9892 /**
9893 * True if the element is not known to be valid for the target. This happens
9894 * if the type of the target is dynamic.
9895 */
9896 void set isPotential(bool value) {
9897 assert(value != null);
9898 this._isPotential = value;
9899 }
9900
9901 /**
9902 * An abbreviated version of the Dartdoc associated with the element being
9903 * suggested, This field is omitted if there is no Dartdoc associated with
9904 * the element.
9905 */
9906 String get docSummary => _docSummary;
9907
9908 /**
9909 * An abbreviated version of the Dartdoc associated with the element being
9910 * suggested, This field is omitted if there is no Dartdoc associated with
9911 * the element.
9912 */
9913 void set docSummary(String value) {
9914 this._docSummary = value;
9915 }
9916
9917 /**
9918 * The Dartdoc associated with the element being suggested, This field is
9919 * omitted if there is no Dartdoc associated with the element.
9920 */
9921 String get docComplete => _docComplete;
9922
9923 /**
9924 * The Dartdoc associated with the element being suggested, This field is
9925 * omitted if there is no Dartdoc associated with the element.
9926 */
9927 void set docComplete(String value) {
9928 this._docComplete = value;
9929 }
9930
9931 /**
9932 * The class that declares the element being suggested. This field is omitted
9933 * if the suggested element is not a member of a class.
9934 */
9935 String get declaringType => _declaringType;
9936
9937 /**
9938 * The class that declares the element being suggested. This field is omitted
9939 * if the suggested element is not a member of a class.
9940 */
9941 void set declaringType(String value) {
9942 this._declaringType = value;
9943 }
9944
9945 /**
9946 * A default String for use in generating argument list source contents on
9947 * the client side.
9948 */
9949 String get defaultArgumentListString => _defaultArgumentListString;
9950
9951 /**
9952 * A default String for use in generating argument list source contents on
9953 * the client side.
9954 */
9955 void set defaultArgumentListString(String value) {
9956 this._defaultArgumentListString = value;
9957 }
9958
9959 /**
9960 * Pairs of offsets and lengths describing 'defaultArgumentListString' text
9961 * ranges suitable for use by clients to set up linked edits of default
9962 * argument source contents. For example, given an argument list string 'x,
9963 * y', the corresponding text range [0, 1, 3, 1], indicates two text ranges
9964 * of length 1, starting at offsets 0 and 3. Clients can use these ranges to
9965 * treat the 'x' and 'y' values specially for linked edits.
9966 */
9967 List<int> get defaultArgumentListTextRanges => _defaultArgumentListTextRanges;
9968
9969 /**
9970 * Pairs of offsets and lengths describing 'defaultArgumentListString' text
9971 * ranges suitable for use by clients to set up linked edits of default
9972 * argument source contents. For example, given an argument list string 'x,
9973 * y', the corresponding text range [0, 1, 3, 1], indicates two text ranges
9974 * of length 1, starting at offsets 0 and 3. Clients can use these ranges to
9975 * treat the 'x' and 'y' values specially for linked edits.
9976 */
9977 void set defaultArgumentListTextRanges(List<int> value) {
9978 this._defaultArgumentListTextRanges = value;
9979 }
9980
9981 /**
9982 * Information about the element reference being suggested.
9983 */
9984 Element get element => _element;
9985
9986 /**
9987 * Information about the element reference being suggested.
9988 */
9989 void set element(Element value) {
9990 this._element = value;
9991 }
9992
9993 /**
9994 * The return type of the getter, function or method or the type of the field
9995 * being suggested. This field is omitted if the suggested element is not a
9996 * getter, function or method.
9997 */
9998 String get returnType => _returnType;
9999
10000 /**
10001 * The return type of the getter, function or method or the type of the field
10002 * being suggested. This field is omitted if the suggested element is not a
10003 * getter, function or method.
10004 */
10005 void set returnType(String value) {
10006 this._returnType = value;
10007 }
10008
10009 /**
10010 * The names of the parameters of the function or method being suggested.
10011 * This field is omitted if the suggested element is not a setter, function
10012 * or method.
10013 */
10014 List<String> get parameterNames => _parameterNames;
10015
10016 /**
10017 * The names of the parameters of the function or method being suggested.
10018 * This field is omitted if the suggested element is not a setter, function
10019 * or method.
10020 */
10021 void set parameterNames(List<String> value) {
10022 this._parameterNames = value;
10023 }
10024
10025 /**
10026 * The types of the parameters of the function or method being suggested.
10027 * This field is omitted if the parameterNames field is omitted.
10028 */
10029 List<String> get parameterTypes => _parameterTypes;
10030
10031 /**
10032 * The types of the parameters of the function or method being suggested.
10033 * This field is omitted if the parameterNames field is omitted.
10034 */
10035 void set parameterTypes(List<String> value) {
10036 this._parameterTypes = value;
10037 }
10038
10039 /**
10040 * The number of required parameters for the function or method being
10041 * suggested. This field is omitted if the parameterNames field is omitted.
10042 */
10043 int get requiredParameterCount => _requiredParameterCount;
10044
10045 /**
10046 * The number of required parameters for the function or method being
10047 * suggested. This field is omitted if the parameterNames field is omitted.
10048 */
10049 void set requiredParameterCount(int value) {
10050 this._requiredParameterCount = value;
10051 }
10052
10053 /**
10054 * True if the function or method being suggested has at least one named
10055 * parameter. This field is omitted if the parameterNames field is omitted.
10056 */
10057 bool get hasNamedParameters => _hasNamedParameters;
10058
10059 /**
10060 * True if the function or method being suggested has at least one named
10061 * parameter. This field is omitted if the parameterNames field is omitted.
10062 */
10063 void set hasNamedParameters(bool value) {
10064 this._hasNamedParameters = value;
10065 }
10066
10067 /**
10068 * The name of the optional parameter being suggested. This field is omitted
10069 * if the suggestion is not the addition of an optional argument within an
10070 * argument list.
10071 */
10072 String get parameterName => _parameterName;
10073
10074 /**
10075 * The name of the optional parameter being suggested. This field is omitted
10076 * if the suggestion is not the addition of an optional argument within an
10077 * argument list.
10078 */
10079 void set parameterName(String value) {
10080 this._parameterName = value;
10081 }
10082
10083 /**
10084 * The type of the options parameter being suggested. This field is omitted
10085 * if the parameterName field is omitted.
10086 */
10087 String get parameterType => _parameterType;
10088
10089 /**
10090 * The type of the options parameter being suggested. This field is omitted
10091 * if the parameterName field is omitted.
10092 */
10093 void set parameterType(String value) {
10094 this._parameterType = value;
10095 }
10096
10097 /**
10098 * The import to be added if the suggestion is out of scope and needs an
10099 * import to be added to be in scope.
10100 */
10101 String get importUri => _importUri;
10102
10103 /**
10104 * The import to be added if the suggestion is out of scope and needs an
10105 * import to be added to be in scope.
10106 */
10107 void set importUri(String value) {
10108 this._importUri = value;
10109 }
10110
10111 CompletionSuggestion(
10112 CompletionSuggestionKind kind,
10113 int relevance,
10114 String completion,
10115 int selectionOffset,
10116 int selectionLength,
10117 bool isDeprecated,
10118 bool isPotential,
10119 {String docSummary,
10120 String docComplete,
10121 String declaringType,
10122 String defaultArgumentListString,
10123 List<int> defaultArgumentListTextRanges,
10124 Element element,
10125 String returnType,
10126 List<String> parameterNames,
10127 List<String> parameterTypes,
10128 int requiredParameterCount,
10129 bool hasNamedParameters,
10130 String parameterName,
10131 String parameterType,
10132 String importUri}) {
10133 this.kind = kind;
10134 this.relevance = relevance;
10135 this.completion = completion;
10136 this.selectionOffset = selectionOffset;
10137 this.selectionLength = selectionLength;
10138 this.isDeprecated = isDeprecated;
10139 this.isPotential = isPotential;
10140 this.docSummary = docSummary;
10141 this.docComplete = docComplete;
10142 this.declaringType = declaringType;
10143 this.defaultArgumentListString = defaultArgumentListString;
10144 this.defaultArgumentListTextRanges = defaultArgumentListTextRanges;
10145 this.element = element;
10146 this.returnType = returnType;
10147 this.parameterNames = parameterNames;
10148 this.parameterTypes = parameterTypes;
10149 this.requiredParameterCount = requiredParameterCount;
10150 this.hasNamedParameters = hasNamedParameters;
10151 this.parameterName = parameterName;
10152 this.parameterType = parameterType;
10153 this.importUri = importUri;
10154 }
10155
10156 factory CompletionSuggestion.fromJson(
10157 JsonDecoder jsonDecoder, String jsonPath, Object json) {
10158 if (json == null) {
10159 json = {};
10160 }
10161 if (json is Map) {
10162 CompletionSuggestionKind kind;
10163 if (json.containsKey("kind")) {
10164 kind = new CompletionSuggestionKind.fromJson(
10165 jsonDecoder, jsonPath + ".kind", json["kind"]);
10166 } else {
10167 throw jsonDecoder.missingKey(jsonPath, "kind");
10168 }
10169 int relevance;
10170 if (json.containsKey("relevance")) {
10171 relevance =
10172 jsonDecoder.decodeInt(jsonPath + ".relevance", json["relevance"]);
10173 } else {
10174 throw jsonDecoder.missingKey(jsonPath, "relevance");
10175 }
10176 String completion;
10177 if (json.containsKey("completion")) {
10178 completion = jsonDecoder.decodeString(
10179 jsonPath + ".completion", json["completion"]);
10180 } else {
10181 throw jsonDecoder.missingKey(jsonPath, "completion");
10182 }
10183 int selectionOffset;
10184 if (json.containsKey("selectionOffset")) {
10185 selectionOffset = jsonDecoder.decodeInt(
10186 jsonPath + ".selectionOffset", json["selectionOffset"]);
10187 } else {
10188 throw jsonDecoder.missingKey(jsonPath, "selectionOffset");
10189 }
10190 int selectionLength;
10191 if (json.containsKey("selectionLength")) {
10192 selectionLength = jsonDecoder.decodeInt(
10193 jsonPath + ".selectionLength", json["selectionLength"]);
10194 } else {
10195 throw jsonDecoder.missingKey(jsonPath, "selectionLength");
10196 }
10197 bool isDeprecated;
10198 if (json.containsKey("isDeprecated")) {
10199 isDeprecated = jsonDecoder.decodeBool(
10200 jsonPath + ".isDeprecated", json["isDeprecated"]);
10201 } else {
10202 throw jsonDecoder.missingKey(jsonPath, "isDeprecated");
10203 }
10204 bool isPotential;
10205 if (json.containsKey("isPotential")) {
10206 isPotential = jsonDecoder.decodeBool(
10207 jsonPath + ".isPotential", json["isPotential"]);
10208 } else {
10209 throw jsonDecoder.missingKey(jsonPath, "isPotential");
10210 }
10211 String docSummary;
10212 if (json.containsKey("docSummary")) {
10213 docSummary = jsonDecoder.decodeString(
10214 jsonPath + ".docSummary", json["docSummary"]);
10215 }
10216 String docComplete;
10217 if (json.containsKey("docComplete")) {
10218 docComplete = jsonDecoder.decodeString(
10219 jsonPath + ".docComplete", json["docComplete"]);
10220 }
10221 String declaringType;
10222 if (json.containsKey("declaringType")) {
10223 declaringType = jsonDecoder.decodeString(
10224 jsonPath + ".declaringType", json["declaringType"]);
10225 }
10226 String defaultArgumentListString;
10227 if (json.containsKey("defaultArgumentListString")) {
10228 defaultArgumentListString = jsonDecoder.decodeString(
10229 jsonPath + ".defaultArgumentListString",
10230 json["defaultArgumentListString"]);
10231 }
10232 List<int> defaultArgumentListTextRanges;
10233 if (json.containsKey("defaultArgumentListTextRanges")) {
10234 defaultArgumentListTextRanges = jsonDecoder.decodeList(
10235 jsonPath + ".defaultArgumentListTextRanges",
10236 json["defaultArgumentListTextRanges"],
10237 jsonDecoder.decodeInt);
10238 }
10239 Element element;
10240 if (json.containsKey("element")) {
10241 element = new Element.fromJson(
10242 jsonDecoder, jsonPath + ".element", json["element"]);
10243 }
10244 String returnType;
10245 if (json.containsKey("returnType")) {
10246 returnType = jsonDecoder.decodeString(
10247 jsonPath + ".returnType", json["returnType"]);
10248 }
10249 List<String> parameterNames;
10250 if (json.containsKey("parameterNames")) {
10251 parameterNames = jsonDecoder.decodeList(jsonPath + ".parameterNames",
10252 json["parameterNames"], jsonDecoder.decodeString);
10253 }
10254 List<String> parameterTypes;
10255 if (json.containsKey("parameterTypes")) {
10256 parameterTypes = jsonDecoder.decodeList(jsonPath + ".parameterTypes",
10257 json["parameterTypes"], jsonDecoder.decodeString);
10258 }
10259 int requiredParameterCount;
10260 if (json.containsKey("requiredParameterCount")) {
10261 requiredParameterCount = jsonDecoder.decodeInt(
10262 jsonPath + ".requiredParameterCount",
10263 json["requiredParameterCount"]);
10264 }
10265 bool hasNamedParameters;
10266 if (json.containsKey("hasNamedParameters")) {
10267 hasNamedParameters = jsonDecoder.decodeBool(
10268 jsonPath + ".hasNamedParameters", json["hasNamedParameters"]);
10269 }
10270 String parameterName;
10271 if (json.containsKey("parameterName")) {
10272 parameterName = jsonDecoder.decodeString(
10273 jsonPath + ".parameterName", json["parameterName"]);
10274 }
10275 String parameterType;
10276 if (json.containsKey("parameterType")) {
10277 parameterType = jsonDecoder.decodeString(
10278 jsonPath + ".parameterType", json["parameterType"]);
10279 }
10280 String importUri;
10281 if (json.containsKey("importUri")) {
10282 importUri = jsonDecoder.decodeString(
10283 jsonPath + ".importUri", json["importUri"]);
10284 }
10285 return new CompletionSuggestion(kind, relevance, completion,
10286 selectionOffset, selectionLength, isDeprecated, isPotential,
10287 docSummary: docSummary,
10288 docComplete: docComplete,
10289 declaringType: declaringType,
10290 defaultArgumentListString: defaultArgumentListString,
10291 defaultArgumentListTextRanges: defaultArgumentListTextRanges,
10292 element: element,
10293 returnType: returnType,
10294 parameterNames: parameterNames,
10295 parameterTypes: parameterTypes,
10296 requiredParameterCount: requiredParameterCount,
10297 hasNamedParameters: hasNamedParameters,
10298 parameterName: parameterName,
10299 parameterType: parameterType,
10300 importUri: importUri);
10301 } else {
10302 throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestion", json);
10303 }
10304 }
10305
10306 Map<String, dynamic> toJson() {
10307 Map<String, dynamic> result = {};
10308 result["kind"] = kind.toJson();
10309 result["relevance"] = relevance;
10310 result["completion"] = completion;
10311 result["selectionOffset"] = selectionOffset;
10312 result["selectionLength"] = selectionLength;
10313 result["isDeprecated"] = isDeprecated;
10314 result["isPotential"] = isPotential;
10315 if (docSummary != null) {
10316 result["docSummary"] = docSummary;
10317 }
10318 if (docComplete != null) {
10319 result["docComplete"] = docComplete;
10320 }
10321 if (declaringType != null) {
10322 result["declaringType"] = declaringType;
10323 }
10324 if (defaultArgumentListString != null) {
10325 result["defaultArgumentListString"] = defaultArgumentListString;
10326 }
10327 if (defaultArgumentListTextRanges != null) {
10328 result["defaultArgumentListTextRanges"] = defaultArgumentListTextRanges;
10329 }
10330 if (element != null) {
10331 result["element"] = element.toJson();
10332 }
10333 if (returnType != null) {
10334 result["returnType"] = returnType;
10335 }
10336 if (parameterNames != null) {
10337 result["parameterNames"] = parameterNames;
10338 }
10339 if (parameterTypes != null) {
10340 result["parameterTypes"] = parameterTypes;
10341 }
10342 if (requiredParameterCount != null) {
10343 result["requiredParameterCount"] = requiredParameterCount;
10344 }
10345 if (hasNamedParameters != null) {
10346 result["hasNamedParameters"] = hasNamedParameters;
10347 }
10348 if (parameterName != null) {
10349 result["parameterName"] = parameterName;
10350 }
10351 if (parameterType != null) {
10352 result["parameterType"] = parameterType;
10353 }
10354 if (importUri != null) {
10355 result["importUri"] = importUri;
10356 }
10357 return result;
10358 }
10359
10360 @override
10361 String toString() => JSON.encode(toJson());
10362
10363 @override
10364 bool operator ==(other) {
10365 if (other is CompletionSuggestion) {
10366 return kind == other.kind &&
10367 relevance == other.relevance &&
10368 completion == other.completion &&
10369 selectionOffset == other.selectionOffset &&
10370 selectionLength == other.selectionLength &&
10371 isDeprecated == other.isDeprecated &&
10372 isPotential == other.isPotential &&
10373 docSummary == other.docSummary &&
10374 docComplete == other.docComplete &&
10375 declaringType == other.declaringType &&
10376 defaultArgumentListString == other.defaultArgumentListString &&
10377 listEqual(defaultArgumentListTextRanges,
10378 other.defaultArgumentListTextRanges, (int a, int b) => a == b) &&
10379 element == other.element &&
10380 returnType == other.returnType &&
10381 listEqual(parameterNames, other.parameterNames,
10382 (String a, String b) => a == b) &&
10383 listEqual(parameterTypes, other.parameterTypes,
10384 (String a, String b) => a == b) &&
10385 requiredParameterCount == other.requiredParameterCount &&
10386 hasNamedParameters == other.hasNamedParameters &&
10387 parameterName == other.parameterName &&
10388 parameterType == other.parameterType &&
10389 importUri == other.importUri;
10390 }
10391 return false;
10392 }
10393
10394 @override
10395 int get hashCode {
10396 int hash = 0;
10397 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
10398 hash = JenkinsSmiHash.combine(hash, relevance.hashCode);
10399 hash = JenkinsSmiHash.combine(hash, completion.hashCode);
10400 hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode);
10401 hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode);
10402 hash = JenkinsSmiHash.combine(hash, isDeprecated.hashCode);
10403 hash = JenkinsSmiHash.combine(hash, isPotential.hashCode);
10404 hash = JenkinsSmiHash.combine(hash, docSummary.hashCode);
10405 hash = JenkinsSmiHash.combine(hash, docComplete.hashCode);
10406 hash = JenkinsSmiHash.combine(hash, declaringType.hashCode);
10407 hash = JenkinsSmiHash.combine(hash, defaultArgumentListString.hashCode);
10408 hash = JenkinsSmiHash.combine(hash, defaultArgumentListTextRanges.hashCode);
10409 hash = JenkinsSmiHash.combine(hash, element.hashCode);
10410 hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
10411 hash = JenkinsSmiHash.combine(hash, parameterNames.hashCode);
10412 hash = JenkinsSmiHash.combine(hash, parameterTypes.hashCode);
10413 hash = JenkinsSmiHash.combine(hash, requiredParameterCount.hashCode);
10414 hash = JenkinsSmiHash.combine(hash, hasNamedParameters.hashCode);
10415 hash = JenkinsSmiHash.combine(hash, parameterName.hashCode);
10416 hash = JenkinsSmiHash.combine(hash, parameterType.hashCode);
10417 hash = JenkinsSmiHash.combine(hash, importUri.hashCode);
10418 return JenkinsSmiHash.finish(hash);
10419 }
10420 }
10421
10422 /**
10423 * CompletionSuggestionKind
10424 *
10425 * enum {
10426 * ARGUMENT_LIST
10427 * IMPORT
10428 * IDENTIFIER
10429 * INVOCATION
10430 * KEYWORD
10431 * NAMED_ARGUMENT
10432 * OPTIONAL_ARGUMENT
10433 * PARAMETER
10434 * }
10435 *
10436 * Clients may not extend, implement or mix-in this class.
10437 */
10438 class CompletionSuggestionKind implements Enum {
10439 /**
10440 * A list of arguments for the method or function that is being invoked. For
10441 * this suggestion kind, the completion field is a textual representation of
10442 * the invocation and the parameterNames, parameterTypes, and
10443 * requiredParameterCount attributes are defined.
10444 */
10445 static const CompletionSuggestionKind ARGUMENT_LIST =
10446 const CompletionSuggestionKind._("ARGUMENT_LIST");
10447
10448 static const CompletionSuggestionKind IMPORT =
10449 const CompletionSuggestionKind._("IMPORT");
10450
10451 /**
10452 * The element identifier should be inserted at the completion location. For
10453 * example "someMethod" in import 'myLib.dart' show someMethod; . For
10454 * suggestions of this kind, the element attribute is defined and the
10455 * completion field is the element's identifier.
10456 */
10457 static const CompletionSuggestionKind IDENTIFIER =
10458 const CompletionSuggestionKind._("IDENTIFIER");
10459
10460 /**
10461 * The element is being invoked at the completion location. For example,
10462 * "someMethod" in x.someMethod(); . For suggestions of this kind, the
10463 * element attribute is defined and the completion field is the element's
10464 * identifier.
10465 */
10466 static const CompletionSuggestionKind INVOCATION =
10467 const CompletionSuggestionKind._("INVOCATION");
10468
10469 /**
10470 * A keyword is being suggested. For suggestions of this kind, the completion
10471 * is the keyword.
10472 */
10473 static const CompletionSuggestionKind KEYWORD =
10474 const CompletionSuggestionKind._("KEYWORD");
10475
10476 /**
10477 * A named argument for the current callsite is being suggested. For
10478 * suggestions of this kind, the completion is the named argument identifier
10479 * including a trailing ':' and space.
10480 */
10481 static const CompletionSuggestionKind NAMED_ARGUMENT =
10482 const CompletionSuggestionKind._("NAMED_ARGUMENT");
10483
10484 static const CompletionSuggestionKind OPTIONAL_ARGUMENT =
10485 const CompletionSuggestionKind._("OPTIONAL_ARGUMENT");
10486
10487 static const CompletionSuggestionKind PARAMETER =
10488 const CompletionSuggestionKind._("PARAMETER");
10489
10490 /**
10491 * A list containing all of the enum values that are defined.
10492 */
10493 static const List<CompletionSuggestionKind> VALUES =
10494 const <CompletionSuggestionKind>[
10495 ARGUMENT_LIST,
10496 IMPORT,
10497 IDENTIFIER,
10498 INVOCATION,
10499 KEYWORD,
10500 NAMED_ARGUMENT,
10501 OPTIONAL_ARGUMENT,
10502 PARAMETER
10503 ];
10504
10505 final String name;
10506
10507 const CompletionSuggestionKind._(this.name);
10508
10509 factory CompletionSuggestionKind(String name) {
10510 switch (name) {
10511 case "ARGUMENT_LIST":
10512 return ARGUMENT_LIST;
10513 case "IMPORT":
10514 return IMPORT;
10515 case "IDENTIFIER":
10516 return IDENTIFIER;
10517 case "INVOCATION":
10518 return INVOCATION;
10519 case "KEYWORD":
10520 return KEYWORD;
10521 case "NAMED_ARGUMENT":
10522 return NAMED_ARGUMENT;
10523 case "OPTIONAL_ARGUMENT":
10524 return OPTIONAL_ARGUMENT;
10525 case "PARAMETER":
10526 return PARAMETER;
10527 }
10528 throw new Exception('Illegal enum value: $name');
10529 }
10530
10531 factory CompletionSuggestionKind.fromJson(
10532 JsonDecoder jsonDecoder, String jsonPath, Object json) {
10533 if (json is String) {
10534 try {
10535 return new CompletionSuggestionKind(json);
10536 } catch (_) {
10537 // Fall through
10538 }
10539 }
10540 throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestionKind", json);
10541 }
10542
10543 @override
10544 String toString() => "CompletionSuggestionKind.$name";
10545
10546 String toJson() => name;
10547 }
10548
10549 /**
10550 * ContextData
10551 *
10552 * {
10553 * "name": String
10554 * "explicitFileCount": int
10555 * "implicitFileCount": int
10556 * "workItemQueueLength": int
10557 * "cacheEntryExceptions": List<String>
10558 * }
10559 *
10560 * Clients may not extend, implement or mix-in this class.
10561 */
10562 class ContextData implements HasToJson {
10563 String _name;
10564
10565 int _explicitFileCount;
10566
10567 int _implicitFileCount;
10568
10569 int _workItemQueueLength;
10570
10571 List<String> _cacheEntryExceptions;
10572
10573 /**
10574 * The name of the context.
10575 */
10576 String get name => _name;
10577
10578 /**
10579 * The name of the context.
10580 */
10581 void set name(String value) {
10582 assert(value != null);
10583 this._name = value;
10584 }
10585
10586 /**
10587 * Explicitly analyzed files.
10588 */
10589 int get explicitFileCount => _explicitFileCount;
10590
10591 /**
10592 * Explicitly analyzed files.
10593 */
10594 void set explicitFileCount(int value) {
10595 assert(value != null);
10596 this._explicitFileCount = value;
10597 }
10598
10599 /**
10600 * Implicitly analyzed files.
10601 */
10602 int get implicitFileCount => _implicitFileCount;
10603
10604 /**
10605 * Implicitly analyzed files.
10606 */
10607 void set implicitFileCount(int value) {
10608 assert(value != null);
10609 this._implicitFileCount = value;
10610 }
10611
10612 /**
10613 * The number of work items in the queue.
10614 */
10615 int get workItemQueueLength => _workItemQueueLength;
10616
10617 /**
10618 * The number of work items in the queue.
10619 */
10620 void set workItemQueueLength(int value) {
10621 assert(value != null);
10622 this._workItemQueueLength = value;
10623 }
10624
10625 /**
10626 * Exceptions associated with cache entries.
10627 */
10628 List<String> get cacheEntryExceptions => _cacheEntryExceptions;
10629
10630 /**
10631 * Exceptions associated with cache entries.
10632 */
10633 void set cacheEntryExceptions(List<String> value) {
10634 assert(value != null);
10635 this._cacheEntryExceptions = value;
10636 }
10637
10638 ContextData(String name, int explicitFileCount, int implicitFileCount,
10639 int workItemQueueLength, List<String> cacheEntryExceptions) {
10640 this.name = name;
10641 this.explicitFileCount = explicitFileCount;
10642 this.implicitFileCount = implicitFileCount;
10643 this.workItemQueueLength = workItemQueueLength;
10644 this.cacheEntryExceptions = cacheEntryExceptions;
10645 }
10646
10647 factory ContextData.fromJson(
10648 JsonDecoder jsonDecoder, String jsonPath, Object json) {
10649 if (json == null) {
10650 json = {};
10651 }
10652 if (json is Map) {
10653 String name;
10654 if (json.containsKey("name")) {
10655 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
10656 } else {
10657 throw jsonDecoder.missingKey(jsonPath, "name");
10658 }
10659 int explicitFileCount;
10660 if (json.containsKey("explicitFileCount")) {
10661 explicitFileCount = jsonDecoder.decodeInt(
10662 jsonPath + ".explicitFileCount", json["explicitFileCount"]);
10663 } else {
10664 throw jsonDecoder.missingKey(jsonPath, "explicitFileCount");
10665 }
10666 int implicitFileCount;
10667 if (json.containsKey("implicitFileCount")) {
10668 implicitFileCount = jsonDecoder.decodeInt(
10669 jsonPath + ".implicitFileCount", json["implicitFileCount"]);
10670 } else {
10671 throw jsonDecoder.missingKey(jsonPath, "implicitFileCount");
10672 }
10673 int workItemQueueLength;
10674 if (json.containsKey("workItemQueueLength")) {
10675 workItemQueueLength = jsonDecoder.decodeInt(
10676 jsonPath + ".workItemQueueLength", json["workItemQueueLength"]);
10677 } else {
10678 throw jsonDecoder.missingKey(jsonPath, "workItemQueueLength");
10679 }
10680 List<String> cacheEntryExceptions;
10681 if (json.containsKey("cacheEntryExceptions")) {
10682 cacheEntryExceptions = jsonDecoder.decodeList(
10683 jsonPath + ".cacheEntryExceptions",
10684 json["cacheEntryExceptions"],
10685 jsonDecoder.decodeString);
10686 } else {
10687 throw jsonDecoder.missingKey(jsonPath, "cacheEntryExceptions");
10688 }
10689 return new ContextData(name, explicitFileCount, implicitFileCount,
10690 workItemQueueLength, cacheEntryExceptions);
10691 } else {
10692 throw jsonDecoder.mismatch(jsonPath, "ContextData", json);
10693 }
10694 }
10695
10696 Map<String, dynamic> toJson() {
10697 Map<String, dynamic> result = {};
10698 result["name"] = name;
10699 result["explicitFileCount"] = explicitFileCount;
10700 result["implicitFileCount"] = implicitFileCount;
10701 result["workItemQueueLength"] = workItemQueueLength;
10702 result["cacheEntryExceptions"] = cacheEntryExceptions;
10703 return result;
10704 }
10705
10706 @override
10707 String toString() => JSON.encode(toJson());
10708
10709 @override
10710 bool operator ==(other) {
10711 if (other is ContextData) {
10712 return name == other.name &&
10713 explicitFileCount == other.explicitFileCount &&
10714 implicitFileCount == other.implicitFileCount &&
10715 workItemQueueLength == other.workItemQueueLength &&
10716 listEqual(cacheEntryExceptions, other.cacheEntryExceptions,
10717 (String a, String b) => a == b);
10718 }
10719 return false;
10720 }
10721
10722 @override
10723 int get hashCode {
10724 int hash = 0;
10725 hash = JenkinsSmiHash.combine(hash, name.hashCode);
10726 hash = JenkinsSmiHash.combine(hash, explicitFileCount.hashCode);
10727 hash = JenkinsSmiHash.combine(hash, implicitFileCount.hashCode);
10728 hash = JenkinsSmiHash.combine(hash, workItemQueueLength.hashCode);
10729 hash = JenkinsSmiHash.combine(hash, cacheEntryExceptions.hashCode);
10730 return JenkinsSmiHash.finish(hash);
10731 }
10732 }
10733
10734 /**
10735 * Element
10736 *
10737 * {
10738 * "kind": ElementKind
10739 * "name": String
10740 * "location": optional Location
10741 * "flags": int
10742 * "parameters": optional String
10743 * "returnType": optional String
10744 * "typeParameters": optional String
10745 * }
10746 *
10747 * Clients may not extend, implement or mix-in this class.
10748 */
10749 class Element implements HasToJson {
10750 static const int FLAG_ABSTRACT = 0x01;
10751 static const int FLAG_CONST = 0x02;
10752 static const int FLAG_FINAL = 0x04;
10753 static const int FLAG_STATIC = 0x08;
10754 static const int FLAG_PRIVATE = 0x10;
10755 static const int FLAG_DEPRECATED = 0x20;
10756
10757 static int makeFlags(
10758 {isAbstract: false,
10759 isConst: false,
10760 isFinal: false,
10761 isStatic: false,
10762 isPrivate: false,
10763 isDeprecated: false}) {
10764 int flags = 0;
10765 if (isAbstract) flags |= FLAG_ABSTRACT;
10766 if (isConst) flags |= FLAG_CONST;
10767 if (isFinal) flags |= FLAG_FINAL;
10768 if (isStatic) flags |= FLAG_STATIC;
10769 if (isPrivate) flags |= FLAG_PRIVATE;
10770 if (isDeprecated) flags |= FLAG_DEPRECATED;
10771 return flags;
10772 }
10773
10774 ElementKind _kind;
10775
10776 String _name;
10777
10778 Location _location;
10779
10780 int _flags;
10781
10782 String _parameters;
10783
10784 String _returnType;
10785
10786 String _typeParameters;
10787
10788 /**
10789 * The kind of the element.
10790 */
10791 ElementKind get kind => _kind;
10792
10793 /**
10794 * The kind of the element.
10795 */
10796 void set kind(ElementKind value) {
10797 assert(value != null);
10798 this._kind = value;
10799 }
10800
10801 /**
10802 * The name of the element. This is typically used as the label in the
10803 * outline.
10804 */
10805 String get name => _name;
10806
10807 /**
10808 * The name of the element. This is typically used as the label in the
10809 * outline.
10810 */
10811 void set name(String value) {
10812 assert(value != null);
10813 this._name = value;
10814 }
10815
10816 /**
10817 * The location of the name in the declaration of the element.
10818 */
10819 Location get location => _location;
10820
10821 /**
10822 * The location of the name in the declaration of the element.
10823 */
10824 void set location(Location value) {
10825 this._location = value;
10826 }
10827
10828 /**
10829 * A bit-map containing the following flags:
10830 *
10831 * - 0x01 - set if the element is explicitly or implicitly abstract
10832 * - 0x02 - set if the element was declared to be ‘const’
10833 * - 0x04 - set if the element was declared to be ‘final’
10834 * - 0x08 - set if the element is a static member of a class or is a
10835 * top-level function or field
10836 * - 0x10 - set if the element is private
10837 * - 0x20 - set if the element is deprecated
10838 */
10839 int get flags => _flags;
10840
10841 /**
10842 * A bit-map containing the following flags:
10843 *
10844 * - 0x01 - set if the element is explicitly or implicitly abstract
10845 * - 0x02 - set if the element was declared to be ‘const’
10846 * - 0x04 - set if the element was declared to be ‘final’
10847 * - 0x08 - set if the element is a static member of a class or is a
10848 * top-level function or field
10849 * - 0x10 - set if the element is private
10850 * - 0x20 - set if the element is deprecated
10851 */
10852 void set flags(int value) {
10853 assert(value != null);
10854 this._flags = value;
10855 }
10856
10857 /**
10858 * The parameter list for the element. If the element is not a method or
10859 * function this field will not be defined. If the element doesn't have
10860 * parameters (e.g. getter), this field will not be defined. If the element
10861 * has zero parameters, this field will have a value of "()".
10862 */
10863 String get parameters => _parameters;
10864
10865 /**
10866 * The parameter list for the element. If the element is not a method or
10867 * function this field will not be defined. If the element doesn't have
10868 * parameters (e.g. getter), this field will not be defined. If the element
10869 * has zero parameters, this field will have a value of "()".
10870 */
10871 void set parameters(String value) {
10872 this._parameters = value;
10873 }
10874
10875 /**
10876 * The return type of the element. If the element is not a method or function
10877 * this field will not be defined. If the element does not have a declared
10878 * return type, this field will contain an empty string.
10879 */
10880 String get returnType => _returnType;
10881
10882 /**
10883 * The return type of the element. If the element is not a method or function
10884 * this field will not be defined. If the element does not have a declared
10885 * return type, this field will contain an empty string.
10886 */
10887 void set returnType(String value) {
10888 this._returnType = value;
10889 }
10890
10891 /**
10892 * The type parameter list for the element. If the element doesn't have type
10893 * parameters, this field will not be defined.
10894 */
10895 String get typeParameters => _typeParameters;
10896
10897 /**
10898 * The type parameter list for the element. If the element doesn't have type
10899 * parameters, this field will not be defined.
10900 */
10901 void set typeParameters(String value) {
10902 this._typeParameters = value;
10903 }
10904
10905 Element(ElementKind kind, String name, int flags,
10906 {Location location,
10907 String parameters,
10908 String returnType,
10909 String typeParameters}) {
10910 this.kind = kind;
10911 this.name = name;
10912 this.location = location;
10913 this.flags = flags;
10914 this.parameters = parameters;
10915 this.returnType = returnType;
10916 this.typeParameters = typeParameters;
10917 }
10918
10919 factory Element.fromJson(
10920 JsonDecoder jsonDecoder, String jsonPath, Object json) {
10921 if (json == null) {
10922 json = {};
10923 }
10924 if (json is Map) {
10925 ElementKind kind;
10926 if (json.containsKey("kind")) {
10927 kind = new ElementKind.fromJson(
10928 jsonDecoder, jsonPath + ".kind", json["kind"]);
10929 } else {
10930 throw jsonDecoder.missingKey(jsonPath, "kind");
10931 }
10932 String name;
10933 if (json.containsKey("name")) {
10934 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
10935 } else {
10936 throw jsonDecoder.missingKey(jsonPath, "name");
10937 }
10938 Location location;
10939 if (json.containsKey("location")) {
10940 location = new Location.fromJson(
10941 jsonDecoder, jsonPath + ".location", json["location"]);
10942 }
10943 int flags;
10944 if (json.containsKey("flags")) {
10945 flags = jsonDecoder.decodeInt(jsonPath + ".flags", json["flags"]);
10946 } else {
10947 throw jsonDecoder.missingKey(jsonPath, "flags");
10948 }
10949 String parameters;
10950 if (json.containsKey("parameters")) {
10951 parameters = jsonDecoder.decodeString(
10952 jsonPath + ".parameters", json["parameters"]);
10953 }
10954 String returnType;
10955 if (json.containsKey("returnType")) {
10956 returnType = jsonDecoder.decodeString(
10957 jsonPath + ".returnType", json["returnType"]);
10958 }
10959 String typeParameters;
10960 if (json.containsKey("typeParameters")) {
10961 typeParameters = jsonDecoder.decodeString(
10962 jsonPath + ".typeParameters", json["typeParameters"]);
10963 }
10964 return new Element(kind, name, flags,
10965 location: location,
10966 parameters: parameters,
10967 returnType: returnType,
10968 typeParameters: typeParameters);
10969 } else {
10970 throw jsonDecoder.mismatch(jsonPath, "Element", json);
10971 }
10972 }
10973
10974 bool get isAbstract => (flags & FLAG_ABSTRACT) != 0;
10975 bool get isConst => (flags & FLAG_CONST) != 0;
10976 bool get isFinal => (flags & FLAG_FINAL) != 0;
10977 bool get isStatic => (flags & FLAG_STATIC) != 0;
10978 bool get isPrivate => (flags & FLAG_PRIVATE) != 0;
10979 bool get isDeprecated => (flags & FLAG_DEPRECATED) != 0;
10980
10981 Map<String, dynamic> toJson() {
10982 Map<String, dynamic> result = {};
10983 result["kind"] = kind.toJson();
10984 result["name"] = name;
10985 if (location != null) {
10986 result["location"] = location.toJson();
10987 }
10988 result["flags"] = flags;
10989 if (parameters != null) {
10990 result["parameters"] = parameters;
10991 }
10992 if (returnType != null) {
10993 result["returnType"] = returnType;
10994 }
10995 if (typeParameters != null) {
10996 result["typeParameters"] = typeParameters;
10997 }
10998 return result;
10999 }
11000
11001 @override
11002 String toString() => JSON.encode(toJson());
11003
11004 @override
11005 bool operator ==(other) {
11006 if (other is Element) {
11007 return kind == other.kind &&
11008 name == other.name &&
11009 location == other.location &&
11010 flags == other.flags &&
11011 parameters == other.parameters &&
11012 returnType == other.returnType &&
11013 typeParameters == other.typeParameters;
11014 }
11015 return false;
11016 }
11017
11018 @override
11019 int get hashCode {
11020 int hash = 0;
11021 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
11022 hash = JenkinsSmiHash.combine(hash, name.hashCode);
11023 hash = JenkinsSmiHash.combine(hash, location.hashCode);
11024 hash = JenkinsSmiHash.combine(hash, flags.hashCode);
11025 hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
11026 hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
11027 hash = JenkinsSmiHash.combine(hash, typeParameters.hashCode);
11028 return JenkinsSmiHash.finish(hash);
11029 }
11030 }
11031
11032 /**
11033 * ElementKind
11034 *
11035 * enum {
11036 * CLASS
11037 * CLASS_TYPE_ALIAS
11038 * COMPILATION_UNIT
11039 * CONSTRUCTOR
11040 * ENUM
11041 * ENUM_CONSTANT
11042 * FIELD
11043 * FILE
11044 * FUNCTION
11045 * FUNCTION_TYPE_ALIAS
11046 * GETTER
11047 * LABEL
11048 * LIBRARY
11049 * LOCAL_VARIABLE
11050 * METHOD
11051 * PARAMETER
11052 * PREFIX
11053 * SETTER
11054 * TOP_LEVEL_VARIABLE
11055 * TYPE_PARAMETER
11056 * UNIT_TEST_GROUP
11057 * UNIT_TEST_TEST
11058 * UNKNOWN
11059 * }
11060 *
11061 * Clients may not extend, implement or mix-in this class.
11062 */
11063 class ElementKind implements Enum {
11064 static const ElementKind CLASS = const ElementKind._("CLASS");
11065
11066 static const ElementKind CLASS_TYPE_ALIAS =
11067 const ElementKind._("CLASS_TYPE_ALIAS");
11068
11069 static const ElementKind COMPILATION_UNIT =
11070 const ElementKind._("COMPILATION_UNIT");
11071
11072 static const ElementKind CONSTRUCTOR = const ElementKind._("CONSTRUCTOR");
11073
11074 static const ElementKind ENUM = const ElementKind._("ENUM");
11075
11076 static const ElementKind ENUM_CONSTANT = const ElementKind._("ENUM_CONSTANT");
11077
11078 static const ElementKind FIELD = const ElementKind._("FIELD");
11079
11080 static const ElementKind FILE = const ElementKind._("FILE");
11081
11082 static const ElementKind FUNCTION = const ElementKind._("FUNCTION");
11083
11084 static const ElementKind FUNCTION_TYPE_ALIAS =
11085 const ElementKind._("FUNCTION_TYPE_ALIAS");
11086
11087 static const ElementKind GETTER = const ElementKind._("GETTER");
11088
11089 static const ElementKind LABEL = const ElementKind._("LABEL");
11090
11091 static const ElementKind LIBRARY = const ElementKind._("LIBRARY");
11092
11093 static const ElementKind LOCAL_VARIABLE =
11094 const ElementKind._("LOCAL_VARIABLE");
11095
11096 static const ElementKind METHOD = const ElementKind._("METHOD");
11097
11098 static const ElementKind PARAMETER = const ElementKind._("PARAMETER");
11099
11100 static const ElementKind PREFIX = const ElementKind._("PREFIX");
11101
11102 static const ElementKind SETTER = const ElementKind._("SETTER");
11103
11104 static const ElementKind TOP_LEVEL_VARIABLE =
11105 const ElementKind._("TOP_LEVEL_VARIABLE");
11106
11107 static const ElementKind TYPE_PARAMETER =
11108 const ElementKind._("TYPE_PARAMETER");
11109
11110 /**
11111 * Deprecated: support for tests was removed.
11112 */
11113 static const ElementKind UNIT_TEST_GROUP =
11114 const ElementKind._("UNIT_TEST_GROUP");
11115
11116 /**
11117 * Deprecated: support for tests was removed.
11118 */
11119 static const ElementKind UNIT_TEST_TEST =
11120 const ElementKind._("UNIT_TEST_TEST");
11121
11122 static const ElementKind UNKNOWN = const ElementKind._("UNKNOWN");
11123
11124 /**
11125 * A list containing all of the enum values that are defined.
11126 */
11127 static const List<ElementKind> VALUES = const <ElementKind>[
11128 CLASS,
11129 CLASS_TYPE_ALIAS,
11130 COMPILATION_UNIT,
11131 CONSTRUCTOR,
11132 ENUM,
11133 ENUM_CONSTANT,
11134 FIELD,
11135 FILE,
11136 FUNCTION,
11137 FUNCTION_TYPE_ALIAS,
11138 GETTER,
11139 LABEL,
11140 LIBRARY,
11141 LOCAL_VARIABLE,
11142 METHOD,
11143 PARAMETER,
11144 PREFIX,
11145 SETTER,
11146 TOP_LEVEL_VARIABLE,
11147 TYPE_PARAMETER,
11148 UNIT_TEST_GROUP,
11149 UNIT_TEST_TEST,
11150 UNKNOWN
11151 ];
11152
11153 final String name;
11154
11155 const ElementKind._(this.name);
11156
11157 factory ElementKind(String name) {
11158 switch (name) {
11159 case "CLASS":
11160 return CLASS;
11161 case "CLASS_TYPE_ALIAS":
11162 return CLASS_TYPE_ALIAS;
11163 case "COMPILATION_UNIT":
11164 return COMPILATION_UNIT;
11165 case "CONSTRUCTOR":
11166 return CONSTRUCTOR;
11167 case "ENUM":
11168 return ENUM;
11169 case "ENUM_CONSTANT":
11170 return ENUM_CONSTANT;
11171 case "FIELD":
11172 return FIELD;
11173 case "FILE":
11174 return FILE;
11175 case "FUNCTION":
11176 return FUNCTION;
11177 case "FUNCTION_TYPE_ALIAS":
11178 return FUNCTION_TYPE_ALIAS;
11179 case "GETTER":
11180 return GETTER;
11181 case "LABEL":
11182 return LABEL;
11183 case "LIBRARY":
11184 return LIBRARY;
11185 case "LOCAL_VARIABLE":
11186 return LOCAL_VARIABLE;
11187 case "METHOD":
11188 return METHOD;
11189 case "PARAMETER":
11190 return PARAMETER;
11191 case "PREFIX":
11192 return PREFIX;
11193 case "SETTER":
11194 return SETTER;
11195 case "TOP_LEVEL_VARIABLE":
11196 return TOP_LEVEL_VARIABLE;
11197 case "TYPE_PARAMETER":
11198 return TYPE_PARAMETER;
11199 case "UNIT_TEST_GROUP":
11200 return UNIT_TEST_GROUP;
11201 case "UNIT_TEST_TEST":
11202 return UNIT_TEST_TEST;
11203 case "UNKNOWN":
11204 return UNKNOWN;
11205 }
11206 throw new Exception('Illegal enum value: $name');
11207 }
11208
11209 factory ElementKind.fromJson(
11210 JsonDecoder jsonDecoder, String jsonPath, Object json) {
11211 if (json is String) {
11212 try {
11213 return new ElementKind(json);
11214 } catch (_) {
11215 // Fall through
11216 }
11217 }
11218 throw jsonDecoder.mismatch(jsonPath, "ElementKind", json);
11219 }
11220
11221 @override
11222 String toString() => "ElementKind.$name";
11223
11224 String toJson() => name;
11225 }
11226
11227 /**
11228 * ExecutableFile
11229 *
11230 * {
11231 * "file": FilePath
11232 * "kind": ExecutableKind
11233 * }
11234 *
11235 * Clients may not extend, implement or mix-in this class.
11236 */
11237 class ExecutableFile implements HasToJson {
11238 String _file;
11239
11240 ExecutableKind _kind;
11241
11242 /**
11243 * The path of the executable file.
11244 */
11245 String get file => _file;
11246
11247 /**
11248 * The path of the executable file.
11249 */
11250 void set file(String value) {
11251 assert(value != null);
11252 this._file = value;
11253 }
11254
11255 /**
11256 * The kind of the executable file.
11257 */
11258 ExecutableKind get kind => _kind;
11259
11260 /**
11261 * The kind of the executable file.
11262 */
11263 void set kind(ExecutableKind value) {
11264 assert(value != null);
11265 this._kind = value;
11266 }
11267
11268 ExecutableFile(String file, ExecutableKind kind) {
11269 this.file = file;
11270 this.kind = kind;
11271 }
11272
11273 factory ExecutableFile.fromJson(
11274 JsonDecoder jsonDecoder, String jsonPath, Object json) {
11275 if (json == null) {
11276 json = {};
11277 }
11278 if (json is Map) {
11279 String file;
11280 if (json.containsKey("file")) {
11281 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
11282 } else {
11283 throw jsonDecoder.missingKey(jsonPath, "file");
11284 }
11285 ExecutableKind kind;
11286 if (json.containsKey("kind")) {
11287 kind = new ExecutableKind.fromJson(
11288 jsonDecoder, jsonPath + ".kind", json["kind"]);
11289 } else {
11290 throw jsonDecoder.missingKey(jsonPath, "kind");
11291 }
11292 return new ExecutableFile(file, kind);
11293 } else {
11294 throw jsonDecoder.mismatch(jsonPath, "ExecutableFile", json);
11295 }
11296 }
11297
11298 Map<String, dynamic> toJson() {
11299 Map<String, dynamic> result = {};
11300 result["file"] = file;
11301 result["kind"] = kind.toJson();
11302 return result;
11303 }
11304
11305 @override
11306 String toString() => JSON.encode(toJson());
11307
11308 @override
11309 bool operator ==(other) {
11310 if (other is ExecutableFile) {
11311 return file == other.file && kind == other.kind;
11312 }
11313 return false;
11314 }
11315
11316 @override
11317 int get hashCode {
11318 int hash = 0;
11319 hash = JenkinsSmiHash.combine(hash, file.hashCode);
11320 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
11321 return JenkinsSmiHash.finish(hash);
11322 }
11323 }
11324
11325 /**
11326 * ExecutableKind
11327 *
11328 * enum {
11329 * CLIENT
11330 * EITHER
11331 * NOT_EXECUTABLE
11332 * SERVER
11333 * }
11334 *
11335 * Clients may not extend, implement or mix-in this class.
11336 */
11337 class ExecutableKind implements Enum {
11338 static const ExecutableKind CLIENT = const ExecutableKind._("CLIENT");
11339
11340 static const ExecutableKind EITHER = const ExecutableKind._("EITHER");
11341
11342 static const ExecutableKind NOT_EXECUTABLE =
11343 const ExecutableKind._("NOT_EXECUTABLE");
11344
11345 static const ExecutableKind SERVER = const ExecutableKind._("SERVER");
11346
11347 /**
11348 * A list containing all of the enum values that are defined.
11349 */
11350 static const List<ExecutableKind> VALUES = const <ExecutableKind>[
11351 CLIENT,
11352 EITHER,
11353 NOT_EXECUTABLE,
11354 SERVER
11355 ];
11356
11357 final String name;
11358
11359 const ExecutableKind._(this.name);
11360
11361 factory ExecutableKind(String name) {
11362 switch (name) {
11363 case "CLIENT":
11364 return CLIENT;
11365 case "EITHER":
11366 return EITHER;
11367 case "NOT_EXECUTABLE":
11368 return NOT_EXECUTABLE;
11369 case "SERVER":
11370 return SERVER;
11371 }
11372 throw new Exception('Illegal enum value: $name');
11373 }
11374
11375 factory ExecutableKind.fromJson(
11376 JsonDecoder jsonDecoder, String jsonPath, Object json) {
11377 if (json is String) {
11378 try {
11379 return new ExecutableKind(json);
11380 } catch (_) {
11381 // Fall through
11382 }
11383 }
11384 throw jsonDecoder.mismatch(jsonPath, "ExecutableKind", json);
11385 }
11386
11387 @override
11388 String toString() => "ExecutableKind.$name";
11389
11390 String toJson() => name;
11391 }
11392
11393 /**
11394 * ExecutionService
11395 *
11396 * enum {
11397 * LAUNCH_DATA
11398 * }
11399 *
11400 * Clients may not extend, implement or mix-in this class.
11401 */
11402 class ExecutionService implements Enum {
11403 static const ExecutionService LAUNCH_DATA =
11404 const ExecutionService._("LAUNCH_DATA");
11405
11406 /**
11407 * A list containing all of the enum values that are defined.
11408 */
11409 static const List<ExecutionService> VALUES = const <ExecutionService>[
11410 LAUNCH_DATA
11411 ];
11412
11413 final String name;
11414
11415 const ExecutionService._(this.name);
11416
11417 factory ExecutionService(String name) {
11418 switch (name) {
11419 case "LAUNCH_DATA":
11420 return LAUNCH_DATA;
11421 }
11422 throw new Exception('Illegal enum value: $name');
11423 }
11424
11425 factory ExecutionService.fromJson(
11426 JsonDecoder jsonDecoder, String jsonPath, Object json) {
11427 if (json is String) {
11428 try {
11429 return new ExecutionService(json);
11430 } catch (_) {
11431 // Fall through
11432 }
11433 }
11434 throw jsonDecoder.mismatch(jsonPath, "ExecutionService", json);
11435 }
11436
11437 @override
11438 String toString() => "ExecutionService.$name";
11439
11440 String toJson() => name;
11441 }
11442
11443 /**
11444 * FileKind
11445 *
11446 * enum {
11447 * LIBRARY
11448 * PART
11449 * }
11450 *
11451 * Clients may not extend, implement or mix-in this class.
11452 */
11453 class FileKind implements Enum {
11454 static const FileKind LIBRARY = const FileKind._("LIBRARY");
11455
11456 static const FileKind PART = const FileKind._("PART");
11457
11458 /**
11459 * A list containing all of the enum values that are defined.
11460 */
11461 static const List<FileKind> VALUES = const <FileKind>[LIBRARY, PART];
11462
11463 final String name;
11464
11465 const FileKind._(this.name);
11466
11467 factory FileKind(String name) {
11468 switch (name) {
11469 case "LIBRARY":
11470 return LIBRARY;
11471 case "PART":
11472 return PART;
11473 }
11474 throw new Exception('Illegal enum value: $name');
11475 }
11476
11477 factory FileKind.fromJson(
11478 JsonDecoder jsonDecoder, String jsonPath, Object json) {
11479 if (json is String) {
11480 try {
11481 return new FileKind(json);
11482 } catch (_) {
11483 // Fall through
11484 }
11485 }
11486 throw jsonDecoder.mismatch(jsonPath, "FileKind", json);
11487 }
11488
11489 @override
11490 String toString() => "FileKind.$name";
11491
11492 String toJson() => name;
11493 }
11494
11495 /**
11496 * FoldingKind
11497 *
11498 * enum {
11499 * COMMENT
11500 * CLASS_MEMBER
11501 * DIRECTIVES
11502 * DOCUMENTATION_COMMENT
11503 * TOP_LEVEL_DECLARATION
11504 * }
11505 *
11506 * Clients may not extend, implement or mix-in this class.
11507 */
11508 class FoldingKind implements Enum {
11509 static const FoldingKind COMMENT = const FoldingKind._("COMMENT");
11510
11511 static const FoldingKind CLASS_MEMBER = const FoldingKind._("CLASS_MEMBER");
11512
11513 static const FoldingKind DIRECTIVES = const FoldingKind._("DIRECTIVES");
11514
11515 static const FoldingKind DOCUMENTATION_COMMENT =
11516 const FoldingKind._("DOCUMENTATION_COMMENT");
11517
11518 static const FoldingKind TOP_LEVEL_DECLARATION =
11519 const FoldingKind._("TOP_LEVEL_DECLARATION");
11520
11521 /**
11522 * A list containing all of the enum values that are defined.
11523 */
11524 static const List<FoldingKind> VALUES = const <FoldingKind>[
11525 COMMENT,
11526 CLASS_MEMBER,
11527 DIRECTIVES,
11528 DOCUMENTATION_COMMENT,
11529 TOP_LEVEL_DECLARATION
11530 ];
11531
11532 final String name;
11533
11534 const FoldingKind._(this.name);
11535
11536 factory FoldingKind(String name) {
11537 switch (name) {
11538 case "COMMENT":
11539 return COMMENT;
11540 case "CLASS_MEMBER":
11541 return CLASS_MEMBER;
11542 case "DIRECTIVES":
11543 return DIRECTIVES;
11544 case "DOCUMENTATION_COMMENT":
11545 return DOCUMENTATION_COMMENT;
11546 case "TOP_LEVEL_DECLARATION":
11547 return TOP_LEVEL_DECLARATION;
11548 }
11549 throw new Exception('Illegal enum value: $name');
11550 }
11551
11552 factory FoldingKind.fromJson(
11553 JsonDecoder jsonDecoder, String jsonPath, Object json) {
11554 if (json is String) {
11555 try {
11556 return new FoldingKind(json);
11557 } catch (_) {
11558 // Fall through
11559 }
11560 }
11561 throw jsonDecoder.mismatch(jsonPath, "FoldingKind", json);
11562 }
11563
11564 @override
11565 String toString() => "FoldingKind.$name";
11566
11567 String toJson() => name;
11568 }
11569
11570 /**
11571 * FoldingRegion
11572 *
11573 * {
11574 * "kind": FoldingKind
11575 * "offset": int
11576 * "length": int
11577 * }
11578 *
11579 * Clients may not extend, implement or mix-in this class.
11580 */
11581 class FoldingRegion implements HasToJson {
11582 FoldingKind _kind;
11583
11584 int _offset;
11585
11586 int _length;
11587
11588 /**
11589 * The kind of the region.
11590 */
11591 FoldingKind get kind => _kind;
11592
11593 /**
11594 * The kind of the region.
11595 */
11596 void set kind(FoldingKind value) {
11597 assert(value != null);
11598 this._kind = value;
11599 }
11600
11601 /**
11602 * The offset of the region to be folded.
11603 */
11604 int get offset => _offset;
11605
11606 /**
11607 * The offset of the region to be folded.
11608 */
11609 void set offset(int value) {
11610 assert(value != null);
11611 this._offset = value;
11612 }
11613
11614 /**
11615 * The length of the region to be folded.
11616 */
11617 int get length => _length;
11618
11619 /**
11620 * The length of the region to be folded.
11621 */
11622 void set length(int value) {
11623 assert(value != null);
11624 this._length = value;
11625 }
11626
11627 FoldingRegion(FoldingKind kind, int offset, int length) {
11628 this.kind = kind;
11629 this.offset = offset;
11630 this.length = length;
11631 }
11632
11633 factory FoldingRegion.fromJson(
11634 JsonDecoder jsonDecoder, String jsonPath, Object json) {
11635 if (json == null) {
11636 json = {};
11637 }
11638 if (json is Map) {
11639 FoldingKind kind;
11640 if (json.containsKey("kind")) {
11641 kind = new FoldingKind.fromJson(
11642 jsonDecoder, jsonPath + ".kind", json["kind"]);
11643 } else {
11644 throw jsonDecoder.missingKey(jsonPath, "kind");
11645 }
11646 int offset;
11647 if (json.containsKey("offset")) {
11648 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
11649 } else {
11650 throw jsonDecoder.missingKey(jsonPath, "offset");
11651 }
11652 int length;
11653 if (json.containsKey("length")) {
11654 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
11655 } else {
11656 throw jsonDecoder.missingKey(jsonPath, "length");
11657 }
11658 return new FoldingRegion(kind, offset, length);
11659 } else {
11660 throw jsonDecoder.mismatch(jsonPath, "FoldingRegion", json);
11661 }
11662 }
11663
11664 Map<String, dynamic> toJson() {
11665 Map<String, dynamic> result = {};
11666 result["kind"] = kind.toJson();
11667 result["offset"] = offset;
11668 result["length"] = length;
11669 return result;
11670 }
11671
11672 @override
11673 String toString() => JSON.encode(toJson());
11674
11675 @override
11676 bool operator ==(other) {
11677 if (other is FoldingRegion) {
11678 return kind == other.kind &&
11679 offset == other.offset &&
11680 length == other.length;
11681 }
11682 return false;
11683 }
11684
11685 @override
11686 int get hashCode {
11687 int hash = 0;
11688 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
11689 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
11690 hash = JenkinsSmiHash.combine(hash, length.hashCode);
11691 return JenkinsSmiHash.finish(hash);
11692 }
11693 }
11694
11695 /**
11696 * GeneralAnalysisService
11697 *
11698 * enum {
11699 * ANALYZED_FILES
11700 * }
11701 *
11702 * Clients may not extend, implement or mix-in this class.
11703 */
11704 class GeneralAnalysisService implements Enum {
11705 static const GeneralAnalysisService ANALYZED_FILES =
11706 const GeneralAnalysisService._("ANALYZED_FILES");
11707
11708 /**
11709 * A list containing all of the enum values that are defined.
11710 */
11711 static const List<GeneralAnalysisService> VALUES =
11712 const <GeneralAnalysisService>[ANALYZED_FILES];
11713
11714 final String name;
11715
11716 const GeneralAnalysisService._(this.name);
11717
11718 factory GeneralAnalysisService(String name) {
11719 switch (name) {
11720 case "ANALYZED_FILES":
11721 return ANALYZED_FILES;
11722 }
11723 throw new Exception('Illegal enum value: $name');
11724 }
11725
11726 factory GeneralAnalysisService.fromJson(
11727 JsonDecoder jsonDecoder, String jsonPath, Object json) {
11728 if (json is String) {
11729 try {
11730 return new GeneralAnalysisService(json);
11731 } catch (_) {
11732 // Fall through
11733 }
11734 }
11735 throw jsonDecoder.mismatch(jsonPath, "GeneralAnalysisService", json);
11736 }
11737
11738 @override
11739 String toString() => "GeneralAnalysisService.$name";
11740
11741 String toJson() => name;
11742 }
11743
11744 /**
11745 * HighlightRegion
11746 *
11747 * {
11748 * "type": HighlightRegionType
11749 * "offset": int
11750 * "length": int
11751 * }
11752 *
11753 * Clients may not extend, implement or mix-in this class.
11754 */
11755 class HighlightRegion implements HasToJson {
11756 HighlightRegionType _type;
11757
11758 int _offset;
11759
11760 int _length;
11761
11762 /**
11763 * The type of highlight associated with the region.
11764 */
11765 HighlightRegionType get type => _type;
11766
11767 /**
11768 * The type of highlight associated with the region.
11769 */
11770 void set type(HighlightRegionType value) {
11771 assert(value != null);
11772 this._type = value;
11773 }
11774
11775 /**
11776 * The offset of the region to be highlighted.
11777 */
11778 int get offset => _offset;
11779
11780 /**
11781 * The offset of the region to be highlighted.
11782 */
11783 void set offset(int value) {
11784 assert(value != null);
11785 this._offset = value;
11786 }
11787
11788 /**
11789 * The length of the region to be highlighted.
11790 */
11791 int get length => _length;
11792
11793 /**
11794 * The length of the region to be highlighted.
11795 */
11796 void set length(int value) {
11797 assert(value != null);
11798 this._length = value;
11799 }
11800
11801 HighlightRegion(HighlightRegionType type, int offset, int length) {
11802 this.type = type;
11803 this.offset = offset;
11804 this.length = length;
11805 }
11806
11807 factory HighlightRegion.fromJson(
11808 JsonDecoder jsonDecoder, String jsonPath, Object json) {
11809 if (json == null) {
11810 json = {};
11811 }
11812 if (json is Map) {
11813 HighlightRegionType type;
11814 if (json.containsKey("type")) {
11815 type = new HighlightRegionType.fromJson(
11816 jsonDecoder, jsonPath + ".type", json["type"]);
11817 } else {
11818 throw jsonDecoder.missingKey(jsonPath, "type");
11819 }
11820 int offset;
11821 if (json.containsKey("offset")) {
11822 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
11823 } else {
11824 throw jsonDecoder.missingKey(jsonPath, "offset");
11825 }
11826 int length;
11827 if (json.containsKey("length")) {
11828 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
11829 } else {
11830 throw jsonDecoder.missingKey(jsonPath, "length");
11831 }
11832 return new HighlightRegion(type, offset, length);
11833 } else {
11834 throw jsonDecoder.mismatch(jsonPath, "HighlightRegion", json);
11835 }
11836 }
11837
11838 Map<String, dynamic> toJson() {
11839 Map<String, dynamic> result = {};
11840 result["type"] = type.toJson();
11841 result["offset"] = offset;
11842 result["length"] = length;
11843 return result;
11844 }
11845
11846 @override
11847 String toString() => JSON.encode(toJson());
11848
11849 @override
11850 bool operator ==(other) {
11851 if (other is HighlightRegion) {
11852 return type == other.type &&
11853 offset == other.offset &&
11854 length == other.length;
11855 }
11856 return false;
11857 }
11858
11859 @override
11860 int get hashCode {
11861 int hash = 0;
11862 hash = JenkinsSmiHash.combine(hash, type.hashCode);
11863 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
11864 hash = JenkinsSmiHash.combine(hash, length.hashCode);
11865 return JenkinsSmiHash.finish(hash);
11866 }
11867 }
11868
11869 /**
11870 * HighlightRegionType
11871 *
11872 * enum {
11873 * ANNOTATION
11874 * BUILT_IN
11875 * CLASS
11876 * COMMENT_BLOCK
11877 * COMMENT_DOCUMENTATION
11878 * COMMENT_END_OF_LINE
11879 * CONSTRUCTOR
11880 * DIRECTIVE
11881 * DYNAMIC_TYPE
11882 * DYNAMIC_LOCAL_VARIABLE_DECLARATION
11883 * DYNAMIC_LOCAL_VARIABLE_REFERENCE
11884 * DYNAMIC_PARAMETER_DECLARATION
11885 * DYNAMIC_PARAMETER_REFERENCE
11886 * ENUM
11887 * ENUM_CONSTANT
11888 * FIELD
11889 * FIELD_STATIC
11890 * FUNCTION
11891 * FUNCTION_DECLARATION
11892 * FUNCTION_TYPE_ALIAS
11893 * GETTER_DECLARATION
11894 * IDENTIFIER_DEFAULT
11895 * IMPORT_PREFIX
11896 * INSTANCE_FIELD_DECLARATION
11897 * INSTANCE_FIELD_REFERENCE
11898 * INSTANCE_GETTER_DECLARATION
11899 * INSTANCE_GETTER_REFERENCE
11900 * INSTANCE_METHOD_DECLARATION
11901 * INSTANCE_METHOD_REFERENCE
11902 * INSTANCE_SETTER_DECLARATION
11903 * INSTANCE_SETTER_REFERENCE
11904 * INVALID_STRING_ESCAPE
11905 * KEYWORD
11906 * LABEL
11907 * LIBRARY_NAME
11908 * LITERAL_BOOLEAN
11909 * LITERAL_DOUBLE
11910 * LITERAL_INTEGER
11911 * LITERAL_LIST
11912 * LITERAL_MAP
11913 * LITERAL_STRING
11914 * LOCAL_FUNCTION_DECLARATION
11915 * LOCAL_FUNCTION_REFERENCE
11916 * LOCAL_VARIABLE
11917 * LOCAL_VARIABLE_DECLARATION
11918 * LOCAL_VARIABLE_REFERENCE
11919 * METHOD
11920 * METHOD_DECLARATION
11921 * METHOD_DECLARATION_STATIC
11922 * METHOD_STATIC
11923 * PARAMETER
11924 * SETTER_DECLARATION
11925 * TOP_LEVEL_VARIABLE
11926 * PARAMETER_DECLARATION
11927 * PARAMETER_REFERENCE
11928 * STATIC_FIELD_DECLARATION
11929 * STATIC_GETTER_DECLARATION
11930 * STATIC_GETTER_REFERENCE
11931 * STATIC_METHOD_DECLARATION
11932 * STATIC_METHOD_REFERENCE
11933 * STATIC_SETTER_DECLARATION
11934 * STATIC_SETTER_REFERENCE
11935 * TOP_LEVEL_FUNCTION_DECLARATION
11936 * TOP_LEVEL_FUNCTION_REFERENCE
11937 * TOP_LEVEL_GETTER_DECLARATION
11938 * TOP_LEVEL_GETTER_REFERENCE
11939 * TOP_LEVEL_SETTER_DECLARATION
11940 * TOP_LEVEL_SETTER_REFERENCE
11941 * TOP_LEVEL_VARIABLE_DECLARATION
11942 * TYPE_NAME_DYNAMIC
11943 * TYPE_PARAMETER
11944 * UNRESOLVED_INSTANCE_MEMBER_REFERENCE
11945 * VALID_STRING_ESCAPE
11946 * }
11947 *
11948 * Clients may not extend, implement or mix-in this class.
11949 */
11950 class HighlightRegionType implements Enum {
11951 static const HighlightRegionType ANNOTATION =
11952 const HighlightRegionType._("ANNOTATION");
11953
11954 static const HighlightRegionType BUILT_IN =
11955 const HighlightRegionType._("BUILT_IN");
11956
11957 static const HighlightRegionType CLASS = const HighlightRegionType._("CLASS");
11958
11959 static const HighlightRegionType COMMENT_BLOCK =
11960 const HighlightRegionType._("COMMENT_BLOCK");
11961
11962 static const HighlightRegionType COMMENT_DOCUMENTATION =
11963 const HighlightRegionType._("COMMENT_DOCUMENTATION");
11964
11965 static const HighlightRegionType COMMENT_END_OF_LINE =
11966 const HighlightRegionType._("COMMENT_END_OF_LINE");
11967
11968 static const HighlightRegionType CONSTRUCTOR =
11969 const HighlightRegionType._("CONSTRUCTOR");
11970
11971 static const HighlightRegionType DIRECTIVE =
11972 const HighlightRegionType._("DIRECTIVE");
11973
11974 /**
11975 * Only for version 1 of highlight.
11976 */
11977 static const HighlightRegionType DYNAMIC_TYPE =
11978 const HighlightRegionType._("DYNAMIC_TYPE");
11979
11980 /**
11981 * Only for version 2 of highlight.
11982 */
11983 static const HighlightRegionType DYNAMIC_LOCAL_VARIABLE_DECLARATION =
11984 const HighlightRegionType._("DYNAMIC_LOCAL_VARIABLE_DECLARATION");
11985
11986 /**
11987 * Only for version 2 of highlight.
11988 */
11989 static const HighlightRegionType DYNAMIC_LOCAL_VARIABLE_REFERENCE =
11990 const HighlightRegionType._("DYNAMIC_LOCAL_VARIABLE_REFERENCE");
11991
11992 /**
11993 * Only for version 2 of highlight.
11994 */
11995 static const HighlightRegionType DYNAMIC_PARAMETER_DECLARATION =
11996 const HighlightRegionType._("DYNAMIC_PARAMETER_DECLARATION");
11997
11998 /**
11999 * Only for version 2 of highlight.
12000 */
12001 static const HighlightRegionType DYNAMIC_PARAMETER_REFERENCE =
12002 const HighlightRegionType._("DYNAMIC_PARAMETER_REFERENCE");
12003
12004 static const HighlightRegionType ENUM = const HighlightRegionType._("ENUM");
12005
12006 static const HighlightRegionType ENUM_CONSTANT =
12007 const HighlightRegionType._("ENUM_CONSTANT");
12008
12009 /**
12010 * Only for version 1 of highlight.
12011 */
12012 static const HighlightRegionType FIELD = const HighlightRegionType._("FIELD");
12013
12014 /**
12015 * Only for version 1 of highlight.
12016 */
12017 static const HighlightRegionType FIELD_STATIC =
12018 const HighlightRegionType._("FIELD_STATIC");
12019
12020 /**
12021 * Only for version 1 of highlight.
12022 */
12023 static const HighlightRegionType FUNCTION =
12024 const HighlightRegionType._("FUNCTION");
12025
12026 /**
12027 * Only for version 1 of highlight.
12028 */
12029 static const HighlightRegionType FUNCTION_DECLARATION =
12030 const HighlightRegionType._("FUNCTION_DECLARATION");
12031
12032 static const HighlightRegionType FUNCTION_TYPE_ALIAS =
12033 const HighlightRegionType._("FUNCTION_TYPE_ALIAS");
12034
12035 /**
12036 * Only for version 1 of highlight.
12037 */
12038 static const HighlightRegionType GETTER_DECLARATION =
12039 const HighlightRegionType._("GETTER_DECLARATION");
12040
12041 static const HighlightRegionType IDENTIFIER_DEFAULT =
12042 const HighlightRegionType._("IDENTIFIER_DEFAULT");
12043
12044 static const HighlightRegionType IMPORT_PREFIX =
12045 const HighlightRegionType._("IMPORT_PREFIX");
12046
12047 /**
12048 * Only for version 2 of highlight.
12049 */
12050 static const HighlightRegionType INSTANCE_FIELD_DECLARATION =
12051 const HighlightRegionType._("INSTANCE_FIELD_DECLARATION");
12052
12053 /**
12054 * Only for version 2 of highlight.
12055 */
12056 static const HighlightRegionType INSTANCE_FIELD_REFERENCE =
12057 const HighlightRegionType._("INSTANCE_FIELD_REFERENCE");
12058
12059 /**
12060 * Only for version 2 of highlight.
12061 */
12062 static const HighlightRegionType INSTANCE_GETTER_DECLARATION =
12063 const HighlightRegionType._("INSTANCE_GETTER_DECLARATION");
12064
12065 /**
12066 * Only for version 2 of highlight.
12067 */
12068 static const HighlightRegionType INSTANCE_GETTER_REFERENCE =
12069 const HighlightRegionType._("INSTANCE_GETTER_REFERENCE");
12070
12071 /**
12072 * Only for version 2 of highlight.
12073 */
12074 static const HighlightRegionType INSTANCE_METHOD_DECLARATION =
12075 const HighlightRegionType._("INSTANCE_METHOD_DECLARATION");
12076
12077 /**
12078 * Only for version 2 of highlight.
12079 */
12080 static const HighlightRegionType INSTANCE_METHOD_REFERENCE =
12081 const HighlightRegionType._("INSTANCE_METHOD_REFERENCE");
12082
12083 /**
12084 * Only for version 2 of highlight.
12085 */
12086 static const HighlightRegionType INSTANCE_SETTER_DECLARATION =
12087 const HighlightRegionType._("INSTANCE_SETTER_DECLARATION");
12088
12089 /**
12090 * Only for version 2 of highlight.
12091 */
12092 static const HighlightRegionType INSTANCE_SETTER_REFERENCE =
12093 const HighlightRegionType._("INSTANCE_SETTER_REFERENCE");
12094
12095 /**
12096 * Only for version 2 of highlight.
12097 */
12098 static const HighlightRegionType INVALID_STRING_ESCAPE =
12099 const HighlightRegionType._("INVALID_STRING_ESCAPE");
12100
12101 static const HighlightRegionType KEYWORD =
12102 const HighlightRegionType._("KEYWORD");
12103
12104 static const HighlightRegionType LABEL = const HighlightRegionType._("LABEL");
12105
12106 /**
12107 * Only for version 2 of highlight.
12108 */
12109 static const HighlightRegionType LIBRARY_NAME =
12110 const HighlightRegionType._("LIBRARY_NAME");
12111
12112 static const HighlightRegionType LITERAL_BOOLEAN =
12113 const HighlightRegionType._("LITERAL_BOOLEAN");
12114
12115 static const HighlightRegionType LITERAL_DOUBLE =
12116 const HighlightRegionType._("LITERAL_DOUBLE");
12117
12118 static const HighlightRegionType LITERAL_INTEGER =
12119 const HighlightRegionType._("LITERAL_INTEGER");
12120
12121 static const HighlightRegionType LITERAL_LIST =
12122 const HighlightRegionType._("LITERAL_LIST");
12123
12124 static const HighlightRegionType LITERAL_MAP =
12125 const HighlightRegionType._("LITERAL_MAP");
12126
12127 static const HighlightRegionType LITERAL_STRING =
12128 const HighlightRegionType._("LITERAL_STRING");
12129
12130 /**
12131 * Only for version 2 of highlight.
12132 */
12133 static const HighlightRegionType LOCAL_FUNCTION_DECLARATION =
12134 const HighlightRegionType._("LOCAL_FUNCTION_DECLARATION");
12135
12136 /**
12137 * Only for version 2 of highlight.
12138 */
12139 static const HighlightRegionType LOCAL_FUNCTION_REFERENCE =
12140 const HighlightRegionType._("LOCAL_FUNCTION_REFERENCE");
12141
12142 /**
12143 * Only for version 1 of highlight.
12144 */
12145 static const HighlightRegionType LOCAL_VARIABLE =
12146 const HighlightRegionType._("LOCAL_VARIABLE");
12147
12148 static const HighlightRegionType LOCAL_VARIABLE_DECLARATION =
12149 const HighlightRegionType._("LOCAL_VARIABLE_DECLARATION");
12150
12151 /**
12152 * Only for version 2 of highlight.
12153 */
12154 static const HighlightRegionType LOCAL_VARIABLE_REFERENCE =
12155 const HighlightRegionType._("LOCAL_VARIABLE_REFERENCE");
12156
12157 /**
12158 * Only for version 1 of highlight.
12159 */
12160 static const HighlightRegionType METHOD =
12161 const HighlightRegionType._("METHOD");
12162
12163 /**
12164 * Only for version 1 of highlight.
12165 */
12166 static const HighlightRegionType METHOD_DECLARATION =
12167 const HighlightRegionType._("METHOD_DECLARATION");
12168
12169 /**
12170 * Only for version 1 of highlight.
12171 */
12172 static const HighlightRegionType METHOD_DECLARATION_STATIC =
12173 const HighlightRegionType._("METHOD_DECLARATION_STATIC");
12174
12175 /**
12176 * Only for version 1 of highlight.
12177 */
12178 static const HighlightRegionType METHOD_STATIC =
12179 const HighlightRegionType._("METHOD_STATIC");
12180
12181 /**
12182 * Only for version 1 of highlight.
12183 */
12184 static const HighlightRegionType PARAMETER =
12185 const HighlightRegionType._("PARAMETER");
12186
12187 /**
12188 * Only for version 1 of highlight.
12189 */
12190 static const HighlightRegionType SETTER_DECLARATION =
12191 const HighlightRegionType._("SETTER_DECLARATION");
12192
12193 /**
12194 * Only for version 1 of highlight.
12195 */
12196 static const HighlightRegionType TOP_LEVEL_VARIABLE =
12197 const HighlightRegionType._("TOP_LEVEL_VARIABLE");
12198
12199 /**
12200 * Only for version 2 of highlight.
12201 */
12202 static const HighlightRegionType PARAMETER_DECLARATION =
12203 const HighlightRegionType._("PARAMETER_DECLARATION");
12204
12205 /**
12206 * Only for version 2 of highlight.
12207 */
12208 static const HighlightRegionType PARAMETER_REFERENCE =
12209 const HighlightRegionType._("PARAMETER_REFERENCE");
12210
12211 /**
12212 * Only for version 2 of highlight.
12213 */
12214 static const HighlightRegionType STATIC_FIELD_DECLARATION =
12215 const HighlightRegionType._("STATIC_FIELD_DECLARATION");
12216
12217 /**
12218 * Only for version 2 of highlight.
12219 */
12220 static const HighlightRegionType STATIC_GETTER_DECLARATION =
12221 const HighlightRegionType._("STATIC_GETTER_DECLARATION");
12222
12223 /**
12224 * Only for version 2 of highlight.
12225 */
12226 static const HighlightRegionType STATIC_GETTER_REFERENCE =
12227 const HighlightRegionType._("STATIC_GETTER_REFERENCE");
12228
12229 /**
12230 * Only for version 2 of highlight.
12231 */
12232 static const HighlightRegionType STATIC_METHOD_DECLARATION =
12233 const HighlightRegionType._("STATIC_METHOD_DECLARATION");
12234
12235 /**
12236 * Only for version 2 of highlight.
12237 */
12238 static const HighlightRegionType STATIC_METHOD_REFERENCE =
12239 const HighlightRegionType._("STATIC_METHOD_REFERENCE");
12240
12241 /**
12242 * Only for version 2 of highlight.
12243 */
12244 static const HighlightRegionType STATIC_SETTER_DECLARATION =
12245 const HighlightRegionType._("STATIC_SETTER_DECLARATION");
12246
12247 /**
12248 * Only for version 2 of highlight.
12249 */
12250 static const HighlightRegionType STATIC_SETTER_REFERENCE =
12251 const HighlightRegionType._("STATIC_SETTER_REFERENCE");
12252
12253 /**
12254 * Only for version 2 of highlight.
12255 */
12256 static const HighlightRegionType TOP_LEVEL_FUNCTION_DECLARATION =
12257 const HighlightRegionType._("TOP_LEVEL_FUNCTION_DECLARATION");
12258
12259 /**
12260 * Only for version 2 of highlight.
12261 */
12262 static const HighlightRegionType TOP_LEVEL_FUNCTION_REFERENCE =
12263 const HighlightRegionType._("TOP_LEVEL_FUNCTION_REFERENCE");
12264
12265 /**
12266 * Only for version 2 of highlight.
12267 */
12268 static const HighlightRegionType TOP_LEVEL_GETTER_DECLARATION =
12269 const HighlightRegionType._("TOP_LEVEL_GETTER_DECLARATION");
12270
12271 /**
12272 * Only for version 2 of highlight.
12273 */
12274 static const HighlightRegionType TOP_LEVEL_GETTER_REFERENCE =
12275 const HighlightRegionType._("TOP_LEVEL_GETTER_REFERENCE");
12276
12277 /**
12278 * Only for version 2 of highlight.
12279 */
12280 static const HighlightRegionType TOP_LEVEL_SETTER_DECLARATION =
12281 const HighlightRegionType._("TOP_LEVEL_SETTER_DECLARATION");
12282
12283 /**
12284 * Only for version 2 of highlight.
12285 */
12286 static const HighlightRegionType TOP_LEVEL_SETTER_REFERENCE =
12287 const HighlightRegionType._("TOP_LEVEL_SETTER_REFERENCE");
12288
12289 /**
12290 * Only for version 2 of highlight.
12291 */
12292 static const HighlightRegionType TOP_LEVEL_VARIABLE_DECLARATION =
12293 const HighlightRegionType._("TOP_LEVEL_VARIABLE_DECLARATION");
12294
12295 static const HighlightRegionType TYPE_NAME_DYNAMIC =
12296 const HighlightRegionType._("TYPE_NAME_DYNAMIC");
12297
12298 static const HighlightRegionType TYPE_PARAMETER =
12299 const HighlightRegionType._("TYPE_PARAMETER");
12300
12301 /**
12302 * Only for version 2 of highlight.
12303 */
12304 static const HighlightRegionType UNRESOLVED_INSTANCE_MEMBER_REFERENCE =
12305 const HighlightRegionType._("UNRESOLVED_INSTANCE_MEMBER_REFERENCE");
12306
12307 /**
12308 * Only for version 2 of highlight.
12309 */
12310 static const HighlightRegionType VALID_STRING_ESCAPE =
12311 const HighlightRegionType._("VALID_STRING_ESCAPE");
12312
12313 /**
12314 * A list containing all of the enum values that are defined.
12315 */
12316 static const List<HighlightRegionType> VALUES = const <HighlightRegionType>[
12317 ANNOTATION,
12318 BUILT_IN,
12319 CLASS,
12320 COMMENT_BLOCK,
12321 COMMENT_DOCUMENTATION,
12322 COMMENT_END_OF_LINE,
12323 CONSTRUCTOR,
12324 DIRECTIVE,
12325 DYNAMIC_TYPE,
12326 DYNAMIC_LOCAL_VARIABLE_DECLARATION,
12327 DYNAMIC_LOCAL_VARIABLE_REFERENCE,
12328 DYNAMIC_PARAMETER_DECLARATION,
12329 DYNAMIC_PARAMETER_REFERENCE,
12330 ENUM,
12331 ENUM_CONSTANT,
12332 FIELD,
12333 FIELD_STATIC,
12334 FUNCTION,
12335 FUNCTION_DECLARATION,
12336 FUNCTION_TYPE_ALIAS,
12337 GETTER_DECLARATION,
12338 IDENTIFIER_DEFAULT,
12339 IMPORT_PREFIX,
12340 INSTANCE_FIELD_DECLARATION,
12341 INSTANCE_FIELD_REFERENCE,
12342 INSTANCE_GETTER_DECLARATION,
12343 INSTANCE_GETTER_REFERENCE,
12344 INSTANCE_METHOD_DECLARATION,
12345 INSTANCE_METHOD_REFERENCE,
12346 INSTANCE_SETTER_DECLARATION,
12347 INSTANCE_SETTER_REFERENCE,
12348 INVALID_STRING_ESCAPE,
12349 KEYWORD,
12350 LABEL,
12351 LIBRARY_NAME,
12352 LITERAL_BOOLEAN,
12353 LITERAL_DOUBLE,
12354 LITERAL_INTEGER,
12355 LITERAL_LIST,
12356 LITERAL_MAP,
12357 LITERAL_STRING,
12358 LOCAL_FUNCTION_DECLARATION,
12359 LOCAL_FUNCTION_REFERENCE,
12360 LOCAL_VARIABLE,
12361 LOCAL_VARIABLE_DECLARATION,
12362 LOCAL_VARIABLE_REFERENCE,
12363 METHOD,
12364 METHOD_DECLARATION,
12365 METHOD_DECLARATION_STATIC,
12366 METHOD_STATIC,
12367 PARAMETER,
12368 SETTER_DECLARATION,
12369 TOP_LEVEL_VARIABLE,
12370 PARAMETER_DECLARATION,
12371 PARAMETER_REFERENCE,
12372 STATIC_FIELD_DECLARATION,
12373 STATIC_GETTER_DECLARATION,
12374 STATIC_GETTER_REFERENCE,
12375 STATIC_METHOD_DECLARATION,
12376 STATIC_METHOD_REFERENCE,
12377 STATIC_SETTER_DECLARATION,
12378 STATIC_SETTER_REFERENCE,
12379 TOP_LEVEL_FUNCTION_DECLARATION,
12380 TOP_LEVEL_FUNCTION_REFERENCE,
12381 TOP_LEVEL_GETTER_DECLARATION,
12382 TOP_LEVEL_GETTER_REFERENCE,
12383 TOP_LEVEL_SETTER_DECLARATION,
12384 TOP_LEVEL_SETTER_REFERENCE,
12385 TOP_LEVEL_VARIABLE_DECLARATION,
12386 TYPE_NAME_DYNAMIC,
12387 TYPE_PARAMETER,
12388 UNRESOLVED_INSTANCE_MEMBER_REFERENCE,
12389 VALID_STRING_ESCAPE
12390 ];
12391
12392 final String name;
12393
12394 const HighlightRegionType._(this.name);
12395
12396 factory HighlightRegionType(String name) {
12397 switch (name) {
12398 case "ANNOTATION":
12399 return ANNOTATION;
12400 case "BUILT_IN":
12401 return BUILT_IN;
12402 case "CLASS":
12403 return CLASS;
12404 case "COMMENT_BLOCK":
12405 return COMMENT_BLOCK;
12406 case "COMMENT_DOCUMENTATION":
12407 return COMMENT_DOCUMENTATION;
12408 case "COMMENT_END_OF_LINE":
12409 return COMMENT_END_OF_LINE;
12410 case "CONSTRUCTOR":
12411 return CONSTRUCTOR;
12412 case "DIRECTIVE":
12413 return DIRECTIVE;
12414 case "DYNAMIC_TYPE":
12415 return DYNAMIC_TYPE;
12416 case "DYNAMIC_LOCAL_VARIABLE_DECLARATION":
12417 return DYNAMIC_LOCAL_VARIABLE_DECLARATION;
12418 case "DYNAMIC_LOCAL_VARIABLE_REFERENCE":
12419 return DYNAMIC_LOCAL_VARIABLE_REFERENCE;
12420 case "DYNAMIC_PARAMETER_DECLARATION":
12421 return DYNAMIC_PARAMETER_DECLARATION;
12422 case "DYNAMIC_PARAMETER_REFERENCE":
12423 return DYNAMIC_PARAMETER_REFERENCE;
12424 case "ENUM":
12425 return ENUM;
12426 case "ENUM_CONSTANT":
12427 return ENUM_CONSTANT;
12428 case "FIELD":
12429 return FIELD;
12430 case "FIELD_STATIC":
12431 return FIELD_STATIC;
12432 case "FUNCTION":
12433 return FUNCTION;
12434 case "FUNCTION_DECLARATION":
12435 return FUNCTION_DECLARATION;
12436 case "FUNCTION_TYPE_ALIAS":
12437 return FUNCTION_TYPE_ALIAS;
12438 case "GETTER_DECLARATION":
12439 return GETTER_DECLARATION;
12440 case "IDENTIFIER_DEFAULT":
12441 return IDENTIFIER_DEFAULT;
12442 case "IMPORT_PREFIX":
12443 return IMPORT_PREFIX;
12444 case "INSTANCE_FIELD_DECLARATION":
12445 return INSTANCE_FIELD_DECLARATION;
12446 case "INSTANCE_FIELD_REFERENCE":
12447 return INSTANCE_FIELD_REFERENCE;
12448 case "INSTANCE_GETTER_DECLARATION":
12449 return INSTANCE_GETTER_DECLARATION;
12450 case "INSTANCE_GETTER_REFERENCE":
12451 return INSTANCE_GETTER_REFERENCE;
12452 case "INSTANCE_METHOD_DECLARATION":
12453 return INSTANCE_METHOD_DECLARATION;
12454 case "INSTANCE_METHOD_REFERENCE":
12455 return INSTANCE_METHOD_REFERENCE;
12456 case "INSTANCE_SETTER_DECLARATION":
12457 return INSTANCE_SETTER_DECLARATION;
12458 case "INSTANCE_SETTER_REFERENCE":
12459 return INSTANCE_SETTER_REFERENCE;
12460 case "INVALID_STRING_ESCAPE":
12461 return INVALID_STRING_ESCAPE;
12462 case "KEYWORD":
12463 return KEYWORD;
12464 case "LABEL":
12465 return LABEL;
12466 case "LIBRARY_NAME":
12467 return LIBRARY_NAME;
12468 case "LITERAL_BOOLEAN":
12469 return LITERAL_BOOLEAN;
12470 case "LITERAL_DOUBLE":
12471 return LITERAL_DOUBLE;
12472 case "LITERAL_INTEGER":
12473 return LITERAL_INTEGER;
12474 case "LITERAL_LIST":
12475 return LITERAL_LIST;
12476 case "LITERAL_MAP":
12477 return LITERAL_MAP;
12478 case "LITERAL_STRING":
12479 return LITERAL_STRING;
12480 case "LOCAL_FUNCTION_DECLARATION":
12481 return LOCAL_FUNCTION_DECLARATION;
12482 case "LOCAL_FUNCTION_REFERENCE":
12483 return LOCAL_FUNCTION_REFERENCE;
12484 case "LOCAL_VARIABLE":
12485 return LOCAL_VARIABLE;
12486 case "LOCAL_VARIABLE_DECLARATION":
12487 return LOCAL_VARIABLE_DECLARATION;
12488 case "LOCAL_VARIABLE_REFERENCE":
12489 return LOCAL_VARIABLE_REFERENCE;
12490 case "METHOD":
12491 return METHOD;
12492 case "METHOD_DECLARATION":
12493 return METHOD_DECLARATION;
12494 case "METHOD_DECLARATION_STATIC":
12495 return METHOD_DECLARATION_STATIC;
12496 case "METHOD_STATIC":
12497 return METHOD_STATIC;
12498 case "PARAMETER":
12499 return PARAMETER;
12500 case "SETTER_DECLARATION":
12501 return SETTER_DECLARATION;
12502 case "TOP_LEVEL_VARIABLE":
12503 return TOP_LEVEL_VARIABLE;
12504 case "PARAMETER_DECLARATION":
12505 return PARAMETER_DECLARATION;
12506 case "PARAMETER_REFERENCE":
12507 return PARAMETER_REFERENCE;
12508 case "STATIC_FIELD_DECLARATION":
12509 return STATIC_FIELD_DECLARATION;
12510 case "STATIC_GETTER_DECLARATION":
12511 return STATIC_GETTER_DECLARATION;
12512 case "STATIC_GETTER_REFERENCE":
12513 return STATIC_GETTER_REFERENCE;
12514 case "STATIC_METHOD_DECLARATION":
12515 return STATIC_METHOD_DECLARATION;
12516 case "STATIC_METHOD_REFERENCE":
12517 return STATIC_METHOD_REFERENCE;
12518 case "STATIC_SETTER_DECLARATION":
12519 return STATIC_SETTER_DECLARATION;
12520 case "STATIC_SETTER_REFERENCE":
12521 return STATIC_SETTER_REFERENCE;
12522 case "TOP_LEVEL_FUNCTION_DECLARATION":
12523 return TOP_LEVEL_FUNCTION_DECLARATION;
12524 case "TOP_LEVEL_FUNCTION_REFERENCE":
12525 return TOP_LEVEL_FUNCTION_REFERENCE;
12526 case "TOP_LEVEL_GETTER_DECLARATION":
12527 return TOP_LEVEL_GETTER_DECLARATION;
12528 case "TOP_LEVEL_GETTER_REFERENCE":
12529 return TOP_LEVEL_GETTER_REFERENCE;
12530 case "TOP_LEVEL_SETTER_DECLARATION":
12531 return TOP_LEVEL_SETTER_DECLARATION;
12532 case "TOP_LEVEL_SETTER_REFERENCE":
12533 return TOP_LEVEL_SETTER_REFERENCE;
12534 case "TOP_LEVEL_VARIABLE_DECLARATION":
12535 return TOP_LEVEL_VARIABLE_DECLARATION;
12536 case "TYPE_NAME_DYNAMIC":
12537 return TYPE_NAME_DYNAMIC;
12538 case "TYPE_PARAMETER":
12539 return TYPE_PARAMETER;
12540 case "UNRESOLVED_INSTANCE_MEMBER_REFERENCE":
12541 return UNRESOLVED_INSTANCE_MEMBER_REFERENCE;
12542 case "VALID_STRING_ESCAPE":
12543 return VALID_STRING_ESCAPE;
12544 }
12545 throw new Exception('Illegal enum value: $name');
12546 }
12547
12548 factory HighlightRegionType.fromJson(
12549 JsonDecoder jsonDecoder, String jsonPath, Object json) {
12550 if (json is String) {
12551 try {
12552 return new HighlightRegionType(json);
12553 } catch (_) {
12554 // Fall through
12555 }
12556 }
12557 throw jsonDecoder.mismatch(jsonPath, "HighlightRegionType", json);
12558 }
12559
12560 @override
12561 String toString() => "HighlightRegionType.$name";
12562
12563 String toJson() => name;
12564 }
12565
12566 /**
12567 * HoverInformation
12568 *
12569 * {
12570 * "offset": int
12571 * "length": int
12572 * "containingLibraryPath": optional String
12573 * "containingLibraryName": optional String
12574 * "containingClassDescription": optional String
12575 * "dartdoc": optional String
12576 * "elementDescription": optional String
12577 * "elementKind": optional String
12578 * "isDeprecated": optional bool
12579 * "parameter": optional String
12580 * "propagatedType": optional String
12581 * "staticType": optional String
12582 * }
12583 *
12584 * Clients may not extend, implement or mix-in this class.
12585 */
12586 class HoverInformation implements HasToJson {
12587 int _offset;
12588
12589 int _length;
12590
12591 String _containingLibraryPath;
12592
12593 String _containingLibraryName;
12594
12595 String _containingClassDescription;
12596
12597 String _dartdoc;
12598
12599 String _elementDescription;
12600
12601 String _elementKind;
12602
12603 bool _isDeprecated;
12604
12605 String _parameter;
12606
12607 String _propagatedType;
12608
12609 String _staticType;
12610
12611 /**
12612 * The offset of the range of characters that encompasses the cursor position
12613 * and has the same hover information as the cursor position.
12614 */
12615 int get offset => _offset;
12616
12617 /**
12618 * The offset of the range of characters that encompasses the cursor position
12619 * and has the same hover information as the cursor position.
12620 */
12621 void set offset(int value) {
12622 assert(value != null);
12623 this._offset = value;
12624 }
12625
12626 /**
12627 * The length of the range of characters that encompasses the cursor position
12628 * and has the same hover information as the cursor position.
12629 */
12630 int get length => _length;
12631
12632 /**
12633 * The length of the range of characters that encompasses the cursor position
12634 * and has the same hover information as the cursor position.
12635 */
12636 void set length(int value) {
12637 assert(value != null);
12638 this._length = value;
12639 }
12640
12641 /**
12642 * The path to the defining compilation unit of the library in which the
12643 * referenced element is declared. This data is omitted if there is no
12644 * referenced element, or if the element is declared inside an HTML file.
12645 */
12646 String get containingLibraryPath => _containingLibraryPath;
12647
12648 /**
12649 * The path to the defining compilation unit of the library in which the
12650 * referenced element is declared. This data is omitted if there is no
12651 * referenced element, or if the element is declared inside an HTML file.
12652 */
12653 void set containingLibraryPath(String value) {
12654 this._containingLibraryPath = value;
12655 }
12656
12657 /**
12658 * The name of the library in which the referenced element is declared. This
12659 * data is omitted if there is no referenced element, or if the element is
12660 * declared inside an HTML file.
12661 */
12662 String get containingLibraryName => _containingLibraryName;
12663
12664 /**
12665 * The name of the library in which the referenced element is declared. This
12666 * data is omitted if there is no referenced element, or if the element is
12667 * declared inside an HTML file.
12668 */
12669 void set containingLibraryName(String value) {
12670 this._containingLibraryName = value;
12671 }
12672
12673 /**
12674 * A human-readable description of the class declaring the element being
12675 * referenced. This data is omitted if there is no referenced element, or if
12676 * the element is not a class member.
12677 */
12678 String get containingClassDescription => _containingClassDescription;
12679
12680 /**
12681 * A human-readable description of the class declaring the element being
12682 * referenced. This data is omitted if there is no referenced element, or if
12683 * the element is not a class member.
12684 */
12685 void set containingClassDescription(String value) {
12686 this._containingClassDescription = value;
12687 }
12688
12689 /**
12690 * The dartdoc associated with the referenced element. Other than the removal
12691 * of the comment delimiters, including leading asterisks in the case of a
12692 * block comment, the dartdoc is unprocessed markdown. This data is omitted
12693 * if there is no referenced element, or if the element has no dartdoc.
12694 */
12695 String get dartdoc => _dartdoc;
12696
12697 /**
12698 * The dartdoc associated with the referenced element. Other than the removal
12699 * of the comment delimiters, including leading asterisks in the case of a
12700 * block comment, the dartdoc is unprocessed markdown. This data is omitted
12701 * if there is no referenced element, or if the element has no dartdoc.
12702 */
12703 void set dartdoc(String value) {
12704 this._dartdoc = value;
12705 }
12706
12707 /**
12708 * A human-readable description of the element being referenced. This data is
12709 * omitted if there is no referenced element.
12710 */
12711 String get elementDescription => _elementDescription;
12712
12713 /**
12714 * A human-readable description of the element being referenced. This data is
12715 * omitted if there is no referenced element.
12716 */
12717 void set elementDescription(String value) {
12718 this._elementDescription = value;
12719 }
12720
12721 /**
12722 * A human-readable description of the kind of element being referenced (such
12723 * as "class" or "function type alias"). This data is omitted if there is no
12724 * referenced element.
12725 */
12726 String get elementKind => _elementKind;
12727
12728 /**
12729 * A human-readable description of the kind of element being referenced (such
12730 * as "class" or "function type alias"). This data is omitted if there is no
12731 * referenced element.
12732 */
12733 void set elementKind(String value) {
12734 this._elementKind = value;
12735 }
12736
12737 /**
12738 * True if the referenced element is deprecated.
12739 */
12740 bool get isDeprecated => _isDeprecated;
12741
12742 /**
12743 * True if the referenced element is deprecated.
12744 */
12745 void set isDeprecated(bool value) {
12746 this._isDeprecated = value;
12747 }
12748
12749 /**
12750 * A human-readable description of the parameter corresponding to the
12751 * expression being hovered over. This data is omitted if the location is not
12752 * in an argument to a function.
12753 */
12754 String get parameter => _parameter;
12755
12756 /**
12757 * A human-readable description of the parameter corresponding to the
12758 * expression being hovered over. This data is omitted if the location is not
12759 * in an argument to a function.
12760 */
12761 void set parameter(String value) {
12762 this._parameter = value;
12763 }
12764
12765 /**
12766 * The name of the propagated type of the expression. This data is omitted if
12767 * the location does not correspond to an expression or if there is no
12768 * propagated type information.
12769 */
12770 String get propagatedType => _propagatedType;
12771
12772 /**
12773 * The name of the propagated type of the expression. This data is omitted if
12774 * the location does not correspond to an expression or if there is no
12775 * propagated type information.
12776 */
12777 void set propagatedType(String value) {
12778 this._propagatedType = value;
12779 }
12780
12781 /**
12782 * The name of the static type of the expression. This data is omitted if the
12783 * location does not correspond to an expression.
12784 */
12785 String get staticType => _staticType;
12786
12787 /**
12788 * The name of the static type of the expression. This data is omitted if the
12789 * location does not correspond to an expression.
12790 */
12791 void set staticType(String value) {
12792 this._staticType = value;
12793 }
12794
12795 HoverInformation(int offset, int length,
12796 {String containingLibraryPath,
12797 String containingLibraryName,
12798 String containingClassDescription,
12799 String dartdoc,
12800 String elementDescription,
12801 String elementKind,
12802 bool isDeprecated,
12803 String parameter,
12804 String propagatedType,
12805 String staticType}) {
12806 this.offset = offset;
12807 this.length = length;
12808 this.containingLibraryPath = containingLibraryPath;
12809 this.containingLibraryName = containingLibraryName;
12810 this.containingClassDescription = containingClassDescription;
12811 this.dartdoc = dartdoc;
12812 this.elementDescription = elementDescription;
12813 this.elementKind = elementKind;
12814 this.isDeprecated = isDeprecated;
12815 this.parameter = parameter;
12816 this.propagatedType = propagatedType;
12817 this.staticType = staticType;
12818 }
12819
12820 factory HoverInformation.fromJson(
12821 JsonDecoder jsonDecoder, String jsonPath, Object json) {
12822 if (json == null) {
12823 json = {};
12824 }
12825 if (json is Map) {
12826 int offset;
12827 if (json.containsKey("offset")) {
12828 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
12829 } else {
12830 throw jsonDecoder.missingKey(jsonPath, "offset");
12831 }
12832 int length;
12833 if (json.containsKey("length")) {
12834 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
12835 } else {
12836 throw jsonDecoder.missingKey(jsonPath, "length");
12837 }
12838 String containingLibraryPath;
12839 if (json.containsKey("containingLibraryPath")) {
12840 containingLibraryPath = jsonDecoder.decodeString(
12841 jsonPath + ".containingLibraryPath", json["containingLibraryPath"]);
12842 }
12843 String containingLibraryName;
12844 if (json.containsKey("containingLibraryName")) {
12845 containingLibraryName = jsonDecoder.decodeString(
12846 jsonPath + ".containingLibraryName", json["containingLibraryName"]);
12847 }
12848 String containingClassDescription;
12849 if (json.containsKey("containingClassDescription")) {
12850 containingClassDescription = jsonDecoder.decodeString(
12851 jsonPath + ".containingClassDescription",
12852 json["containingClassDescription"]);
12853 }
12854 String dartdoc;
12855 if (json.containsKey("dartdoc")) {
12856 dartdoc =
12857 jsonDecoder.decodeString(jsonPath + ".dartdoc", json["dartdoc"]);
12858 }
12859 String elementDescription;
12860 if (json.containsKey("elementDescription")) {
12861 elementDescription = jsonDecoder.decodeString(
12862 jsonPath + ".elementDescription", json["elementDescription"]);
12863 }
12864 String elementKind;
12865 if (json.containsKey("elementKind")) {
12866 elementKind = jsonDecoder.decodeString(
12867 jsonPath + ".elementKind", json["elementKind"]);
12868 }
12869 bool isDeprecated;
12870 if (json.containsKey("isDeprecated")) {
12871 isDeprecated = jsonDecoder.decodeBool(
12872 jsonPath + ".isDeprecated", json["isDeprecated"]);
12873 }
12874 String parameter;
12875 if (json.containsKey("parameter")) {
12876 parameter = jsonDecoder.decodeString(
12877 jsonPath + ".parameter", json["parameter"]);
12878 }
12879 String propagatedType;
12880 if (json.containsKey("propagatedType")) {
12881 propagatedType = jsonDecoder.decodeString(
12882 jsonPath + ".propagatedType", json["propagatedType"]);
12883 }
12884 String staticType;
12885 if (json.containsKey("staticType")) {
12886 staticType = jsonDecoder.decodeString(
12887 jsonPath + ".staticType", json["staticType"]);
12888 }
12889 return new HoverInformation(offset, length,
12890 containingLibraryPath: containingLibraryPath,
12891 containingLibraryName: containingLibraryName,
12892 containingClassDescription: containingClassDescription,
12893 dartdoc: dartdoc,
12894 elementDescription: elementDescription,
12895 elementKind: elementKind,
12896 isDeprecated: isDeprecated,
12897 parameter: parameter,
12898 propagatedType: propagatedType,
12899 staticType: staticType);
12900 } else {
12901 throw jsonDecoder.mismatch(jsonPath, "HoverInformation", json);
12902 }
12903 }
12904
12905 Map<String, dynamic> toJson() {
12906 Map<String, dynamic> result = {};
12907 result["offset"] = offset;
12908 result["length"] = length;
12909 if (containingLibraryPath != null) {
12910 result["containingLibraryPath"] = containingLibraryPath;
12911 }
12912 if (containingLibraryName != null) {
12913 result["containingLibraryName"] = containingLibraryName;
12914 }
12915 if (containingClassDescription != null) {
12916 result["containingClassDescription"] = containingClassDescription;
12917 }
12918 if (dartdoc != null) {
12919 result["dartdoc"] = dartdoc;
12920 }
12921 if (elementDescription != null) {
12922 result["elementDescription"] = elementDescription;
12923 }
12924 if (elementKind != null) {
12925 result["elementKind"] = elementKind;
12926 }
12927 if (isDeprecated != null) {
12928 result["isDeprecated"] = isDeprecated;
12929 }
12930 if (parameter != null) {
12931 result["parameter"] = parameter;
12932 }
12933 if (propagatedType != null) {
12934 result["propagatedType"] = propagatedType;
12935 }
12936 if (staticType != null) {
12937 result["staticType"] = staticType;
12938 }
12939 return result;
12940 }
12941
12942 @override
12943 String toString() => JSON.encode(toJson());
12944
12945 @override
12946 bool operator ==(other) {
12947 if (other is HoverInformation) {
12948 return offset == other.offset &&
12949 length == other.length &&
12950 containingLibraryPath == other.containingLibraryPath &&
12951 containingLibraryName == other.containingLibraryName &&
12952 containingClassDescription == other.containingClassDescription &&
12953 dartdoc == other.dartdoc &&
12954 elementDescription == other.elementDescription &&
12955 elementKind == other.elementKind &&
12956 isDeprecated == other.isDeprecated &&
12957 parameter == other.parameter &&
12958 propagatedType == other.propagatedType &&
12959 staticType == other.staticType;
12960 }
12961 return false;
12962 }
12963
12964 @override
12965 int get hashCode {
12966 int hash = 0;
12967 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
12968 hash = JenkinsSmiHash.combine(hash, length.hashCode);
12969 hash = JenkinsSmiHash.combine(hash, containingLibraryPath.hashCode);
12970 hash = JenkinsSmiHash.combine(hash, containingLibraryName.hashCode);
12971 hash = JenkinsSmiHash.combine(hash, containingClassDescription.hashCode);
12972 hash = JenkinsSmiHash.combine(hash, dartdoc.hashCode);
12973 hash = JenkinsSmiHash.combine(hash, elementDescription.hashCode);
12974 hash = JenkinsSmiHash.combine(hash, elementKind.hashCode);
12975 hash = JenkinsSmiHash.combine(hash, isDeprecated.hashCode);
12976 hash = JenkinsSmiHash.combine(hash, parameter.hashCode);
12977 hash = JenkinsSmiHash.combine(hash, propagatedType.hashCode);
12978 hash = JenkinsSmiHash.combine(hash, staticType.hashCode);
12979 return JenkinsSmiHash.finish(hash);
12980 }
12981 }
12982
12983 /**
12984 * ImplementedClass
12985 *
12986 * {
12987 * "offset": int
12988 * "length": int
12989 * }
12990 *
12991 * Clients may not extend, implement or mix-in this class.
12992 */
12993 class ImplementedClass implements HasToJson {
12994 int _offset;
12995
12996 int _length;
12997
12998 /**
12999 * The offset of the name of the implemented class.
13000 */
13001 int get offset => _offset;
13002
13003 /**
13004 * The offset of the name of the implemented class.
13005 */
13006 void set offset(int value) {
13007 assert(value != null);
13008 this._offset = value;
13009 }
13010
13011 /**
13012 * The length of the name of the implemented class.
13013 */
13014 int get length => _length;
13015
13016 /**
13017 * The length of the name of the implemented class.
13018 */
13019 void set length(int value) {
13020 assert(value != null);
13021 this._length = value;
13022 }
13023
13024 ImplementedClass(int offset, int length) {
13025 this.offset = offset;
13026 this.length = length;
13027 }
13028
13029 factory ImplementedClass.fromJson(
13030 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13031 if (json == null) {
13032 json = {};
13033 }
13034 if (json is Map) {
13035 int offset;
13036 if (json.containsKey("offset")) {
13037 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
13038 } else {
13039 throw jsonDecoder.missingKey(jsonPath, "offset");
13040 }
13041 int length;
13042 if (json.containsKey("length")) {
13043 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
13044 } else {
13045 throw jsonDecoder.missingKey(jsonPath, "length");
13046 }
13047 return new ImplementedClass(offset, length);
13048 } else {
13049 throw jsonDecoder.mismatch(jsonPath, "ImplementedClass", json);
13050 }
13051 }
13052
13053 Map<String, dynamic> toJson() {
13054 Map<String, dynamic> result = {};
13055 result["offset"] = offset;
13056 result["length"] = length;
13057 return result;
13058 }
13059
13060 @override
13061 String toString() => JSON.encode(toJson());
13062
13063 @override
13064 bool operator ==(other) {
13065 if (other is ImplementedClass) {
13066 return offset == other.offset && length == other.length;
13067 }
13068 return false;
13069 }
13070
13071 @override
13072 int get hashCode {
13073 int hash = 0;
13074 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
13075 hash = JenkinsSmiHash.combine(hash, length.hashCode);
13076 return JenkinsSmiHash.finish(hash);
13077 }
13078 }
13079
13080 /**
13081 * ImplementedMember
13082 *
13083 * {
13084 * "offset": int
13085 * "length": int
13086 * }
13087 *
13088 * Clients may not extend, implement or mix-in this class.
13089 */
13090 class ImplementedMember implements HasToJson {
13091 int _offset;
13092
13093 int _length;
13094
13095 /**
13096 * The offset of the name of the implemented member.
13097 */
13098 int get offset => _offset;
13099
13100 /**
13101 * The offset of the name of the implemented member.
13102 */
13103 void set offset(int value) {
13104 assert(value != null);
13105 this._offset = value;
13106 }
13107
13108 /**
13109 * The length of the name of the implemented member.
13110 */
13111 int get length => _length;
13112
13113 /**
13114 * The length of the name of the implemented member.
13115 */
13116 void set length(int value) {
13117 assert(value != null);
13118 this._length = value;
13119 }
13120
13121 ImplementedMember(int offset, int length) {
13122 this.offset = offset;
13123 this.length = length;
13124 }
13125
13126 factory ImplementedMember.fromJson(
13127 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13128 if (json == null) {
13129 json = {};
13130 }
13131 if (json is Map) {
13132 int offset;
13133 if (json.containsKey("offset")) {
13134 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
13135 } else {
13136 throw jsonDecoder.missingKey(jsonPath, "offset");
13137 }
13138 int length;
13139 if (json.containsKey("length")) {
13140 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
13141 } else {
13142 throw jsonDecoder.missingKey(jsonPath, "length");
13143 }
13144 return new ImplementedMember(offset, length);
13145 } else {
13146 throw jsonDecoder.mismatch(jsonPath, "ImplementedMember", json);
13147 }
13148 }
13149
13150 Map<String, dynamic> toJson() {
13151 Map<String, dynamic> result = {};
13152 result["offset"] = offset;
13153 result["length"] = length;
13154 return result;
13155 }
13156
13157 @override
13158 String toString() => JSON.encode(toJson());
13159
13160 @override
13161 bool operator ==(other) {
13162 if (other is ImplementedMember) {
13163 return offset == other.offset && length == other.length;
13164 }
13165 return false;
13166 }
13167
13168 @override
13169 int get hashCode {
13170 int hash = 0;
13171 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
13172 hash = JenkinsSmiHash.combine(hash, length.hashCode);
13173 return JenkinsSmiHash.finish(hash);
13174 }
13175 }
13176
13177 /**
13178 * LinkedEditGroup
13179 *
13180 * {
13181 * "positions": List<Position>
13182 * "length": int
13183 * "suggestions": List<LinkedEditSuggestion>
13184 * }
13185 *
13186 * Clients may not extend, implement or mix-in this class.
13187 */
13188 class LinkedEditGroup implements HasToJson {
13189 List<Position> _positions;
13190
13191 int _length;
13192
13193 List<LinkedEditSuggestion> _suggestions;
13194
13195 /**
13196 * The positions of the regions that should be edited simultaneously.
13197 */
13198 List<Position> get positions => _positions;
13199
13200 /**
13201 * The positions of the regions that should be edited simultaneously.
13202 */
13203 void set positions(List<Position> value) {
13204 assert(value != null);
13205 this._positions = value;
13206 }
13207
13208 /**
13209 * The length of the regions that should be edited simultaneously.
13210 */
13211 int get length => _length;
13212
13213 /**
13214 * The length of the regions that should be edited simultaneously.
13215 */
13216 void set length(int value) {
13217 assert(value != null);
13218 this._length = value;
13219 }
13220
13221 /**
13222 * Pre-computed suggestions for what every region might want to be changed
13223 * to.
13224 */
13225 List<LinkedEditSuggestion> get suggestions => _suggestions;
13226
13227 /**
13228 * Pre-computed suggestions for what every region might want to be changed
13229 * to.
13230 */
13231 void set suggestions(List<LinkedEditSuggestion> value) {
13232 assert(value != null);
13233 this._suggestions = value;
13234 }
13235
13236 LinkedEditGroup(List<Position> positions, int length,
13237 List<LinkedEditSuggestion> suggestions) {
13238 this.positions = positions;
13239 this.length = length;
13240 this.suggestions = suggestions;
13241 }
13242
13243 factory LinkedEditGroup.fromJson(
13244 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13245 if (json == null) {
13246 json = {};
13247 }
13248 if (json is Map) {
13249 List<Position> positions;
13250 if (json.containsKey("positions")) {
13251 positions = jsonDecoder.decodeList(
13252 jsonPath + ".positions",
13253 json["positions"],
13254 (String jsonPath, Object json) =>
13255 new Position.fromJson(jsonDecoder, jsonPath, json));
13256 } else {
13257 throw jsonDecoder.missingKey(jsonPath, "positions");
13258 }
13259 int length;
13260 if (json.containsKey("length")) {
13261 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
13262 } else {
13263 throw jsonDecoder.missingKey(jsonPath, "length");
13264 }
13265 List<LinkedEditSuggestion> suggestions;
13266 if (json.containsKey("suggestions")) {
13267 suggestions = jsonDecoder.decodeList(
13268 jsonPath + ".suggestions",
13269 json["suggestions"],
13270 (String jsonPath, Object json) =>
13271 new LinkedEditSuggestion.fromJson(jsonDecoder, jsonPath, json));
13272 } else {
13273 throw jsonDecoder.missingKey(jsonPath, "suggestions");
13274 }
13275 return new LinkedEditGroup(positions, length, suggestions);
13276 } else {
13277 throw jsonDecoder.mismatch(jsonPath, "LinkedEditGroup", json);
13278 }
13279 }
13280
13281 /**
13282 * Construct an empty LinkedEditGroup.
13283 */
13284 LinkedEditGroup.empty() : this(<Position>[], 0, <LinkedEditSuggestion>[]);
13285
13286 Map<String, dynamic> toJson() {
13287 Map<String, dynamic> result = {};
13288 result["positions"] =
13289 positions.map((Position value) => value.toJson()).toList();
13290 result["length"] = length;
13291 result["suggestions"] = suggestions
13292 .map((LinkedEditSuggestion value) => value.toJson())
13293 .toList();
13294 return result;
13295 }
13296
13297 /**
13298 * Add a new position and change the length.
13299 */
13300 void addPosition(Position position, int length) {
13301 positions.add(position);
13302 this.length = length;
13303 }
13304
13305 /**
13306 * Add a new suggestion.
13307 */
13308 void addSuggestion(LinkedEditSuggestion suggestion) {
13309 suggestions.add(suggestion);
13310 }
13311
13312 @override
13313 String toString() => JSON.encode(toJson());
13314
13315 @override
13316 bool operator ==(other) {
13317 if (other is LinkedEditGroup) {
13318 return listEqual(
13319 positions, other.positions, (Position a, Position b) => a == b) &&
13320 length == other.length &&
13321 listEqual(suggestions, other.suggestions,
13322 (LinkedEditSuggestion a, LinkedEditSuggestion b) => a == b);
13323 }
13324 return false;
13325 }
13326
13327 @override
13328 int get hashCode {
13329 int hash = 0;
13330 hash = JenkinsSmiHash.combine(hash, positions.hashCode);
13331 hash = JenkinsSmiHash.combine(hash, length.hashCode);
13332 hash = JenkinsSmiHash.combine(hash, suggestions.hashCode);
13333 return JenkinsSmiHash.finish(hash);
13334 }
13335 }
13336
13337 /**
13338 * LinkedEditSuggestion
13339 *
13340 * {
13341 * "value": String
13342 * "kind": LinkedEditSuggestionKind
13343 * }
13344 *
13345 * Clients may not extend, implement or mix-in this class.
13346 */
13347 class LinkedEditSuggestion implements HasToJson {
13348 String _value;
13349
13350 LinkedEditSuggestionKind _kind;
13351
13352 /**
13353 * The value that could be used to replace all of the linked edit regions.
13354 */
13355 String get value => _value;
13356
13357 /**
13358 * The value that could be used to replace all of the linked edit regions.
13359 */
13360 void set value(String value) {
13361 assert(value != null);
13362 this._value = value;
13363 }
13364
13365 /**
13366 * The kind of value being proposed.
13367 */
13368 LinkedEditSuggestionKind get kind => _kind;
13369
13370 /**
13371 * The kind of value being proposed.
13372 */
13373 void set kind(LinkedEditSuggestionKind value) {
13374 assert(value != null);
13375 this._kind = value;
13376 }
13377
13378 LinkedEditSuggestion(String value, LinkedEditSuggestionKind kind) {
13379 this.value = value;
13380 this.kind = kind;
13381 }
13382
13383 factory LinkedEditSuggestion.fromJson(
13384 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13385 if (json == null) {
13386 json = {};
13387 }
13388 if (json is Map) {
13389 String value;
13390 if (json.containsKey("value")) {
13391 value = jsonDecoder.decodeString(jsonPath + ".value", json["value"]);
13392 } else {
13393 throw jsonDecoder.missingKey(jsonPath, "value");
13394 }
13395 LinkedEditSuggestionKind kind;
13396 if (json.containsKey("kind")) {
13397 kind = new LinkedEditSuggestionKind.fromJson(
13398 jsonDecoder, jsonPath + ".kind", json["kind"]);
13399 } else {
13400 throw jsonDecoder.missingKey(jsonPath, "kind");
13401 }
13402 return new LinkedEditSuggestion(value, kind);
13403 } else {
13404 throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestion", json);
13405 }
13406 }
13407
13408 Map<String, dynamic> toJson() {
13409 Map<String, dynamic> result = {};
13410 result["value"] = value;
13411 result["kind"] = kind.toJson();
13412 return result;
13413 }
13414
13415 @override
13416 String toString() => JSON.encode(toJson());
13417
13418 @override
13419 bool operator ==(other) {
13420 if (other is LinkedEditSuggestion) {
13421 return value == other.value && kind == other.kind;
13422 }
13423 return false;
13424 }
13425
13426 @override
13427 int get hashCode {
13428 int hash = 0;
13429 hash = JenkinsSmiHash.combine(hash, value.hashCode);
13430 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
13431 return JenkinsSmiHash.finish(hash);
13432 }
13433 }
13434
13435 /**
13436 * LinkedEditSuggestionKind
13437 *
13438 * enum {
13439 * METHOD
13440 * PARAMETER
13441 * TYPE
13442 * VARIABLE
13443 * }
13444 *
13445 * Clients may not extend, implement or mix-in this class.
13446 */
13447 class LinkedEditSuggestionKind implements Enum {
13448 static const LinkedEditSuggestionKind METHOD =
13449 const LinkedEditSuggestionKind._("METHOD");
13450
13451 static const LinkedEditSuggestionKind PARAMETER =
13452 const LinkedEditSuggestionKind._("PARAMETER");
13453
13454 static const LinkedEditSuggestionKind TYPE =
13455 const LinkedEditSuggestionKind._("TYPE");
13456
13457 static const LinkedEditSuggestionKind VARIABLE =
13458 const LinkedEditSuggestionKind._("VARIABLE");
13459
13460 /**
13461 * A list containing all of the enum values that are defined.
13462 */
13463 static const List<LinkedEditSuggestionKind> VALUES =
13464 const <LinkedEditSuggestionKind>[METHOD, PARAMETER, TYPE, VARIABLE];
13465
13466 final String name;
13467
13468 const LinkedEditSuggestionKind._(this.name);
13469
13470 factory LinkedEditSuggestionKind(String name) {
13471 switch (name) {
13472 case "METHOD":
13473 return METHOD;
13474 case "PARAMETER":
13475 return PARAMETER;
13476 case "TYPE":
13477 return TYPE;
13478 case "VARIABLE":
13479 return VARIABLE;
13480 }
13481 throw new Exception('Illegal enum value: $name');
13482 }
13483
13484 factory LinkedEditSuggestionKind.fromJson(
13485 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13486 if (json is String) {
13487 try {
13488 return new LinkedEditSuggestionKind(json);
13489 } catch (_) {
13490 // Fall through
13491 }
13492 }
13493 throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestionKind", json);
13494 }
13495
13496 @override
13497 String toString() => "LinkedEditSuggestionKind.$name";
13498
13499 String toJson() => name;
13500 }
13501
13502 /**
13503 * Location
13504 *
13505 * {
13506 * "file": FilePath
13507 * "offset": int
13508 * "length": int
13509 * "startLine": int
13510 * "startColumn": int
13511 * }
13512 *
13513 * Clients may not extend, implement or mix-in this class.
13514 */
13515 class Location implements HasToJson {
13516 String _file;
13517
13518 int _offset;
13519
13520 int _length;
13521
13522 int _startLine;
13523
13524 int _startColumn;
13525
13526 /**
13527 * The file containing the range.
13528 */
13529 String get file => _file;
13530
13531 /**
13532 * The file containing the range.
13533 */
13534 void set file(String value) {
13535 assert(value != null);
13536 this._file = value;
13537 }
13538
13539 /**
13540 * The offset of the range.
13541 */
13542 int get offset => _offset;
13543
13544 /**
13545 * The offset of the range.
13546 */
13547 void set offset(int value) {
13548 assert(value != null);
13549 this._offset = value;
13550 }
13551
13552 /**
13553 * The length of the range.
13554 */
13555 int get length => _length;
13556
13557 /**
13558 * The length of the range.
13559 */
13560 void set length(int value) {
13561 assert(value != null);
13562 this._length = value;
13563 }
13564
13565 /**
13566 * The one-based index of the line containing the first character of the
13567 * range.
13568 */
13569 int get startLine => _startLine;
13570
13571 /**
13572 * The one-based index of the line containing the first character of the
13573 * range.
13574 */
13575 void set startLine(int value) {
13576 assert(value != null);
13577 this._startLine = value;
13578 }
13579
13580 /**
13581 * The one-based index of the column containing the first character of the
13582 * range.
13583 */
13584 int get startColumn => _startColumn;
13585
13586 /**
13587 * The one-based index of the column containing the first character of the
13588 * range.
13589 */
13590 void set startColumn(int value) {
13591 assert(value != null);
13592 this._startColumn = value;
13593 }
13594
13595 Location(
13596 String file, int offset, int length, int startLine, int startColumn) {
13597 this.file = file;
13598 this.offset = offset;
13599 this.length = length;
13600 this.startLine = startLine;
13601 this.startColumn = startColumn;
13602 }
13603
13604 factory Location.fromJson(
13605 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13606 if (json == null) {
13607 json = {};
13608 }
13609 if (json is Map) {
13610 String file;
13611 if (json.containsKey("file")) {
13612 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
13613 } else {
13614 throw jsonDecoder.missingKey(jsonPath, "file");
13615 }
13616 int offset;
13617 if (json.containsKey("offset")) {
13618 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
13619 } else {
13620 throw jsonDecoder.missingKey(jsonPath, "offset");
13621 }
13622 int length;
13623 if (json.containsKey("length")) {
13624 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
13625 } else {
13626 throw jsonDecoder.missingKey(jsonPath, "length");
13627 }
13628 int startLine;
13629 if (json.containsKey("startLine")) {
13630 startLine =
13631 jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLine"]);
13632 } else {
13633 throw jsonDecoder.missingKey(jsonPath, "startLine");
13634 }
13635 int startColumn;
13636 if (json.containsKey("startColumn")) {
13637 startColumn = jsonDecoder.decodeInt(
13638 jsonPath + ".startColumn", json["startColumn"]);
13639 } else {
13640 throw jsonDecoder.missingKey(jsonPath, "startColumn");
13641 }
13642 return new Location(file, offset, length, startLine, startColumn);
13643 } else {
13644 throw jsonDecoder.mismatch(jsonPath, "Location", json);
13645 }
13646 }
13647
13648 Map<String, dynamic> toJson() {
13649 Map<String, dynamic> result = {};
13650 result["file"] = file;
13651 result["offset"] = offset;
13652 result["length"] = length;
13653 result["startLine"] = startLine;
13654 result["startColumn"] = startColumn;
13655 return result;
13656 }
13657
13658 @override
13659 String toString() => JSON.encode(toJson());
13660
13661 @override
13662 bool operator ==(other) {
13663 if (other is Location) {
13664 return file == other.file &&
13665 offset == other.offset &&
13666 length == other.length &&
13667 startLine == other.startLine &&
13668 startColumn == other.startColumn;
13669 }
13670 return false;
13671 }
13672
13673 @override
13674 int get hashCode {
13675 int hash = 0;
13676 hash = JenkinsSmiHash.combine(hash, file.hashCode);
13677 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
13678 hash = JenkinsSmiHash.combine(hash, length.hashCode);
13679 hash = JenkinsSmiHash.combine(hash, startLine.hashCode);
13680 hash = JenkinsSmiHash.combine(hash, startColumn.hashCode);
13681 return JenkinsSmiHash.finish(hash);
13682 }
13683 }
13684
13685 /**
13686 * NavigationRegion
13687 *
13688 * {
13689 * "offset": int
13690 * "length": int
13691 * "targets": List<int>
13692 * }
13693 *
13694 * Clients may not extend, implement or mix-in this class.
13695 */
13696 class NavigationRegion implements HasToJson {
13697 int _offset;
13698
13699 int _length;
13700
13701 List<int> _targets;
13702
13703 /**
13704 * The offset of the region from which the user can navigate.
13705 */
13706 int get offset => _offset;
13707
13708 /**
13709 * The offset of the region from which the user can navigate.
13710 */
13711 void set offset(int value) {
13712 assert(value != null);
13713 this._offset = value;
13714 }
13715
13716 /**
13717 * The length of the region from which the user can navigate.
13718 */
13719 int get length => _length;
13720
13721 /**
13722 * The length of the region from which the user can navigate.
13723 */
13724 void set length(int value) {
13725 assert(value != null);
13726 this._length = value;
13727 }
13728
13729 /**
13730 * The indexes of the targets (in the enclosing navigation response) to which
13731 * the given region is bound. By opening the target, clients can implement
13732 * one form of navigation. This list cannot be empty.
13733 */
13734 List<int> get targets => _targets;
13735
13736 /**
13737 * The indexes of the targets (in the enclosing navigation response) to which
13738 * the given region is bound. By opening the target, clients can implement
13739 * one form of navigation. This list cannot be empty.
13740 */
13741 void set targets(List<int> value) {
13742 assert(value != null);
13743 this._targets = value;
13744 }
13745
13746 NavigationRegion(int offset, int length, List<int> targets) {
13747 this.offset = offset;
13748 this.length = length;
13749 this.targets = targets;
13750 }
13751
13752 factory NavigationRegion.fromJson(
13753 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13754 if (json == null) {
13755 json = {};
13756 }
13757 if (json is Map) {
13758 int offset;
13759 if (json.containsKey("offset")) {
13760 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
13761 } else {
13762 throw jsonDecoder.missingKey(jsonPath, "offset");
13763 }
13764 int length;
13765 if (json.containsKey("length")) {
13766 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
13767 } else {
13768 throw jsonDecoder.missingKey(jsonPath, "length");
13769 }
13770 List<int> targets;
13771 if (json.containsKey("targets")) {
13772 targets = jsonDecoder.decodeList(
13773 jsonPath + ".targets", json["targets"], jsonDecoder.decodeInt);
13774 } else {
13775 throw jsonDecoder.missingKey(jsonPath, "targets");
13776 }
13777 return new NavigationRegion(offset, length, targets);
13778 } else {
13779 throw jsonDecoder.mismatch(jsonPath, "NavigationRegion", json);
13780 }
13781 }
13782
13783 Map<String, dynamic> toJson() {
13784 Map<String, dynamic> result = {};
13785 result["offset"] = offset;
13786 result["length"] = length;
13787 result["targets"] = targets;
13788 return result;
13789 }
13790
13791 @override
13792 String toString() => JSON.encode(toJson());
13793
13794 @override
13795 bool operator ==(other) {
13796 if (other is NavigationRegion) {
13797 return offset == other.offset &&
13798 length == other.length &&
13799 listEqual(targets, other.targets, (int a, int b) => a == b);
13800 }
13801 return false;
13802 }
13803
13804 @override
13805 int get hashCode {
13806 int hash = 0;
13807 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
13808 hash = JenkinsSmiHash.combine(hash, length.hashCode);
13809 hash = JenkinsSmiHash.combine(hash, targets.hashCode);
13810 return JenkinsSmiHash.finish(hash);
13811 }
13812 }
13813
13814 /**
13815 * NavigationTarget
13816 *
13817 * {
13818 * "kind": ElementKind
13819 * "fileIndex": int
13820 * "offset": int
13821 * "length": int
13822 * "startLine": int
13823 * "startColumn": int
13824 * }
13825 *
13826 * Clients may not extend, implement or mix-in this class.
13827 */
13828 class NavigationTarget implements HasToJson {
13829 ElementKind _kind;
13830
13831 int _fileIndex;
13832
13833 int _offset;
13834
13835 int _length;
13836
13837 int _startLine;
13838
13839 int _startColumn;
13840
13841 /**
13842 * The kind of the element.
13843 */
13844 ElementKind get kind => _kind;
13845
13846 /**
13847 * The kind of the element.
13848 */
13849 void set kind(ElementKind value) {
13850 assert(value != null);
13851 this._kind = value;
13852 }
13853
13854 /**
13855 * The index of the file (in the enclosing navigation response) to navigate
13856 * to.
13857 */
13858 int get fileIndex => _fileIndex;
13859
13860 /**
13861 * The index of the file (in the enclosing navigation response) to navigate
13862 * to.
13863 */
13864 void set fileIndex(int value) {
13865 assert(value != null);
13866 this._fileIndex = value;
13867 }
13868
13869 /**
13870 * The offset of the region to which the user can navigate.
13871 */
13872 int get offset => _offset;
13873
13874 /**
13875 * The offset of the region to which the user can navigate.
13876 */
13877 void set offset(int value) {
13878 assert(value != null);
13879 this._offset = value;
13880 }
13881
13882 /**
13883 * The length of the region to which the user can navigate.
13884 */
13885 int get length => _length;
13886
13887 /**
13888 * The length of the region to which the user can navigate.
13889 */
13890 void set length(int value) {
13891 assert(value != null);
13892 this._length = value;
13893 }
13894
13895 /**
13896 * The one-based index of the line containing the first character of the
13897 * region.
13898 */
13899 int get startLine => _startLine;
13900
13901 /**
13902 * The one-based index of the line containing the first character of the
13903 * region.
13904 */
13905 void set startLine(int value) {
13906 assert(value != null);
13907 this._startLine = value;
13908 }
13909
13910 /**
13911 * The one-based index of the column containing the first character of the
13912 * region.
13913 */
13914 int get startColumn => _startColumn;
13915
13916 /**
13917 * The one-based index of the column containing the first character of the
13918 * region.
13919 */
13920 void set startColumn(int value) {
13921 assert(value != null);
13922 this._startColumn = value;
13923 }
13924
13925 NavigationTarget(ElementKind kind, int fileIndex, int offset, int length,
13926 int startLine, int startColumn) {
13927 this.kind = kind;
13928 this.fileIndex = fileIndex;
13929 this.offset = offset;
13930 this.length = length;
13931 this.startLine = startLine;
13932 this.startColumn = startColumn;
13933 }
13934
13935 factory NavigationTarget.fromJson(
13936 JsonDecoder jsonDecoder, String jsonPath, Object json) {
13937 if (json == null) {
13938 json = {};
13939 }
13940 if (json is Map) {
13941 ElementKind kind;
13942 if (json.containsKey("kind")) {
13943 kind = new ElementKind.fromJson(
13944 jsonDecoder, jsonPath + ".kind", json["kind"]);
13945 } else {
13946 throw jsonDecoder.missingKey(jsonPath, "kind");
13947 }
13948 int fileIndex;
13949 if (json.containsKey("fileIndex")) {
13950 fileIndex =
13951 jsonDecoder.decodeInt(jsonPath + ".fileIndex", json["fileIndex"]);
13952 } else {
13953 throw jsonDecoder.missingKey(jsonPath, "fileIndex");
13954 }
13955 int offset;
13956 if (json.containsKey("offset")) {
13957 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
13958 } else {
13959 throw jsonDecoder.missingKey(jsonPath, "offset");
13960 }
13961 int length;
13962 if (json.containsKey("length")) {
13963 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
13964 } else {
13965 throw jsonDecoder.missingKey(jsonPath, "length");
13966 }
13967 int startLine;
13968 if (json.containsKey("startLine")) {
13969 startLine =
13970 jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLine"]);
13971 } else {
13972 throw jsonDecoder.missingKey(jsonPath, "startLine");
13973 }
13974 int startColumn;
13975 if (json.containsKey("startColumn")) {
13976 startColumn = jsonDecoder.decodeInt(
13977 jsonPath + ".startColumn", json["startColumn"]);
13978 } else {
13979 throw jsonDecoder.missingKey(jsonPath, "startColumn");
13980 }
13981 return new NavigationTarget(
13982 kind, fileIndex, offset, length, startLine, startColumn);
13983 } else {
13984 throw jsonDecoder.mismatch(jsonPath, "NavigationTarget", json);
13985 }
13986 }
13987
13988 Map<String, dynamic> toJson() {
13989 Map<String, dynamic> result = {};
13990 result["kind"] = kind.toJson();
13991 result["fileIndex"] = fileIndex;
13992 result["offset"] = offset;
13993 result["length"] = length;
13994 result["startLine"] = startLine;
13995 result["startColumn"] = startColumn;
13996 return result;
13997 }
13998
13999 @override
14000 String toString() => JSON.encode(toJson());
14001
14002 @override
14003 bool operator ==(other) {
14004 if (other is NavigationTarget) {
14005 return kind == other.kind &&
14006 fileIndex == other.fileIndex &&
14007 offset == other.offset &&
14008 length == other.length &&
14009 startLine == other.startLine &&
14010 startColumn == other.startColumn;
14011 }
14012 return false;
14013 }
14014
14015 @override
14016 int get hashCode {
14017 int hash = 0;
14018 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
14019 hash = JenkinsSmiHash.combine(hash, fileIndex.hashCode);
14020 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
14021 hash = JenkinsSmiHash.combine(hash, length.hashCode);
14022 hash = JenkinsSmiHash.combine(hash, startLine.hashCode);
14023 hash = JenkinsSmiHash.combine(hash, startColumn.hashCode);
14024 return JenkinsSmiHash.finish(hash);
14025 }
14026 }
14027
14028 /**
14029 * Occurrences
14030 *
14031 * {
14032 * "element": Element
14033 * "offsets": List<int>
14034 * "length": int
14035 * }
14036 *
14037 * Clients may not extend, implement or mix-in this class.
14038 */
14039 class Occurrences implements HasToJson {
14040 Element _element;
14041
14042 List<int> _offsets;
14043
14044 int _length;
14045
14046 /**
14047 * The element that was referenced.
14048 */
14049 Element get element => _element;
14050
14051 /**
14052 * The element that was referenced.
14053 */
14054 void set element(Element value) {
14055 assert(value != null);
14056 this._element = value;
14057 }
14058
14059 /**
14060 * The offsets of the name of the referenced element within the file.
14061 */
14062 List<int> get offsets => _offsets;
14063
14064 /**
14065 * The offsets of the name of the referenced element within the file.
14066 */
14067 void set offsets(List<int> value) {
14068 assert(value != null);
14069 this._offsets = value;
14070 }
14071
14072 /**
14073 * The length of the name of the referenced element.
14074 */
14075 int get length => _length;
14076
14077 /**
14078 * The length of the name of the referenced element.
14079 */
14080 void set length(int value) {
14081 assert(value != null);
14082 this._length = value;
14083 }
14084
14085 Occurrences(Element element, List<int> offsets, int length) {
14086 this.element = element;
14087 this.offsets = offsets;
14088 this.length = length;
14089 }
14090
14091 factory Occurrences.fromJson(
14092 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14093 if (json == null) {
14094 json = {};
14095 }
14096 if (json is Map) {
14097 Element element;
14098 if (json.containsKey("element")) {
14099 element = new Element.fromJson(
14100 jsonDecoder, jsonPath + ".element", json["element"]);
14101 } else {
14102 throw jsonDecoder.missingKey(jsonPath, "element");
14103 }
14104 List<int> offsets;
14105 if (json.containsKey("offsets")) {
14106 offsets = jsonDecoder.decodeList(
14107 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt);
14108 } else {
14109 throw jsonDecoder.missingKey(jsonPath, "offsets");
14110 }
14111 int length;
14112 if (json.containsKey("length")) {
14113 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
14114 } else {
14115 throw jsonDecoder.missingKey(jsonPath, "length");
14116 }
14117 return new Occurrences(element, offsets, length);
14118 } else {
14119 throw jsonDecoder.mismatch(jsonPath, "Occurrences", json);
14120 }
14121 }
14122
14123 Map<String, dynamic> toJson() {
14124 Map<String, dynamic> result = {};
14125 result["element"] = element.toJson();
14126 result["offsets"] = offsets;
14127 result["length"] = length;
14128 return result;
14129 }
14130
14131 @override
14132 String toString() => JSON.encode(toJson());
14133
14134 @override
14135 bool operator ==(other) {
14136 if (other is Occurrences) {
14137 return element == other.element &&
14138 listEqual(offsets, other.offsets, (int a, int b) => a == b) &&
14139 length == other.length;
14140 }
14141 return false;
14142 }
14143
14144 @override
14145 int get hashCode {
14146 int hash = 0;
14147 hash = JenkinsSmiHash.combine(hash, element.hashCode);
14148 hash = JenkinsSmiHash.combine(hash, offsets.hashCode);
14149 hash = JenkinsSmiHash.combine(hash, length.hashCode);
14150 return JenkinsSmiHash.finish(hash);
14151 }
14152 }
14153
14154 /**
14155 * Outline
14156 *
14157 * {
14158 * "element": Element
14159 * "offset": int
14160 * "length": int
14161 * "children": optional List<Outline>
14162 * }
14163 *
14164 * Clients may not extend, implement or mix-in this class.
14165 */
14166 class Outline implements HasToJson {
14167 Element _element;
14168
14169 int _offset;
14170
14171 int _length;
14172
14173 List<Outline> _children;
14174
14175 /**
14176 * A description of the element represented by this node.
14177 */
14178 Element get element => _element;
14179
14180 /**
14181 * A description of the element represented by this node.
14182 */
14183 void set element(Element value) {
14184 assert(value != null);
14185 this._element = value;
14186 }
14187
14188 /**
14189 * The offset of the first character of the element. This is different than
14190 * the offset in the Element, which if the offset of the name of the element.
14191 * It can be used, for example, to map locations in the file back to an
14192 * outline.
14193 */
14194 int get offset => _offset;
14195
14196 /**
14197 * The offset of the first character of the element. This is different than
14198 * the offset in the Element, which if the offset of the name of the element.
14199 * It can be used, for example, to map locations in the file back to an
14200 * outline.
14201 */
14202 void set offset(int value) {
14203 assert(value != null);
14204 this._offset = value;
14205 }
14206
14207 /**
14208 * The length of the element.
14209 */
14210 int get length => _length;
14211
14212 /**
14213 * The length of the element.
14214 */
14215 void set length(int value) {
14216 assert(value != null);
14217 this._length = value;
14218 }
14219
14220 /**
14221 * The children of the node. The field will be omitted if the node has no
14222 * children.
14223 */
14224 List<Outline> get children => _children;
14225
14226 /**
14227 * The children of the node. The field will be omitted if the node has no
14228 * children.
14229 */
14230 void set children(List<Outline> value) {
14231 this._children = value;
14232 }
14233
14234 Outline(Element element, int offset, int length, {List<Outline> children}) {
14235 this.element = element;
14236 this.offset = offset;
14237 this.length = length;
14238 this.children = children;
14239 }
14240
14241 factory Outline.fromJson(
14242 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14243 if (json == null) {
14244 json = {};
14245 }
14246 if (json is Map) {
14247 Element element;
14248 if (json.containsKey("element")) {
14249 element = new Element.fromJson(
14250 jsonDecoder, jsonPath + ".element", json["element"]);
14251 } else {
14252 throw jsonDecoder.missingKey(jsonPath, "element");
14253 }
14254 int offset;
14255 if (json.containsKey("offset")) {
14256 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
14257 } else {
14258 throw jsonDecoder.missingKey(jsonPath, "offset");
14259 }
14260 int length;
14261 if (json.containsKey("length")) {
14262 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
14263 } else {
14264 throw jsonDecoder.missingKey(jsonPath, "length");
14265 }
14266 List<Outline> children;
14267 if (json.containsKey("children")) {
14268 children = jsonDecoder.decodeList(
14269 jsonPath + ".children",
14270 json["children"],
14271 (String jsonPath, Object json) =>
14272 new Outline.fromJson(jsonDecoder, jsonPath, json));
14273 }
14274 return new Outline(element, offset, length, children: children);
14275 } else {
14276 throw jsonDecoder.mismatch(jsonPath, "Outline", json);
14277 }
14278 }
14279
14280 Map<String, dynamic> toJson() {
14281 Map<String, dynamic> result = {};
14282 result["element"] = element.toJson();
14283 result["offset"] = offset;
14284 result["length"] = length;
14285 if (children != null) {
14286 result["children"] =
14287 children.map((Outline value) => value.toJson()).toList();
14288 }
14289 return result;
14290 }
14291
14292 @override
14293 String toString() => JSON.encode(toJson());
14294
14295 @override
14296 bool operator ==(other) {
14297 if (other is Outline) {
14298 return element == other.element &&
14299 offset == other.offset &&
14300 length == other.length &&
14301 listEqual(children, other.children, (Outline a, Outline b) => a == b);
14302 }
14303 return false;
14304 }
14305
14306 @override
14307 int get hashCode {
14308 int hash = 0;
14309 hash = JenkinsSmiHash.combine(hash, element.hashCode);
14310 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
14311 hash = JenkinsSmiHash.combine(hash, length.hashCode);
14312 hash = JenkinsSmiHash.combine(hash, children.hashCode);
14313 return JenkinsSmiHash.finish(hash);
14314 }
14315 }
14316
14317 /**
14318 * Override
14319 *
14320 * {
14321 * "offset": int
14322 * "length": int
14323 * "superclassMember": optional OverriddenMember
14324 * "interfaceMembers": optional List<OverriddenMember>
14325 * }
14326 *
14327 * Clients may not extend, implement or mix-in this class.
14328 */
14329 class Override implements HasToJson {
14330 int _offset;
14331
14332 int _length;
14333
14334 OverriddenMember _superclassMember;
14335
14336 List<OverriddenMember> _interfaceMembers;
14337
14338 /**
14339 * The offset of the name of the overriding member.
14340 */
14341 int get offset => _offset;
14342
14343 /**
14344 * The offset of the name of the overriding member.
14345 */
14346 void set offset(int value) {
14347 assert(value != null);
14348 this._offset = value;
14349 }
14350
14351 /**
14352 * The length of the name of the overriding member.
14353 */
14354 int get length => _length;
14355
14356 /**
14357 * The length of the name of the overriding member.
14358 */
14359 void set length(int value) {
14360 assert(value != null);
14361 this._length = value;
14362 }
14363
14364 /**
14365 * The member inherited from a superclass that is overridden by the
14366 * overriding member. The field is omitted if there is no superclass member,
14367 * in which case there must be at least one interface member.
14368 */
14369 OverriddenMember get superclassMember => _superclassMember;
14370
14371 /**
14372 * The member inherited from a superclass that is overridden by the
14373 * overriding member. The field is omitted if there is no superclass member,
14374 * in which case there must be at least one interface member.
14375 */
14376 void set superclassMember(OverriddenMember value) {
14377 this._superclassMember = value;
14378 }
14379
14380 /**
14381 * The members inherited from interfaces that are overridden by the
14382 * overriding member. The field is omitted if there are no interface members,
14383 * in which case there must be a superclass member.
14384 */
14385 List<OverriddenMember> get interfaceMembers => _interfaceMembers;
14386
14387 /**
14388 * The members inherited from interfaces that are overridden by the
14389 * overriding member. The field is omitted if there are no interface members,
14390 * in which case there must be a superclass member.
14391 */
14392 void set interfaceMembers(List<OverriddenMember> value) {
14393 this._interfaceMembers = value;
14394 }
14395
14396 Override(int offset, int length,
14397 {OverriddenMember superclassMember,
14398 List<OverriddenMember> interfaceMembers}) {
14399 this.offset = offset;
14400 this.length = length;
14401 this.superclassMember = superclassMember;
14402 this.interfaceMembers = interfaceMembers;
14403 }
14404
14405 factory Override.fromJson(
14406 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14407 if (json == null) {
14408 json = {};
14409 }
14410 if (json is Map) {
14411 int offset;
14412 if (json.containsKey("offset")) {
14413 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
14414 } else {
14415 throw jsonDecoder.missingKey(jsonPath, "offset");
14416 }
14417 int length;
14418 if (json.containsKey("length")) {
14419 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
14420 } else {
14421 throw jsonDecoder.missingKey(jsonPath, "length");
14422 }
14423 OverriddenMember superclassMember;
14424 if (json.containsKey("superclassMember")) {
14425 superclassMember = new OverriddenMember.fromJson(jsonDecoder,
14426 jsonPath + ".superclassMember", json["superclassMember"]);
14427 }
14428 List<OverriddenMember> interfaceMembers;
14429 if (json.containsKey("interfaceMembers")) {
14430 interfaceMembers = jsonDecoder.decodeList(
14431 jsonPath + ".interfaceMembers",
14432 json["interfaceMembers"],
14433 (String jsonPath, Object json) =>
14434 new OverriddenMember.fromJson(jsonDecoder, jsonPath, json));
14435 }
14436 return new Override(offset, length,
14437 superclassMember: superclassMember,
14438 interfaceMembers: interfaceMembers);
14439 } else {
14440 throw jsonDecoder.mismatch(jsonPath, "Override", json);
14441 }
14442 }
14443
14444 Map<String, dynamic> toJson() {
14445 Map<String, dynamic> result = {};
14446 result["offset"] = offset;
14447 result["length"] = length;
14448 if (superclassMember != null) {
14449 result["superclassMember"] = superclassMember.toJson();
14450 }
14451 if (interfaceMembers != null) {
14452 result["interfaceMembers"] = interfaceMembers
14453 .map((OverriddenMember value) => value.toJson())
14454 .toList();
14455 }
14456 return result;
14457 }
14458
14459 @override
14460 String toString() => JSON.encode(toJson());
14461
14462 @override
14463 bool operator ==(other) {
14464 if (other is Override) {
14465 return offset == other.offset &&
14466 length == other.length &&
14467 superclassMember == other.superclassMember &&
14468 listEqual(interfaceMembers, other.interfaceMembers,
14469 (OverriddenMember a, OverriddenMember b) => a == b);
14470 }
14471 return false;
14472 }
14473
14474 @override
14475 int get hashCode {
14476 int hash = 0;
14477 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
14478 hash = JenkinsSmiHash.combine(hash, length.hashCode);
14479 hash = JenkinsSmiHash.combine(hash, superclassMember.hashCode);
14480 hash = JenkinsSmiHash.combine(hash, interfaceMembers.hashCode);
14481 return JenkinsSmiHash.finish(hash);
14482 }
14483 }
14484
14485 /**
14486 * OverriddenMember
14487 *
14488 * {
14489 * "element": Element
14490 * "className": String
14491 * }
14492 *
14493 * Clients may not extend, implement or mix-in this class.
14494 */
14495 class OverriddenMember implements HasToJson {
14496 Element _element;
14497
14498 String _className;
14499
14500 /**
14501 * The element that is being overridden.
14502 */
14503 Element get element => _element;
14504
14505 /**
14506 * The element that is being overridden.
14507 */
14508 void set element(Element value) {
14509 assert(value != null);
14510 this._element = value;
14511 }
14512
14513 /**
14514 * The name of the class in which the member is defined.
14515 */
14516 String get className => _className;
14517
14518 /**
14519 * The name of the class in which the member is defined.
14520 */
14521 void set className(String value) {
14522 assert(value != null);
14523 this._className = value;
14524 }
14525
14526 OverriddenMember(Element element, String className) {
14527 this.element = element;
14528 this.className = className;
14529 }
14530
14531 factory OverriddenMember.fromJson(
14532 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14533 if (json == null) {
14534 json = {};
14535 }
14536 if (json is Map) {
14537 Element element;
14538 if (json.containsKey("element")) {
14539 element = new Element.fromJson(
14540 jsonDecoder, jsonPath + ".element", json["element"]);
14541 } else {
14542 throw jsonDecoder.missingKey(jsonPath, "element");
14543 }
14544 String className;
14545 if (json.containsKey("className")) {
14546 className = jsonDecoder.decodeString(
14547 jsonPath + ".className", json["className"]);
14548 } else {
14549 throw jsonDecoder.missingKey(jsonPath, "className");
14550 }
14551 return new OverriddenMember(element, className);
14552 } else {
14553 throw jsonDecoder.mismatch(jsonPath, "OverriddenMember", json);
14554 }
14555 }
14556
14557 Map<String, dynamic> toJson() {
14558 Map<String, dynamic> result = {};
14559 result["element"] = element.toJson();
14560 result["className"] = className;
14561 return result;
14562 }
14563
14564 @override
14565 String toString() => JSON.encode(toJson());
14566
14567 @override
14568 bool operator ==(other) {
14569 if (other is OverriddenMember) {
14570 return element == other.element && className == other.className;
14571 }
14572 return false;
14573 }
14574
14575 @override
14576 int get hashCode {
14577 int hash = 0;
14578 hash = JenkinsSmiHash.combine(hash, element.hashCode);
14579 hash = JenkinsSmiHash.combine(hash, className.hashCode);
14580 return JenkinsSmiHash.finish(hash);
14581 }
14582 }
14583
14584 /**
14585 * Position
14586 *
14587 * {
14588 * "file": FilePath
14589 * "offset": int
14590 * }
14591 *
14592 * Clients may not extend, implement or mix-in this class.
14593 */
14594 class Position implements HasToJson {
14595 String _file;
14596
14597 int _offset;
14598
14599 /**
14600 * The file containing the position.
14601 */
14602 String get file => _file;
14603
14604 /**
14605 * The file containing the position.
14606 */
14607 void set file(String value) {
14608 assert(value != null);
14609 this._file = value;
14610 }
14611
14612 /**
14613 * The offset of the position.
14614 */
14615 int get offset => _offset;
14616
14617 /**
14618 * The offset of the position.
14619 */
14620 void set offset(int value) {
14621 assert(value != null);
14622 this._offset = value;
14623 }
14624
14625 Position(String file, int offset) {
14626 this.file = file;
14627 this.offset = offset;
14628 }
14629
14630 factory Position.fromJson(
14631 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14632 if (json == null) {
14633 json = {};
14634 }
14635 if (json is Map) {
14636 String file;
14637 if (json.containsKey("file")) {
14638 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
14639 } else {
14640 throw jsonDecoder.missingKey(jsonPath, "file");
14641 }
14642 int offset;
14643 if (json.containsKey("offset")) {
14644 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
14645 } else {
14646 throw jsonDecoder.missingKey(jsonPath, "offset");
14647 }
14648 return new Position(file, offset);
14649 } else {
14650 throw jsonDecoder.mismatch(jsonPath, "Position", json);
14651 }
14652 }
14653
14654 Map<String, dynamic> toJson() {
14655 Map<String, dynamic> result = {};
14656 result["file"] = file;
14657 result["offset"] = offset;
14658 return result;
14659 }
14660
14661 @override
14662 String toString() => JSON.encode(toJson());
14663
14664 @override
14665 bool operator ==(other) {
14666 if (other is Position) {
14667 return file == other.file && offset == other.offset;
14668 }
14669 return false;
14670 }
14671
14672 @override
14673 int get hashCode {
14674 int hash = 0;
14675 hash = JenkinsSmiHash.combine(hash, file.hashCode);
14676 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
14677 return JenkinsSmiHash.finish(hash);
14678 }
14679 }
14680
14681 /**
14682 * PubStatus
14683 *
14684 * {
14685 * "isListingPackageDirs": bool
14686 * }
14687 *
14688 * Clients may not extend, implement or mix-in this class.
14689 */
14690 class PubStatus implements HasToJson {
14691 bool _isListingPackageDirs;
14692
14693 /**
14694 * True if the server is currently running pub to produce a list of package
14695 * directories.
14696 */
14697 bool get isListingPackageDirs => _isListingPackageDirs;
14698
14699 /**
14700 * True if the server is currently running pub to produce a list of package
14701 * directories.
14702 */
14703 void set isListingPackageDirs(bool value) {
14704 assert(value != null);
14705 this._isListingPackageDirs = value;
14706 }
14707
14708 PubStatus(bool isListingPackageDirs) {
14709 this.isListingPackageDirs = isListingPackageDirs;
14710 }
14711
14712 factory PubStatus.fromJson(
14713 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14714 if (json == null) {
14715 json = {};
14716 }
14717 if (json is Map) {
14718 bool isListingPackageDirs;
14719 if (json.containsKey("isListingPackageDirs")) {
14720 isListingPackageDirs = jsonDecoder.decodeBool(
14721 jsonPath + ".isListingPackageDirs", json["isListingPackageDirs"]);
14722 } else {
14723 throw jsonDecoder.missingKey(jsonPath, "isListingPackageDirs");
14724 }
14725 return new PubStatus(isListingPackageDirs);
14726 } else {
14727 throw jsonDecoder.mismatch(jsonPath, "PubStatus", json);
14728 }
14729 }
14730
14731 Map<String, dynamic> toJson() {
14732 Map<String, dynamic> result = {};
14733 result["isListingPackageDirs"] = isListingPackageDirs;
14734 return result;
14735 }
14736
14737 @override
14738 String toString() => JSON.encode(toJson());
14739
14740 @override
14741 bool operator ==(other) {
14742 if (other is PubStatus) {
14743 return isListingPackageDirs == other.isListingPackageDirs;
14744 }
14745 return false;
14746 }
14747
14748 @override
14749 int get hashCode {
14750 int hash = 0;
14751 hash = JenkinsSmiHash.combine(hash, isListingPackageDirs.hashCode);
14752 return JenkinsSmiHash.finish(hash);
14753 }
14754 }
14755
14756 /**
14757 * RefactoringKind
14758 *
14759 * enum {
14760 * CONVERT_GETTER_TO_METHOD
14761 * CONVERT_METHOD_TO_GETTER
14762 * EXTRACT_LOCAL_VARIABLE
14763 * EXTRACT_METHOD
14764 * INLINE_LOCAL_VARIABLE
14765 * INLINE_METHOD
14766 * MOVE_FILE
14767 * RENAME
14768 * SORT_MEMBERS
14769 * }
14770 *
14771 * Clients may not extend, implement or mix-in this class.
14772 */
14773 class RefactoringKind implements Enum {
14774 static const RefactoringKind CONVERT_GETTER_TO_METHOD =
14775 const RefactoringKind._("CONVERT_GETTER_TO_METHOD");
14776
14777 static const RefactoringKind CONVERT_METHOD_TO_GETTER =
14778 const RefactoringKind._("CONVERT_METHOD_TO_GETTER");
14779
14780 static const RefactoringKind EXTRACT_LOCAL_VARIABLE =
14781 const RefactoringKind._("EXTRACT_LOCAL_VARIABLE");
14782
14783 static const RefactoringKind EXTRACT_METHOD =
14784 const RefactoringKind._("EXTRACT_METHOD");
14785
14786 static const RefactoringKind INLINE_LOCAL_VARIABLE =
14787 const RefactoringKind._("INLINE_LOCAL_VARIABLE");
14788
14789 static const RefactoringKind INLINE_METHOD =
14790 const RefactoringKind._("INLINE_METHOD");
14791
14792 static const RefactoringKind MOVE_FILE = const RefactoringKind._("MOVE_FILE");
14793
14794 static const RefactoringKind RENAME = const RefactoringKind._("RENAME");
14795
14796 static const RefactoringKind SORT_MEMBERS =
14797 const RefactoringKind._("SORT_MEMBERS");
14798
14799 /**
14800 * A list containing all of the enum values that are defined.
14801 */
14802 static const List<RefactoringKind> VALUES = const <RefactoringKind>[
14803 CONVERT_GETTER_TO_METHOD,
14804 CONVERT_METHOD_TO_GETTER,
14805 EXTRACT_LOCAL_VARIABLE,
14806 EXTRACT_METHOD,
14807 INLINE_LOCAL_VARIABLE,
14808 INLINE_METHOD,
14809 MOVE_FILE,
14810 RENAME,
14811 SORT_MEMBERS
14812 ];
14813
14814 final String name;
14815
14816 const RefactoringKind._(this.name);
14817
14818 factory RefactoringKind(String name) {
14819 switch (name) {
14820 case "CONVERT_GETTER_TO_METHOD":
14821 return CONVERT_GETTER_TO_METHOD;
14822 case "CONVERT_METHOD_TO_GETTER":
14823 return CONVERT_METHOD_TO_GETTER;
14824 case "EXTRACT_LOCAL_VARIABLE":
14825 return EXTRACT_LOCAL_VARIABLE;
14826 case "EXTRACT_METHOD":
14827 return EXTRACT_METHOD;
14828 case "INLINE_LOCAL_VARIABLE":
14829 return INLINE_LOCAL_VARIABLE;
14830 case "INLINE_METHOD":
14831 return INLINE_METHOD;
14832 case "MOVE_FILE":
14833 return MOVE_FILE;
14834 case "RENAME":
14835 return RENAME;
14836 case "SORT_MEMBERS":
14837 return SORT_MEMBERS;
14838 }
14839 throw new Exception('Illegal enum value: $name');
14840 }
14841
14842 factory RefactoringKind.fromJson(
14843 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14844 if (json is String) {
14845 try {
14846 return new RefactoringKind(json);
14847 } catch (_) {
14848 // Fall through
14849 }
14850 }
14851 throw jsonDecoder.mismatch(jsonPath, "RefactoringKind", json);
14852 }
14853
14854 @override
14855 String toString() => "RefactoringKind.$name";
14856
14857 String toJson() => name;
14858 }
14859
14860 /**
14861 * RefactoringMethodParameter
14862 *
14863 * {
14864 * "id": optional String
14865 * "kind": RefactoringMethodParameterKind
14866 * "type": String
14867 * "name": String
14868 * "parameters": optional String
14869 * }
14870 *
14871 * Clients may not extend, implement or mix-in this class.
14872 */
14873 class RefactoringMethodParameter implements HasToJson {
14874 String _id;
14875
14876 RefactoringMethodParameterKind _kind;
14877
14878 String _type;
14879
14880 String _name;
14881
14882 String _parameters;
14883
14884 /**
14885 * The unique identifier of the parameter. Clients may omit this field for
14886 * the parameters they want to add.
14887 */
14888 String get id => _id;
14889
14890 /**
14891 * The unique identifier of the parameter. Clients may omit this field for
14892 * the parameters they want to add.
14893 */
14894 void set id(String value) {
14895 this._id = value;
14896 }
14897
14898 /**
14899 * The kind of the parameter.
14900 */
14901 RefactoringMethodParameterKind get kind => _kind;
14902
14903 /**
14904 * The kind of the parameter.
14905 */
14906 void set kind(RefactoringMethodParameterKind value) {
14907 assert(value != null);
14908 this._kind = value;
14909 }
14910
14911 /**
14912 * The type that should be given to the parameter, or the return type of the
14913 * parameter's function type.
14914 */
14915 String get type => _type;
14916
14917 /**
14918 * The type that should be given to the parameter, or the return type of the
14919 * parameter's function type.
14920 */
14921 void set type(String value) {
14922 assert(value != null);
14923 this._type = value;
14924 }
14925
14926 /**
14927 * The name that should be given to the parameter.
14928 */
14929 String get name => _name;
14930
14931 /**
14932 * The name that should be given to the parameter.
14933 */
14934 void set name(String value) {
14935 assert(value != null);
14936 this._name = value;
14937 }
14938
14939 /**
14940 * The parameter list of the parameter's function type. If the parameter is
14941 * not of a function type, this field will not be defined. If the function
14942 * type has zero parameters, this field will have a value of "()".
14943 */
14944 String get parameters => _parameters;
14945
14946 /**
14947 * The parameter list of the parameter's function type. If the parameter is
14948 * not of a function type, this field will not be defined. If the function
14949 * type has zero parameters, this field will have a value of "()".
14950 */
14951 void set parameters(String value) {
14952 this._parameters = value;
14953 }
14954
14955 RefactoringMethodParameter(
14956 RefactoringMethodParameterKind kind, String type, String name,
14957 {String id, String parameters}) {
14958 this.id = id;
14959 this.kind = kind;
14960 this.type = type;
14961 this.name = name;
14962 this.parameters = parameters;
14963 }
14964
14965 factory RefactoringMethodParameter.fromJson(
14966 JsonDecoder jsonDecoder, String jsonPath, Object json) {
14967 if (json == null) {
14968 json = {};
14969 }
14970 if (json is Map) {
14971 String id;
14972 if (json.containsKey("id")) {
14973 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
14974 }
14975 RefactoringMethodParameterKind kind;
14976 if (json.containsKey("kind")) {
14977 kind = new RefactoringMethodParameterKind.fromJson(
14978 jsonDecoder, jsonPath + ".kind", json["kind"]);
14979 } else {
14980 throw jsonDecoder.missingKey(jsonPath, "kind");
14981 }
14982 String type;
14983 if (json.containsKey("type")) {
14984 type = jsonDecoder.decodeString(jsonPath + ".type", json["type"]);
14985 } else {
14986 throw jsonDecoder.missingKey(jsonPath, "type");
14987 }
14988 String name;
14989 if (json.containsKey("name")) {
14990 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
14991 } else {
14992 throw jsonDecoder.missingKey(jsonPath, "name");
14993 }
14994 String parameters;
14995 if (json.containsKey("parameters")) {
14996 parameters = jsonDecoder.decodeString(
14997 jsonPath + ".parameters", json["parameters"]);
14998 }
14999 return new RefactoringMethodParameter(kind, type, name,
15000 id: id, parameters: parameters);
15001 } else {
15002 throw jsonDecoder.mismatch(jsonPath, "RefactoringMethodParameter", json);
15003 }
15004 }
15005
15006 Map<String, dynamic> toJson() {
15007 Map<String, dynamic> result = {};
15008 if (id != null) {
15009 result["id"] = id;
15010 }
15011 result["kind"] = kind.toJson();
15012 result["type"] = type;
15013 result["name"] = name;
15014 if (parameters != null) {
15015 result["parameters"] = parameters;
15016 }
15017 return result;
15018 }
15019
15020 @override
15021 String toString() => JSON.encode(toJson());
15022
15023 @override
15024 bool operator ==(other) {
15025 if (other is RefactoringMethodParameter) {
15026 return id == other.id &&
15027 kind == other.kind &&
15028 type == other.type &&
15029 name == other.name &&
15030 parameters == other.parameters;
15031 }
15032 return false;
15033 }
15034
15035 @override
15036 int get hashCode {
15037 int hash = 0;
15038 hash = JenkinsSmiHash.combine(hash, id.hashCode);
15039 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
15040 hash = JenkinsSmiHash.combine(hash, type.hashCode);
15041 hash = JenkinsSmiHash.combine(hash, name.hashCode);
15042 hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
15043 return JenkinsSmiHash.finish(hash);
15044 }
15045 }
15046
15047 /**
15048 * RefactoringFeedback
15049 *
15050 * {
15051 * }
15052 *
15053 * Clients may not extend, implement or mix-in this class.
15054 */
15055 class RefactoringFeedback implements HasToJson {
15056 RefactoringFeedback();
15057
15058 factory RefactoringFeedback.fromJson(
15059 JsonDecoder jsonDecoder, String jsonPath, Object json, Map responseJson) {
15060 return refactoringFeedbackFromJson(
15061 jsonDecoder, jsonPath, json, responseJson);
15062 }
15063
15064 Map<String, dynamic> toJson() {
15065 Map<String, dynamic> result = {};
15066 return result;
15067 }
15068
15069 @override
15070 String toString() => JSON.encode(toJson());
15071
15072 @override
15073 bool operator ==(other) {
15074 if (other is RefactoringFeedback) {
15075 return true;
15076 }
15077 return false;
15078 }
15079
15080 @override
15081 int get hashCode {
15082 int hash = 0;
15083 return JenkinsSmiHash.finish(hash);
15084 }
15085 }
15086
15087 /**
15088 * RefactoringOptions
15089 *
15090 * {
15091 * }
15092 *
15093 * Clients may not extend, implement or mix-in this class.
15094 */
15095 class RefactoringOptions implements HasToJson {
15096 RefactoringOptions();
15097
15098 factory RefactoringOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath,
15099 Object json, RefactoringKind kind) {
15100 return refactoringOptionsFromJson(jsonDecoder, jsonPath, json, kind);
15101 }
15102
15103 Map<String, dynamic> toJson() {
15104 Map<String, dynamic> result = {};
15105 return result;
15106 }
15107
15108 @override
15109 String toString() => JSON.encode(toJson());
15110
15111 @override
15112 bool operator ==(other) {
15113 if (other is RefactoringOptions) {
15114 return true;
15115 }
15116 return false;
15117 }
15118
15119 @override
15120 int get hashCode {
15121 int hash = 0;
15122 return JenkinsSmiHash.finish(hash);
15123 }
15124 }
15125
15126 /**
15127 * RefactoringMethodParameterKind
15128 *
15129 * enum {
15130 * REQUIRED
15131 * POSITIONAL
15132 * NAMED
15133 * }
15134 *
15135 * Clients may not extend, implement or mix-in this class.
15136 */
15137 class RefactoringMethodParameterKind implements Enum {
15138 static const RefactoringMethodParameterKind REQUIRED =
15139 const RefactoringMethodParameterKind._("REQUIRED");
15140
15141 static const RefactoringMethodParameterKind POSITIONAL =
15142 const RefactoringMethodParameterKind._("POSITIONAL");
15143
15144 static const RefactoringMethodParameterKind NAMED =
15145 const RefactoringMethodParameterKind._("NAMED");
15146
15147 /**
15148 * A list containing all of the enum values that are defined.
15149 */
15150 static const List<RefactoringMethodParameterKind> VALUES =
15151 const <RefactoringMethodParameterKind>[REQUIRED, POSITIONAL, NAMED];
15152
15153 final String name;
15154
15155 const RefactoringMethodParameterKind._(this.name);
15156
15157 factory RefactoringMethodParameterKind(String name) {
15158 switch (name) {
15159 case "REQUIRED":
15160 return REQUIRED;
15161 case "POSITIONAL":
15162 return POSITIONAL;
15163 case "NAMED":
15164 return NAMED;
15165 }
15166 throw new Exception('Illegal enum value: $name');
15167 }
15168
15169 factory RefactoringMethodParameterKind.fromJson(
15170 JsonDecoder jsonDecoder, String jsonPath, Object json) {
15171 if (json is String) {
15172 try {
15173 return new RefactoringMethodParameterKind(json);
15174 } catch (_) {
15175 // Fall through
15176 }
15177 }
15178 throw jsonDecoder.mismatch(
15179 jsonPath, "RefactoringMethodParameterKind", json);
15180 }
15181
15182 @override
15183 String toString() => "RefactoringMethodParameterKind.$name";
15184
15185 String toJson() => name;
15186 }
15187
15188 /**
15189 * RefactoringProblem
15190 *
15191 * {
15192 * "severity": RefactoringProblemSeverity
15193 * "message": String
15194 * "location": optional Location
15195 * }
15196 *
15197 * Clients may not extend, implement or mix-in this class.
15198 */
15199 class RefactoringProblem implements HasToJson {
15200 RefactoringProblemSeverity _severity;
15201
15202 String _message;
15203
15204 Location _location;
15205
15206 /**
15207 * The severity of the problem being represented.
15208 */
15209 RefactoringProblemSeverity get severity => _severity;
15210
15211 /**
15212 * The severity of the problem being represented.
15213 */
15214 void set severity(RefactoringProblemSeverity value) {
15215 assert(value != null);
15216 this._severity = value;
15217 }
15218
15219 /**
15220 * A human-readable description of the problem being represented.
15221 */
15222 String get message => _message;
15223
15224 /**
15225 * A human-readable description of the problem being represented.
15226 */
15227 void set message(String value) {
15228 assert(value != null);
15229 this._message = value;
15230 }
15231
15232 /**
15233 * The location of the problem being represented. This field is omitted
15234 * unless there is a specific location associated with the problem (such as a
15235 * location where an element being renamed will be shadowed).
15236 */
15237 Location get location => _location;
15238
15239 /**
15240 * The location of the problem being represented. This field is omitted
15241 * unless there is a specific location associated with the problem (such as a
15242 * location where an element being renamed will be shadowed).
15243 */
15244 void set location(Location value) {
15245 this._location = value;
15246 }
15247
15248 RefactoringProblem(RefactoringProblemSeverity severity, String message,
15249 {Location location}) {
15250 this.severity = severity;
15251 this.message = message;
15252 this.location = location;
15253 }
15254
15255 factory RefactoringProblem.fromJson(
15256 JsonDecoder jsonDecoder, String jsonPath, Object json) {
15257 if (json == null) {
15258 json = {};
15259 }
15260 if (json is Map) {
15261 RefactoringProblemSeverity severity;
15262 if (json.containsKey("severity")) {
15263 severity = new RefactoringProblemSeverity.fromJson(
15264 jsonDecoder, jsonPath + ".severity", json["severity"]);
15265 } else {
15266 throw jsonDecoder.missingKey(jsonPath, "severity");
15267 }
15268 String message;
15269 if (json.containsKey("message")) {
15270 message =
15271 jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
15272 } else {
15273 throw jsonDecoder.missingKey(jsonPath, "message");
15274 }
15275 Location location;
15276 if (json.containsKey("location")) {
15277 location = new Location.fromJson(
15278 jsonDecoder, jsonPath + ".location", json["location"]);
15279 }
15280 return new RefactoringProblem(severity, message, location: location);
15281 } else {
15282 throw jsonDecoder.mismatch(jsonPath, "RefactoringProblem", json);
15283 }
15284 }
15285
15286 Map<String, dynamic> toJson() {
15287 Map<String, dynamic> result = {};
15288 result["severity"] = severity.toJson();
15289 result["message"] = message;
15290 if (location != null) {
15291 result["location"] = location.toJson();
15292 }
15293 return result;
15294 }
15295
15296 @override
15297 String toString() => JSON.encode(toJson());
15298
15299 @override
15300 bool operator ==(other) {
15301 if (other is RefactoringProblem) {
15302 return severity == other.severity &&
15303 message == other.message &&
15304 location == other.location;
15305 }
15306 return false;
15307 }
15308
15309 @override
15310 int get hashCode {
15311 int hash = 0;
15312 hash = JenkinsSmiHash.combine(hash, severity.hashCode);
15313 hash = JenkinsSmiHash.combine(hash, message.hashCode);
15314 hash = JenkinsSmiHash.combine(hash, location.hashCode);
15315 return JenkinsSmiHash.finish(hash);
15316 }
15317 }
15318
15319 /**
15320 * RefactoringProblemSeverity
15321 *
15322 * enum {
15323 * INFO
15324 * WARNING
15325 * ERROR
15326 * FATAL
15327 * }
15328 *
15329 * Clients may not extend, implement or mix-in this class.
15330 */
15331 class RefactoringProblemSeverity implements Enum {
15332 /**
15333 * A minor code problem. No example, because it is not used yet.
15334 */
15335 static const RefactoringProblemSeverity INFO =
15336 const RefactoringProblemSeverity._("INFO");
15337
15338 /**
15339 * A minor code problem. For example names of local variables should be camel
15340 * case and start with a lower case letter. Staring the name of a variable
15341 * with an upper case is OK from the language point of view, but it is nice
15342 * to warn the user.
15343 */
15344 static const RefactoringProblemSeverity WARNING =
15345 const RefactoringProblemSeverity._("WARNING");
15346
15347 /**
15348 * The refactoring technically can be performed, but there is a logical
15349 * problem. For example the name of a local variable being extracted
15350 * conflicts with another name in the scope, or duplicate parameter names in
15351 * the method being extracted, or a conflict between a parameter name and a
15352 * local variable, etc. In some cases the location of the problem is also
15353 * provided, so the IDE can show user the location and the problem, and let
15354 * the user decide whether she wants to perform the refactoring. For example
15355 * the name conflict might be expected, and the user wants to fix it
15356 * afterwards.
15357 */
15358 static const RefactoringProblemSeverity ERROR =
15359 const RefactoringProblemSeverity._("ERROR");
15360
15361 /**
15362 * A fatal error, which prevents performing the refactoring. For example the
15363 * name of a local variable being extracted is not a valid identifier, or
15364 * selection is not a valid expression.
15365 */
15366 static const RefactoringProblemSeverity FATAL =
15367 const RefactoringProblemSeverity._("FATAL");
15368
15369 /**
15370 * A list containing all of the enum values that are defined.
15371 */
15372 static const List<RefactoringProblemSeverity> VALUES =
15373 const <RefactoringProblemSeverity>[INFO, WARNING, ERROR, FATAL];
15374
15375 final String name;
15376
15377 const RefactoringProblemSeverity._(this.name);
15378
15379 factory RefactoringProblemSeverity(String name) {
15380 switch (name) {
15381 case "INFO":
15382 return INFO;
15383 case "WARNING":
15384 return WARNING;
15385 case "ERROR":
15386 return ERROR;
15387 case "FATAL":
15388 return FATAL;
15389 }
15390 throw new Exception('Illegal enum value: $name');
15391 }
15392
15393 factory RefactoringProblemSeverity.fromJson(
15394 JsonDecoder jsonDecoder, String jsonPath, Object json) {
15395 if (json is String) {
15396 try {
15397 return new RefactoringProblemSeverity(json);
15398 } catch (_) {
15399 // Fall through
15400 }
15401 }
15402 throw jsonDecoder.mismatch(jsonPath, "RefactoringProblemSeverity", json);
15403 }
15404
15405 /**
15406 * Returns the [RefactoringProblemSeverity] with the maximal severity.
15407 */
15408 static RefactoringProblemSeverity max(
15409 RefactoringProblemSeverity a, RefactoringProblemSeverity b) =>
15410 maxRefactoringProblemSeverity(a, b);
15411
15412 @override
15413 String toString() => "RefactoringProblemSeverity.$name";
15414
15415 String toJson() => name;
15416 }
15417
15418 /**
15419 * RemoveContentOverlay
15420 *
15421 * {
15422 * "type": "remove"
15423 * }
15424 *
15425 * Clients may not extend, implement or mix-in this class.
15426 */
15427 class RemoveContentOverlay implements HasToJson {
15428 RemoveContentOverlay();
15429
15430 factory RemoveContentOverlay.fromJson(
15431 JsonDecoder jsonDecoder, String jsonPath, Object json) {
15432 if (json == null) {
15433 json = {};
15434 }
15435 if (json is Map) {
15436 if (json["type"] != "remove") {
15437 throw jsonDecoder.mismatch(jsonPath, "equal " + "remove", json);
15438 }
15439 return new RemoveContentOverlay();
15440 } else {
15441 throw jsonDecoder.mismatch(jsonPath, "RemoveContentOverlay", json);
15442 }
15443 }
15444
15445 Map<String, dynamic> toJson() {
15446 Map<String, dynamic> result = {};
15447 result["type"] = "remove";
15448 return result;
15449 }
15450
15451 @override
15452 String toString() => JSON.encode(toJson());
15453
15454 @override
15455 bool operator ==(other) {
15456 if (other is RemoveContentOverlay) {
15457 return true;
15458 }
15459 return false;
15460 }
15461
15462 @override
15463 int get hashCode {
15464 int hash = 0;
15465 hash = JenkinsSmiHash.combine(hash, 114870849);
15466 return JenkinsSmiHash.finish(hash);
15467 }
15468 }
15469
15470 /**
15471 * RequestError
15472 *
15473 * {
15474 * "code": RequestErrorCode
15475 * "message": String
15476 * "stackTrace": optional String
15477 * }
15478 *
15479 * Clients may not extend, implement or mix-in this class.
15480 */
15481 class RequestError implements HasToJson {
15482 RequestErrorCode _code;
15483
15484 String _message;
15485
15486 String _stackTrace;
15487
15488 /**
15489 * A code that uniquely identifies the error that occurred.
15490 */
15491 RequestErrorCode get code => _code;
15492
15493 /**
15494 * A code that uniquely identifies the error that occurred.
15495 */
15496 void set code(RequestErrorCode value) {
15497 assert(value != null);
15498 this._code = value;
15499 }
15500
15501 /**
15502 * A short description of the error.
15503 */
15504 String get message => _message;
15505
15506 /**
15507 * A short description of the error.
15508 */
15509 void set message(String value) {
15510 assert(value != null);
15511 this._message = value;
15512 }
15513
15514 /**
15515 * The stack trace associated with processing the request, used for debugging
15516 * the server.
15517 */
15518 String get stackTrace => _stackTrace;
15519
15520 /**
15521 * The stack trace associated with processing the request, used for debugging
15522 * the server.
15523 */
15524 void set stackTrace(String value) {
15525 this._stackTrace = value;
15526 }
15527
15528 RequestError(RequestErrorCode code, String message, {String stackTrace}) {
15529 this.code = code;
15530 this.message = message;
15531 this.stackTrace = stackTrace;
15532 }
15533
15534 factory RequestError.fromJson(
15535 JsonDecoder jsonDecoder, String jsonPath, Object json) {
15536 if (json == null) {
15537 json = {};
15538 }
15539 if (json is Map) {
15540 RequestErrorCode code;
15541 if (json.containsKey("code")) {
15542 code = new RequestErrorCode.fromJson(
15543 jsonDecoder, jsonPath + ".code", json["code"]);
15544 } else {
15545 throw jsonDecoder.missingKey(jsonPath, "code");
15546 }
15547 String message;
15548 if (json.containsKey("message")) {
15549 message =
15550 jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
15551 } else {
15552 throw jsonDecoder.missingKey(jsonPath, "message");
15553 }
15554 String stackTrace;
15555 if (json.containsKey("stackTrace")) {
15556 stackTrace = jsonDecoder.decodeString(
15557 jsonPath + ".stackTrace", json["stackTrace"]);
15558 }
15559 return new RequestError(code, message, stackTrace: stackTrace);
15560 } else {
15561 throw jsonDecoder.mismatch(jsonPath, "RequestError", json);
15562 }
15563 }
15564
15565 Map<String, dynamic> toJson() {
15566 Map<String, dynamic> result = {};
15567 result["code"] = code.toJson();
15568 result["message"] = message;
15569 if (stackTrace != null) {
15570 result["stackTrace"] = stackTrace;
15571 }
15572 return result;
15573 }
15574
15575 @override
15576 String toString() => JSON.encode(toJson());
15577
15578 @override
15579 bool operator ==(other) {
15580 if (other is RequestError) {
15581 return code == other.code &&
15582 message == other.message &&
15583 stackTrace == other.stackTrace;
15584 }
15585 return false;
15586 }
15587
15588 @override
15589 int get hashCode {
15590 int hash = 0;
15591 hash = JenkinsSmiHash.combine(hash, code.hashCode);
15592 hash = JenkinsSmiHash.combine(hash, message.hashCode);
15593 hash = JenkinsSmiHash.combine(hash, stackTrace.hashCode);
15594 return JenkinsSmiHash.finish(hash);
15595 }
15596 }
15597
15598 /**
15599 * RequestErrorCode
15600 *
15601 * enum {
15602 * CONTENT_MODIFIED
15603 * DEBUG_PORT_COULD_NOT_BE_OPENED
15604 * FILE_NOT_ANALYZED
15605 * FORMAT_INVALID_FILE
15606 * FORMAT_WITH_ERRORS
15607 * GET_ERRORS_INVALID_FILE
15608 * GET_NAVIGATION_INVALID_FILE
15609 * GET_REACHABLE_SOURCES_INVALID_FILE
15610 * INVALID_ANALYSIS_ROOT
15611 * INVALID_EXECUTION_CONTEXT
15612 * INVALID_FILE_PATH_FORMAT
15613 * INVALID_OVERLAY_CHANGE
15614 * INVALID_PARAMETER
15615 * INVALID_REQUEST
15616 * NO_INDEX_GENERATED
15617 * ORGANIZE_DIRECTIVES_ERROR
15618 * REFACTORING_REQUEST_CANCELLED
15619 * SERVER_ALREADY_STARTED
15620 * SERVER_ERROR
15621 * SORT_MEMBERS_INVALID_FILE
15622 * SORT_MEMBERS_PARSE_ERRORS
15623 * UNANALYZED_PRIORITY_FILES
15624 * UNKNOWN_REQUEST
15625 * UNKNOWN_SOURCE
15626 * UNSUPPORTED_FEATURE
15627 * }
15628 *
15629 * Clients may not extend, implement or mix-in this class.
15630 */
15631 class RequestErrorCode implements Enum {
15632 /**
15633 * An "analysis.getErrors" or "analysis.getNavigation" request could not be
15634 * satisfied because the content of the file changed before the requested
15635 * results could be computed.
15636 */
15637 static const RequestErrorCode CONTENT_MODIFIED =
15638 const RequestErrorCode._("CONTENT_MODIFIED");
15639
15640 /**
15641 * The server was unable to open a port for the diagnostic server.
15642 */
15643 static const RequestErrorCode DEBUG_PORT_COULD_NOT_BE_OPENED =
15644 const RequestErrorCode._("DEBUG_PORT_COULD_NOT_BE_OPENED");
15645
15646 /**
15647 * A request specified a FilePath which does not match a file in an analysis
15648 * root, or the requested operation is not available for the file.
15649 */
15650 static const RequestErrorCode FILE_NOT_ANALYZED =
15651 const RequestErrorCode._("FILE_NOT_ANALYZED");
15652
15653 /**
15654 * An "edit.format" request specified a FilePath which does not match a Dart
15655 * file in an analysis root.
15656 */
15657 static const RequestErrorCode FORMAT_INVALID_FILE =
15658 const RequestErrorCode._("FORMAT_INVALID_FILE");
15659
15660 /**
15661 * An "edit.format" request specified a file that contains syntax errors.
15662 */
15663 static const RequestErrorCode FORMAT_WITH_ERRORS =
15664 const RequestErrorCode._("FORMAT_WITH_ERRORS");
15665
15666 /**
15667 * An "analysis.getErrors" request specified a FilePath which does not match
15668 * a file currently subject to analysis.
15669 */
15670 static const RequestErrorCode GET_ERRORS_INVALID_FILE =
15671 const RequestErrorCode._("GET_ERRORS_INVALID_FILE");
15672
15673 /**
15674 * An "analysis.getNavigation" request specified a FilePath which does not
15675 * match a file currently subject to analysis.
15676 */
15677 static const RequestErrorCode GET_NAVIGATION_INVALID_FILE =
15678 const RequestErrorCode._("GET_NAVIGATION_INVALID_FILE");
15679
15680 /**
15681 * An "analysis.getReachableSources" request specified a FilePath which does
15682 * not match a file currently subject to analysis.
15683 */
15684 static const RequestErrorCode GET_REACHABLE_SOURCES_INVALID_FILE =
15685 const RequestErrorCode._("GET_REACHABLE_SOURCES_INVALID_FILE");
15686
15687 /**
15688 * A path passed as an argument to a request (such as analysis.reanalyze) is
15689 * required to be an analysis root, but isn't.
15690 */
15691 static const RequestErrorCode INVALID_ANALYSIS_ROOT =
15692 const RequestErrorCode._("INVALID_ANALYSIS_ROOT");
15693
15694 /**
15695 * The context root used to create an execution context does not exist.
15696 */
15697 static const RequestErrorCode INVALID_EXECUTION_CONTEXT =
15698 const RequestErrorCode._("INVALID_EXECUTION_CONTEXT");
15699
15700 /**
15701 * The format of the given file path is invalid, e.g. is not absolute and
15702 * normalized.
15703 */
15704 static const RequestErrorCode INVALID_FILE_PATH_FORMAT =
15705 const RequestErrorCode._("INVALID_FILE_PATH_FORMAT");
15706
15707 /**
15708 * An "analysis.updateContent" request contained a ChangeContentOverlay
15709 * object which can't be applied, due to an edit having an offset or length
15710 * that is out of range.
15711 */
15712 static const RequestErrorCode INVALID_OVERLAY_CHANGE =
15713 const RequestErrorCode._("INVALID_OVERLAY_CHANGE");
15714
15715 /**
15716 * One of the method parameters was invalid.
15717 */
15718 static const RequestErrorCode INVALID_PARAMETER =
15719 const RequestErrorCode._("INVALID_PARAMETER");
15720
15721 /**
15722 * A malformed request was received.
15723 */
15724 static const RequestErrorCode INVALID_REQUEST =
15725 const RequestErrorCode._("INVALID_REQUEST");
15726
15727 /**
15728 * The "--no-index" flag was passed when the analysis server created, but
15729 * this API call requires an index to have been generated.
15730 */
15731 static const RequestErrorCode NO_INDEX_GENERATED =
15732 const RequestErrorCode._("NO_INDEX_GENERATED");
15733
15734 /**
15735 * An "edit.organizeDirectives" request specified a Dart file that cannot be
15736 * analyzed. The reason is described in the message.
15737 */
15738 static const RequestErrorCode ORGANIZE_DIRECTIVES_ERROR =
15739 const RequestErrorCode._("ORGANIZE_DIRECTIVES_ERROR");
15740
15741 /**
15742 * Another refactoring request was received during processing of this one.
15743 */
15744 static const RequestErrorCode REFACTORING_REQUEST_CANCELLED =
15745 const RequestErrorCode._("REFACTORING_REQUEST_CANCELLED");
15746
15747 /**
15748 * The analysis server has already been started (and hence won't accept new
15749 * connections).
15750 *
15751 * This error is included for future expansion; at present the analysis
15752 * server can only speak to one client at a time so this error will never
15753 * occur.
15754 */
15755 static const RequestErrorCode SERVER_ALREADY_STARTED =
15756 const RequestErrorCode._("SERVER_ALREADY_STARTED");
15757
15758 /**
15759 * An internal error occurred in the analysis server. Also see the
15760 * server.error notification.
15761 */
15762 static const RequestErrorCode SERVER_ERROR =
15763 const RequestErrorCode._("SERVER_ERROR");
15764
15765 /**
15766 * An "edit.sortMembers" request specified a FilePath which does not match a
15767 * Dart file in an analysis root.
15768 */
15769 static const RequestErrorCode SORT_MEMBERS_INVALID_FILE =
15770 const RequestErrorCode._("SORT_MEMBERS_INVALID_FILE");
15771
15772 /**
15773 * An "edit.sortMembers" request specified a Dart file that has scan or parse
15774 * errors.
15775 */
15776 static const RequestErrorCode SORT_MEMBERS_PARSE_ERRORS =
15777 const RequestErrorCode._("SORT_MEMBERS_PARSE_ERRORS");
15778
15779 /**
15780 * An "analysis.setPriorityFiles" request includes one or more files that are
15781 * not being analyzed.
15782 *
15783 * This is a legacy error; it will be removed before the API reaches version
15784 * 1.0.
15785 */
15786 static const RequestErrorCode UNANALYZED_PRIORITY_FILES =
15787 const RequestErrorCode._("UNANALYZED_PRIORITY_FILES");
15788
15789 /**
15790 * A request was received which the analysis server does not recognize, or
15791 * cannot handle in its current configuration.
15792 */
15793 static const RequestErrorCode UNKNOWN_REQUEST =
15794 const RequestErrorCode._("UNKNOWN_REQUEST");
15795
15796 /**
15797 * The analysis server was requested to perform an action on a source that
15798 * does not exist.
15799 */
15800 static const RequestErrorCode UNKNOWN_SOURCE =
15801 const RequestErrorCode._("UNKNOWN_SOURCE");
15802
15803 /**
15804 * The analysis server was requested to perform an action which is not
15805 * supported.
15806 *
15807 * This is a legacy error; it will be removed before the API reaches version
15808 * 1.0.
15809 */
15810 static const RequestErrorCode UNSUPPORTED_FEATURE =
15811 const RequestErrorCode._("UNSUPPORTED_FEATURE");
15812
15813 /**
15814 * A list containing all of the enum values that are defined.
15815 */
15816 static const List<RequestErrorCode> VALUES = const <RequestErrorCode>[
15817 CONTENT_MODIFIED,
15818 DEBUG_PORT_COULD_NOT_BE_OPENED,
15819 FILE_NOT_ANALYZED,
15820 FORMAT_INVALID_FILE,
15821 FORMAT_WITH_ERRORS,
15822 GET_ERRORS_INVALID_FILE,
15823 GET_NAVIGATION_INVALID_FILE,
15824 GET_REACHABLE_SOURCES_INVALID_FILE,
15825 INVALID_ANALYSIS_ROOT,
15826 INVALID_EXECUTION_CONTEXT,
15827 INVALID_FILE_PATH_FORMAT,
15828 INVALID_OVERLAY_CHANGE,
15829 INVALID_PARAMETER,
15830 INVALID_REQUEST,
15831 NO_INDEX_GENERATED,
15832 ORGANIZE_DIRECTIVES_ERROR,
15833 REFACTORING_REQUEST_CANCELLED,
15834 SERVER_ALREADY_STARTED,
15835 SERVER_ERROR,
15836 SORT_MEMBERS_INVALID_FILE,
15837 SORT_MEMBERS_PARSE_ERRORS,
15838 UNANALYZED_PRIORITY_FILES,
15839 UNKNOWN_REQUEST,
15840 UNKNOWN_SOURCE,
15841 UNSUPPORTED_FEATURE
15842 ];
15843
15844 final String name;
15845
15846 const RequestErrorCode._(this.name);
15847
15848 factory RequestErrorCode(String name) {
15849 switch (name) {
15850 case "CONTENT_MODIFIED":
15851 return CONTENT_MODIFIED;
15852 case "DEBUG_PORT_COULD_NOT_BE_OPENED":
15853 return DEBUG_PORT_COULD_NOT_BE_OPENED;
15854 case "FILE_NOT_ANALYZED":
15855 return FILE_NOT_ANALYZED;
15856 case "FORMAT_INVALID_FILE":
15857 return FORMAT_INVALID_FILE;
15858 case "FORMAT_WITH_ERRORS":
15859 return FORMAT_WITH_ERRORS;
15860 case "GET_ERRORS_INVALID_FILE":
15861 return GET_ERRORS_INVALID_FILE;
15862 case "GET_NAVIGATION_INVALID_FILE":
15863 return GET_NAVIGATION_INVALID_FILE;
15864 case "GET_REACHABLE_SOURCES_INVALID_FILE":
15865 return GET_REACHABLE_SOURCES_INVALID_FILE;
15866 case "INVALID_ANALYSIS_ROOT":
15867 return INVALID_ANALYSIS_ROOT;
15868 case "INVALID_EXECUTION_CONTEXT":
15869 return INVALID_EXECUTION_CONTEXT;
15870 case "INVALID_FILE_PATH_FORMAT":
15871 return INVALID_FILE_PATH_FORMAT;
15872 case "INVALID_OVERLAY_CHANGE":
15873 return INVALID_OVERLAY_CHANGE;
15874 case "INVALID_PARAMETER":
15875 return INVALID_PARAMETER;
15876 case "INVALID_REQUEST":
15877 return INVALID_REQUEST;
15878 case "NO_INDEX_GENERATED":
15879 return NO_INDEX_GENERATED;
15880 case "ORGANIZE_DIRECTIVES_ERROR":
15881 return ORGANIZE_DIRECTIVES_ERROR;
15882 case "REFACTORING_REQUEST_CANCELLED":
15883 return REFACTORING_REQUEST_CANCELLED;
15884 case "SERVER_ALREADY_STARTED":
15885 return SERVER_ALREADY_STARTED;
15886 case "SERVER_ERROR":
15887 return SERVER_ERROR;
15888 case "SORT_MEMBERS_INVALID_FILE":
15889 return SORT_MEMBERS_INVALID_FILE;
15890 case "SORT_MEMBERS_PARSE_ERRORS":
15891 return SORT_MEMBERS_PARSE_ERRORS;
15892 case "UNANALYZED_PRIORITY_FILES":
15893 return UNANALYZED_PRIORITY_FILES;
15894 case "UNKNOWN_REQUEST":
15895 return UNKNOWN_REQUEST;
15896 case "UNKNOWN_SOURCE":
15897 return UNKNOWN_SOURCE;
15898 case "UNSUPPORTED_FEATURE":
15899 return UNSUPPORTED_FEATURE;
15900 }
15901 throw new Exception('Illegal enum value: $name');
15902 }
15903
15904 factory RequestErrorCode.fromJson(
15905 JsonDecoder jsonDecoder, String jsonPath, Object json) {
15906 if (json is String) {
15907 try {
15908 return new RequestErrorCode(json);
15909 } catch (_) {
15910 // Fall through
15911 }
15912 }
15913 throw jsonDecoder.mismatch(jsonPath, "RequestErrorCode", json);
15914 }
15915
15916 @override
15917 String toString() => "RequestErrorCode.$name";
15918
15919 String toJson() => name;
15920 }
15921
15922 /**
15923 * SearchResult
15924 *
15925 * {
15926 * "location": Location
15927 * "kind": SearchResultKind
15928 * "isPotential": bool
15929 * "path": List<Element>
15930 * }
15931 *
15932 * Clients may not extend, implement or mix-in this class.
15933 */
15934 class SearchResult implements HasToJson {
15935 Location _location;
15936
15937 SearchResultKind _kind;
15938
15939 bool _isPotential;
15940
15941 List<Element> _path;
15942
15943 /**
15944 * The location of the code that matched the search criteria.
15945 */
15946 Location get location => _location;
15947
15948 /**
15949 * The location of the code that matched the search criteria.
15950 */
15951 void set location(Location value) {
15952 assert(value != null);
15953 this._location = value;
15954 }
15955
15956 /**
15957 * The kind of element that was found or the kind of reference that was
15958 * found.
15959 */
15960 SearchResultKind get kind => _kind;
15961
15962 /**
15963 * The kind of element that was found or the kind of reference that was
15964 * found.
15965 */
15966 void set kind(SearchResultKind value) {
15967 assert(value != null);
15968 this._kind = value;
15969 }
15970
15971 /**
15972 * True if the result is a potential match but cannot be confirmed to be a
15973 * match. For example, if all references to a method m defined in some class
15974 * were requested, and a reference to a method m from an unknown class were
15975 * found, it would be marked as being a potential match.
15976 */
15977 bool get isPotential => _isPotential;
15978
15979 /**
15980 * True if the result is a potential match but cannot be confirmed to be a
15981 * match. For example, if all references to a method m defined in some class
15982 * were requested, and a reference to a method m from an unknown class were
15983 * found, it would be marked as being a potential match.
15984 */
15985 void set isPotential(bool value) {
15986 assert(value != null);
15987 this._isPotential = value;
15988 }
15989
15990 /**
15991 * The elements that contain the result, starting with the most immediately
15992 * enclosing ancestor and ending with the library.
15993 */
15994 List<Element> get path => _path;
15995
15996 /**
15997 * The elements that contain the result, starting with the most immediately
15998 * enclosing ancestor and ending with the library.
15999 */
16000 void set path(List<Element> value) {
16001 assert(value != null);
16002 this._path = value;
16003 }
16004
16005 SearchResult(Location location, SearchResultKind kind, bool isPotential,
16006 List<Element> path) {
16007 this.location = location;
16008 this.kind = kind;
16009 this.isPotential = isPotential;
16010 this.path = path;
16011 }
16012
16013 factory SearchResult.fromJson(
16014 JsonDecoder jsonDecoder, String jsonPath, Object json) {
16015 if (json == null) {
16016 json = {};
16017 }
16018 if (json is Map) {
16019 Location location;
16020 if (json.containsKey("location")) {
16021 location = new Location.fromJson(
16022 jsonDecoder, jsonPath + ".location", json["location"]);
16023 } else {
16024 throw jsonDecoder.missingKey(jsonPath, "location");
16025 }
16026 SearchResultKind kind;
16027 if (json.containsKey("kind")) {
16028 kind = new SearchResultKind.fromJson(
16029 jsonDecoder, jsonPath + ".kind", json["kind"]);
16030 } else {
16031 throw jsonDecoder.missingKey(jsonPath, "kind");
16032 }
16033 bool isPotential;
16034 if (json.containsKey("isPotential")) {
16035 isPotential = jsonDecoder.decodeBool(
16036 jsonPath + ".isPotential", json["isPotential"]);
16037 } else {
16038 throw jsonDecoder.missingKey(jsonPath, "isPotential");
16039 }
16040 List<Element> path;
16041 if (json.containsKey("path")) {
16042 path = jsonDecoder.decodeList(
16043 jsonPath + ".path",
16044 json["path"],
16045 (String jsonPath, Object json) =>
16046 new Element.fromJson(jsonDecoder, jsonPath, json));
16047 } else {
16048 throw jsonDecoder.missingKey(jsonPath, "path");
16049 }
16050 return new SearchResult(location, kind, isPotential, path);
16051 } else {
16052 throw jsonDecoder.mismatch(jsonPath, "SearchResult", json);
16053 }
16054 }
16055
16056 Map<String, dynamic> toJson() {
16057 Map<String, dynamic> result = {};
16058 result["location"] = location.toJson();
16059 result["kind"] = kind.toJson();
16060 result["isPotential"] = isPotential;
16061 result["path"] = path.map((Element value) => value.toJson()).toList();
16062 return result;
16063 }
16064
16065 @override
16066 String toString() => JSON.encode(toJson());
16067
16068 @override
16069 bool operator ==(other) {
16070 if (other is SearchResult) {
16071 return location == other.location &&
16072 kind == other.kind &&
16073 isPotential == other.isPotential &&
16074 listEqual(path, other.path, (Element a, Element b) => a == b);
16075 }
16076 return false;
16077 }
16078
16079 @override
16080 int get hashCode {
16081 int hash = 0;
16082 hash = JenkinsSmiHash.combine(hash, location.hashCode);
16083 hash = JenkinsSmiHash.combine(hash, kind.hashCode);
16084 hash = JenkinsSmiHash.combine(hash, isPotential.hashCode);
16085 hash = JenkinsSmiHash.combine(hash, path.hashCode);
16086 return JenkinsSmiHash.finish(hash);
16087 }
16088 }
16089
16090 /**
16091 * SearchResultKind
16092 *
16093 * enum {
16094 * DECLARATION
16095 * INVOCATION
16096 * READ
16097 * READ_WRITE
16098 * REFERENCE
16099 * UNKNOWN
16100 * WRITE
16101 * }
16102 *
16103 * Clients may not extend, implement or mix-in this class.
16104 */
16105 class SearchResultKind implements Enum {
16106 /**
16107 * The declaration of an element.
16108 */
16109 static const SearchResultKind DECLARATION =
16110 const SearchResultKind._("DECLARATION");
16111
16112 /**
16113 * The invocation of a function or method.
16114 */
16115 static const SearchResultKind INVOCATION =
16116 const SearchResultKind._("INVOCATION");
16117
16118 /**
16119 * A reference to a field, parameter or variable where it is being read.
16120 */
16121 static const SearchResultKind READ = const SearchResultKind._("READ");
16122
16123 /**
16124 * A reference to a field, parameter or variable where it is being read and
16125 * written.
16126 */
16127 static const SearchResultKind READ_WRITE =
16128 const SearchResultKind._("READ_WRITE");
16129
16130 /**
16131 * A reference to an element.
16132 */
16133 static const SearchResultKind REFERENCE =
16134 const SearchResultKind._("REFERENCE");
16135
16136 /**
16137 * Some other kind of search result.
16138 */
16139 static const SearchResultKind UNKNOWN = const SearchResultKind._("UNKNOWN");
16140
16141 /**
16142 * A reference to a field, parameter or variable where it is being written.
16143 */
16144 static const SearchResultKind WRITE = const SearchResultKind._("WRITE");
16145
16146 /**
16147 * A list containing all of the enum values that are defined.
16148 */
16149 static const List<SearchResultKind> VALUES = const <SearchResultKind>[
16150 DECLARATION,
16151 INVOCATION,
16152 READ,
16153 READ_WRITE,
16154 REFERENCE,
16155 UNKNOWN,
16156 WRITE
16157 ];
16158
16159 final String name;
16160
16161 const SearchResultKind._(this.name);
16162
16163 factory SearchResultKind(String name) {
16164 switch (name) {
16165 case "DECLARATION":
16166 return DECLARATION;
16167 case "INVOCATION":
16168 return INVOCATION;
16169 case "READ":
16170 return READ;
16171 case "READ_WRITE":
16172 return READ_WRITE;
16173 case "REFERENCE":
16174 return REFERENCE;
16175 case "UNKNOWN":
16176 return UNKNOWN;
16177 case "WRITE":
16178 return WRITE;
16179 }
16180 throw new Exception('Illegal enum value: $name');
16181 }
16182
16183 factory SearchResultKind.fromJson(
16184 JsonDecoder jsonDecoder, String jsonPath, Object json) {
16185 if (json is String) {
16186 try {
16187 return new SearchResultKind(json);
16188 } catch (_) {
16189 // Fall through
16190 }
16191 }
16192 throw jsonDecoder.mismatch(jsonPath, "SearchResultKind", json);
16193 }
16194
16195 @override
16196 String toString() => "SearchResultKind.$name";
16197
16198 String toJson() => name;
16199 }
16200
16201 /**
16202 * ServerService
16203 *
16204 * enum {
16205 * STATUS
16206 * }
16207 *
16208 * Clients may not extend, implement or mix-in this class.
16209 */
16210 class ServerService implements Enum {
16211 static const ServerService STATUS = const ServerService._("STATUS");
16212
16213 /**
16214 * A list containing all of the enum values that are defined.
16215 */
16216 static const List<ServerService> VALUES = const <ServerService>[STATUS];
16217
16218 final String name;
16219
16220 const ServerService._(this.name);
16221
16222 factory ServerService(String name) {
16223 switch (name) {
16224 case "STATUS":
16225 return STATUS;
16226 }
16227 throw new Exception('Illegal enum value: $name');
16228 }
16229
16230 factory ServerService.fromJson(
16231 JsonDecoder jsonDecoder, String jsonPath, Object json) {
16232 if (json is String) {
16233 try {
16234 return new ServerService(json);
16235 } catch (_) {
16236 // Fall through
16237 }
16238 }
16239 throw jsonDecoder.mismatch(jsonPath, "ServerService", json);
16240 }
16241
16242 @override
16243 String toString() => "ServerService.$name";
16244
16245 String toJson() => name;
16246 }
16247
16248 /**
16249 * SourceChange
16250 *
16251 * {
16252 * "message": String
16253 * "edits": List<SourceFileEdit>
16254 * "linkedEditGroups": List<LinkedEditGroup>
16255 * "selection": optional Position
16256 * }
16257 *
16258 * Clients may not extend, implement or mix-in this class.
16259 */
16260 class SourceChange implements HasToJson {
16261 String _message;
16262
16263 List<SourceFileEdit> _edits;
16264
16265 List<LinkedEditGroup> _linkedEditGroups;
16266
16267 Position _selection;
16268
16269 /**
16270 * A human-readable description of the change to be applied.
16271 */
16272 String get message => _message;
16273
16274 /**
16275 * A human-readable description of the change to be applied.
16276 */
16277 void set message(String value) {
16278 assert(value != null);
16279 this._message = value;
16280 }
16281
16282 /**
16283 * A list of the edits used to effect the change, grouped by file.
16284 */
16285 List<SourceFileEdit> get edits => _edits;
16286
16287 /**
16288 * A list of the edits used to effect the change, grouped by file.
16289 */
16290 void set edits(List<SourceFileEdit> value) {
16291 assert(value != null);
16292 this._edits = value;
16293 }
16294
16295 /**
16296 * A list of the linked editing groups used to customize the changes that
16297 * were made.
16298 */
16299 List<LinkedEditGroup> get linkedEditGroups => _linkedEditGroups;
16300
16301 /**
16302 * A list of the linked editing groups used to customize the changes that
16303 * were made.
16304 */
16305 void set linkedEditGroups(List<LinkedEditGroup> value) {
16306 assert(value != null);
16307 this._linkedEditGroups = value;
16308 }
16309
16310 /**
16311 * The position that should be selected after the edits have been applied.
16312 */
16313 Position get selection => _selection;
16314
16315 /**
16316 * The position that should be selected after the edits have been applied.
16317 */
16318 void set selection(Position value) {
16319 this._selection = value;
16320 }
16321
16322 SourceChange(String message,
16323 {List<SourceFileEdit> edits,
16324 List<LinkedEditGroup> linkedEditGroups,
16325 Position selection}) {
16326 this.message = message;
16327 if (edits == null) {
16328 this.edits = <SourceFileEdit>[];
16329 } else {
16330 this.edits = edits;
16331 }
16332 if (linkedEditGroups == null) {
16333 this.linkedEditGroups = <LinkedEditGroup>[];
16334 } else {
16335 this.linkedEditGroups = linkedEditGroups;
16336 }
16337 this.selection = selection;
16338 }
16339
16340 factory SourceChange.fromJson(
16341 JsonDecoder jsonDecoder, String jsonPath, Object json) {
16342 if (json == null) {
16343 json = {};
16344 }
16345 if (json is Map) {
16346 String message;
16347 if (json.containsKey("message")) {
16348 message =
16349 jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
16350 } else {
16351 throw jsonDecoder.missingKey(jsonPath, "message");
16352 }
16353 List<SourceFileEdit> edits;
16354 if (json.containsKey("edits")) {
16355 edits = jsonDecoder.decodeList(
16356 jsonPath + ".edits",
16357 json["edits"],
16358 (String jsonPath, Object json) =>
16359 new SourceFileEdit.fromJson(jsonDecoder, jsonPath, json));
16360 } else {
16361 throw jsonDecoder.missingKey(jsonPath, "edits");
16362 }
16363 List<LinkedEditGroup> linkedEditGroups;
16364 if (json.containsKey("linkedEditGroups")) {
16365 linkedEditGroups = jsonDecoder.decodeList(
16366 jsonPath + ".linkedEditGroups",
16367 json["linkedEditGroups"],
16368 (String jsonPath, Object json) =>
16369 new LinkedEditGroup.fromJson(jsonDecoder, jsonPath, json));
16370 } else {
16371 throw jsonDecoder.missingKey(jsonPath, "linkedEditGroups");
16372 }
16373 Position selection;
16374 if (json.containsKey("selection")) {
16375 selection = new Position.fromJson(
16376 jsonDecoder, jsonPath + ".selection", json["selection"]);
16377 }
16378 return new SourceChange(message,
16379 edits: edits,
16380 linkedEditGroups: linkedEditGroups,
16381 selection: selection);
16382 } else {
16383 throw jsonDecoder.mismatch(jsonPath, "SourceChange", json);
16384 }
16385 }
16386
16387 Map<String, dynamic> toJson() {
16388 Map<String, dynamic> result = {};
16389 result["message"] = message;
16390 result["edits"] =
16391 edits.map((SourceFileEdit value) => value.toJson()).toList();
16392 result["linkedEditGroups"] = linkedEditGroups
16393 .map((LinkedEditGroup value) => value.toJson())
16394 .toList();
16395 if (selection != null) {
16396 result["selection"] = selection.toJson();
16397 }
16398 return result;
16399 }
16400
16401 /**
16402 * Adds [edit] to the [FileEdit] for the given [file].
16403 */
16404 void addEdit(String file, int fileStamp, SourceEdit edit) =>
16405 addEditToSourceChange(this, file, fileStamp, edit);
16406
16407 /**
16408 * Adds the given [FileEdit].
16409 */
16410 void addFileEdit(SourceFileEdit edit) {
16411 edits.add(edit);
16412 }
16413
16414 /**
16415 * Adds the given [LinkedEditGroup].
16416 */
16417 void addLinkedEditGroup(LinkedEditGroup linkedEditGroup) {
16418 linkedEditGroups.add(linkedEditGroup);
16419 }
16420
16421 /**
16422 * Returns the [FileEdit] for the given [file], maybe `null`.
16423 */
16424 SourceFileEdit getFileEdit(String file) => getChangeFileEdit(this, file);
16425
16426 @override
16427 String toString() => JSON.encode(toJson());
16428
16429 @override
16430 bool operator ==(other) {
16431 if (other is SourceChange) {
16432 return message == other.message &&
16433 listEqual(edits, other.edits,
16434 (SourceFileEdit a, SourceFileEdit b) => a == b) &&
16435 listEqual(linkedEditGroups, other.linkedEditGroups,
16436 (LinkedEditGroup a, LinkedEditGroup b) => a == b) &&
16437 selection == other.selection;
16438 }
16439 return false;
16440 }
16441
16442 @override
16443 int get hashCode {
16444 int hash = 0;
16445 hash = JenkinsSmiHash.combine(hash, message.hashCode);
16446 hash = JenkinsSmiHash.combine(hash, edits.hashCode);
16447 hash = JenkinsSmiHash.combine(hash, linkedEditGroups.hashCode);
16448 hash = JenkinsSmiHash.combine(hash, selection.hashCode);
16449 return JenkinsSmiHash.finish(hash);
16450 }
16451 }
16452
16453 /**
16454 * SourceEdit
16455 *
16456 * {
16457 * "offset": int
16458 * "length": int
16459 * "replacement": String
16460 * "id": optional String
16461 * }
16462 *
16463 * Clients may not extend, implement or mix-in this class.
16464 */
16465 class SourceEdit implements HasToJson {
16466 /**
16467 * Get the result of applying a set of [edits] to the given [code]. Edits are
16468 * applied in the order they appear in [edits].
16469 */
16470 static String applySequence(String code, Iterable<SourceEdit> edits) =>
16471 applySequenceOfEdits(code, edits);
16472
16473 int _offset;
16474
16475 int _length;
16476
16477 String _replacement;
16478
16479 String _id;
16480
16481 /**
16482 * The offset of the region to be modified.
16483 */
16484 int get offset => _offset;
16485
16486 /**
16487 * The offset of the region to be modified.
16488 */
16489 void set offset(int value) {
16490 assert(value != null);
16491 this._offset = value;
16492 }
16493
16494 /**
16495 * The length of the region to be modified.
16496 */
16497 int get length => _length;
16498
16499 /**
16500 * The length of the region to be modified.
16501 */
16502 void set length(int value) {
16503 assert(value != null);
16504 this._length = value;
16505 }
16506
16507 /**
16508 * The code that is to replace the specified region in the original code.
16509 */
16510 String get replacement => _replacement;
16511
16512 /**
16513 * The code that is to replace the specified region in the original code.
16514 */
16515 void set replacement(String value) {
16516 assert(value != null);
16517 this._replacement = value;
16518 }
16519
16520 /**
16521 * An identifier that uniquely identifies this source edit from other edits
16522 * in the same response. This field is omitted unless a containing structure
16523 * needs to be able to identify the edit for some reason.
16524 *
16525 * For example, some refactoring operations can produce edits that might not
16526 * be appropriate (referred to as potential edits). Such edits will have an
16527 * id so that they can be referenced. Edits in the same response that do not
16528 * need to be referenced will not have an id.
16529 */
16530 String get id => _id;
16531
16532 /**
16533 * An identifier that uniquely identifies this source edit from other edits
16534 * in the same response. This field is omitted unless a containing structure
16535 * needs to be able to identify the edit for some reason.
16536 *
16537 * For example, some refactoring operations can produce edits that might not
16538 * be appropriate (referred to as potential edits). Such edits will have an
16539 * id so that they can be referenced. Edits in the same response that do not
16540 * need to be referenced will not have an id.
16541 */
16542 void set id(String value) {
16543 this._id = value;
16544 }
16545
16546 SourceEdit(int offset, int length, String replacement, {String id}) {
16547 this.offset = offset;
16548 this.length = length;
16549 this.replacement = replacement;
16550 this.id = id;
16551 }
16552
16553 factory SourceEdit.fromJson(
16554 JsonDecoder jsonDecoder, String jsonPath, Object json) {
16555 if (json == null) {
16556 json = {};
16557 }
16558 if (json is Map) {
16559 int offset;
16560 if (json.containsKey("offset")) {
16561 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
16562 } else {
16563 throw jsonDecoder.missingKey(jsonPath, "offset");
16564 }
16565 int length;
16566 if (json.containsKey("length")) {
16567 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
16568 } else {
16569 throw jsonDecoder.missingKey(jsonPath, "length");
16570 }
16571 String replacement;
16572 if (json.containsKey("replacement")) {
16573 replacement = jsonDecoder.decodeString(
16574 jsonPath + ".replacement", json["replacement"]);
16575 } else {
16576 throw jsonDecoder.missingKey(jsonPath, "replacement");
16577 }
16578 String id;
16579 if (json.containsKey("id")) {
16580 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
16581 }
16582 return new SourceEdit(offset, length, replacement, id: id);
16583 } else {
16584 throw jsonDecoder.mismatch(jsonPath, "SourceEdit", json);
16585 }
16586 }
16587
16588 /**
16589 * The end of the region to be modified.
16590 */
16591 int get end => offset + length;
16592
16593 Map<String, dynamic> toJson() {
16594 Map<String, dynamic> result = {};
16595 result["offset"] = offset;
16596 result["length"] = length;
16597 result["replacement"] = replacement;
16598 if (id != null) {
16599 result["id"] = id;
16600 }
16601 return result;
16602 }
16603
16604 /**
16605 * Get the result of applying the edit to the given [code].
16606 */
16607 String apply(String code) => applyEdit(code, this);
16608
16609 @override
16610 String toString() => JSON.encode(toJson());
16611
16612 @override
16613 bool operator ==(other) {
16614 if (other is SourceEdit) {
16615 return offset == other.offset &&
16616 length == other.length &&
16617 replacement == other.replacement &&
16618 id == other.id;
16619 }
16620 return false;
16621 }
16622
16623 @override
16624 int get hashCode {
16625 int hash = 0;
16626 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
16627 hash = JenkinsSmiHash.combine(hash, length.hashCode);
16628 hash = JenkinsSmiHash.combine(hash, replacement.hashCode);
16629 hash = JenkinsSmiHash.combine(hash, id.hashCode);
16630 return JenkinsSmiHash.finish(hash);
16631 }
16632 }
16633
16634 /**
16635 * SourceFileEdit
16636 *
16637 * {
16638 * "file": FilePath
16639 * "fileStamp": long
16640 * "edits": List<SourceEdit>
16641 * }
16642 *
16643 * Clients may not extend, implement or mix-in this class.
16644 */
16645 class SourceFileEdit implements HasToJson {
16646 String _file;
16647
16648 int _fileStamp;
16649
16650 List<SourceEdit> _edits;
16651
16652 /**
16653 * The file containing the code to be modified.
16654 */
16655 String get file => _file;
16656
16657 /**
16658 * The file containing the code to be modified.
16659 */
16660 void set file(String value) {
16661 assert(value != null);
16662 this._file = value;
16663 }
16664
16665 /**
16666 * The modification stamp of the file at the moment when the change was
16667 * created, in milliseconds since the "Unix epoch". Will be -1 if the file
16668 * did not exist and should be created. The client may use this field to make
16669 * sure that the file was not changed since then, so it is safe to apply the
16670 * change.
16671 */
16672 int get fileStamp => _fileStamp;
16673
16674 /**
16675 * The modification stamp of the file at the moment when the change was
16676 * created, in milliseconds since the "Unix epoch". Will be -1 if the file
16677 * did not exist and should be created. The client may use this field to make
16678 * sure that the file was not changed since then, so it is safe to apply the
16679 * change.
16680 */
16681 void set fileStamp(int value) {
16682 assert(value != null);
16683 this._fileStamp = value;
16684 }
16685
16686 /**
16687 * A list of the edits used to effect the change.
16688 */
16689 List<SourceEdit> get edits => _edits;
16690
16691 /**
16692 * A list of the edits used to effect the change.
16693 */
16694 void set edits(List<SourceEdit> value) {
16695 assert(value != null);
16696 this._edits = value;
16697 }
16698
16699 SourceFileEdit(String file, int fileStamp, {List<SourceEdit> edits}) {
16700 this.file = file;
16701 this.fileStamp = fileStamp;
16702 if (edits == null) {
16703 this.edits = <SourceEdit>[];
16704 } else {
16705 this.edits = edits;
16706 }
16707 }
16708
16709 factory SourceFileEdit.fromJson(
16710 JsonDecoder jsonDecoder, String jsonPath, Object json) {
16711 if (json == null) {
16712 json = {};
16713 }
16714 if (json is Map) {
16715 String file;
16716 if (json.containsKey("file")) {
16717 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
16718 } else {
16719 throw jsonDecoder.missingKey(jsonPath, "file");
16720 }
16721 int fileStamp;
16722 if (json.containsKey("fileStamp")) {
16723 fileStamp =
16724 jsonDecoder.decodeInt(jsonPath + ".fileStamp", json["fileStamp"]);
16725 } else {
16726 throw jsonDecoder.missingKey(jsonPath, "fileStamp");
16727 }
16728 List<SourceEdit> edits;
16729 if (json.containsKey("edits")) {
16730 edits = jsonDecoder.decodeList(
16731 jsonPath + ".edits",
16732 json["edits"],
16733 (String jsonPath, Object json) =>
16734 new SourceEdit.fromJson(jsonDecoder, jsonPath, json));
16735 } else {
16736 throw jsonDecoder.missingKey(jsonPath, "edits");
16737 }
16738 return new SourceFileEdit(file, fileStamp, edits: edits);
16739 } else {
16740 throw jsonDecoder.mismatch(jsonPath, "SourceFileEdit", json);
16741 }
16742 }
16743
16744 Map<String, dynamic> toJson() {
16745 Map<String, dynamic> result = {};
16746 result["file"] = file;
16747 result["fileStamp"] = fileStamp;
16748 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList();
16749 return result;
16750 }
16751
16752 /**
16753 * Adds the given [Edit] to the list.
16754 */
16755 void add(SourceEdit edit) => addEditForSource(this, edit);
16756
16757 /**
16758 * Adds the given [Edit]s.
16759 */
16760 void addAll(Iterable<SourceEdit> edits) => addAllEditsForSource(this, edits);
16761
16762 @override
16763 String toString() => JSON.encode(toJson());
16764
16765 @override
16766 bool operator ==(other) {
16767 if (other is SourceFileEdit) {
16768 return file == other.file &&
16769 fileStamp == other.fileStamp &&
16770 listEqual(edits, other.edits, (SourceEdit a, SourceEdit b) => a == b);
16771 }
16772 return false;
16773 }
16774
16775 @override
16776 int get hashCode {
16777 int hash = 0;
16778 hash = JenkinsSmiHash.combine(hash, file.hashCode);
16779 hash = JenkinsSmiHash.combine(hash, fileStamp.hashCode);
16780 hash = JenkinsSmiHash.combine(hash, edits.hashCode);
16781 return JenkinsSmiHash.finish(hash);
16782 }
16783 }
16784
16785 /**
16786 * TypeHierarchyItem
16787 *
16788 * {
16789 * "classElement": Element
16790 * "displayName": optional String
16791 * "memberElement": optional Element
16792 * "superclass": optional int
16793 * "interfaces": List<int>
16794 * "mixins": List<int>
16795 * "subclasses": List<int>
16796 * }
16797 *
16798 * Clients may not extend, implement or mix-in this class.
16799 */
16800 class TypeHierarchyItem implements HasToJson {
16801 Element _classElement;
16802
16803 String _displayName;
16804
16805 Element _memberElement;
16806
16807 int _superclass;
16808
16809 List<int> _interfaces;
16810
16811 List<int> _mixins;
16812
16813 List<int> _subclasses;
16814
16815 /**
16816 * The class element represented by this item.
16817 */
16818 Element get classElement => _classElement;
16819
16820 /**
16821 * The class element represented by this item.
16822 */
16823 void set classElement(Element value) {
16824 assert(value != null);
16825 this._classElement = value;
16826 }
16827
16828 /**
16829 * The name to be displayed for the class. This field will be omitted if the
16830 * display name is the same as the name of the element. The display name is
16831 * different if there is additional type information to be displayed, such as
16832 * type arguments.
16833 */
16834 String get displayName => _displayName;
16835
16836 /**
16837 * The name to be displayed for the class. This field will be omitted if the
16838 * display name is the same as the name of the element. The display name is
16839 * different if there is additional type information to be displayed, such as
16840 * type arguments.
16841 */
16842 void set displayName(String value) {
16843 this._displayName = value;
16844 }
16845
16846 /**
16847 * The member in the class corresponding to the member on which the hierarchy
16848 * was requested. This field will be omitted if the hierarchy was not
16849 * requested for a member or if the class does not have a corresponding
16850 * member.
16851 */
16852 Element get memberElement => _memberElement;
16853
16854 /**
16855 * The member in the class corresponding to the member on which the hierarchy
16856 * was requested. This field will be omitted if the hierarchy was not
16857 * requested for a member or if the class does not have a corresponding
16858 * member.
16859 */
16860 void set memberElement(Element value) {
16861 this._memberElement = value;
16862 }
16863
16864 /**
16865 * The index of the item representing the superclass of this class. This
16866 * field will be omitted if this item represents the class Object.
16867 */
16868 int get superclass => _superclass;
16869
16870 /**
16871 * The index of the item representing the superclass of this class. This
16872 * field will be omitted if this item represents the class Object.
16873 */
16874 void set superclass(int value) {
16875 this._superclass = value;
16876 }
16877
16878 /**
16879 * The indexes of the items representing the interfaces implemented by this
16880 * class. The list will be empty if there are no implemented interfaces.
16881 */
16882 List<int> get interfaces => _interfaces;
16883
16884 /**
16885 * The indexes of the items representing the interfaces implemented by this
16886 * class. The list will be empty if there are no implemented interfaces.
16887 */
16888 void set interfaces(List<int> value) {
16889 assert(value != null);
16890 this._interfaces = value;
16891 }
16892
16893 /**
16894 * The indexes of the items representing the mixins referenced by this class.
16895 * The list will be empty if there are no classes mixed in to this class.
16896 */
16897 List<int> get mixins => _mixins;
16898
16899 /**
16900 * The indexes of the items representing the mixins referenced by this class.
16901 * The list will be empty if there are no classes mixed in to this class.
16902 */
16903 void set mixins(List<int> value) {
16904 assert(value != null);
16905 this._mixins = value;
16906 }
16907
16908 /**
16909 * The indexes of the items representing the subtypes of this class. The list
16910 * will be empty if there are no subtypes or if this item represents a
16911 * supertype of the pivot type.
16912 */
16913 List<int> get subclasses => _subclasses;
16914
16915 /**
16916 * The indexes of the items representing the subtypes of this class. The list
16917 * will be empty if there are no subtypes or if this item represents a
16918 * supertype of the pivot type.
16919 */
16920 void set subclasses(List<int> value) {
16921 assert(value != null);
16922 this._subclasses = value;
16923 }
16924
16925 TypeHierarchyItem(Element classElement,
16926 {String displayName,
16927 Element memberElement,
16928 int superclass,
16929 List<int> interfaces,
16930 List<int> mixins,
16931 List<int> subclasses}) {
16932 this.classElement = classElement;
16933 this.displayName = displayName;
16934 this.memberElement = memberElement;
16935 this.superclass = superclass;
16936 if (interfaces == null) {
16937 this.interfaces = <int>[];
16938 } else {
16939 this.interfaces = interfaces;
16940 }
16941 if (mixins == null) {
16942 this.mixins = <int>[];
16943 } else {
16944 this.mixins = mixins;
16945 }
16946 if (subclasses == null) {
16947 this.subclasses = <int>[];
16948 } else {
16949 this.subclasses = subclasses;
16950 }
16951 }
16952
16953 factory TypeHierarchyItem.fromJson(
16954 JsonDecoder jsonDecoder, String jsonPath, Object json) {
16955 if (json == null) {
16956 json = {};
16957 }
16958 if (json is Map) {
16959 Element classElement;
16960 if (json.containsKey("classElement")) {
16961 classElement = new Element.fromJson(
16962 jsonDecoder, jsonPath + ".classElement", json["classElement"]);
16963 } else {
16964 throw jsonDecoder.missingKey(jsonPath, "classElement");
16965 }
16966 String displayName;
16967 if (json.containsKey("displayName")) {
16968 displayName = jsonDecoder.decodeString(
16969 jsonPath + ".displayName", json["displayName"]);
16970 }
16971 Element memberElement;
16972 if (json.containsKey("memberElement")) {
16973 memberElement = new Element.fromJson(
16974 jsonDecoder, jsonPath + ".memberElement", json["memberElement"]);
16975 }
16976 int superclass;
16977 if (json.containsKey("superclass")) {
16978 superclass =
16979 jsonDecoder.decodeInt(jsonPath + ".superclass", json["superclass"]);
16980 }
16981 List<int> interfaces;
16982 if (json.containsKey("interfaces")) {
16983 interfaces = jsonDecoder.decodeList(jsonPath + ".interfaces",
16984 json["interfaces"], jsonDecoder.decodeInt);
16985 } else {
16986 throw jsonDecoder.missingKey(jsonPath, "interfaces");
16987 }
16988 List<int> mixins;
16989 if (json.containsKey("mixins")) {
16990 mixins = jsonDecoder.decodeList(
16991 jsonPath + ".mixins", json["mixins"], jsonDecoder.decodeInt);
16992 } else {
16993 throw jsonDecoder.missingKey(jsonPath, "mixins");
16994 }
16995 List<int> subclasses;
16996 if (json.containsKey("subclasses")) {
16997 subclasses = jsonDecoder.decodeList(jsonPath + ".subclasses",
16998 json["subclasses"], jsonDecoder.decodeInt);
16999 } else {
17000 throw jsonDecoder.missingKey(jsonPath, "subclasses");
17001 }
17002 return new TypeHierarchyItem(classElement,
17003 displayName: displayName,
17004 memberElement: memberElement,
17005 superclass: superclass,
17006 interfaces: interfaces,
17007 mixins: mixins,
17008 subclasses: subclasses);
17009 } else {
17010 throw jsonDecoder.mismatch(jsonPath, "TypeHierarchyItem", json);
17011 }
17012 }
17013
17014 Map<String, dynamic> toJson() {
17015 Map<String, dynamic> result = {};
17016 result["classElement"] = classElement.toJson();
17017 if (displayName != null) {
17018 result["displayName"] = displayName;
17019 }
17020 if (memberElement != null) {
17021 result["memberElement"] = memberElement.toJson();
17022 }
17023 if (superclass != null) {
17024 result["superclass"] = superclass;
17025 }
17026 result["interfaces"] = interfaces;
17027 result["mixins"] = mixins;
17028 result["subclasses"] = subclasses;
17029 return result;
17030 }
17031
17032 @override
17033 String toString() => JSON.encode(toJson());
17034
17035 @override
17036 bool operator ==(other) {
17037 if (other is TypeHierarchyItem) {
17038 return classElement == other.classElement &&
17039 displayName == other.displayName &&
17040 memberElement == other.memberElement &&
17041 superclass == other.superclass &&
17042 listEqual(interfaces, other.interfaces, (int a, int b) => a == b) &&
17043 listEqual(mixins, other.mixins, (int a, int b) => a == b) &&
17044 listEqual(subclasses, other.subclasses, (int a, int b) => a == b);
17045 }
17046 return false;
17047 }
17048
17049 @override
17050 int get hashCode {
17051 int hash = 0;
17052 hash = JenkinsSmiHash.combine(hash, classElement.hashCode);
17053 hash = JenkinsSmiHash.combine(hash, displayName.hashCode);
17054 hash = JenkinsSmiHash.combine(hash, memberElement.hashCode);
17055 hash = JenkinsSmiHash.combine(hash, superclass.hashCode);
17056 hash = JenkinsSmiHash.combine(hash, interfaces.hashCode);
17057 hash = JenkinsSmiHash.combine(hash, mixins.hashCode);
17058 hash = JenkinsSmiHash.combine(hash, subclasses.hashCode);
17059 return JenkinsSmiHash.finish(hash);
17060 }
17061 }
17062
17063 /**
17064 * convertGetterToMethod feedback
17065 *
17066 * Clients may not extend, implement or mix-in this class.
17067 */
17068 class ConvertGetterToMethodFeedback extends RefactoringFeedback {
17069 @override
17070 bool operator ==(other) {
17071 if (other is ConvertGetterToMethodFeedback) {
17072 return true;
17073 }
17074 return false;
17075 }
17076
17077 @override
17078 int get hashCode {
17079 return 616032599;
17080 }
17081 }
17082
17083 /**
17084 * convertGetterToMethod options
17085 *
17086 * Clients may not extend, implement or mix-in this class.
17087 */
17088 class ConvertGetterToMethodOptions extends RefactoringOptions {
17089 @override
17090 bool operator ==(other) {
17091 if (other is ConvertGetterToMethodOptions) {
17092 return true;
17093 }
17094 return false;
17095 }
17096
17097 @override
17098 int get hashCode {
17099 return 488848400;
17100 }
17101 }
17102
17103 /**
17104 * convertMethodToGetter feedback
17105 *
17106 * Clients may not extend, implement or mix-in this class.
17107 */
17108 class ConvertMethodToGetterFeedback extends RefactoringFeedback {
17109 @override
17110 bool operator ==(other) {
17111 if (other is ConvertMethodToGetterFeedback) {
17112 return true;
17113 }
17114 return false;
17115 }
17116
17117 @override
17118 int get hashCode {
17119 return 165291526;
17120 }
17121 }
17122
17123 /**
17124 * convertMethodToGetter options
17125 *
17126 * Clients may not extend, implement or mix-in this class.
17127 */
17128 class ConvertMethodToGetterOptions extends RefactoringOptions {
17129 @override
17130 bool operator ==(other) {
17131 if (other is ConvertMethodToGetterOptions) {
17132 return true;
17133 }
17134 return false;
17135 }
17136
17137 @override
17138 int get hashCode {
17139 return 27952290;
17140 }
17141 }
17142
17143 /**
17144 * extractLocalVariable feedback
17145 *
17146 * {
17147 * "coveringExpressionOffsets": optional List<int>
17148 * "coveringExpressionLengths": optional List<int>
17149 * "names": List<String>
17150 * "offsets": List<int>
17151 * "lengths": List<int>
17152 * }
17153 *
17154 * Clients may not extend, implement or mix-in this class.
17155 */
17156 class ExtractLocalVariableFeedback extends RefactoringFeedback {
17157 List<int> _coveringExpressionOffsets;
17158
17159 List<int> _coveringExpressionLengths;
17160
17161 List<String> _names;
17162
17163 List<int> _offsets;
17164
17165 List<int> _lengths;
17166
17167 /**
17168 * The offsets of the expressions that cover the specified selection, from
17169 * the down most to the up most.
17170 */
17171 List<int> get coveringExpressionOffsets => _coveringExpressionOffsets;
17172
17173 /**
17174 * The offsets of the expressions that cover the specified selection, from
17175 * the down most to the up most.
17176 */
17177 void set coveringExpressionOffsets(List<int> value) {
17178 this._coveringExpressionOffsets = value;
17179 }
17180
17181 /**
17182 * The lengths of the expressions that cover the specified selection, from
17183 * the down most to the up most.
17184 */
17185 List<int> get coveringExpressionLengths => _coveringExpressionLengths;
17186
17187 /**
17188 * The lengths of the expressions that cover the specified selection, from
17189 * the down most to the up most.
17190 */
17191 void set coveringExpressionLengths(List<int> value) {
17192 this._coveringExpressionLengths = value;
17193 }
17194
17195 /**
17196 * The proposed names for the local variable.
17197 */
17198 List<String> get names => _names;
17199
17200 /**
17201 * The proposed names for the local variable.
17202 */
17203 void set names(List<String> value) {
17204 assert(value != null);
17205 this._names = value;
17206 }
17207
17208 /**
17209 * The offsets of the expressions that would be replaced by a reference to
17210 * the variable.
17211 */
17212 List<int> get offsets => _offsets;
17213
17214 /**
17215 * The offsets of the expressions that would be replaced by a reference to
17216 * the variable.
17217 */
17218 void set offsets(List<int> value) {
17219 assert(value != null);
17220 this._offsets = value;
17221 }
17222
17223 /**
17224 * The lengths of the expressions that would be replaced by a reference to
17225 * the variable. The lengths correspond to the offsets. In other words, for a
17226 * given expression, if the offset of that expression is offsets[i], then the
17227 * length of that expression is lengths[i].
17228 */
17229 List<int> get lengths => _lengths;
17230
17231 /**
17232 * The lengths of the expressions that would be replaced by a reference to
17233 * the variable. The lengths correspond to the offsets. In other words, for a
17234 * given expression, if the offset of that expression is offsets[i], then the
17235 * length of that expression is lengths[i].
17236 */
17237 void set lengths(List<int> value) {
17238 assert(value != null);
17239 this._lengths = value;
17240 }
17241
17242 ExtractLocalVariableFeedback(
17243 List<String> names, List<int> offsets, List<int> lengths,
17244 {List<int> coveringExpressionOffsets,
17245 List<int> coveringExpressionLengths}) {
17246 this.coveringExpressionOffsets = coveringExpressionOffsets;
17247 this.coveringExpressionLengths = coveringExpressionLengths;
17248 this.names = names;
17249 this.offsets = offsets;
17250 this.lengths = lengths;
17251 }
17252
17253 factory ExtractLocalVariableFeedback.fromJson(
17254 JsonDecoder jsonDecoder, String jsonPath, Object json) {
17255 if (json == null) {
17256 json = {};
17257 }
17258 if (json is Map) {
17259 List<int> coveringExpressionOffsets;
17260 if (json.containsKey("coveringExpressionOffsets")) {
17261 coveringExpressionOffsets = jsonDecoder.decodeList(
17262 jsonPath + ".coveringExpressionOffsets",
17263 json["coveringExpressionOffsets"],
17264 jsonDecoder.decodeInt);
17265 }
17266 List<int> coveringExpressionLengths;
17267 if (json.containsKey("coveringExpressionLengths")) {
17268 coveringExpressionLengths = jsonDecoder.decodeList(
17269 jsonPath + ".coveringExpressionLengths",
17270 json["coveringExpressionLengths"],
17271 jsonDecoder.decodeInt);
17272 }
17273 List<String> names;
17274 if (json.containsKey("names")) {
17275 names = jsonDecoder.decodeList(
17276 jsonPath + ".names", json["names"], jsonDecoder.decodeString);
17277 } else {
17278 throw jsonDecoder.missingKey(jsonPath, "names");
17279 }
17280 List<int> offsets;
17281 if (json.containsKey("offsets")) {
17282 offsets = jsonDecoder.decodeList(
17283 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt);
17284 } else {
17285 throw jsonDecoder.missingKey(jsonPath, "offsets");
17286 }
17287 List<int> lengths;
17288 if (json.containsKey("lengths")) {
17289 lengths = jsonDecoder.decodeList(
17290 jsonPath + ".lengths", json["lengths"], jsonDecoder.decodeInt);
17291 } else {
17292 throw jsonDecoder.missingKey(jsonPath, "lengths");
17293 }
17294 return new ExtractLocalVariableFeedback(names, offsets, lengths,
17295 coveringExpressionOffsets: coveringExpressionOffsets,
17296 coveringExpressionLengths: coveringExpressionLengths);
17297 } else {
17298 throw jsonDecoder.mismatch(
17299 jsonPath, "extractLocalVariable feedback", json);
17300 }
17301 }
17302
17303 Map<String, dynamic> toJson() {
17304 Map<String, dynamic> result = {};
17305 if (coveringExpressionOffsets != null) {
17306 result["coveringExpressionOffsets"] = coveringExpressionOffsets;
17307 }
17308 if (coveringExpressionLengths != null) {
17309 result["coveringExpressionLengths"] = coveringExpressionLengths;
17310 }
17311 result["names"] = names;
17312 result["offsets"] = offsets;
17313 result["lengths"] = lengths;
17314 return result;
17315 }
17316
17317 @override
17318 String toString() => JSON.encode(toJson());
17319
17320 @override
17321 bool operator ==(other) {
17322 if (other is ExtractLocalVariableFeedback) {
17323 return listEqual(coveringExpressionOffsets,
17324 other.coveringExpressionOffsets, (int a, int b) => a == b) &&
17325 listEqual(coveringExpressionLengths, other.coveringExpressionLengths,
17326 (int a, int b) => a == b) &&
17327 listEqual(names, other.names, (String a, String b) => a == b) &&
17328 listEqual(offsets, other.offsets, (int a, int b) => a == b) &&
17329 listEqual(lengths, other.lengths, (int a, int b) => a == b);
17330 }
17331 return false;
17332 }
17333
17334 @override
17335 int get hashCode {
17336 int hash = 0;
17337 hash = JenkinsSmiHash.combine(hash, coveringExpressionOffsets.hashCode);
17338 hash = JenkinsSmiHash.combine(hash, coveringExpressionLengths.hashCode);
17339 hash = JenkinsSmiHash.combine(hash, names.hashCode);
17340 hash = JenkinsSmiHash.combine(hash, offsets.hashCode);
17341 hash = JenkinsSmiHash.combine(hash, lengths.hashCode);
17342 return JenkinsSmiHash.finish(hash);
17343 }
17344 }
17345
17346 /**
17347 * extractLocalVariable options
17348 *
17349 * {
17350 * "name": String
17351 * "extractAll": bool
17352 * }
17353 *
17354 * Clients may not extend, implement or mix-in this class.
17355 */
17356 class ExtractLocalVariableOptions extends RefactoringOptions {
17357 String _name;
17358
17359 bool _extractAll;
17360
17361 /**
17362 * The name that the local variable should be given.
17363 */
17364 String get name => _name;
17365
17366 /**
17367 * The name that the local variable should be given.
17368 */
17369 void set name(String value) {
17370 assert(value != null);
17371 this._name = value;
17372 }
17373
17374 /**
17375 * True if all occurrences of the expression within the scope in which the
17376 * variable will be defined should be replaced by a reference to the local
17377 * variable. The expression used to initiate the refactoring will always be
17378 * replaced.
17379 */
17380 bool get extractAll => _extractAll;
17381
17382 /**
17383 * True if all occurrences of the expression within the scope in which the
17384 * variable will be defined should be replaced by a reference to the local
17385 * variable. The expression used to initiate the refactoring will always be
17386 * replaced.
17387 */
17388 void set extractAll(bool value) {
17389 assert(value != null);
17390 this._extractAll = value;
17391 }
17392
17393 ExtractLocalVariableOptions(String name, bool extractAll) {
17394 this.name = name;
17395 this.extractAll = extractAll;
17396 }
17397
17398 factory ExtractLocalVariableOptions.fromJson(
17399 JsonDecoder jsonDecoder, String jsonPath, Object json) {
17400 if (json == null) {
17401 json = {};
17402 }
17403 if (json is Map) {
17404 String name;
17405 if (json.containsKey("name")) {
17406 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
17407 } else {
17408 throw jsonDecoder.missingKey(jsonPath, "name");
17409 }
17410 bool extractAll;
17411 if (json.containsKey("extractAll")) {
17412 extractAll = jsonDecoder.decodeBool(
17413 jsonPath + ".extractAll", json["extractAll"]);
17414 } else {
17415 throw jsonDecoder.missingKey(jsonPath, "extractAll");
17416 }
17417 return new ExtractLocalVariableOptions(name, extractAll);
17418 } else {
17419 throw jsonDecoder.mismatch(
17420 jsonPath, "extractLocalVariable options", json);
17421 }
17422 }
17423
17424 factory ExtractLocalVariableOptions.fromRefactoringParams(
17425 EditGetRefactoringParams refactoringParams, Request request) {
17426 return new ExtractLocalVariableOptions.fromJson(
17427 new RequestDecoder(request), "options", refactoringParams.options);
17428 }
17429
17430 Map<String, dynamic> toJson() {
17431 Map<String, dynamic> result = {};
17432 result["name"] = name;
17433 result["extractAll"] = extractAll;
17434 return result;
17435 }
17436
17437 @override
17438 String toString() => JSON.encode(toJson());
17439
17440 @override
17441 bool operator ==(other) {
17442 if (other is ExtractLocalVariableOptions) {
17443 return name == other.name && extractAll == other.extractAll;
17444 }
17445 return false;
17446 }
17447
17448 @override
17449 int get hashCode {
17450 int hash = 0;
17451 hash = JenkinsSmiHash.combine(hash, name.hashCode);
17452 hash = JenkinsSmiHash.combine(hash, extractAll.hashCode);
17453 return JenkinsSmiHash.finish(hash);
17454 }
17455 }
17456
17457 /**
17458 * extractMethod feedback
17459 *
17460 * {
17461 * "offset": int
17462 * "length": int
17463 * "returnType": String
17464 * "names": List<String>
17465 * "canCreateGetter": bool
17466 * "parameters": List<RefactoringMethodParameter>
17467 * "offsets": List<int>
17468 * "lengths": List<int>
17469 * }
17470 *
17471 * Clients may not extend, implement or mix-in this class.
17472 */
17473 class ExtractMethodFeedback extends RefactoringFeedback {
17474 int _offset;
17475
17476 int _length;
17477
17478 String _returnType;
17479
17480 List<String> _names;
17481
17482 bool _canCreateGetter;
17483
17484 List<RefactoringMethodParameter> _parameters;
17485
17486 List<int> _offsets;
17487
17488 List<int> _lengths;
17489
17490 /**
17491 * The offset to the beginning of the expression or statements that will be
17492 * extracted.
17493 */
17494 int get offset => _offset;
17495
17496 /**
17497 * The offset to the beginning of the expression or statements that will be
17498 * extracted.
17499 */
17500 void set offset(int value) {
17501 assert(value != null);
17502 this._offset = value;
17503 }
17504
17505 /**
17506 * The length of the expression or statements that will be extracted.
17507 */
17508 int get length => _length;
17509
17510 /**
17511 * The length of the expression or statements that will be extracted.
17512 */
17513 void set length(int value) {
17514 assert(value != null);
17515 this._length = value;
17516 }
17517
17518 /**
17519 * The proposed return type for the method. If the returned element does not
17520 * have a declared return type, this field will contain an empty string.
17521 */
17522 String get returnType => _returnType;
17523
17524 /**
17525 * The proposed return type for the method. If the returned element does not
17526 * have a declared return type, this field will contain an empty string.
17527 */
17528 void set returnType(String value) {
17529 assert(value != null);
17530 this._returnType = value;
17531 }
17532
17533 /**
17534 * The proposed names for the method.
17535 */
17536 List<String> get names => _names;
17537
17538 /**
17539 * The proposed names for the method.
17540 */
17541 void set names(List<String> value) {
17542 assert(value != null);
17543 this._names = value;
17544 }
17545
17546 /**
17547 * True if a getter could be created rather than a method.
17548 */
17549 bool get canCreateGetter => _canCreateGetter;
17550
17551 /**
17552 * True if a getter could be created rather than a method.
17553 */
17554 void set canCreateGetter(bool value) {
17555 assert(value != null);
17556 this._canCreateGetter = value;
17557 }
17558
17559 /**
17560 * The proposed parameters for the method.
17561 */
17562 List<RefactoringMethodParameter> get parameters => _parameters;
17563
17564 /**
17565 * The proposed parameters for the method.
17566 */
17567 void set parameters(List<RefactoringMethodParameter> value) {
17568 assert(value != null);
17569 this._parameters = value;
17570 }
17571
17572 /**
17573 * The offsets of the expressions or statements that would be replaced by an
17574 * invocation of the method.
17575 */
17576 List<int> get offsets => _offsets;
17577
17578 /**
17579 * The offsets of the expressions or statements that would be replaced by an
17580 * invocation of the method.
17581 */
17582 void set offsets(List<int> value) {
17583 assert(value != null);
17584 this._offsets = value;
17585 }
17586
17587 /**
17588 * The lengths of the expressions or statements that would be replaced by an
17589 * invocation of the method. The lengths correspond to the offsets. In other
17590 * words, for a given expression (or block of statements), if the offset of
17591 * that expression is offsets[i], then the length of that expression is
17592 * lengths[i].
17593 */
17594 List<int> get lengths => _lengths;
17595
17596 /**
17597 * The lengths of the expressions or statements that would be replaced by an
17598 * invocation of the method. The lengths correspond to the offsets. In other
17599 * words, for a given expression (or block of statements), if the offset of
17600 * that expression is offsets[i], then the length of that expression is
17601 * lengths[i].
17602 */
17603 void set lengths(List<int> value) {
17604 assert(value != null);
17605 this._lengths = value;
17606 }
17607
17608 ExtractMethodFeedback(
17609 int offset,
17610 int length,
17611 String returnType,
17612 List<String> names,
17613 bool canCreateGetter,
17614 List<RefactoringMethodParameter> parameters,
17615 List<int> offsets,
17616 List<int> lengths) {
17617 this.offset = offset;
17618 this.length = length;
17619 this.returnType = returnType;
17620 this.names = names;
17621 this.canCreateGetter = canCreateGetter;
17622 this.parameters = parameters;
17623 this.offsets = offsets;
17624 this.lengths = lengths;
17625 }
17626
17627 factory ExtractMethodFeedback.fromJson(
17628 JsonDecoder jsonDecoder, String jsonPath, Object json) {
17629 if (json == null) {
17630 json = {};
17631 }
17632 if (json is Map) {
17633 int offset;
17634 if (json.containsKey("offset")) {
17635 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
17636 } else {
17637 throw jsonDecoder.missingKey(jsonPath, "offset");
17638 }
17639 int length;
17640 if (json.containsKey("length")) {
17641 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
17642 } else {
17643 throw jsonDecoder.missingKey(jsonPath, "length");
17644 }
17645 String returnType;
17646 if (json.containsKey("returnType")) {
17647 returnType = jsonDecoder.decodeString(
17648 jsonPath + ".returnType", json["returnType"]);
17649 } else {
17650 throw jsonDecoder.missingKey(jsonPath, "returnType");
17651 }
17652 List<String> names;
17653 if (json.containsKey("names")) {
17654 names = jsonDecoder.decodeList(
17655 jsonPath + ".names", json["names"], jsonDecoder.decodeString);
17656 } else {
17657 throw jsonDecoder.missingKey(jsonPath, "names");
17658 }
17659 bool canCreateGetter;
17660 if (json.containsKey("canCreateGetter")) {
17661 canCreateGetter = jsonDecoder.decodeBool(
17662 jsonPath + ".canCreateGetter", json["canCreateGetter"]);
17663 } else {
17664 throw jsonDecoder.missingKey(jsonPath, "canCreateGetter");
17665 }
17666 List<RefactoringMethodParameter> parameters;
17667 if (json.containsKey("parameters")) {
17668 parameters = jsonDecoder.decodeList(
17669 jsonPath + ".parameters",
17670 json["parameters"],
17671 (String jsonPath, Object json) =>
17672 new RefactoringMethodParameter.fromJson(
17673 jsonDecoder, jsonPath, json));
17674 } else {
17675 throw jsonDecoder.missingKey(jsonPath, "parameters");
17676 }
17677 List<int> offsets;
17678 if (json.containsKey("offsets")) {
17679 offsets = jsonDecoder.decodeList(
17680 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt);
17681 } else {
17682 throw jsonDecoder.missingKey(jsonPath, "offsets");
17683 }
17684 List<int> lengths;
17685 if (json.containsKey("lengths")) {
17686 lengths = jsonDecoder.decodeList(
17687 jsonPath + ".lengths", json["lengths"], jsonDecoder.decodeInt);
17688 } else {
17689 throw jsonDecoder.missingKey(jsonPath, "lengths");
17690 }
17691 return new ExtractMethodFeedback(offset, length, returnType, names,
17692 canCreateGetter, parameters, offsets, lengths);
17693 } else {
17694 throw jsonDecoder.mismatch(jsonPath, "extractMethod feedback", json);
17695 }
17696 }
17697
17698 Map<String, dynamic> toJson() {
17699 Map<String, dynamic> result = {};
17700 result["offset"] = offset;
17701 result["length"] = length;
17702 result["returnType"] = returnType;
17703 result["names"] = names;
17704 result["canCreateGetter"] = canCreateGetter;
17705 result["parameters"] = parameters
17706 .map((RefactoringMethodParameter value) => value.toJson())
17707 .toList();
17708 result["offsets"] = offsets;
17709 result["lengths"] = lengths;
17710 return result;
17711 }
17712
17713 @override
17714 String toString() => JSON.encode(toJson());
17715
17716 @override
17717 bool operator ==(other) {
17718 if (other is ExtractMethodFeedback) {
17719 return offset == other.offset &&
17720 length == other.length &&
17721 returnType == other.returnType &&
17722 listEqual(names, other.names, (String a, String b) => a == b) &&
17723 canCreateGetter == other.canCreateGetter &&
17724 listEqual(
17725 parameters,
17726 other.parameters,
17727 (RefactoringMethodParameter a, RefactoringMethodParameter b) =>
17728 a == b) &&
17729 listEqual(offsets, other.offsets, (int a, int b) => a == b) &&
17730 listEqual(lengths, other.lengths, (int a, int b) => a == b);
17731 }
17732 return false;
17733 }
17734
17735 @override
17736 int get hashCode {
17737 int hash = 0;
17738 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
17739 hash = JenkinsSmiHash.combine(hash, length.hashCode);
17740 hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
17741 hash = JenkinsSmiHash.combine(hash, names.hashCode);
17742 hash = JenkinsSmiHash.combine(hash, canCreateGetter.hashCode);
17743 hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
17744 hash = JenkinsSmiHash.combine(hash, offsets.hashCode);
17745 hash = JenkinsSmiHash.combine(hash, lengths.hashCode);
17746 return JenkinsSmiHash.finish(hash);
17747 }
17748 }
17749
17750 /**
17751 * extractMethod options
17752 *
17753 * {
17754 * "returnType": String
17755 * "createGetter": bool
17756 * "name": String
17757 * "parameters": List<RefactoringMethodParameter>
17758 * "extractAll": bool
17759 * }
17760 *
17761 * Clients may not extend, implement or mix-in this class.
17762 */
17763 class ExtractMethodOptions extends RefactoringOptions {
17764 String _returnType;
17765
17766 bool _createGetter;
17767
17768 String _name;
17769
17770 List<RefactoringMethodParameter> _parameters;
17771
17772 bool _extractAll;
17773
17774 /**
17775 * The return type that should be defined for the method.
17776 */
17777 String get returnType => _returnType;
17778
17779 /**
17780 * The return type that should be defined for the method.
17781 */
17782 void set returnType(String value) {
17783 assert(value != null);
17784 this._returnType = value;
17785 }
17786
17787 /**
17788 * True if a getter should be created rather than a method. It is an error if
17789 * this field is true and the list of parameters is non-empty.
17790 */
17791 bool get createGetter => _createGetter;
17792
17793 /**
17794 * True if a getter should be created rather than a method. It is an error if
17795 * this field is true and the list of parameters is non-empty.
17796 */
17797 void set createGetter(bool value) {
17798 assert(value != null);
17799 this._createGetter = value;
17800 }
17801
17802 /**
17803 * The name that the method should be given.
17804 */
17805 String get name => _name;
17806
17807 /**
17808 * The name that the method should be given.
17809 */
17810 void set name(String value) {
17811 assert(value != null);
17812 this._name = value;
17813 }
17814
17815 /**
17816 * The parameters that should be defined for the method.
17817 *
17818 * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL
17819 * parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a
17820 * NAMED parameter.
17821 *
17822 * - To change the order and/or update proposed parameters, add parameters
17823 * with the same identifiers as proposed.
17824 * - To add new parameters, omit their identifier.
17825 * - To remove some parameters, omit them in this list.
17826 */
17827 List<RefactoringMethodParameter> get parameters => _parameters;
17828
17829 /**
17830 * The parameters that should be defined for the method.
17831 *
17832 * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL
17833 * parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a
17834 * NAMED parameter.
17835 *
17836 * - To change the order and/or update proposed parameters, add parameters
17837 * with the same identifiers as proposed.
17838 * - To add new parameters, omit their identifier.
17839 * - To remove some parameters, omit them in this list.
17840 */
17841 void set parameters(List<RefactoringMethodParameter> value) {
17842 assert(value != null);
17843 this._parameters = value;
17844 }
17845
17846 /**
17847 * True if all occurrences of the expression or statements should be replaced
17848 * by an invocation of the method. The expression or statements used to
17849 * initiate the refactoring will always be replaced.
17850 */
17851 bool get extractAll => _extractAll;
17852
17853 /**
17854 * True if all occurrences of the expression or statements should be replaced
17855 * by an invocation of the method. The expression or statements used to
17856 * initiate the refactoring will always be replaced.
17857 */
17858 void set extractAll(bool value) {
17859 assert(value != null);
17860 this._extractAll = value;
17861 }
17862
17863 ExtractMethodOptions(String returnType, bool createGetter, String name,
17864 List<RefactoringMethodParameter> parameters, bool extractAll) {
17865 this.returnType = returnType;
17866 this.createGetter = createGetter;
17867 this.name = name;
17868 this.parameters = parameters;
17869 this.extractAll = extractAll;
17870 }
17871
17872 factory ExtractMethodOptions.fromJson(
17873 JsonDecoder jsonDecoder, String jsonPath, Object json) {
17874 if (json == null) {
17875 json = {};
17876 }
17877 if (json is Map) {
17878 String returnType;
17879 if (json.containsKey("returnType")) {
17880 returnType = jsonDecoder.decodeString(
17881 jsonPath + ".returnType", json["returnType"]);
17882 } else {
17883 throw jsonDecoder.missingKey(jsonPath, "returnType");
17884 }
17885 bool createGetter;
17886 if (json.containsKey("createGetter")) {
17887 createGetter = jsonDecoder.decodeBool(
17888 jsonPath + ".createGetter", json["createGetter"]);
17889 } else {
17890 throw jsonDecoder.missingKey(jsonPath, "createGetter");
17891 }
17892 String name;
17893 if (json.containsKey("name")) {
17894 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
17895 } else {
17896 throw jsonDecoder.missingKey(jsonPath, "name");
17897 }
17898 List<RefactoringMethodParameter> parameters;
17899 if (json.containsKey("parameters")) {
17900 parameters = jsonDecoder.decodeList(
17901 jsonPath + ".parameters",
17902 json["parameters"],
17903 (String jsonPath, Object json) =>
17904 new RefactoringMethodParameter.fromJson(
17905 jsonDecoder, jsonPath, json));
17906 } else {
17907 throw jsonDecoder.missingKey(jsonPath, "parameters");
17908 }
17909 bool extractAll;
17910 if (json.containsKey("extractAll")) {
17911 extractAll = jsonDecoder.decodeBool(
17912 jsonPath + ".extractAll", json["extractAll"]);
17913 } else {
17914 throw jsonDecoder.missingKey(jsonPath, "extractAll");
17915 }
17916 return new ExtractMethodOptions(
17917 returnType, createGetter, name, parameters, extractAll);
17918 } else {
17919 throw jsonDecoder.mismatch(jsonPath, "extractMethod options", json);
17920 }
17921 }
17922
17923 factory ExtractMethodOptions.fromRefactoringParams(
17924 EditGetRefactoringParams refactoringParams, Request request) {
17925 return new ExtractMethodOptions.fromJson(
17926 new RequestDecoder(request), "options", refactoringParams.options);
17927 }
17928
17929 Map<String, dynamic> toJson() {
17930 Map<String, dynamic> result = {};
17931 result["returnType"] = returnType;
17932 result["createGetter"] = createGetter;
17933 result["name"] = name;
17934 result["parameters"] = parameters
17935 .map((RefactoringMethodParameter value) => value.toJson())
17936 .toList();
17937 result["extractAll"] = extractAll;
17938 return result;
17939 }
17940
17941 @override
17942 String toString() => JSON.encode(toJson());
17943
17944 @override
17945 bool operator ==(other) {
17946 if (other is ExtractMethodOptions) {
17947 return returnType == other.returnType &&
17948 createGetter == other.createGetter &&
17949 name == other.name &&
17950 listEqual(
17951 parameters,
17952 other.parameters,
17953 (RefactoringMethodParameter a, RefactoringMethodParameter b) =>
17954 a == b) &&
17955 extractAll == other.extractAll;
17956 }
17957 return false;
17958 }
17959
17960 @override
17961 int get hashCode {
17962 int hash = 0;
17963 hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
17964 hash = JenkinsSmiHash.combine(hash, createGetter.hashCode);
17965 hash = JenkinsSmiHash.combine(hash, name.hashCode);
17966 hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
17967 hash = JenkinsSmiHash.combine(hash, extractAll.hashCode);
17968 return JenkinsSmiHash.finish(hash);
17969 }
17970 }
17971
17972 /**
17973 * inlineLocalVariable feedback
17974 *
17975 * {
17976 * "name": String
17977 * "occurrences": int
17978 * }
17979 *
17980 * Clients may not extend, implement or mix-in this class.
17981 */
17982 class InlineLocalVariableFeedback extends RefactoringFeedback {
17983 String _name;
17984
17985 int _occurrences;
17986
17987 /**
17988 * The name of the variable being inlined.
17989 */
17990 String get name => _name;
17991
17992 /**
17993 * The name of the variable being inlined.
17994 */
17995 void set name(String value) {
17996 assert(value != null);
17997 this._name = value;
17998 }
17999
18000 /**
18001 * The number of times the variable occurs.
18002 */
18003 int get occurrences => _occurrences;
18004
18005 /**
18006 * The number of times the variable occurs.
18007 */
18008 void set occurrences(int value) {
18009 assert(value != null);
18010 this._occurrences = value;
18011 }
18012
18013 InlineLocalVariableFeedback(String name, int occurrences) {
18014 this.name = name;
18015 this.occurrences = occurrences;
18016 }
18017
18018 factory InlineLocalVariableFeedback.fromJson(
18019 JsonDecoder jsonDecoder, String jsonPath, Object json) {
18020 if (json == null) {
18021 json = {};
18022 }
18023 if (json is Map) {
18024 String name;
18025 if (json.containsKey("name")) {
18026 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
18027 } else {
18028 throw jsonDecoder.missingKey(jsonPath, "name");
18029 }
18030 int occurrences;
18031 if (json.containsKey("occurrences")) {
18032 occurrences = jsonDecoder.decodeInt(
18033 jsonPath + ".occurrences", json["occurrences"]);
18034 } else {
18035 throw jsonDecoder.missingKey(jsonPath, "occurrences");
18036 }
18037 return new InlineLocalVariableFeedback(name, occurrences);
18038 } else {
18039 throw jsonDecoder.mismatch(
18040 jsonPath, "inlineLocalVariable feedback", json);
18041 }
18042 }
18043
18044 Map<String, dynamic> toJson() {
18045 Map<String, dynamic> result = {};
18046 result["name"] = name;
18047 result["occurrences"] = occurrences;
18048 return result;
18049 }
18050
18051 @override
18052 String toString() => JSON.encode(toJson());
18053
18054 @override
18055 bool operator ==(other) {
18056 if (other is InlineLocalVariableFeedback) {
18057 return name == other.name && occurrences == other.occurrences;
18058 }
18059 return false;
18060 }
18061
18062 @override
18063 int get hashCode {
18064 int hash = 0;
18065 hash = JenkinsSmiHash.combine(hash, name.hashCode);
18066 hash = JenkinsSmiHash.combine(hash, occurrences.hashCode);
18067 return JenkinsSmiHash.finish(hash);
18068 }
18069 }
18070
18071 /**
18072 * inlineLocalVariable options
18073 *
18074 * Clients may not extend, implement or mix-in this class.
18075 */
18076 class InlineLocalVariableOptions extends RefactoringOptions {
18077 @override
18078 bool operator ==(other) {
18079 if (other is InlineLocalVariableOptions) {
18080 return true;
18081 }
18082 return false;
18083 }
18084
18085 @override
18086 int get hashCode {
18087 return 540364977;
18088 }
18089 }
18090
18091 /**
18092 * inlineMethod feedback
18093 *
18094 * {
18095 * "className": optional String
18096 * "methodName": String
18097 * "isDeclaration": bool
18098 * }
18099 *
18100 * Clients may not extend, implement or mix-in this class.
18101 */
18102 class InlineMethodFeedback extends RefactoringFeedback {
18103 String _className;
18104
18105 String _methodName;
18106
18107 bool _isDeclaration;
18108
18109 /**
18110 * The name of the class enclosing the method being inlined. If not a class
18111 * member is being inlined, this field will be absent.
18112 */
18113 String get className => _className;
18114
18115 /**
18116 * The name of the class enclosing the method being inlined. If not a class
18117 * member is being inlined, this field will be absent.
18118 */
18119 void set className(String value) {
18120 this._className = value;
18121 }
18122
18123 /**
18124 * The name of the method (or function) being inlined.
18125 */
18126 String get methodName => _methodName;
18127
18128 /**
18129 * The name of the method (or function) being inlined.
18130 */
18131 void set methodName(String value) {
18132 assert(value != null);
18133 this._methodName = value;
18134 }
18135
18136 /**
18137 * True if the declaration of the method is selected. So all references
18138 * should be inlined.
18139 */
18140 bool get isDeclaration => _isDeclaration;
18141
18142 /**
18143 * True if the declaration of the method is selected. So all references
18144 * should be inlined.
18145 */
18146 void set isDeclaration(bool value) {
18147 assert(value != null);
18148 this._isDeclaration = value;
18149 }
18150
18151 InlineMethodFeedback(String methodName, bool isDeclaration,
18152 {String className}) {
18153 this.className = className;
18154 this.methodName = methodName;
18155 this.isDeclaration = isDeclaration;
18156 }
18157
18158 factory InlineMethodFeedback.fromJson(
18159 JsonDecoder jsonDecoder, String jsonPath, Object json) {
18160 if (json == null) {
18161 json = {};
18162 }
18163 if (json is Map) {
18164 String className;
18165 if (json.containsKey("className")) {
18166 className = jsonDecoder.decodeString(
18167 jsonPath + ".className", json["className"]);
18168 }
18169 String methodName;
18170 if (json.containsKey("methodName")) {
18171 methodName = jsonDecoder.decodeString(
18172 jsonPath + ".methodName", json["methodName"]);
18173 } else {
18174 throw jsonDecoder.missingKey(jsonPath, "methodName");
18175 }
18176 bool isDeclaration;
18177 if (json.containsKey("isDeclaration")) {
18178 isDeclaration = jsonDecoder.decodeBool(
18179 jsonPath + ".isDeclaration", json["isDeclaration"]);
18180 } else {
18181 throw jsonDecoder.missingKey(jsonPath, "isDeclaration");
18182 }
18183 return new InlineMethodFeedback(methodName, isDeclaration,
18184 className: className);
18185 } else {
18186 throw jsonDecoder.mismatch(jsonPath, "inlineMethod feedback", json);
18187 }
18188 }
18189
18190 Map<String, dynamic> toJson() {
18191 Map<String, dynamic> result = {};
18192 if (className != null) {
18193 result["className"] = className;
18194 }
18195 result["methodName"] = methodName;
18196 result["isDeclaration"] = isDeclaration;
18197 return result;
18198 }
18199
18200 @override
18201 String toString() => JSON.encode(toJson());
18202
18203 @override
18204 bool operator ==(other) {
18205 if (other is InlineMethodFeedback) {
18206 return className == other.className &&
18207 methodName == other.methodName &&
18208 isDeclaration == other.isDeclaration;
18209 }
18210 return false;
18211 }
18212
18213 @override
18214 int get hashCode {
18215 int hash = 0;
18216 hash = JenkinsSmiHash.combine(hash, className.hashCode);
18217 hash = JenkinsSmiHash.combine(hash, methodName.hashCode);
18218 hash = JenkinsSmiHash.combine(hash, isDeclaration.hashCode);
18219 return JenkinsSmiHash.finish(hash);
18220 }
18221 }
18222
18223 /**
18224 * inlineMethod options
18225 *
18226 * {
18227 * "deleteSource": bool
18228 * "inlineAll": bool
18229 * }
18230 *
18231 * Clients may not extend, implement or mix-in this class.
18232 */
18233 class InlineMethodOptions extends RefactoringOptions {
18234 bool _deleteSource;
18235
18236 bool _inlineAll;
18237
18238 /**
18239 * True if the method being inlined should be removed. It is an error if this
18240 * field is true and inlineAll is false.
18241 */
18242 bool get deleteSource => _deleteSource;
18243
18244 /**
18245 * True if the method being inlined should be removed. It is an error if this
18246 * field is true and inlineAll is false.
18247 */
18248 void set deleteSource(bool value) {
18249 assert(value != null);
18250 this._deleteSource = value;
18251 }
18252
18253 /**
18254 * True if all invocations of the method should be inlined, or false if only
18255 * the invocation site used to create this refactoring should be inlined.
18256 */
18257 bool get inlineAll => _inlineAll;
18258
18259 /**
18260 * True if all invocations of the method should be inlined, or false if only
18261 * the invocation site used to create this refactoring should be inlined.
18262 */
18263 void set inlineAll(bool value) {
18264 assert(value != null);
18265 this._inlineAll = value;
18266 }
18267
18268 InlineMethodOptions(bool deleteSource, bool inlineAll) {
18269 this.deleteSource = deleteSource;
18270 this.inlineAll = inlineAll;
18271 }
18272
18273 factory InlineMethodOptions.fromJson(
18274 JsonDecoder jsonDecoder, String jsonPath, Object json) {
18275 if (json == null) {
18276 json = {};
18277 }
18278 if (json is Map) {
18279 bool deleteSource;
18280 if (json.containsKey("deleteSource")) {
18281 deleteSource = jsonDecoder.decodeBool(
18282 jsonPath + ".deleteSource", json["deleteSource"]);
18283 } else {
18284 throw jsonDecoder.missingKey(jsonPath, "deleteSource");
18285 }
18286 bool inlineAll;
18287 if (json.containsKey("inlineAll")) {
18288 inlineAll =
18289 jsonDecoder.decodeBool(jsonPath + ".inlineAll", json["inlineAll"]);
18290 } else {
18291 throw jsonDecoder.missingKey(jsonPath, "inlineAll");
18292 }
18293 return new InlineMethodOptions(deleteSource, inlineAll);
18294 } else {
18295 throw jsonDecoder.mismatch(jsonPath, "inlineMethod options", json);
18296 }
18297 }
18298
18299 factory InlineMethodOptions.fromRefactoringParams(
18300 EditGetRefactoringParams refactoringParams, Request request) {
18301 return new InlineMethodOptions.fromJson(
18302 new RequestDecoder(request), "options", refactoringParams.options);
18303 }
18304
18305 Map<String, dynamic> toJson() {
18306 Map<String, dynamic> result = {};
18307 result["deleteSource"] = deleteSource;
18308 result["inlineAll"] = inlineAll;
18309 return result;
18310 }
18311
18312 @override
18313 String toString() => JSON.encode(toJson());
18314
18315 @override
18316 bool operator ==(other) {
18317 if (other is InlineMethodOptions) {
18318 return deleteSource == other.deleteSource && inlineAll == other.inlineAll;
18319 }
18320 return false;
18321 }
18322
18323 @override
18324 int get hashCode {
18325 int hash = 0;
18326 hash = JenkinsSmiHash.combine(hash, deleteSource.hashCode);
18327 hash = JenkinsSmiHash.combine(hash, inlineAll.hashCode);
18328 return JenkinsSmiHash.finish(hash);
18329 }
18330 }
18331
18332 /**
18333 * moveFile feedback
18334 *
18335 * Clients may not extend, implement or mix-in this class.
18336 */
18337 class MoveFileFeedback extends RefactoringFeedback {
18338 @override
18339 bool operator ==(other) {
18340 if (other is MoveFileFeedback) {
18341 return true;
18342 }
18343 return false;
18344 }
18345
18346 @override
18347 int get hashCode {
18348 return 438975893;
18349 }
18350 }
18351
18352 /**
18353 * moveFile options
18354 *
18355 * {
18356 * "newFile": FilePath
18357 * }
18358 *
18359 * Clients may not extend, implement or mix-in this class.
18360 */
18361 class MoveFileOptions extends RefactoringOptions {
18362 String _newFile;
18363
18364 /**
18365 * The new file path to which the given file is being moved.
18366 */
18367 String get newFile => _newFile;
18368
18369 /**
18370 * The new file path to which the given file is being moved.
18371 */
18372 void set newFile(String value) {
18373 assert(value != null);
18374 this._newFile = value;
18375 }
18376
18377 MoveFileOptions(String newFile) {
18378 this.newFile = newFile;
18379 }
18380
18381 factory MoveFileOptions.fromJson(
18382 JsonDecoder jsonDecoder, String jsonPath, Object json) {
18383 if (json == null) {
18384 json = {};
18385 }
18386 if (json is Map) {
18387 String newFile;
18388 if (json.containsKey("newFile")) {
18389 newFile =
18390 jsonDecoder.decodeString(jsonPath + ".newFile", json["newFile"]);
18391 } else {
18392 throw jsonDecoder.missingKey(jsonPath, "newFile");
18393 }
18394 return new MoveFileOptions(newFile);
18395 } else {
18396 throw jsonDecoder.mismatch(jsonPath, "moveFile options", json);
18397 }
18398 }
18399
18400 factory MoveFileOptions.fromRefactoringParams(
18401 EditGetRefactoringParams refactoringParams, Request request) {
18402 return new MoveFileOptions.fromJson(
18403 new RequestDecoder(request), "options", refactoringParams.options);
18404 }
18405
18406 Map<String, dynamic> toJson() {
18407 Map<String, dynamic> result = {};
18408 result["newFile"] = newFile;
18409 return result;
18410 }
18411
18412 @override
18413 String toString() => JSON.encode(toJson());
18414
18415 @override
18416 bool operator ==(other) {
18417 if (other is MoveFileOptions) {
18418 return newFile == other.newFile;
18419 }
18420 return false;
18421 }
18422
18423 @override
18424 int get hashCode {
18425 int hash = 0;
18426 hash = JenkinsSmiHash.combine(hash, newFile.hashCode);
18427 return JenkinsSmiHash.finish(hash);
18428 }
18429 }
18430
18431 /**
18432 * rename feedback
18433 *
18434 * {
18435 * "offset": int
18436 * "length": int
18437 * "elementKindName": String
18438 * "oldName": String
18439 * }
18440 *
18441 * Clients may not extend, implement or mix-in this class.
18442 */
18443 class RenameFeedback extends RefactoringFeedback {
18444 int _offset;
18445
18446 int _length;
18447
18448 String _elementKindName;
18449
18450 String _oldName;
18451
18452 /**
18453 * The offset to the beginning of the name selected to be renamed.
18454 */
18455 int get offset => _offset;
18456
18457 /**
18458 * The offset to the beginning of the name selected to be renamed.
18459 */
18460 void set offset(int value) {
18461 assert(value != null);
18462 this._offset = value;
18463 }
18464
18465 /**
18466 * The length of the name selected to be renamed.
18467 */
18468 int get length => _length;
18469
18470 /**
18471 * The length of the name selected to be renamed.
18472 */
18473 void set length(int value) {
18474 assert(value != null);
18475 this._length = value;
18476 }
18477
18478 /**
18479 * The human-readable description of the kind of element being renamed (such
18480 * as "class" or "function type alias").
18481 */
18482 String get elementKindName => _elementKindName;
18483
18484 /**
18485 * The human-readable description of the kind of element being renamed (such
18486 * as "class" or "function type alias").
18487 */
18488 void set elementKindName(String value) {
18489 assert(value != null);
18490 this._elementKindName = value;
18491 }
18492
18493 /**
18494 * The old name of the element before the refactoring.
18495 */
18496 String get oldName => _oldName;
18497
18498 /**
18499 * The old name of the element before the refactoring.
18500 */
18501 void set oldName(String value) {
18502 assert(value != null);
18503 this._oldName = value;
18504 }
18505
18506 RenameFeedback(
18507 int offset, int length, String elementKindName, String oldName) {
18508 this.offset = offset;
18509 this.length = length;
18510 this.elementKindName = elementKindName;
18511 this.oldName = oldName;
18512 }
18513
18514 factory RenameFeedback.fromJson(
18515 JsonDecoder jsonDecoder, String jsonPath, Object json) {
18516 if (json == null) {
18517 json = {};
18518 }
18519 if (json is Map) {
18520 int offset;
18521 if (json.containsKey("offset")) {
18522 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
18523 } else {
18524 throw jsonDecoder.missingKey(jsonPath, "offset");
18525 }
18526 int length;
18527 if (json.containsKey("length")) {
18528 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
18529 } else {
18530 throw jsonDecoder.missingKey(jsonPath, "length");
18531 }
18532 String elementKindName;
18533 if (json.containsKey("elementKindName")) {
18534 elementKindName = jsonDecoder.decodeString(
18535 jsonPath + ".elementKindName", json["elementKindName"]);
18536 } else {
18537 throw jsonDecoder.missingKey(jsonPath, "elementKindName");
18538 }
18539 String oldName;
18540 if (json.containsKey("oldName")) {
18541 oldName =
18542 jsonDecoder.decodeString(jsonPath + ".oldName", json["oldName"]);
18543 } else {
18544 throw jsonDecoder.missingKey(jsonPath, "oldName");
18545 }
18546 return new RenameFeedback(offset, length, elementKindName, oldName);
18547 } else {
18548 throw jsonDecoder.mismatch(jsonPath, "rename feedback", json);
18549 }
18550 }
18551
18552 Map<String, dynamic> toJson() {
18553 Map<String, dynamic> result = {};
18554 result["offset"] = offset;
18555 result["length"] = length;
18556 result["elementKindName"] = elementKindName;
18557 result["oldName"] = oldName;
18558 return result;
18559 }
18560
18561 @override
18562 String toString() => JSON.encode(toJson());
18563
18564 @override
18565 bool operator ==(other) {
18566 if (other is RenameFeedback) {
18567 return offset == other.offset &&
18568 length == other.length &&
18569 elementKindName == other.elementKindName &&
18570 oldName == other.oldName;
18571 }
18572 return false;
18573 }
18574
18575 @override
18576 int get hashCode {
18577 int hash = 0;
18578 hash = JenkinsSmiHash.combine(hash, offset.hashCode);
18579 hash = JenkinsSmiHash.combine(hash, length.hashCode);
18580 hash = JenkinsSmiHash.combine(hash, elementKindName.hashCode);
18581 hash = JenkinsSmiHash.combine(hash, oldName.hashCode);
18582 return JenkinsSmiHash.finish(hash);
18583 }
18584 }
18585
18586 /**
18587 * rename options
18588 *
18589 * {
18590 * "newName": String
18591 * }
18592 *
18593 * Clients may not extend, implement or mix-in this class.
18594 */
18595 class RenameOptions extends RefactoringOptions {
18596 String _newName;
18597
18598 /**
18599 * The name that the element should have after the refactoring.
18600 */
18601 String get newName => _newName;
18602
18603 /**
18604 * The name that the element should have after the refactoring.
18605 */
18606 void set newName(String value) {
18607 assert(value != null);
18608 this._newName = value;
18609 }
18610
18611 RenameOptions(String newName) {
18612 this.newName = newName;
18613 }
18614
18615 factory RenameOptions.fromJson(
18616 JsonDecoder jsonDecoder, String jsonPath, Object json) {
18617 if (json == null) {
18618 json = {};
18619 }
18620 if (json is Map) {
18621 String newName;
18622 if (json.containsKey("newName")) {
18623 newName =
18624 jsonDecoder.decodeString(jsonPath + ".newName", json["newName"]);
18625 } else {
18626 throw jsonDecoder.missingKey(jsonPath, "newName");
18627 }
18628 return new RenameOptions(newName);
18629 } else {
18630 throw jsonDecoder.mismatch(jsonPath, "rename options", json);
18631 }
18632 }
18633
18634 factory RenameOptions.fromRefactoringParams(
18635 EditGetRefactoringParams refactoringParams, Request request) {
18636 return new RenameOptions.fromJson(
18637 new RequestDecoder(request), "options", refactoringParams.options);
18638 }
18639
18640 Map<String, dynamic> toJson() {
18641 Map<String, dynamic> result = {};
18642 result["newName"] = newName;
18643 return result;
18644 }
18645
18646 @override
18647 String toString() => JSON.encode(toJson());
18648
18649 @override
18650 bool operator ==(other) {
18651 if (other is RenameOptions) {
18652 return newName == other.newName;
18653 }
18654 return false;
18655 }
18656
18657 @override
18658 int get hashCode {
18659 int hash = 0;
18660 hash = JenkinsSmiHash.combine(hash, newName.hashCode);
18661 return JenkinsSmiHash.finish(hash);
18662 }
18663 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/plugin/edit/fix/fix_core.dart ('k') | pkg/analysis_server/lib/plugin/protocol/protocol.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698