OLD | NEW |
| (Empty) |
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
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 import 'dart:convert' hide JsonDecoder; | |
10 | |
11 import 'package:analyzer/src/generated/utilities_general.dart'; | |
12 import 'package:analyzer_plugin/protocol/protocol.dart'; | |
13 import 'package:analyzer_plugin/src/protocol/protocol_internal.dart'; | |
14 | |
15 /** | |
16 * AddContentOverlay | |
17 * | |
18 * { | |
19 * "type": "add" | |
20 * "content": String | |
21 * } | |
22 * | |
23 * Clients may not extend, implement or mix-in this class. | |
24 */ | |
25 class AddContentOverlay implements HasToJson { | |
26 String _content; | |
27 | |
28 /** | |
29 * The new content of the file. | |
30 */ | |
31 String get content => _content; | |
32 | |
33 /** | |
34 * The new content of the file. | |
35 */ | |
36 void set content(String value) { | |
37 assert(value != null); | |
38 this._content = value; | |
39 } | |
40 | |
41 AddContentOverlay(String content) { | |
42 this.content = content; | |
43 } | |
44 | |
45 factory AddContentOverlay.fromJson(JsonDecoder jsonDecoder, String jsonPath, O
bject json) { | |
46 if (json == null) { | |
47 json = {}; | |
48 } | |
49 if (json is Map) { | |
50 if (json["type"] != "add") { | |
51 throw jsonDecoder.mismatch(jsonPath, "equal " + "add", json); | |
52 } | |
53 String content; | |
54 if (json.containsKey("content")) { | |
55 content = jsonDecoder.decodeString(jsonPath + ".content", json["content"
]); | |
56 } else { | |
57 throw jsonDecoder.mismatch(jsonPath, "content"); | |
58 } | |
59 return new AddContentOverlay(content); | |
60 } else { | |
61 throw jsonDecoder.mismatch(jsonPath, "AddContentOverlay", json); | |
62 } | |
63 } | |
64 | |
65 @override | |
66 Map<String, dynamic> toJson() { | |
67 Map<String, dynamic> result = {}; | |
68 result["type"] = "add"; | |
69 result["content"] = content; | |
70 return result; | |
71 } | |
72 | |
73 @override | |
74 String toString() => JSON.encode(toJson()); | |
75 | |
76 @override | |
77 bool operator==(other) { | |
78 if (other is AddContentOverlay) { | |
79 return content == other.content; | |
80 } | |
81 return false; | |
82 } | |
83 | |
84 @override | |
85 int get hashCode { | |
86 int hash = 0; | |
87 hash = JenkinsSmiHash.combine(hash, 704418402); | |
88 hash = JenkinsSmiHash.combine(hash, content.hashCode); | |
89 return JenkinsSmiHash.finish(hash); | |
90 } | |
91 } | |
92 | |
93 /** | |
94 * AnalysisError | |
95 * | |
96 * { | |
97 * "severity": AnalysisErrorSeverity | |
98 * "type": AnalysisErrorType | |
99 * "location": Location | |
100 * "message": String | |
101 * "correction": optional String | |
102 * "code": String | |
103 * "hasFix": optional bool | |
104 * } | |
105 * | |
106 * Clients may not extend, implement or mix-in this class. | |
107 */ | |
108 class AnalysisError implements HasToJson { | |
109 AnalysisErrorSeverity _severity; | |
110 | |
111 AnalysisErrorType _type; | |
112 | |
113 Location _location; | |
114 | |
115 String _message; | |
116 | |
117 String _correction; | |
118 | |
119 String _code; | |
120 | |
121 bool _hasFix; | |
122 | |
123 /** | |
124 * The severity of the error. | |
125 */ | |
126 AnalysisErrorSeverity get severity => _severity; | |
127 | |
128 /** | |
129 * The severity of the error. | |
130 */ | |
131 void set severity(AnalysisErrorSeverity value) { | |
132 assert(value != null); | |
133 this._severity = value; | |
134 } | |
135 | |
136 /** | |
137 * The type of the error. | |
138 */ | |
139 AnalysisErrorType get type => _type; | |
140 | |
141 /** | |
142 * The type of the error. | |
143 */ | |
144 void set type(AnalysisErrorType value) { | |
145 assert(value != null); | |
146 this._type = value; | |
147 } | |
148 | |
149 /** | |
150 * The location associated with the error. | |
151 */ | |
152 Location get location => _location; | |
153 | |
154 /** | |
155 * The location associated with the error. | |
156 */ | |
157 void set location(Location value) { | |
158 assert(value != null); | |
159 this._location = value; | |
160 } | |
161 | |
162 /** | |
163 * The message to be displayed for this error. The message should indicate | |
164 * what is wrong with the code and why it is wrong. | |
165 */ | |
166 String get message => _message; | |
167 | |
168 /** | |
169 * The message to be displayed for this error. The message should indicate | |
170 * what is wrong with the code and why it is wrong. | |
171 */ | |
172 void set message(String value) { | |
173 assert(value != null); | |
174 this._message = value; | |
175 } | |
176 | |
177 /** | |
178 * The correction message to be displayed for this error. The correction | |
179 * message should indicate how the user can fix the error. The field is | |
180 * omitted if there is no correction message associated with the error code. | |
181 */ | |
182 String get correction => _correction; | |
183 | |
184 /** | |
185 * The correction message to be displayed for this error. The correction | |
186 * message should indicate how the user can fix the error. The field is | |
187 * omitted if there is no correction message associated with the error code. | |
188 */ | |
189 void set correction(String value) { | |
190 this._correction = value; | |
191 } | |
192 | |
193 /** | |
194 * The name, as a string, of the error code associated with this error. | |
195 */ | |
196 String get code => _code; | |
197 | |
198 /** | |
199 * The name, as a string, of the error code associated with this error. | |
200 */ | |
201 void set code(String value) { | |
202 assert(value != null); | |
203 this._code = value; | |
204 } | |
205 | |
206 /** | |
207 * A hint to indicate to interested clients that this error has an associated | |
208 * fix (or fixes). The absence of this field implies there are not known to | |
209 * be fixes. Note that since the operation to calculate whether fixes apply | |
210 * needs to be performant it is possible that complicated tests will be | |
211 * skipped and a false negative returned. For this reason, this attribute | |
212 * should be treated as a "hint". Despite the possibility of false negatives, | |
213 * no false positives should be returned. If a client sees this flag set they | |
214 * can proceed with the confidence that there are in fact associated fixes. | |
215 */ | |
216 bool get hasFix => _hasFix; | |
217 | |
218 /** | |
219 * A hint to indicate to interested clients that this error has an associated | |
220 * fix (or fixes). The absence of this field implies there are not known to | |
221 * be fixes. Note that since the operation to calculate whether fixes apply | |
222 * needs to be performant it is possible that complicated tests will be | |
223 * skipped and a false negative returned. For this reason, this attribute | |
224 * should be treated as a "hint". Despite the possibility of false negatives, | |
225 * no false positives should be returned. If a client sees this flag set they | |
226 * can proceed with the confidence that there are in fact associated fixes. | |
227 */ | |
228 void set hasFix(bool value) { | |
229 this._hasFix = value; | |
230 } | |
231 | |
232 AnalysisError(AnalysisErrorSeverity severity, AnalysisErrorType type, Location
location, String message, String code, {String correction, bool hasFix}) { | |
233 this.severity = severity; | |
234 this.type = type; | |
235 this.location = location; | |
236 this.message = message; | |
237 this.correction = correction; | |
238 this.code = code; | |
239 this.hasFix = hasFix; | |
240 } | |
241 | |
242 factory AnalysisError.fromJson(JsonDecoder jsonDecoder, String jsonPath, Objec
t json) { | |
243 if (json == null) { | |
244 json = {}; | |
245 } | |
246 if (json is Map) { | |
247 AnalysisErrorSeverity severity; | |
248 if (json.containsKey("severity")) { | |
249 severity = new AnalysisErrorSeverity.fromJson(jsonDecoder, jsonPath + ".
severity", json["severity"]); | |
250 } else { | |
251 throw jsonDecoder.mismatch(jsonPath, "severity"); | |
252 } | |
253 AnalysisErrorType type; | |
254 if (json.containsKey("type")) { | |
255 type = new AnalysisErrorType.fromJson(jsonDecoder, jsonPath + ".type", j
son["type"]); | |
256 } else { | |
257 throw jsonDecoder.mismatch(jsonPath, "type"); | |
258 } | |
259 Location location; | |
260 if (json.containsKey("location")) { | |
261 location = new Location.fromJson(jsonDecoder, jsonPath + ".location", js
on["location"]); | |
262 } else { | |
263 throw jsonDecoder.mismatch(jsonPath, "location"); | |
264 } | |
265 String message; | |
266 if (json.containsKey("message")) { | |
267 message = jsonDecoder.decodeString(jsonPath + ".message", json["message"
]); | |
268 } else { | |
269 throw jsonDecoder.mismatch(jsonPath, "message"); | |
270 } | |
271 String correction; | |
272 if (json.containsKey("correction")) { | |
273 correction = jsonDecoder.decodeString(jsonPath + ".correction", json["co
rrection"]); | |
274 } | |
275 String code; | |
276 if (json.containsKey("code")) { | |
277 code = jsonDecoder.decodeString(jsonPath + ".code", json["code"]); | |
278 } else { | |
279 throw jsonDecoder.mismatch(jsonPath, "code"); | |
280 } | |
281 bool hasFix; | |
282 if (json.containsKey("hasFix")) { | |
283 hasFix = jsonDecoder.decodeBool(jsonPath + ".hasFix", json["hasFix"]); | |
284 } | |
285 return new AnalysisError(severity, type, location, message, code, correcti
on: correction, hasFix: hasFix); | |
286 } else { | |
287 throw jsonDecoder.mismatch(jsonPath, "AnalysisError", json); | |
288 } | |
289 } | |
290 | |
291 @override | |
292 Map<String, dynamic> toJson() { | |
293 Map<String, dynamic> result = {}; | |
294 result["severity"] = severity.toJson(); | |
295 result["type"] = type.toJson(); | |
296 result["location"] = location.toJson(); | |
297 result["message"] = message; | |
298 if (correction != null) { | |
299 result["correction"] = correction; | |
300 } | |
301 result["code"] = code; | |
302 if (hasFix != null) { | |
303 result["hasFix"] = hasFix; | |
304 } | |
305 return result; | |
306 } | |
307 | |
308 @override | |
309 String toString() => JSON.encode(toJson()); | |
310 | |
311 @override | |
312 bool operator==(other) { | |
313 if (other is AnalysisError) { | |
314 return severity == other.severity && | |
315 type == other.type && | |
316 location == other.location && | |
317 message == other.message && | |
318 correction == other.correction && | |
319 code == other.code && | |
320 hasFix == other.hasFix; | |
321 } | |
322 return false; | |
323 } | |
324 | |
325 @override | |
326 int get hashCode { | |
327 int hash = 0; | |
328 hash = JenkinsSmiHash.combine(hash, severity.hashCode); | |
329 hash = JenkinsSmiHash.combine(hash, type.hashCode); | |
330 hash = JenkinsSmiHash.combine(hash, location.hashCode); | |
331 hash = JenkinsSmiHash.combine(hash, message.hashCode); | |
332 hash = JenkinsSmiHash.combine(hash, correction.hashCode); | |
333 hash = JenkinsSmiHash.combine(hash, code.hashCode); | |
334 hash = JenkinsSmiHash.combine(hash, hasFix.hashCode); | |
335 return JenkinsSmiHash.finish(hash); | |
336 } | |
337 } | |
338 | |
339 /** | |
340 * AnalysisErrorFixes | |
341 * | |
342 * { | |
343 * "error": AnalysisError | |
344 * "fixes": List<PrioritizedSourceChange> | |
345 * } | |
346 * | |
347 * Clients may not extend, implement or mix-in this class. | |
348 */ | |
349 class AnalysisErrorFixes implements HasToJson { | |
350 AnalysisError _error; | |
351 | |
352 List<PrioritizedSourceChange> _fixes; | |
353 | |
354 /** | |
355 * The error with which the fixes are associated. | |
356 */ | |
357 AnalysisError get error => _error; | |
358 | |
359 /** | |
360 * The error with which the fixes are associated. | |
361 */ | |
362 void set error(AnalysisError value) { | |
363 assert(value != null); | |
364 this._error = value; | |
365 } | |
366 | |
367 /** | |
368 * The fixes associated with the error. | |
369 */ | |
370 List<PrioritizedSourceChange> get fixes => _fixes; | |
371 | |
372 /** | |
373 * The fixes associated with the error. | |
374 */ | |
375 void set fixes(List<PrioritizedSourceChange> value) { | |
376 assert(value != null); | |
377 this._fixes = value; | |
378 } | |
379 | |
380 AnalysisErrorFixes(AnalysisError error, {List<PrioritizedSourceChange> fixes})
{ | |
381 this.error = error; | |
382 if (fixes == null) { | |
383 this.fixes = <PrioritizedSourceChange>[]; | |
384 } else { | |
385 this.fixes = fixes; | |
386 } | |
387 } | |
388 | |
389 factory AnalysisErrorFixes.fromJson(JsonDecoder jsonDecoder, String jsonPath,
Object json) { | |
390 if (json == null) { | |
391 json = {}; | |
392 } | |
393 if (json is Map) { | |
394 AnalysisError error; | |
395 if (json.containsKey("error")) { | |
396 error = new AnalysisError.fromJson(jsonDecoder, jsonPath + ".error", jso
n["error"]); | |
397 } else { | |
398 throw jsonDecoder.mismatch(jsonPath, "error"); | |
399 } | |
400 List<PrioritizedSourceChange> fixes; | |
401 if (json.containsKey("fixes")) { | |
402 fixes = jsonDecoder.decodeList(jsonPath + ".fixes", json["fixes"], (Stri
ng jsonPath, Object json) => new PrioritizedSourceChange.fromJson(jsonDecoder, j
sonPath, json)); | |
403 } else { | |
404 throw jsonDecoder.mismatch(jsonPath, "fixes"); | |
405 } | |
406 return new AnalysisErrorFixes(error, fixes: fixes); | |
407 } else { | |
408 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorFixes", json); | |
409 } | |
410 } | |
411 | |
412 @override | |
413 Map<String, dynamic> toJson() { | |
414 Map<String, dynamic> result = {}; | |
415 result["error"] = error.toJson(); | |
416 result["fixes"] = fixes.map((PrioritizedSourceChange value) => value.toJson(
)).toList(); | |
417 return result; | |
418 } | |
419 | |
420 @override | |
421 String toString() => JSON.encode(toJson()); | |
422 | |
423 @override | |
424 bool operator==(other) { | |
425 if (other is AnalysisErrorFixes) { | |
426 return error == other.error && | |
427 listEqual(fixes, other.fixes, (PrioritizedSourceChange a, PrioritizedS
ourceChange b) => a == b); | |
428 } | |
429 return false; | |
430 } | |
431 | |
432 @override | |
433 int get hashCode { | |
434 int hash = 0; | |
435 hash = JenkinsSmiHash.combine(hash, error.hashCode); | |
436 hash = JenkinsSmiHash.combine(hash, fixes.hashCode); | |
437 return JenkinsSmiHash.finish(hash); | |
438 } | |
439 } | |
440 | |
441 /** | |
442 * AnalysisErrorSeverity | |
443 * | |
444 * enum { | |
445 * INFO | |
446 * WARNING | |
447 * ERROR | |
448 * } | |
449 * | |
450 * Clients may not extend, implement or mix-in this class. | |
451 */ | |
452 class AnalysisErrorSeverity implements Enum { | |
453 static const AnalysisErrorSeverity INFO = const AnalysisErrorSeverity._("INFO"
); | |
454 | |
455 static const AnalysisErrorSeverity WARNING = const AnalysisErrorSeverity._("WA
RNING"); | |
456 | |
457 static const AnalysisErrorSeverity ERROR = const AnalysisErrorSeverity._("ERRO
R"); | |
458 | |
459 /** | |
460 * A list containing all of the enum values that are defined. | |
461 */ | |
462 static const List<AnalysisErrorSeverity> VALUES = const <AnalysisErrorSeverity
>[INFO, WARNING, ERROR]; | |
463 | |
464 @override | |
465 final String name; | |
466 | |
467 const AnalysisErrorSeverity._(this.name); | |
468 | |
469 factory AnalysisErrorSeverity(String name) { | |
470 switch (name) { | |
471 case "INFO": | |
472 return INFO; | |
473 case "WARNING": | |
474 return WARNING; | |
475 case "ERROR": | |
476 return ERROR; | |
477 } | |
478 throw new Exception('Illegal enum value: $name'); | |
479 } | |
480 | |
481 factory AnalysisErrorSeverity.fromJson(JsonDecoder jsonDecoder, String jsonPat
h, Object json) { | |
482 if (json is String) { | |
483 try { | |
484 return new AnalysisErrorSeverity(json); | |
485 } catch(_) { | |
486 // Fall through | |
487 } | |
488 } | |
489 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorSeverity", json); | |
490 } | |
491 | |
492 @override | |
493 String toString() => "AnalysisErrorSeverity.$name"; | |
494 | |
495 String toJson() => name; | |
496 } | |
497 | |
498 /** | |
499 * AnalysisErrorType | |
500 * | |
501 * enum { | |
502 * CHECKED_MODE_COMPILE_TIME_ERROR | |
503 * COMPILE_TIME_ERROR | |
504 * HINT | |
505 * LINT | |
506 * STATIC_TYPE_WARNING | |
507 * STATIC_WARNING | |
508 * SYNTACTIC_ERROR | |
509 * TODO | |
510 * } | |
511 * | |
512 * Clients may not extend, implement or mix-in this class. | |
513 */ | |
514 class AnalysisErrorType implements Enum { | |
515 static const AnalysisErrorType CHECKED_MODE_COMPILE_TIME_ERROR = const Analysi
sErrorType._("CHECKED_MODE_COMPILE_TIME_ERROR"); | |
516 | |
517 static const AnalysisErrorType COMPILE_TIME_ERROR = const AnalysisErrorType._(
"COMPILE_TIME_ERROR"); | |
518 | |
519 static const AnalysisErrorType HINT = const AnalysisErrorType._("HINT"); | |
520 | |
521 static const AnalysisErrorType LINT = const AnalysisErrorType._("LINT"); | |
522 | |
523 static const AnalysisErrorType STATIC_TYPE_WARNING = const AnalysisErrorType._
("STATIC_TYPE_WARNING"); | |
524 | |
525 static const AnalysisErrorType STATIC_WARNING = const AnalysisErrorType._("STA
TIC_WARNING"); | |
526 | |
527 static const AnalysisErrorType SYNTACTIC_ERROR = const AnalysisErrorType._("SY
NTACTIC_ERROR"); | |
528 | |
529 static const AnalysisErrorType TODO = const AnalysisErrorType._("TODO"); | |
530 | |
531 /** | |
532 * A list containing all of the enum values that are defined. | |
533 */ | |
534 static const List<AnalysisErrorType> VALUES = const <AnalysisErrorType>[CHECKE
D_MODE_COMPILE_TIME_ERROR, COMPILE_TIME_ERROR, HINT, LINT, STATIC_TYPE_WARNING,
STATIC_WARNING, SYNTACTIC_ERROR, TODO]; | |
535 | |
536 @override | |
537 final String name; | |
538 | |
539 const AnalysisErrorType._(this.name); | |
540 | |
541 factory AnalysisErrorType(String name) { | |
542 switch (name) { | |
543 case "CHECKED_MODE_COMPILE_TIME_ERROR": | |
544 return CHECKED_MODE_COMPILE_TIME_ERROR; | |
545 case "COMPILE_TIME_ERROR": | |
546 return COMPILE_TIME_ERROR; | |
547 case "HINT": | |
548 return HINT; | |
549 case "LINT": | |
550 return LINT; | |
551 case "STATIC_TYPE_WARNING": | |
552 return STATIC_TYPE_WARNING; | |
553 case "STATIC_WARNING": | |
554 return STATIC_WARNING; | |
555 case "SYNTACTIC_ERROR": | |
556 return SYNTACTIC_ERROR; | |
557 case "TODO": | |
558 return TODO; | |
559 } | |
560 throw new Exception('Illegal enum value: $name'); | |
561 } | |
562 | |
563 factory AnalysisErrorType.fromJson(JsonDecoder jsonDecoder, String jsonPath, O
bject json) { | |
564 if (json is String) { | |
565 try { | |
566 return new AnalysisErrorType(json); | |
567 } catch(_) { | |
568 // Fall through | |
569 } | |
570 } | |
571 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorType", json); | |
572 } | |
573 | |
574 @override | |
575 String toString() => "AnalysisErrorType.$name"; | |
576 | |
577 String toJson() => name; | |
578 } | |
579 | |
580 /** | |
581 * analysis.errors params | |
582 * | |
583 * { | |
584 * "file": FilePath | |
585 * "errors": List<AnalysisError> | |
586 * } | |
587 * | |
588 * Clients may not extend, implement or mix-in this class. | |
589 */ | |
590 class AnalysisErrorsParams implements HasToJson { | |
591 String _file; | |
592 | |
593 List<AnalysisError> _errors; | |
594 | |
595 /** | |
596 * The file containing the errors. | |
597 */ | |
598 String get file => _file; | |
599 | |
600 /** | |
601 * The file containing the errors. | |
602 */ | |
603 void set file(String value) { | |
604 assert(value != null); | |
605 this._file = value; | |
606 } | |
607 | |
608 /** | |
609 * The errors contained in the file. | |
610 */ | |
611 List<AnalysisError> get errors => _errors; | |
612 | |
613 /** | |
614 * The errors contained in the file. | |
615 */ | |
616 void set errors(List<AnalysisError> value) { | |
617 assert(value != null); | |
618 this._errors = value; | |
619 } | |
620 | |
621 AnalysisErrorsParams(String file, List<AnalysisError> errors) { | |
622 this.file = file; | |
623 this.errors = errors; | |
624 } | |
625 | |
626 factory AnalysisErrorsParams.fromJson(JsonDecoder jsonDecoder, String jsonPath
, Object json) { | |
627 if (json == null) { | |
628 json = {}; | |
629 } | |
630 if (json is Map) { | |
631 String file; | |
632 if (json.containsKey("file")) { | |
633 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
634 } else { | |
635 throw jsonDecoder.mismatch(jsonPath, "file"); | |
636 } | |
637 List<AnalysisError> errors; | |
638 if (json.containsKey("errors")) { | |
639 errors = jsonDecoder.decodeList(jsonPath + ".errors", json["errors"], (S
tring jsonPath, Object json) => new AnalysisError.fromJson(jsonDecoder, jsonPath
, json)); | |
640 } else { | |
641 throw jsonDecoder.mismatch(jsonPath, "errors"); | |
642 } | |
643 return new AnalysisErrorsParams(file, errors); | |
644 } else { | |
645 throw jsonDecoder.mismatch(jsonPath, "analysis.errors params", json); | |
646 } | |
647 } | |
648 | |
649 factory AnalysisErrorsParams.fromNotification(Notification notification) { | |
650 return new AnalysisErrorsParams.fromJson( | |
651 new ResponseDecoder(null), "params", notification.params); | |
652 } | |
653 | |
654 @override | |
655 Map<String, dynamic> toJson() { | |
656 Map<String, dynamic> result = {}; | |
657 result["file"] = file; | |
658 result["errors"] = errors.map((AnalysisError value) => value.toJson()).toLis
t(); | |
659 return result; | |
660 } | |
661 | |
662 Notification toNotification() { | |
663 return new Notification("analysis.errors", toJson()); | |
664 } | |
665 | |
666 @override | |
667 String toString() => JSON.encode(toJson()); | |
668 | |
669 @override | |
670 bool operator==(other) { | |
671 if (other is AnalysisErrorsParams) { | |
672 return file == other.file && | |
673 listEqual(errors, other.errors, (AnalysisError a, AnalysisError b) =>
a == b); | |
674 } | |
675 return false; | |
676 } | |
677 | |
678 @override | |
679 int get hashCode { | |
680 int hash = 0; | |
681 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
682 hash = JenkinsSmiHash.combine(hash, errors.hashCode); | |
683 return JenkinsSmiHash.finish(hash); | |
684 } | |
685 } | |
686 | |
687 /** | |
688 * analysis.folding params | |
689 * | |
690 * { | |
691 * "file": FilePath | |
692 * "regions": List<FoldingRegion> | |
693 * } | |
694 * | |
695 * Clients may not extend, implement or mix-in this class. | |
696 */ | |
697 class AnalysisFoldingParams implements HasToJson { | |
698 String _file; | |
699 | |
700 List<FoldingRegion> _regions; | |
701 | |
702 /** | |
703 * The file containing the folding regions. | |
704 */ | |
705 String get file => _file; | |
706 | |
707 /** | |
708 * The file containing the folding regions. | |
709 */ | |
710 void set file(String value) { | |
711 assert(value != null); | |
712 this._file = value; | |
713 } | |
714 | |
715 /** | |
716 * The folding regions contained in the file. | |
717 */ | |
718 List<FoldingRegion> get regions => _regions; | |
719 | |
720 /** | |
721 * The folding regions contained in the file. | |
722 */ | |
723 void set regions(List<FoldingRegion> value) { | |
724 assert(value != null); | |
725 this._regions = value; | |
726 } | |
727 | |
728 AnalysisFoldingParams(String file, List<FoldingRegion> regions) { | |
729 this.file = file; | |
730 this.regions = regions; | |
731 } | |
732 | |
733 factory AnalysisFoldingParams.fromJson(JsonDecoder jsonDecoder, String jsonPat
h, Object json) { | |
734 if (json == null) { | |
735 json = {}; | |
736 } | |
737 if (json is Map) { | |
738 String file; | |
739 if (json.containsKey("file")) { | |
740 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
741 } else { | |
742 throw jsonDecoder.mismatch(jsonPath, "file"); | |
743 } | |
744 List<FoldingRegion> regions; | |
745 if (json.containsKey("regions")) { | |
746 regions = jsonDecoder.decodeList(jsonPath + ".regions", json["regions"],
(String jsonPath, Object json) => new FoldingRegion.fromJson(jsonDecoder, jsonP
ath, json)); | |
747 } else { | |
748 throw jsonDecoder.mismatch(jsonPath, "regions"); | |
749 } | |
750 return new AnalysisFoldingParams(file, regions); | |
751 } else { | |
752 throw jsonDecoder.mismatch(jsonPath, "analysis.folding params", json); | |
753 } | |
754 } | |
755 | |
756 factory AnalysisFoldingParams.fromNotification(Notification notification) { | |
757 return new AnalysisFoldingParams.fromJson( | |
758 new ResponseDecoder(null), "params", notification.params); | |
759 } | |
760 | |
761 @override | |
762 Map<String, dynamic> toJson() { | |
763 Map<String, dynamic> result = {}; | |
764 result["file"] = file; | |
765 result["regions"] = regions.map((FoldingRegion value) => value.toJson()).toL
ist(); | |
766 return result; | |
767 } | |
768 | |
769 Notification toNotification() { | |
770 return new Notification("analysis.folding", toJson()); | |
771 } | |
772 | |
773 @override | |
774 String toString() => JSON.encode(toJson()); | |
775 | |
776 @override | |
777 bool operator==(other) { | |
778 if (other is AnalysisFoldingParams) { | |
779 return file == other.file && | |
780 listEqual(regions, other.regions, (FoldingRegion a, FoldingRegion b) =
> a == b); | |
781 } | |
782 return false; | |
783 } | |
784 | |
785 @override | |
786 int get hashCode { | |
787 int hash = 0; | |
788 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
789 hash = JenkinsSmiHash.combine(hash, regions.hashCode); | |
790 return JenkinsSmiHash.finish(hash); | |
791 } | |
792 } | |
793 | |
794 /** | |
795 * analysis.handleWatchEvents params | |
796 * | |
797 * { | |
798 * "events": List<WatchEvent> | |
799 * } | |
800 * | |
801 * Clients may not extend, implement or mix-in this class. | |
802 */ | |
803 class AnalysisHandleWatchEventsParams implements RequestParams { | |
804 List<WatchEvent> _events; | |
805 | |
806 /** | |
807 * The watch events that the plugin should handle. | |
808 */ | |
809 List<WatchEvent> get events => _events; | |
810 | |
811 /** | |
812 * The watch events that the plugin should handle. | |
813 */ | |
814 void set events(List<WatchEvent> value) { | |
815 assert(value != null); | |
816 this._events = value; | |
817 } | |
818 | |
819 AnalysisHandleWatchEventsParams(List<WatchEvent> events) { | |
820 this.events = events; | |
821 } | |
822 | |
823 factory AnalysisHandleWatchEventsParams.fromJson(JsonDecoder jsonDecoder, Stri
ng jsonPath, Object json) { | |
824 if (json == null) { | |
825 json = {}; | |
826 } | |
827 if (json is Map) { | |
828 List<WatchEvent> events; | |
829 if (json.containsKey("events")) { | |
830 events = jsonDecoder.decodeList(jsonPath + ".events", json["events"], (S
tring jsonPath, Object json) => new WatchEvent.fromJson(jsonDecoder, jsonPath, j
son)); | |
831 } else { | |
832 throw jsonDecoder.mismatch(jsonPath, "events"); | |
833 } | |
834 return new AnalysisHandleWatchEventsParams(events); | |
835 } else { | |
836 throw jsonDecoder.mismatch(jsonPath, "analysis.handleWatchEvents params",
json); | |
837 } | |
838 } | |
839 | |
840 factory AnalysisHandleWatchEventsParams.fromRequest(Request request) { | |
841 return new AnalysisHandleWatchEventsParams.fromJson( | |
842 new RequestDecoder(request), "params", request.params); | |
843 } | |
844 | |
845 @override | |
846 Map<String, dynamic> toJson() { | |
847 Map<String, dynamic> result = {}; | |
848 result["events"] = events.map((WatchEvent value) => value.toJson()).toList()
; | |
849 return result; | |
850 } | |
851 | |
852 @override | |
853 Request toRequest(String id) { | |
854 return new Request(id, "analysis.handleWatchEvents", toJson()); | |
855 } | |
856 | |
857 @override | |
858 String toString() => JSON.encode(toJson()); | |
859 | |
860 @override | |
861 bool operator==(other) { | |
862 if (other is AnalysisHandleWatchEventsParams) { | |
863 return listEqual(events, other.events, (WatchEvent a, WatchEvent b) => a =
= b); | |
864 } | |
865 return false; | |
866 } | |
867 | |
868 @override | |
869 int get hashCode { | |
870 int hash = 0; | |
871 hash = JenkinsSmiHash.combine(hash, events.hashCode); | |
872 return JenkinsSmiHash.finish(hash); | |
873 } | |
874 } | |
875 | |
876 /** | |
877 * analysis.handleWatchEvents result | |
878 * | |
879 * Clients may not extend, implement or mix-in this class. | |
880 */ | |
881 class AnalysisHandleWatchEventsResult implements ResponseResult { | |
882 @override | |
883 Map<String, dynamic> toJson() => <String, dynamic>{}; | |
884 | |
885 @override | |
886 Response toResponse(String id) { | |
887 return new Response(id, result: null); | |
888 } | |
889 | |
890 @override | |
891 bool operator==(other) { | |
892 if (other is AnalysisHandleWatchEventsResult) { | |
893 return true; | |
894 } | |
895 return false; | |
896 } | |
897 | |
898 @override | |
899 int get hashCode { | |
900 return 779767607; | |
901 } | |
902 } | |
903 | |
904 /** | |
905 * analysis.highlights params | |
906 * | |
907 * { | |
908 * "file": FilePath | |
909 * "regions": List<HighlightRegion> | |
910 * } | |
911 * | |
912 * Clients may not extend, implement or mix-in this class. | |
913 */ | |
914 class AnalysisHighlightsParams implements HasToJson { | |
915 String _file; | |
916 | |
917 List<HighlightRegion> _regions; | |
918 | |
919 /** | |
920 * The file containing the highlight regions. | |
921 */ | |
922 String get file => _file; | |
923 | |
924 /** | |
925 * The file containing the highlight regions. | |
926 */ | |
927 void set file(String value) { | |
928 assert(value != null); | |
929 this._file = value; | |
930 } | |
931 | |
932 /** | |
933 * The highlight regions contained in the file. | |
934 */ | |
935 List<HighlightRegion> get regions => _regions; | |
936 | |
937 /** | |
938 * The highlight regions contained in the file. | |
939 */ | |
940 void set regions(List<HighlightRegion> value) { | |
941 assert(value != null); | |
942 this._regions = value; | |
943 } | |
944 | |
945 AnalysisHighlightsParams(String file, List<HighlightRegion> regions) { | |
946 this.file = file; | |
947 this.regions = regions; | |
948 } | |
949 | |
950 factory AnalysisHighlightsParams.fromJson(JsonDecoder jsonDecoder, String json
Path, Object json) { | |
951 if (json == null) { | |
952 json = {}; | |
953 } | |
954 if (json is Map) { | |
955 String file; | |
956 if (json.containsKey("file")) { | |
957 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
958 } else { | |
959 throw jsonDecoder.mismatch(jsonPath, "file"); | |
960 } | |
961 List<HighlightRegion> regions; | |
962 if (json.containsKey("regions")) { | |
963 regions = jsonDecoder.decodeList(jsonPath + ".regions", json["regions"],
(String jsonPath, Object json) => new HighlightRegion.fromJson(jsonDecoder, jso
nPath, json)); | |
964 } else { | |
965 throw jsonDecoder.mismatch(jsonPath, "regions"); | |
966 } | |
967 return new AnalysisHighlightsParams(file, regions); | |
968 } else { | |
969 throw jsonDecoder.mismatch(jsonPath, "analysis.highlights params", json); | |
970 } | |
971 } | |
972 | |
973 factory AnalysisHighlightsParams.fromNotification(Notification notification) { | |
974 return new AnalysisHighlightsParams.fromJson( | |
975 new ResponseDecoder(null), "params", notification.params); | |
976 } | |
977 | |
978 @override | |
979 Map<String, dynamic> toJson() { | |
980 Map<String, dynamic> result = {}; | |
981 result["file"] = file; | |
982 result["regions"] = regions.map((HighlightRegion value) => value.toJson()).t
oList(); | |
983 return result; | |
984 } | |
985 | |
986 Notification toNotification() { | |
987 return new Notification("analysis.highlights", toJson()); | |
988 } | |
989 | |
990 @override | |
991 String toString() => JSON.encode(toJson()); | |
992 | |
993 @override | |
994 bool operator==(other) { | |
995 if (other is AnalysisHighlightsParams) { | |
996 return file == other.file && | |
997 listEqual(regions, other.regions, (HighlightRegion a, HighlightRegion
b) => a == b); | |
998 } | |
999 return false; | |
1000 } | |
1001 | |
1002 @override | |
1003 int get hashCode { | |
1004 int hash = 0; | |
1005 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
1006 hash = JenkinsSmiHash.combine(hash, regions.hashCode); | |
1007 return JenkinsSmiHash.finish(hash); | |
1008 } | |
1009 } | |
1010 | |
1011 /** | |
1012 * analysis.navigation params | |
1013 * | |
1014 * { | |
1015 * "file": FilePath | |
1016 * "regions": List<NavigationRegion> | |
1017 * "targets": List<NavigationTarget> | |
1018 * "files": List<FilePath> | |
1019 * } | |
1020 * | |
1021 * Clients may not extend, implement or mix-in this class. | |
1022 */ | |
1023 class AnalysisNavigationParams implements HasToJson { | |
1024 String _file; | |
1025 | |
1026 List<NavigationRegion> _regions; | |
1027 | |
1028 List<NavigationTarget> _targets; | |
1029 | |
1030 List<String> _files; | |
1031 | |
1032 /** | |
1033 * The file containing the navigation regions. | |
1034 */ | |
1035 String get file => _file; | |
1036 | |
1037 /** | |
1038 * The file containing the navigation regions. | |
1039 */ | |
1040 void set file(String value) { | |
1041 assert(value != null); | |
1042 this._file = value; | |
1043 } | |
1044 | |
1045 /** | |
1046 * The navigation regions contained in the file. | |
1047 */ | |
1048 List<NavigationRegion> get regions => _regions; | |
1049 | |
1050 /** | |
1051 * The navigation regions contained in the file. | |
1052 */ | |
1053 void set regions(List<NavigationRegion> value) { | |
1054 assert(value != null); | |
1055 this._regions = value; | |
1056 } | |
1057 | |
1058 /** | |
1059 * The navigation targets referenced in the file. They are referenced by | |
1060 * NavigationRegions by their index in this array. | |
1061 */ | |
1062 List<NavigationTarget> get targets => _targets; | |
1063 | |
1064 /** | |
1065 * The navigation targets referenced in the file. They are referenced by | |
1066 * NavigationRegions by their index in this array. | |
1067 */ | |
1068 void set targets(List<NavigationTarget> value) { | |
1069 assert(value != null); | |
1070 this._targets = value; | |
1071 } | |
1072 | |
1073 /** | |
1074 * The files containing navigation targets referenced in the file. They are | |
1075 * referenced by NavigationTargets by their index in this array. | |
1076 */ | |
1077 List<String> get files => _files; | |
1078 | |
1079 /** | |
1080 * The files containing navigation targets referenced in the file. They are | |
1081 * referenced by NavigationTargets by their index in this array. | |
1082 */ | |
1083 void set files(List<String> value) { | |
1084 assert(value != null); | |
1085 this._files = value; | |
1086 } | |
1087 | |
1088 AnalysisNavigationParams(String file, List<NavigationRegion> regions, List<Nav
igationTarget> targets, List<String> files) { | |
1089 this.file = file; | |
1090 this.regions = regions; | |
1091 this.targets = targets; | |
1092 this.files = files; | |
1093 } | |
1094 | |
1095 factory AnalysisNavigationParams.fromJson(JsonDecoder jsonDecoder, String json
Path, Object json) { | |
1096 if (json == null) { | |
1097 json = {}; | |
1098 } | |
1099 if (json is Map) { | |
1100 String file; | |
1101 if (json.containsKey("file")) { | |
1102 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
1103 } else { | |
1104 throw jsonDecoder.mismatch(jsonPath, "file"); | |
1105 } | |
1106 List<NavigationRegion> regions; | |
1107 if (json.containsKey("regions")) { | |
1108 regions = jsonDecoder.decodeList(jsonPath + ".regions", json["regions"],
(String jsonPath, Object json) => new NavigationRegion.fromJson(jsonDecoder, js
onPath, json)); | |
1109 } else { | |
1110 throw jsonDecoder.mismatch(jsonPath, "regions"); | |
1111 } | |
1112 List<NavigationTarget> targets; | |
1113 if (json.containsKey("targets")) { | |
1114 targets = jsonDecoder.decodeList(jsonPath + ".targets", json["targets"],
(String jsonPath, Object json) => new NavigationTarget.fromJson(jsonDecoder, js
onPath, json)); | |
1115 } else { | |
1116 throw jsonDecoder.mismatch(jsonPath, "targets"); | |
1117 } | |
1118 List<String> files; | |
1119 if (json.containsKey("files")) { | |
1120 files = jsonDecoder.decodeList(jsonPath + ".files", json["files"], jsonD
ecoder.decodeString); | |
1121 } else { | |
1122 throw jsonDecoder.mismatch(jsonPath, "files"); | |
1123 } | |
1124 return new AnalysisNavigationParams(file, regions, targets, files); | |
1125 } else { | |
1126 throw jsonDecoder.mismatch(jsonPath, "analysis.navigation params", json); | |
1127 } | |
1128 } | |
1129 | |
1130 factory AnalysisNavigationParams.fromNotification(Notification notification) { | |
1131 return new AnalysisNavigationParams.fromJson( | |
1132 new ResponseDecoder(null), "params", notification.params); | |
1133 } | |
1134 | |
1135 @override | |
1136 Map<String, dynamic> toJson() { | |
1137 Map<String, dynamic> result = {}; | |
1138 result["file"] = file; | |
1139 result["regions"] = regions.map((NavigationRegion value) => value.toJson()).
toList(); | |
1140 result["targets"] = targets.map((NavigationTarget value) => value.toJson()).
toList(); | |
1141 result["files"] = files; | |
1142 return result; | |
1143 } | |
1144 | |
1145 Notification toNotification() { | |
1146 return new Notification("analysis.navigation", toJson()); | |
1147 } | |
1148 | |
1149 @override | |
1150 String toString() => JSON.encode(toJson()); | |
1151 | |
1152 @override | |
1153 bool operator==(other) { | |
1154 if (other is AnalysisNavigationParams) { | |
1155 return file == other.file && | |
1156 listEqual(regions, other.regions, (NavigationRegion a, NavigationRegio
n b) => a == b) && | |
1157 listEqual(targets, other.targets, (NavigationTarget a, NavigationTarge
t b) => a == b) && | |
1158 listEqual(files, other.files, (String a, String b) => a == b); | |
1159 } | |
1160 return false; | |
1161 } | |
1162 | |
1163 @override | |
1164 int get hashCode { | |
1165 int hash = 0; | |
1166 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
1167 hash = JenkinsSmiHash.combine(hash, regions.hashCode); | |
1168 hash = JenkinsSmiHash.combine(hash, targets.hashCode); | |
1169 hash = JenkinsSmiHash.combine(hash, files.hashCode); | |
1170 return JenkinsSmiHash.finish(hash); | |
1171 } | |
1172 } | |
1173 | |
1174 /** | |
1175 * analysis.occurrences params | |
1176 * | |
1177 * { | |
1178 * "file": FilePath | |
1179 * "occurrences": List<Occurrences> | |
1180 * } | |
1181 * | |
1182 * Clients may not extend, implement or mix-in this class. | |
1183 */ | |
1184 class AnalysisOccurrencesParams implements HasToJson { | |
1185 String _file; | |
1186 | |
1187 List<Occurrences> _occurrences; | |
1188 | |
1189 /** | |
1190 * The file in which the references occur. | |
1191 */ | |
1192 String get file => _file; | |
1193 | |
1194 /** | |
1195 * The file in which the references occur. | |
1196 */ | |
1197 void set file(String value) { | |
1198 assert(value != null); | |
1199 this._file = value; | |
1200 } | |
1201 | |
1202 /** | |
1203 * The occurrences of references to elements within the file. | |
1204 */ | |
1205 List<Occurrences> get occurrences => _occurrences; | |
1206 | |
1207 /** | |
1208 * The occurrences of references to elements within the file. | |
1209 */ | |
1210 void set occurrences(List<Occurrences> value) { | |
1211 assert(value != null); | |
1212 this._occurrences = value; | |
1213 } | |
1214 | |
1215 AnalysisOccurrencesParams(String file, List<Occurrences> occurrences) { | |
1216 this.file = file; | |
1217 this.occurrences = occurrences; | |
1218 } | |
1219 | |
1220 factory AnalysisOccurrencesParams.fromJson(JsonDecoder jsonDecoder, String jso
nPath, Object json) { | |
1221 if (json == null) { | |
1222 json = {}; | |
1223 } | |
1224 if (json is Map) { | |
1225 String file; | |
1226 if (json.containsKey("file")) { | |
1227 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
1228 } else { | |
1229 throw jsonDecoder.mismatch(jsonPath, "file"); | |
1230 } | |
1231 List<Occurrences> occurrences; | |
1232 if (json.containsKey("occurrences")) { | |
1233 occurrences = jsonDecoder.decodeList(jsonPath + ".occurrences", json["oc
currences"], (String jsonPath, Object json) => new Occurrences.fromJson(jsonDeco
der, jsonPath, json)); | |
1234 } else { | |
1235 throw jsonDecoder.mismatch(jsonPath, "occurrences"); | |
1236 } | |
1237 return new AnalysisOccurrencesParams(file, occurrences); | |
1238 } else { | |
1239 throw jsonDecoder.mismatch(jsonPath, "analysis.occurrences params", json); | |
1240 } | |
1241 } | |
1242 | |
1243 factory AnalysisOccurrencesParams.fromNotification(Notification notification)
{ | |
1244 return new AnalysisOccurrencesParams.fromJson( | |
1245 new ResponseDecoder(null), "params", notification.params); | |
1246 } | |
1247 | |
1248 @override | |
1249 Map<String, dynamic> toJson() { | |
1250 Map<String, dynamic> result = {}; | |
1251 result["file"] = file; | |
1252 result["occurrences"] = occurrences.map((Occurrences value) => value.toJson(
)).toList(); | |
1253 return result; | |
1254 } | |
1255 | |
1256 Notification toNotification() { | |
1257 return new Notification("analysis.occurrences", toJson()); | |
1258 } | |
1259 | |
1260 @override | |
1261 String toString() => JSON.encode(toJson()); | |
1262 | |
1263 @override | |
1264 bool operator==(other) { | |
1265 if (other is AnalysisOccurrencesParams) { | |
1266 return file == other.file && | |
1267 listEqual(occurrences, other.occurrences, (Occurrences a, Occurrences
b) => a == b); | |
1268 } | |
1269 return false; | |
1270 } | |
1271 | |
1272 @override | |
1273 int get hashCode { | |
1274 int hash = 0; | |
1275 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
1276 hash = JenkinsSmiHash.combine(hash, occurrences.hashCode); | |
1277 return JenkinsSmiHash.finish(hash); | |
1278 } | |
1279 } | |
1280 | |
1281 /** | |
1282 * analysis.outline params | |
1283 * | |
1284 * { | |
1285 * "file": FilePath | |
1286 * "outline": List<Outline> | |
1287 * } | |
1288 * | |
1289 * Clients may not extend, implement or mix-in this class. | |
1290 */ | |
1291 class AnalysisOutlineParams implements HasToJson { | |
1292 String _file; | |
1293 | |
1294 List<Outline> _outline; | |
1295 | |
1296 /** | |
1297 * The file with which the outline is associated. | |
1298 */ | |
1299 String get file => _file; | |
1300 | |
1301 /** | |
1302 * The file with which the outline is associated. | |
1303 */ | |
1304 void set file(String value) { | |
1305 assert(value != null); | |
1306 this._file = value; | |
1307 } | |
1308 | |
1309 /** | |
1310 * The outline fragments associated with the file. | |
1311 */ | |
1312 List<Outline> get outline => _outline; | |
1313 | |
1314 /** | |
1315 * The outline fragments associated with the file. | |
1316 */ | |
1317 void set outline(List<Outline> value) { | |
1318 assert(value != null); | |
1319 this._outline = value; | |
1320 } | |
1321 | |
1322 AnalysisOutlineParams(String file, List<Outline> outline) { | |
1323 this.file = file; | |
1324 this.outline = outline; | |
1325 } | |
1326 | |
1327 factory AnalysisOutlineParams.fromJson(JsonDecoder jsonDecoder, String jsonPat
h, Object json) { | |
1328 if (json == null) { | |
1329 json = {}; | |
1330 } | |
1331 if (json is Map) { | |
1332 String file; | |
1333 if (json.containsKey("file")) { | |
1334 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
1335 } else { | |
1336 throw jsonDecoder.mismatch(jsonPath, "file"); | |
1337 } | |
1338 List<Outline> outline; | |
1339 if (json.containsKey("outline")) { | |
1340 outline = jsonDecoder.decodeList(jsonPath + ".outline", json["outline"],
(String jsonPath, Object json) => new Outline.fromJson(jsonDecoder, jsonPath, j
son)); | |
1341 } else { | |
1342 throw jsonDecoder.mismatch(jsonPath, "outline"); | |
1343 } | |
1344 return new AnalysisOutlineParams(file, outline); | |
1345 } else { | |
1346 throw jsonDecoder.mismatch(jsonPath, "analysis.outline params", json); | |
1347 } | |
1348 } | |
1349 | |
1350 factory AnalysisOutlineParams.fromNotification(Notification notification) { | |
1351 return new AnalysisOutlineParams.fromJson( | |
1352 new ResponseDecoder(null), "params", notification.params); | |
1353 } | |
1354 | |
1355 @override | |
1356 Map<String, dynamic> toJson() { | |
1357 Map<String, dynamic> result = {}; | |
1358 result["file"] = file; | |
1359 result["outline"] = outline.map((Outline value) => value.toJson()).toList(); | |
1360 return result; | |
1361 } | |
1362 | |
1363 Notification toNotification() { | |
1364 return new Notification("analysis.outline", toJson()); | |
1365 } | |
1366 | |
1367 @override | |
1368 String toString() => JSON.encode(toJson()); | |
1369 | |
1370 @override | |
1371 bool operator==(other) { | |
1372 if (other is AnalysisOutlineParams) { | |
1373 return file == other.file && | |
1374 listEqual(outline, other.outline, (Outline a, Outline b) => a == b); | |
1375 } | |
1376 return false; | |
1377 } | |
1378 | |
1379 @override | |
1380 int get hashCode { | |
1381 int hash = 0; | |
1382 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
1383 hash = JenkinsSmiHash.combine(hash, outline.hashCode); | |
1384 return JenkinsSmiHash.finish(hash); | |
1385 } | |
1386 } | |
1387 | |
1388 /** | |
1389 * analysis.reanalyze params | |
1390 * | |
1391 * { | |
1392 * "roots": optional List<FilePath> | |
1393 * } | |
1394 * | |
1395 * Clients may not extend, implement or mix-in this class. | |
1396 */ | |
1397 class AnalysisReanalyzeParams implements RequestParams { | |
1398 List<String> _roots; | |
1399 | |
1400 /** | |
1401 * A list of the context roots that are to be re-analyzed. | |
1402 * | |
1403 * If no context roots are provided, then all current context roots should be | |
1404 * re-analyzed. | |
1405 */ | |
1406 List<String> get roots => _roots; | |
1407 | |
1408 /** | |
1409 * A list of the context roots that are to be re-analyzed. | |
1410 * | |
1411 * If no context roots are provided, then all current context roots should be | |
1412 * re-analyzed. | |
1413 */ | |
1414 void set roots(List<String> value) { | |
1415 this._roots = value; | |
1416 } | |
1417 | |
1418 AnalysisReanalyzeParams({List<String> roots}) { | |
1419 this.roots = roots; | |
1420 } | |
1421 | |
1422 factory AnalysisReanalyzeParams.fromJson(JsonDecoder jsonDecoder, String jsonP
ath, Object json) { | |
1423 if (json == null) { | |
1424 json = {}; | |
1425 } | |
1426 if (json is Map) { | |
1427 List<String> roots; | |
1428 if (json.containsKey("roots")) { | |
1429 roots = jsonDecoder.decodeList(jsonPath + ".roots", json["roots"], jsonD
ecoder.decodeString); | |
1430 } | |
1431 return new AnalysisReanalyzeParams(roots: roots); | |
1432 } else { | |
1433 throw jsonDecoder.mismatch(jsonPath, "analysis.reanalyze params", json); | |
1434 } | |
1435 } | |
1436 | |
1437 factory AnalysisReanalyzeParams.fromRequest(Request request) { | |
1438 return new AnalysisReanalyzeParams.fromJson( | |
1439 new RequestDecoder(request), "params", request.params); | |
1440 } | |
1441 | |
1442 @override | |
1443 Map<String, dynamic> toJson() { | |
1444 Map<String, dynamic> result = {}; | |
1445 if (roots != null) { | |
1446 result["roots"] = roots; | |
1447 } | |
1448 return result; | |
1449 } | |
1450 | |
1451 @override | |
1452 Request toRequest(String id) { | |
1453 return new Request(id, "analysis.reanalyze", toJson()); | |
1454 } | |
1455 | |
1456 @override | |
1457 String toString() => JSON.encode(toJson()); | |
1458 | |
1459 @override | |
1460 bool operator==(other) { | |
1461 if (other is AnalysisReanalyzeParams) { | |
1462 return listEqual(roots, other.roots, (String a, String b) => a == b); | |
1463 } | |
1464 return false; | |
1465 } | |
1466 | |
1467 @override | |
1468 int get hashCode { | |
1469 int hash = 0; | |
1470 hash = JenkinsSmiHash.combine(hash, roots.hashCode); | |
1471 return JenkinsSmiHash.finish(hash); | |
1472 } | |
1473 } | |
1474 | |
1475 /** | |
1476 * analysis.reanalyze result | |
1477 * | |
1478 * Clients may not extend, implement or mix-in this class. | |
1479 */ | |
1480 class AnalysisReanalyzeResult implements ResponseResult { | |
1481 @override | |
1482 Map<String, dynamic> toJson() => <String, dynamic>{}; | |
1483 | |
1484 @override | |
1485 Response toResponse(String id) { | |
1486 return new Response(id, result: null); | |
1487 } | |
1488 | |
1489 @override | |
1490 bool operator==(other) { | |
1491 if (other is AnalysisReanalyzeResult) { | |
1492 return true; | |
1493 } | |
1494 return false; | |
1495 } | |
1496 | |
1497 @override | |
1498 int get hashCode { | |
1499 return 846803925; | |
1500 } | |
1501 } | |
1502 | |
1503 /** | |
1504 * AnalysisService | |
1505 * | |
1506 * enum { | |
1507 * FOLDING | |
1508 * HIGHLIGHTS | |
1509 * NAVIGATION | |
1510 * OCCURRENCES | |
1511 * OUTLINE | |
1512 * } | |
1513 * | |
1514 * Clients may not extend, implement or mix-in this class. | |
1515 */ | |
1516 class AnalysisService implements Enum { | |
1517 static const AnalysisService FOLDING = const AnalysisService._("FOLDING"); | |
1518 | |
1519 static const AnalysisService HIGHLIGHTS = const AnalysisService._("HIGHLIGHTS"
); | |
1520 | |
1521 static const AnalysisService NAVIGATION = const AnalysisService._("NAVIGATION"
); | |
1522 | |
1523 static const AnalysisService OCCURRENCES = const AnalysisService._("OCCURRENCE
S"); | |
1524 | |
1525 static const AnalysisService OUTLINE = const AnalysisService._("OUTLINE"); | |
1526 | |
1527 /** | |
1528 * A list containing all of the enum values that are defined. | |
1529 */ | |
1530 static const List<AnalysisService> VALUES = const <AnalysisService>[FOLDING, H
IGHLIGHTS, NAVIGATION, OCCURRENCES, OUTLINE]; | |
1531 | |
1532 @override | |
1533 final String name; | |
1534 | |
1535 const AnalysisService._(this.name); | |
1536 | |
1537 factory AnalysisService(String name) { | |
1538 switch (name) { | |
1539 case "FOLDING": | |
1540 return FOLDING; | |
1541 case "HIGHLIGHTS": | |
1542 return HIGHLIGHTS; | |
1543 case "NAVIGATION": | |
1544 return NAVIGATION; | |
1545 case "OCCURRENCES": | |
1546 return OCCURRENCES; | |
1547 case "OUTLINE": | |
1548 return OUTLINE; | |
1549 } | |
1550 throw new Exception('Illegal enum value: $name'); | |
1551 } | |
1552 | |
1553 factory AnalysisService.fromJson(JsonDecoder jsonDecoder, String jsonPath, Obj
ect json) { | |
1554 if (json is String) { | |
1555 try { | |
1556 return new AnalysisService(json); | |
1557 } catch(_) { | |
1558 // Fall through | |
1559 } | |
1560 } | |
1561 throw jsonDecoder.mismatch(jsonPath, "AnalysisService", json); | |
1562 } | |
1563 | |
1564 @override | |
1565 String toString() => "AnalysisService.$name"; | |
1566 | |
1567 String toJson() => name; | |
1568 } | |
1569 | |
1570 /** | |
1571 * analysis.setContextBuilderOptions params | |
1572 * | |
1573 * { | |
1574 * "options": ContextBuilderOptions | |
1575 * } | |
1576 * | |
1577 * Clients may not extend, implement or mix-in this class. | |
1578 */ | |
1579 class AnalysisSetContextBuilderOptionsParams implements RequestParams { | |
1580 ContextBuilderOptions _options; | |
1581 | |
1582 /** | |
1583 * The options used to build the analysis contexts. | |
1584 */ | |
1585 ContextBuilderOptions get options => _options; | |
1586 | |
1587 /** | |
1588 * The options used to build the analysis contexts. | |
1589 */ | |
1590 void set options(ContextBuilderOptions value) { | |
1591 assert(value != null); | |
1592 this._options = value; | |
1593 } | |
1594 | |
1595 AnalysisSetContextBuilderOptionsParams(ContextBuilderOptions options) { | |
1596 this.options = options; | |
1597 } | |
1598 | |
1599 factory AnalysisSetContextBuilderOptionsParams.fromJson(JsonDecoder jsonDecode
r, String jsonPath, Object json) { | |
1600 if (json == null) { | |
1601 json = {}; | |
1602 } | |
1603 if (json is Map) { | |
1604 ContextBuilderOptions options; | |
1605 if (json.containsKey("options")) { | |
1606 options = new ContextBuilderOptions.fromJson(jsonDecoder, jsonPath + ".o
ptions", json["options"]); | |
1607 } else { | |
1608 throw jsonDecoder.mismatch(jsonPath, "options"); | |
1609 } | |
1610 return new AnalysisSetContextBuilderOptionsParams(options); | |
1611 } else { | |
1612 throw jsonDecoder.mismatch(jsonPath, "analysis.setContextBuilderOptions pa
rams", json); | |
1613 } | |
1614 } | |
1615 | |
1616 factory AnalysisSetContextBuilderOptionsParams.fromRequest(Request request) { | |
1617 return new AnalysisSetContextBuilderOptionsParams.fromJson( | |
1618 new RequestDecoder(request), "params", request.params); | |
1619 } | |
1620 | |
1621 @override | |
1622 Map<String, dynamic> toJson() { | |
1623 Map<String, dynamic> result = {}; | |
1624 result["options"] = options.toJson(); | |
1625 return result; | |
1626 } | |
1627 | |
1628 @override | |
1629 Request toRequest(String id) { | |
1630 return new Request(id, "analysis.setContextBuilderOptions", toJson()); | |
1631 } | |
1632 | |
1633 @override | |
1634 String toString() => JSON.encode(toJson()); | |
1635 | |
1636 @override | |
1637 bool operator==(other) { | |
1638 if (other is AnalysisSetContextBuilderOptionsParams) { | |
1639 return options == other.options; | |
1640 } | |
1641 return false; | |
1642 } | |
1643 | |
1644 @override | |
1645 int get hashCode { | |
1646 int hash = 0; | |
1647 hash = JenkinsSmiHash.combine(hash, options.hashCode); | |
1648 return JenkinsSmiHash.finish(hash); | |
1649 } | |
1650 } | |
1651 | |
1652 /** | |
1653 * analysis.setContextBuilderOptions result | |
1654 * | |
1655 * Clients may not extend, implement or mix-in this class. | |
1656 */ | |
1657 class AnalysisSetContextBuilderOptionsResult implements ResponseResult { | |
1658 @override | |
1659 Map<String, dynamic> toJson() => <String, dynamic>{}; | |
1660 | |
1661 @override | |
1662 Response toResponse(String id) { | |
1663 return new Response(id, result: null); | |
1664 } | |
1665 | |
1666 @override | |
1667 bool operator==(other) { | |
1668 if (other is AnalysisSetContextBuilderOptionsResult) { | |
1669 return true; | |
1670 } | |
1671 return false; | |
1672 } | |
1673 | |
1674 @override | |
1675 int get hashCode { | |
1676 return 645412314; | |
1677 } | |
1678 } | |
1679 | |
1680 /** | |
1681 * analysis.setContextRoots params | |
1682 * | |
1683 * { | |
1684 * "roots": List<ContextRoot> | |
1685 * } | |
1686 * | |
1687 * Clients may not extend, implement or mix-in this class. | |
1688 */ | |
1689 class AnalysisSetContextRootsParams implements RequestParams { | |
1690 List<ContextRoot> _roots; | |
1691 | |
1692 /** | |
1693 * A list of the context roots that should be analyzed. | |
1694 */ | |
1695 List<ContextRoot> get roots => _roots; | |
1696 | |
1697 /** | |
1698 * A list of the context roots that should be analyzed. | |
1699 */ | |
1700 void set roots(List<ContextRoot> value) { | |
1701 assert(value != null); | |
1702 this._roots = value; | |
1703 } | |
1704 | |
1705 AnalysisSetContextRootsParams(List<ContextRoot> roots) { | |
1706 this.roots = roots; | |
1707 } | |
1708 | |
1709 factory AnalysisSetContextRootsParams.fromJson(JsonDecoder jsonDecoder, String
jsonPath, Object json) { | |
1710 if (json == null) { | |
1711 json = {}; | |
1712 } | |
1713 if (json is Map) { | |
1714 List<ContextRoot> roots; | |
1715 if (json.containsKey("roots")) { | |
1716 roots = jsonDecoder.decodeList(jsonPath + ".roots", json["roots"], (Stri
ng jsonPath, Object json) => new ContextRoot.fromJson(jsonDecoder, jsonPath, jso
n)); | |
1717 } else { | |
1718 throw jsonDecoder.mismatch(jsonPath, "roots"); | |
1719 } | |
1720 return new AnalysisSetContextRootsParams(roots); | |
1721 } else { | |
1722 throw jsonDecoder.mismatch(jsonPath, "analysis.setContextRoots params", js
on); | |
1723 } | |
1724 } | |
1725 | |
1726 factory AnalysisSetContextRootsParams.fromRequest(Request request) { | |
1727 return new AnalysisSetContextRootsParams.fromJson( | |
1728 new RequestDecoder(request), "params", request.params); | |
1729 } | |
1730 | |
1731 @override | |
1732 Map<String, dynamic> toJson() { | |
1733 Map<String, dynamic> result = {}; | |
1734 result["roots"] = roots.map((ContextRoot value) => value.toJson()).toList(); | |
1735 return result; | |
1736 } | |
1737 | |
1738 @override | |
1739 Request toRequest(String id) { | |
1740 return new Request(id, "analysis.setContextRoots", toJson()); | |
1741 } | |
1742 | |
1743 @override | |
1744 String toString() => JSON.encode(toJson()); | |
1745 | |
1746 @override | |
1747 bool operator==(other) { | |
1748 if (other is AnalysisSetContextRootsParams) { | |
1749 return listEqual(roots, other.roots, (ContextRoot a, ContextRoot b) => a =
= b); | |
1750 } | |
1751 return false; | |
1752 } | |
1753 | |
1754 @override | |
1755 int get hashCode { | |
1756 int hash = 0; | |
1757 hash = JenkinsSmiHash.combine(hash, roots.hashCode); | |
1758 return JenkinsSmiHash.finish(hash); | |
1759 } | |
1760 } | |
1761 | |
1762 /** | |
1763 * analysis.setContextRoots result | |
1764 * | |
1765 * Clients may not extend, implement or mix-in this class. | |
1766 */ | |
1767 class AnalysisSetContextRootsResult implements ResponseResult { | |
1768 @override | |
1769 Map<String, dynamic> toJson() => <String, dynamic>{}; | |
1770 | |
1771 @override | |
1772 Response toResponse(String id) { | |
1773 return new Response(id, result: null); | |
1774 } | |
1775 | |
1776 @override | |
1777 bool operator==(other) { | |
1778 if (other is AnalysisSetContextRootsResult) { | |
1779 return true; | |
1780 } | |
1781 return false; | |
1782 } | |
1783 | |
1784 @override | |
1785 int get hashCode { | |
1786 return 969645618; | |
1787 } | |
1788 } | |
1789 | |
1790 /** | |
1791 * analysis.setPriorityFiles params | |
1792 * | |
1793 * { | |
1794 * "files": List<FilePath> | |
1795 * } | |
1796 * | |
1797 * Clients may not extend, implement or mix-in this class. | |
1798 */ | |
1799 class AnalysisSetPriorityFilesParams implements RequestParams { | |
1800 List<String> _files; | |
1801 | |
1802 /** | |
1803 * The files that are to be a priority for analysis. | |
1804 */ | |
1805 List<String> get files => _files; | |
1806 | |
1807 /** | |
1808 * The files that are to be a priority for analysis. | |
1809 */ | |
1810 void set files(List<String> value) { | |
1811 assert(value != null); | |
1812 this._files = value; | |
1813 } | |
1814 | |
1815 AnalysisSetPriorityFilesParams(List<String> files) { | |
1816 this.files = files; | |
1817 } | |
1818 | |
1819 factory AnalysisSetPriorityFilesParams.fromJson(JsonDecoder jsonDecoder, Strin
g jsonPath, Object json) { | |
1820 if (json == null) { | |
1821 json = {}; | |
1822 } | |
1823 if (json is Map) { | |
1824 List<String> files; | |
1825 if (json.containsKey("files")) { | |
1826 files = jsonDecoder.decodeList(jsonPath + ".files", json["files"], jsonD
ecoder.decodeString); | |
1827 } else { | |
1828 throw jsonDecoder.mismatch(jsonPath, "files"); | |
1829 } | |
1830 return new AnalysisSetPriorityFilesParams(files); | |
1831 } else { | |
1832 throw jsonDecoder.mismatch(jsonPath, "analysis.setPriorityFiles params", j
son); | |
1833 } | |
1834 } | |
1835 | |
1836 factory AnalysisSetPriorityFilesParams.fromRequest(Request request) { | |
1837 return new AnalysisSetPriorityFilesParams.fromJson( | |
1838 new RequestDecoder(request), "params", request.params); | |
1839 } | |
1840 | |
1841 @override | |
1842 Map<String, dynamic> toJson() { | |
1843 Map<String, dynamic> result = {}; | |
1844 result["files"] = files; | |
1845 return result; | |
1846 } | |
1847 | |
1848 @override | |
1849 Request toRequest(String id) { | |
1850 return new Request(id, "analysis.setPriorityFiles", toJson()); | |
1851 } | |
1852 | |
1853 @override | |
1854 String toString() => JSON.encode(toJson()); | |
1855 | |
1856 @override | |
1857 bool operator==(other) { | |
1858 if (other is AnalysisSetPriorityFilesParams) { | |
1859 return listEqual(files, other.files, (String a, String b) => a == b); | |
1860 } | |
1861 return false; | |
1862 } | |
1863 | |
1864 @override | |
1865 int get hashCode { | |
1866 int hash = 0; | |
1867 hash = JenkinsSmiHash.combine(hash, files.hashCode); | |
1868 return JenkinsSmiHash.finish(hash); | |
1869 } | |
1870 } | |
1871 | |
1872 /** | |
1873 * analysis.setPriorityFiles result | |
1874 * | |
1875 * Clients may not extend, implement or mix-in this class. | |
1876 */ | |
1877 class AnalysisSetPriorityFilesResult implements ResponseResult { | |
1878 @override | |
1879 Map<String, dynamic> toJson() => <String, dynamic>{}; | |
1880 | |
1881 @override | |
1882 Response toResponse(String id) { | |
1883 return new Response(id, result: null); | |
1884 } | |
1885 | |
1886 @override | |
1887 bool operator==(other) { | |
1888 if (other is AnalysisSetPriorityFilesResult) { | |
1889 return true; | |
1890 } | |
1891 return false; | |
1892 } | |
1893 | |
1894 @override | |
1895 int get hashCode { | |
1896 return 330050055; | |
1897 } | |
1898 } | |
1899 | |
1900 /** | |
1901 * analysis.setSubscriptions params | |
1902 * | |
1903 * { | |
1904 * "subscriptions": Map<AnalysisService, List<FilePath>> | |
1905 * } | |
1906 * | |
1907 * Clients may not extend, implement or mix-in this class. | |
1908 */ | |
1909 class AnalysisSetSubscriptionsParams implements RequestParams { | |
1910 Map<AnalysisService, List<String>> _subscriptions; | |
1911 | |
1912 /** | |
1913 * A table mapping services to a list of the files being subscribed to the | |
1914 * service. | |
1915 */ | |
1916 Map<AnalysisService, List<String>> get subscriptions => _subscriptions; | |
1917 | |
1918 /** | |
1919 * A table mapping services to a list of the files being subscribed to the | |
1920 * service. | |
1921 */ | |
1922 void set subscriptions(Map<AnalysisService, List<String>> value) { | |
1923 assert(value != null); | |
1924 this._subscriptions = value; | |
1925 } | |
1926 | |
1927 AnalysisSetSubscriptionsParams(Map<AnalysisService, List<String>> subscription
s) { | |
1928 this.subscriptions = subscriptions; | |
1929 } | |
1930 | |
1931 factory AnalysisSetSubscriptionsParams.fromJson(JsonDecoder jsonDecoder, Strin
g jsonPath, Object json) { | |
1932 if (json == null) { | |
1933 json = {}; | |
1934 } | |
1935 if (json is Map) { | |
1936 Map<AnalysisService, List<String>> subscriptions; | |
1937 if (json.containsKey("subscriptions")) { | |
1938 subscriptions = jsonDecoder.decodeMap(jsonPath + ".subscriptions", json[
"subscriptions"], keyDecoder: (String jsonPath, Object json) => new AnalysisServ
ice.fromJson(jsonDecoder, jsonPath, json), valueDecoder: (String jsonPath, Objec
t json) => jsonDecoder.decodeList(jsonPath, json, jsonDecoder.decodeString)); | |
1939 } else { | |
1940 throw jsonDecoder.mismatch(jsonPath, "subscriptions"); | |
1941 } | |
1942 return new AnalysisSetSubscriptionsParams(subscriptions); | |
1943 } else { | |
1944 throw jsonDecoder.mismatch(jsonPath, "analysis.setSubscriptions params", j
son); | |
1945 } | |
1946 } | |
1947 | |
1948 factory AnalysisSetSubscriptionsParams.fromRequest(Request request) { | |
1949 return new AnalysisSetSubscriptionsParams.fromJson( | |
1950 new RequestDecoder(request), "params", request.params); | |
1951 } | |
1952 | |
1953 @override | |
1954 Map<String, dynamic> toJson() { | |
1955 Map<String, dynamic> result = {}; | |
1956 result["subscriptions"] = mapMap(subscriptions, keyCallback: (AnalysisServic
e value) => value.toJson()); | |
1957 return result; | |
1958 } | |
1959 | |
1960 @override | |
1961 Request toRequest(String id) { | |
1962 return new Request(id, "analysis.setSubscriptions", toJson()); | |
1963 } | |
1964 | |
1965 @override | |
1966 String toString() => JSON.encode(toJson()); | |
1967 | |
1968 @override | |
1969 bool operator==(other) { | |
1970 if (other is AnalysisSetSubscriptionsParams) { | |
1971 return mapEqual(subscriptions, other.subscriptions, (List<String> a, List<
String> b) => listEqual(a, b, (String a, String b) => a == b)); | |
1972 } | |
1973 return false; | |
1974 } | |
1975 | |
1976 @override | |
1977 int get hashCode { | |
1978 int hash = 0; | |
1979 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode); | |
1980 return JenkinsSmiHash.finish(hash); | |
1981 } | |
1982 } | |
1983 | |
1984 /** | |
1985 * analysis.setSubscriptions result | |
1986 * | |
1987 * Clients may not extend, implement or mix-in this class. | |
1988 */ | |
1989 class AnalysisSetSubscriptionsResult implements ResponseResult { | |
1990 @override | |
1991 Map<String, dynamic> toJson() => <String, dynamic>{}; | |
1992 | |
1993 @override | |
1994 Response toResponse(String id) { | |
1995 return new Response(id, result: null); | |
1996 } | |
1997 | |
1998 @override | |
1999 bool operator==(other) { | |
2000 if (other is AnalysisSetSubscriptionsResult) { | |
2001 return true; | |
2002 } | |
2003 return false; | |
2004 } | |
2005 | |
2006 @override | |
2007 int get hashCode { | |
2008 return 218088493; | |
2009 } | |
2010 } | |
2011 | |
2012 /** | |
2013 * analysis.updateContent params | |
2014 * | |
2015 * { | |
2016 * "files": Map<FilePath, AddContentOverlay | ChangeContentOverlay | RemoveCon
tentOverlay> | |
2017 * } | |
2018 * | |
2019 * Clients may not extend, implement or mix-in this class. | |
2020 */ | |
2021 class AnalysisUpdateContentParams implements RequestParams { | |
2022 Map<String, dynamic> _files; | |
2023 | |
2024 /** | |
2025 * A table mapping the files whose content has changed to a description of | |
2026 * the content change. | |
2027 */ | |
2028 Map<String, dynamic> get files => _files; | |
2029 | |
2030 /** | |
2031 * A table mapping the files whose content has changed to a description of | |
2032 * the content change. | |
2033 */ | |
2034 void set files(Map<String, dynamic> value) { | |
2035 assert(value != null); | |
2036 this._files = value; | |
2037 } | |
2038 | |
2039 AnalysisUpdateContentParams(Map<String, dynamic> files) { | |
2040 this.files = files; | |
2041 } | |
2042 | |
2043 factory AnalysisUpdateContentParams.fromJson(JsonDecoder jsonDecoder, String j
sonPath, Object json) { | |
2044 if (json == null) { | |
2045 json = {}; | |
2046 } | |
2047 if (json is Map) { | |
2048 Map<String, dynamic> files; | |
2049 if (json.containsKey("files")) { | |
2050 files = jsonDecoder.decodeMap(jsonPath + ".files", json["files"], valueD
ecoder: (String jsonPath, Object json) => jsonDecoder.decodeUnion(jsonPath, json
, "type", {"add": (String jsonPath, Object json) => new AddContentOverlay.fromJs
on(jsonDecoder, jsonPath, json), "change": (String jsonPath, Object json) => new
ChangeContentOverlay.fromJson(jsonDecoder, jsonPath, json), "remove": (String j
sonPath, Object json) => new RemoveContentOverlay.fromJson(jsonDecoder, jsonPath
, json)})); | |
2051 } else { | |
2052 throw jsonDecoder.mismatch(jsonPath, "files"); | |
2053 } | |
2054 return new AnalysisUpdateContentParams(files); | |
2055 } else { | |
2056 throw jsonDecoder.mismatch(jsonPath, "analysis.updateContent params", json
); | |
2057 } | |
2058 } | |
2059 | |
2060 factory AnalysisUpdateContentParams.fromRequest(Request request) { | |
2061 return new AnalysisUpdateContentParams.fromJson( | |
2062 new RequestDecoder(request), "params", request.params); | |
2063 } | |
2064 | |
2065 @override | |
2066 Map<String, dynamic> toJson() { | |
2067 Map<String, dynamic> result = {}; | |
2068 result["files"] = mapMap(files, valueCallback: (dynamic value) => value.toJs
on()); | |
2069 return result; | |
2070 } | |
2071 | |
2072 @override | |
2073 Request toRequest(String id) { | |
2074 return new Request(id, "analysis.updateContent", toJson()); | |
2075 } | |
2076 | |
2077 @override | |
2078 String toString() => JSON.encode(toJson()); | |
2079 | |
2080 @override | |
2081 bool operator==(other) { | |
2082 if (other is AnalysisUpdateContentParams) { | |
2083 return mapEqual(files, other.files, (dynamic a, dynamic b) => a == b); | |
2084 } | |
2085 return false; | |
2086 } | |
2087 | |
2088 @override | |
2089 int get hashCode { | |
2090 int hash = 0; | |
2091 hash = JenkinsSmiHash.combine(hash, files.hashCode); | |
2092 return JenkinsSmiHash.finish(hash); | |
2093 } | |
2094 } | |
2095 | |
2096 /** | |
2097 * analysis.updateContent result | |
2098 * | |
2099 * Clients may not extend, implement or mix-in this class. | |
2100 */ | |
2101 class AnalysisUpdateContentResult implements ResponseResult { | |
2102 @override | |
2103 Map<String, dynamic> toJson() => <String, dynamic>{}; | |
2104 | |
2105 @override | |
2106 Response toResponse(String id) { | |
2107 return new Response(id, result: null); | |
2108 } | |
2109 | |
2110 @override | |
2111 bool operator==(other) { | |
2112 if (other is AnalysisUpdateContentResult) { | |
2113 return true; | |
2114 } | |
2115 return false; | |
2116 } | |
2117 | |
2118 @override | |
2119 int get hashCode { | |
2120 return 468798730; | |
2121 } | |
2122 } | |
2123 | |
2124 /** | |
2125 * ChangeContentOverlay | |
2126 * | |
2127 * { | |
2128 * "type": "change" | |
2129 * "edits": List<SourceEdit> | |
2130 * } | |
2131 * | |
2132 * Clients may not extend, implement or mix-in this class. | |
2133 */ | |
2134 class ChangeContentOverlay implements HasToJson { | |
2135 List<SourceEdit> _edits; | |
2136 | |
2137 /** | |
2138 * The edits to be applied to the file. | |
2139 */ | |
2140 List<SourceEdit> get edits => _edits; | |
2141 | |
2142 /** | |
2143 * The edits to be applied to the file. | |
2144 */ | |
2145 void set edits(List<SourceEdit> value) { | |
2146 assert(value != null); | |
2147 this._edits = value; | |
2148 } | |
2149 | |
2150 ChangeContentOverlay(List<SourceEdit> edits) { | |
2151 this.edits = edits; | |
2152 } | |
2153 | |
2154 factory ChangeContentOverlay.fromJson(JsonDecoder jsonDecoder, String jsonPath
, Object json) { | |
2155 if (json == null) { | |
2156 json = {}; | |
2157 } | |
2158 if (json is Map) { | |
2159 if (json["type"] != "change") { | |
2160 throw jsonDecoder.mismatch(jsonPath, "equal " + "change", json); | |
2161 } | |
2162 List<SourceEdit> edits; | |
2163 if (json.containsKey("edits")) { | |
2164 edits = jsonDecoder.decodeList(jsonPath + ".edits", json["edits"], (Stri
ng jsonPath, Object json) => new SourceEdit.fromJson(jsonDecoder, jsonPath, json
)); | |
2165 } else { | |
2166 throw jsonDecoder.mismatch(jsonPath, "edits"); | |
2167 } | |
2168 return new ChangeContentOverlay(edits); | |
2169 } else { | |
2170 throw jsonDecoder.mismatch(jsonPath, "ChangeContentOverlay", json); | |
2171 } | |
2172 } | |
2173 | |
2174 @override | |
2175 Map<String, dynamic> toJson() { | |
2176 Map<String, dynamic> result = {}; | |
2177 result["type"] = "change"; | |
2178 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList(); | |
2179 return result; | |
2180 } | |
2181 | |
2182 @override | |
2183 String toString() => JSON.encode(toJson()); | |
2184 | |
2185 @override | |
2186 bool operator==(other) { | |
2187 if (other is ChangeContentOverlay) { | |
2188 return listEqual(edits, other.edits, (SourceEdit a, SourceEdit b) => a ==
b); | |
2189 } | |
2190 return false; | |
2191 } | |
2192 | |
2193 @override | |
2194 int get hashCode { | |
2195 int hash = 0; | |
2196 hash = JenkinsSmiHash.combine(hash, 873118866); | |
2197 hash = JenkinsSmiHash.combine(hash, edits.hashCode); | |
2198 return JenkinsSmiHash.finish(hash); | |
2199 } | |
2200 } | |
2201 | |
2202 /** | |
2203 * completion.getSuggestions params | |
2204 * | |
2205 * { | |
2206 * "file": FilePath | |
2207 * "offset": int | |
2208 * } | |
2209 * | |
2210 * Clients may not extend, implement or mix-in this class. | |
2211 */ | |
2212 class CompletionGetSuggestionsParams implements RequestParams { | |
2213 String _file; | |
2214 | |
2215 int _offset; | |
2216 | |
2217 /** | |
2218 * The file containing the point at which suggestions are to be made. | |
2219 */ | |
2220 String get file => _file; | |
2221 | |
2222 /** | |
2223 * The file containing the point at which suggestions are to be made. | |
2224 */ | |
2225 void set file(String value) { | |
2226 assert(value != null); | |
2227 this._file = value; | |
2228 } | |
2229 | |
2230 /** | |
2231 * The offset within the file at which suggestions are to be made. | |
2232 */ | |
2233 int get offset => _offset; | |
2234 | |
2235 /** | |
2236 * The offset within the file at which suggestions are to be made. | |
2237 */ | |
2238 void set offset(int value) { | |
2239 assert(value != null); | |
2240 this._offset = value; | |
2241 } | |
2242 | |
2243 CompletionGetSuggestionsParams(String file, int offset) { | |
2244 this.file = file; | |
2245 this.offset = offset; | |
2246 } | |
2247 | |
2248 factory CompletionGetSuggestionsParams.fromJson(JsonDecoder jsonDecoder, Strin
g jsonPath, Object json) { | |
2249 if (json == null) { | |
2250 json = {}; | |
2251 } | |
2252 if (json is Map) { | |
2253 String file; | |
2254 if (json.containsKey("file")) { | |
2255 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
2256 } else { | |
2257 throw jsonDecoder.mismatch(jsonPath, "file"); | |
2258 } | |
2259 int offset; | |
2260 if (json.containsKey("offset")) { | |
2261 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
2262 } else { | |
2263 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
2264 } | |
2265 return new CompletionGetSuggestionsParams(file, offset); | |
2266 } else { | |
2267 throw jsonDecoder.mismatch(jsonPath, "completion.getSuggestions params", j
son); | |
2268 } | |
2269 } | |
2270 | |
2271 factory CompletionGetSuggestionsParams.fromRequest(Request request) { | |
2272 return new CompletionGetSuggestionsParams.fromJson( | |
2273 new RequestDecoder(request), "params", request.params); | |
2274 } | |
2275 | |
2276 @override | |
2277 Map<String, dynamic> toJson() { | |
2278 Map<String, dynamic> result = {}; | |
2279 result["file"] = file; | |
2280 result["offset"] = offset; | |
2281 return result; | |
2282 } | |
2283 | |
2284 @override | |
2285 Request toRequest(String id) { | |
2286 return new Request(id, "completion.getSuggestions", toJson()); | |
2287 } | |
2288 | |
2289 @override | |
2290 String toString() => JSON.encode(toJson()); | |
2291 | |
2292 @override | |
2293 bool operator==(other) { | |
2294 if (other is CompletionGetSuggestionsParams) { | |
2295 return file == other.file && | |
2296 offset == other.offset; | |
2297 } | |
2298 return false; | |
2299 } | |
2300 | |
2301 @override | |
2302 int get hashCode { | |
2303 int hash = 0; | |
2304 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
2305 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
2306 return JenkinsSmiHash.finish(hash); | |
2307 } | |
2308 } | |
2309 | |
2310 /** | |
2311 * completion.getSuggestions result | |
2312 * | |
2313 * { | |
2314 * "replacementOffset": int | |
2315 * "replacementLength": int | |
2316 * "results": List<CompletionSuggestion> | |
2317 * } | |
2318 * | |
2319 * Clients may not extend, implement or mix-in this class. | |
2320 */ | |
2321 class CompletionGetSuggestionsResult implements ResponseResult { | |
2322 int _replacementOffset; | |
2323 | |
2324 int _replacementLength; | |
2325 | |
2326 List<CompletionSuggestion> _results; | |
2327 | |
2328 /** | |
2329 * The offset of the start of the text to be replaced. This will be different | |
2330 * than the offset used to request the completion suggestions if there was a | |
2331 * portion of an identifier before the original offset. In particular, the | |
2332 * replacementOffset will be the offset of the beginning of said identifier. | |
2333 */ | |
2334 int get replacementOffset => _replacementOffset; | |
2335 | |
2336 /** | |
2337 * The offset of the start of the text to be replaced. This will be different | |
2338 * than the offset used to request the completion suggestions if there was a | |
2339 * portion of an identifier before the original offset. In particular, the | |
2340 * replacementOffset will be the offset of the beginning of said identifier. | |
2341 */ | |
2342 void set replacementOffset(int value) { | |
2343 assert(value != null); | |
2344 this._replacementOffset = value; | |
2345 } | |
2346 | |
2347 /** | |
2348 * The length of the text to be replaced if the remainder of the identifier | |
2349 * containing the cursor is to be replaced when the suggestion is applied | |
2350 * (that is, the number of characters in the existing identifier). | |
2351 */ | |
2352 int get replacementLength => _replacementLength; | |
2353 | |
2354 /** | |
2355 * The length of the text to be replaced if the remainder of the identifier | |
2356 * containing the cursor is to be replaced when the suggestion is applied | |
2357 * (that is, the number of characters in the existing identifier). | |
2358 */ | |
2359 void set replacementLength(int value) { | |
2360 assert(value != null); | |
2361 this._replacementLength = value; | |
2362 } | |
2363 | |
2364 /** | |
2365 * The completion suggestions being reported. The notification contains all | |
2366 * possible completions at the requested cursor position, even those that do | |
2367 * not match the characters the user has already typed. This allows the | |
2368 * client to respond to further keystrokes from the user without having to | |
2369 * make additional requests. | |
2370 */ | |
2371 List<CompletionSuggestion> get results => _results; | |
2372 | |
2373 /** | |
2374 * The completion suggestions being reported. The notification contains all | |
2375 * possible completions at the requested cursor position, even those that do | |
2376 * not match the characters the user has already typed. This allows the | |
2377 * client to respond to further keystrokes from the user without having to | |
2378 * make additional requests. | |
2379 */ | |
2380 void set results(List<CompletionSuggestion> value) { | |
2381 assert(value != null); | |
2382 this._results = value; | |
2383 } | |
2384 | |
2385 CompletionGetSuggestionsResult(int replacementOffset, int replacementLength, L
ist<CompletionSuggestion> results) { | |
2386 this.replacementOffset = replacementOffset; | |
2387 this.replacementLength = replacementLength; | |
2388 this.results = results; | |
2389 } | |
2390 | |
2391 factory CompletionGetSuggestionsResult.fromJson(JsonDecoder jsonDecoder, Strin
g jsonPath, Object json) { | |
2392 if (json == null) { | |
2393 json = {}; | |
2394 } | |
2395 if (json is Map) { | |
2396 int replacementOffset; | |
2397 if (json.containsKey("replacementOffset")) { | |
2398 replacementOffset = jsonDecoder.decodeInt(jsonPath + ".replacementOffset
", json["replacementOffset"]); | |
2399 } else { | |
2400 throw jsonDecoder.mismatch(jsonPath, "replacementOffset"); | |
2401 } | |
2402 int replacementLength; | |
2403 if (json.containsKey("replacementLength")) { | |
2404 replacementLength = jsonDecoder.decodeInt(jsonPath + ".replacementLength
", json["replacementLength"]); | |
2405 } else { | |
2406 throw jsonDecoder.mismatch(jsonPath, "replacementLength"); | |
2407 } | |
2408 List<CompletionSuggestion> results; | |
2409 if (json.containsKey("results")) { | |
2410 results = jsonDecoder.decodeList(jsonPath + ".results", json["results"],
(String jsonPath, Object json) => new CompletionSuggestion.fromJson(jsonDecoder
, jsonPath, json)); | |
2411 } else { | |
2412 throw jsonDecoder.mismatch(jsonPath, "results"); | |
2413 } | |
2414 return new CompletionGetSuggestionsResult(replacementOffset, replacementLe
ngth, results); | |
2415 } else { | |
2416 throw jsonDecoder.mismatch(jsonPath, "completion.getSuggestions result", j
son); | |
2417 } | |
2418 } | |
2419 | |
2420 factory CompletionGetSuggestionsResult.fromResponse(Response response) { | |
2421 return new CompletionGetSuggestionsResult.fromJson( | |
2422 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "
result", response.result); | |
2423 } | |
2424 | |
2425 @override | |
2426 Map<String, dynamic> toJson() { | |
2427 Map<String, dynamic> result = {}; | |
2428 result["replacementOffset"] = replacementOffset; | |
2429 result["replacementLength"] = replacementLength; | |
2430 result["results"] = results.map((CompletionSuggestion value) => value.toJson
()).toList(); | |
2431 return result; | |
2432 } | |
2433 | |
2434 @override | |
2435 Response toResponse(String id) { | |
2436 return new Response(id, result: toJson()); | |
2437 } | |
2438 | |
2439 @override | |
2440 String toString() => JSON.encode(toJson()); | |
2441 | |
2442 @override | |
2443 bool operator==(other) { | |
2444 if (other is CompletionGetSuggestionsResult) { | |
2445 return replacementOffset == other.replacementOffset && | |
2446 replacementLength == other.replacementLength && | |
2447 listEqual(results, other.results, (CompletionSuggestion a, CompletionS
uggestion b) => a == b); | |
2448 } | |
2449 return false; | |
2450 } | |
2451 | |
2452 @override | |
2453 int get hashCode { | |
2454 int hash = 0; | |
2455 hash = JenkinsSmiHash.combine(hash, replacementOffset.hashCode); | |
2456 hash = JenkinsSmiHash.combine(hash, replacementLength.hashCode); | |
2457 hash = JenkinsSmiHash.combine(hash, results.hashCode); | |
2458 return JenkinsSmiHash.finish(hash); | |
2459 } | |
2460 } | |
2461 | |
2462 /** | |
2463 * CompletionSuggestion | |
2464 * | |
2465 * { | |
2466 * "kind": CompletionSuggestionKind | |
2467 * "relevance": int | |
2468 * "completion": String | |
2469 * "selectionOffset": int | |
2470 * "selectionLength": int | |
2471 * "isDeprecated": bool | |
2472 * "isPotential": bool | |
2473 * "docSummary": optional String | |
2474 * "docComplete": optional String | |
2475 * "declaringType": optional String | |
2476 * "element": optional Element | |
2477 * "returnType": optional String | |
2478 * "parameterNames": optional List<String> | |
2479 * "parameterTypes": optional List<String> | |
2480 * "requiredParameterCount": optional int | |
2481 * "hasNamedParameters": optional bool | |
2482 * "parameterName": optional String | |
2483 * "parameterType": optional String | |
2484 * "importUri": optional String | |
2485 * } | |
2486 * | |
2487 * Clients may not extend, implement or mix-in this class. | |
2488 */ | |
2489 class CompletionSuggestion implements HasToJson { | |
2490 CompletionSuggestionKind _kind; | |
2491 | |
2492 int _relevance; | |
2493 | |
2494 String _completion; | |
2495 | |
2496 int _selectionOffset; | |
2497 | |
2498 int _selectionLength; | |
2499 | |
2500 bool _isDeprecated; | |
2501 | |
2502 bool _isPotential; | |
2503 | |
2504 String _docSummary; | |
2505 | |
2506 String _docComplete; | |
2507 | |
2508 String _declaringType; | |
2509 | |
2510 Element _element; | |
2511 | |
2512 String _returnType; | |
2513 | |
2514 List<String> _parameterNames; | |
2515 | |
2516 List<String> _parameterTypes; | |
2517 | |
2518 int _requiredParameterCount; | |
2519 | |
2520 bool _hasNamedParameters; | |
2521 | |
2522 String _parameterName; | |
2523 | |
2524 String _parameterType; | |
2525 | |
2526 String _importUri; | |
2527 | |
2528 /** | |
2529 * The kind of element being suggested. | |
2530 */ | |
2531 CompletionSuggestionKind get kind => _kind; | |
2532 | |
2533 /** | |
2534 * The kind of element being suggested. | |
2535 */ | |
2536 void set kind(CompletionSuggestionKind value) { | |
2537 assert(value != null); | |
2538 this._kind = value; | |
2539 } | |
2540 | |
2541 /** | |
2542 * The relevance of this completion suggestion where a higher number | |
2543 * indicates a higher relevance. | |
2544 */ | |
2545 int get relevance => _relevance; | |
2546 | |
2547 /** | |
2548 * The relevance of this completion suggestion where a higher number | |
2549 * indicates a higher relevance. | |
2550 */ | |
2551 void set relevance(int value) { | |
2552 assert(value != null); | |
2553 this._relevance = value; | |
2554 } | |
2555 | |
2556 /** | |
2557 * The identifier to be inserted if the suggestion is selected. If the | |
2558 * suggestion is for a method or function, the client might want to | |
2559 * additionally insert a template for the parameters. The information | |
2560 * required in order to do so is contained in other fields. | |
2561 */ | |
2562 String get completion => _completion; | |
2563 | |
2564 /** | |
2565 * The identifier to be inserted if the suggestion is selected. If the | |
2566 * suggestion is for a method or function, the client might want to | |
2567 * additionally insert a template for the parameters. The information | |
2568 * required in order to do so is contained in other fields. | |
2569 */ | |
2570 void set completion(String value) { | |
2571 assert(value != null); | |
2572 this._completion = value; | |
2573 } | |
2574 | |
2575 /** | |
2576 * The offset, relative to the beginning of the completion, of where the | |
2577 * selection should be placed after insertion. | |
2578 */ | |
2579 int get selectionOffset => _selectionOffset; | |
2580 | |
2581 /** | |
2582 * The offset, relative to the beginning of the completion, of where the | |
2583 * selection should be placed after insertion. | |
2584 */ | |
2585 void set selectionOffset(int value) { | |
2586 assert(value != null); | |
2587 this._selectionOffset = value; | |
2588 } | |
2589 | |
2590 /** | |
2591 * The number of characters that should be selected after insertion. | |
2592 */ | |
2593 int get selectionLength => _selectionLength; | |
2594 | |
2595 /** | |
2596 * The number of characters that should be selected after insertion. | |
2597 */ | |
2598 void set selectionLength(int value) { | |
2599 assert(value != null); | |
2600 this._selectionLength = value; | |
2601 } | |
2602 | |
2603 /** | |
2604 * True if the suggested element is deprecated. | |
2605 */ | |
2606 bool get isDeprecated => _isDeprecated; | |
2607 | |
2608 /** | |
2609 * True if the suggested element is deprecated. | |
2610 */ | |
2611 void set isDeprecated(bool value) { | |
2612 assert(value != null); | |
2613 this._isDeprecated = value; | |
2614 } | |
2615 | |
2616 /** | |
2617 * True if the element is not known to be valid for the target. This happens | |
2618 * if the type of the target is dynamic. | |
2619 */ | |
2620 bool get isPotential => _isPotential; | |
2621 | |
2622 /** | |
2623 * True if the element is not known to be valid for the target. This happens | |
2624 * if the type of the target is dynamic. | |
2625 */ | |
2626 void set isPotential(bool value) { | |
2627 assert(value != null); | |
2628 this._isPotential = value; | |
2629 } | |
2630 | |
2631 /** | |
2632 * An abbreviated version of the Dartdoc associated with the element being | |
2633 * suggested, This field is omitted if there is no Dartdoc associated with | |
2634 * the element. | |
2635 */ | |
2636 String get docSummary => _docSummary; | |
2637 | |
2638 /** | |
2639 * An abbreviated version of the Dartdoc associated with the element being | |
2640 * suggested, This field is omitted if there is no Dartdoc associated with | |
2641 * the element. | |
2642 */ | |
2643 void set docSummary(String value) { | |
2644 this._docSummary = value; | |
2645 } | |
2646 | |
2647 /** | |
2648 * The Dartdoc associated with the element being suggested. This field is | |
2649 * omitted if there is no Dartdoc associated with the element. | |
2650 */ | |
2651 String get docComplete => _docComplete; | |
2652 | |
2653 /** | |
2654 * The Dartdoc associated with the element being suggested. This field is | |
2655 * omitted if there is no Dartdoc associated with the element. | |
2656 */ | |
2657 void set docComplete(String value) { | |
2658 this._docComplete = value; | |
2659 } | |
2660 | |
2661 /** | |
2662 * The class that declares the element being suggested. This field is omitted | |
2663 * if the suggested element is not a member of a class. | |
2664 */ | |
2665 String get declaringType => _declaringType; | |
2666 | |
2667 /** | |
2668 * The class that declares the element being suggested. This field is omitted | |
2669 * if the suggested element is not a member of a class. | |
2670 */ | |
2671 void set declaringType(String value) { | |
2672 this._declaringType = value; | |
2673 } | |
2674 | |
2675 /** | |
2676 * Information about the element reference being suggested. | |
2677 */ | |
2678 Element get element => _element; | |
2679 | |
2680 /** | |
2681 * Information about the element reference being suggested. | |
2682 */ | |
2683 void set element(Element value) { | |
2684 this._element = value; | |
2685 } | |
2686 | |
2687 /** | |
2688 * The return type of the getter, function or method or the type of the field | |
2689 * being suggested. This field is omitted if the suggested element is not a | |
2690 * getter, function or method. | |
2691 */ | |
2692 String get returnType => _returnType; | |
2693 | |
2694 /** | |
2695 * The return type of the getter, function or method or the type of the field | |
2696 * being suggested. This field is omitted if the suggested element is not a | |
2697 * getter, function or method. | |
2698 */ | |
2699 void set returnType(String value) { | |
2700 this._returnType = value; | |
2701 } | |
2702 | |
2703 /** | |
2704 * The names of the parameters of the function or method being suggested. | |
2705 * This field is omitted if the suggested element is not a setter, function | |
2706 * or method. | |
2707 */ | |
2708 List<String> get parameterNames => _parameterNames; | |
2709 | |
2710 /** | |
2711 * The names of the parameters of the function or method being suggested. | |
2712 * This field is omitted if the suggested element is not a setter, function | |
2713 * or method. | |
2714 */ | |
2715 void set parameterNames(List<String> value) { | |
2716 this._parameterNames = value; | |
2717 } | |
2718 | |
2719 /** | |
2720 * The types of the parameters of the function or method being suggested. | |
2721 * This field is omitted if the parameterNames field is omitted. | |
2722 */ | |
2723 List<String> get parameterTypes => _parameterTypes; | |
2724 | |
2725 /** | |
2726 * The types of the parameters of the function or method being suggested. | |
2727 * This field is omitted if the parameterNames field is omitted. | |
2728 */ | |
2729 void set parameterTypes(List<String> value) { | |
2730 this._parameterTypes = value; | |
2731 } | |
2732 | |
2733 /** | |
2734 * The number of required parameters for the function or method being | |
2735 * suggested. This field is omitted if the parameterNames field is omitted. | |
2736 */ | |
2737 int get requiredParameterCount => _requiredParameterCount; | |
2738 | |
2739 /** | |
2740 * The number of required parameters for the function or method being | |
2741 * suggested. This field is omitted if the parameterNames field is omitted. | |
2742 */ | |
2743 void set requiredParameterCount(int value) { | |
2744 this._requiredParameterCount = value; | |
2745 } | |
2746 | |
2747 /** | |
2748 * True if the function or method being suggested has at least one named | |
2749 * parameter. This field is omitted if the parameterNames field is omitted. | |
2750 */ | |
2751 bool get hasNamedParameters => _hasNamedParameters; | |
2752 | |
2753 /** | |
2754 * True if the function or method being suggested has at least one named | |
2755 * parameter. This field is omitted if the parameterNames field is omitted. | |
2756 */ | |
2757 void set hasNamedParameters(bool value) { | |
2758 this._hasNamedParameters = value; | |
2759 } | |
2760 | |
2761 /** | |
2762 * The name of the optional parameter being suggested. This field is omitted | |
2763 * if the suggestion is not the addition of an optional argument within an | |
2764 * argument list. | |
2765 */ | |
2766 String get parameterName => _parameterName; | |
2767 | |
2768 /** | |
2769 * The name of the optional parameter being suggested. This field is omitted | |
2770 * if the suggestion is not the addition of an optional argument within an | |
2771 * argument list. | |
2772 */ | |
2773 void set parameterName(String value) { | |
2774 this._parameterName = value; | |
2775 } | |
2776 | |
2777 /** | |
2778 * The type of the options parameter being suggested. This field is omitted | |
2779 * if the parameterName field is omitted. | |
2780 */ | |
2781 String get parameterType => _parameterType; | |
2782 | |
2783 /** | |
2784 * The type of the options parameter being suggested. This field is omitted | |
2785 * if the parameterName field is omitted. | |
2786 */ | |
2787 void set parameterType(String value) { | |
2788 this._parameterType = value; | |
2789 } | |
2790 | |
2791 /** | |
2792 * The import to be added if the suggestion is out of scope and needs an | |
2793 * import to be added to be in scope. | |
2794 */ | |
2795 String get importUri => _importUri; | |
2796 | |
2797 /** | |
2798 * The import to be added if the suggestion is out of scope and needs an | |
2799 * import to be added to be in scope. | |
2800 */ | |
2801 void set importUri(String value) { | |
2802 this._importUri = value; | |
2803 } | |
2804 | |
2805 CompletionSuggestion(CompletionSuggestionKind kind, int relevance, String comp
letion, int selectionOffset, int selectionLength, bool isDeprecated, bool isPote
ntial, {String docSummary, String docComplete, String declaringType, Element ele
ment, String returnType, List<String> parameterNames, List<String> parameterType
s, int requiredParameterCount, bool hasNamedParameters, String parameterName, St
ring parameterType, String importUri}) { | |
2806 this.kind = kind; | |
2807 this.relevance = relevance; | |
2808 this.completion = completion; | |
2809 this.selectionOffset = selectionOffset; | |
2810 this.selectionLength = selectionLength; | |
2811 this.isDeprecated = isDeprecated; | |
2812 this.isPotential = isPotential; | |
2813 this.docSummary = docSummary; | |
2814 this.docComplete = docComplete; | |
2815 this.declaringType = declaringType; | |
2816 this.element = element; | |
2817 this.returnType = returnType; | |
2818 this.parameterNames = parameterNames; | |
2819 this.parameterTypes = parameterTypes; | |
2820 this.requiredParameterCount = requiredParameterCount; | |
2821 this.hasNamedParameters = hasNamedParameters; | |
2822 this.parameterName = parameterName; | |
2823 this.parameterType = parameterType; | |
2824 this.importUri = importUri; | |
2825 } | |
2826 | |
2827 factory CompletionSuggestion.fromJson(JsonDecoder jsonDecoder, String jsonPath
, Object json) { | |
2828 if (json == null) { | |
2829 json = {}; | |
2830 } | |
2831 if (json is Map) { | |
2832 CompletionSuggestionKind kind; | |
2833 if (json.containsKey("kind")) { | |
2834 kind = new CompletionSuggestionKind.fromJson(jsonDecoder, jsonPath + ".k
ind", json["kind"]); | |
2835 } else { | |
2836 throw jsonDecoder.mismatch(jsonPath, "kind"); | |
2837 } | |
2838 int relevance; | |
2839 if (json.containsKey("relevance")) { | |
2840 relevance = jsonDecoder.decodeInt(jsonPath + ".relevance", json["relevan
ce"]); | |
2841 } else { | |
2842 throw jsonDecoder.mismatch(jsonPath, "relevance"); | |
2843 } | |
2844 String completion; | |
2845 if (json.containsKey("completion")) { | |
2846 completion = jsonDecoder.decodeString(jsonPath + ".completion", json["co
mpletion"]); | |
2847 } else { | |
2848 throw jsonDecoder.mismatch(jsonPath, "completion"); | |
2849 } | |
2850 int selectionOffset; | |
2851 if (json.containsKey("selectionOffset")) { | |
2852 selectionOffset = jsonDecoder.decodeInt(jsonPath + ".selectionOffset", j
son["selectionOffset"]); | |
2853 } else { | |
2854 throw jsonDecoder.mismatch(jsonPath, "selectionOffset"); | |
2855 } | |
2856 int selectionLength; | |
2857 if (json.containsKey("selectionLength")) { | |
2858 selectionLength = jsonDecoder.decodeInt(jsonPath + ".selectionLength", j
son["selectionLength"]); | |
2859 } else { | |
2860 throw jsonDecoder.mismatch(jsonPath, "selectionLength"); | |
2861 } | |
2862 bool isDeprecated; | |
2863 if (json.containsKey("isDeprecated")) { | |
2864 isDeprecated = jsonDecoder.decodeBool(jsonPath + ".isDeprecated", json["
isDeprecated"]); | |
2865 } else { | |
2866 throw jsonDecoder.mismatch(jsonPath, "isDeprecated"); | |
2867 } | |
2868 bool isPotential; | |
2869 if (json.containsKey("isPotential")) { | |
2870 isPotential = jsonDecoder.decodeBool(jsonPath + ".isPotential", json["is
Potential"]); | |
2871 } else { | |
2872 throw jsonDecoder.mismatch(jsonPath, "isPotential"); | |
2873 } | |
2874 String docSummary; | |
2875 if (json.containsKey("docSummary")) { | |
2876 docSummary = jsonDecoder.decodeString(jsonPath + ".docSummary", json["do
cSummary"]); | |
2877 } | |
2878 String docComplete; | |
2879 if (json.containsKey("docComplete")) { | |
2880 docComplete = jsonDecoder.decodeString(jsonPath + ".docComplete", json["
docComplete"]); | |
2881 } | |
2882 String declaringType; | |
2883 if (json.containsKey("declaringType")) { | |
2884 declaringType = jsonDecoder.decodeString(jsonPath + ".declaringType", js
on["declaringType"]); | |
2885 } | |
2886 Element element; | |
2887 if (json.containsKey("element")) { | |
2888 element = new Element.fromJson(jsonDecoder, jsonPath + ".element", json[
"element"]); | |
2889 } | |
2890 String returnType; | |
2891 if (json.containsKey("returnType")) { | |
2892 returnType = jsonDecoder.decodeString(jsonPath + ".returnType", json["re
turnType"]); | |
2893 } | |
2894 List<String> parameterNames; | |
2895 if (json.containsKey("parameterNames")) { | |
2896 parameterNames = jsonDecoder.decodeList(jsonPath + ".parameterNames", js
on["parameterNames"], jsonDecoder.decodeString); | |
2897 } | |
2898 List<String> parameterTypes; | |
2899 if (json.containsKey("parameterTypes")) { | |
2900 parameterTypes = jsonDecoder.decodeList(jsonPath + ".parameterTypes", js
on["parameterTypes"], jsonDecoder.decodeString); | |
2901 } | |
2902 int requiredParameterCount; | |
2903 if (json.containsKey("requiredParameterCount")) { | |
2904 requiredParameterCount = jsonDecoder.decodeInt(jsonPath + ".requiredPara
meterCount", json["requiredParameterCount"]); | |
2905 } | |
2906 bool hasNamedParameters; | |
2907 if (json.containsKey("hasNamedParameters")) { | |
2908 hasNamedParameters = jsonDecoder.decodeBool(jsonPath + ".hasNamedParamet
ers", json["hasNamedParameters"]); | |
2909 } | |
2910 String parameterName; | |
2911 if (json.containsKey("parameterName")) { | |
2912 parameterName = jsonDecoder.decodeString(jsonPath + ".parameterName", js
on["parameterName"]); | |
2913 } | |
2914 String parameterType; | |
2915 if (json.containsKey("parameterType")) { | |
2916 parameterType = jsonDecoder.decodeString(jsonPath + ".parameterType", js
on["parameterType"]); | |
2917 } | |
2918 String importUri; | |
2919 if (json.containsKey("importUri")) { | |
2920 importUri = jsonDecoder.decodeString(jsonPath + ".importUri", json["impo
rtUri"]); | |
2921 } | |
2922 return new CompletionSuggestion(kind, relevance, completion, selectionOffs
et, selectionLength, isDeprecated, isPotential, docSummary: docSummary, docCompl
ete: docComplete, declaringType: declaringType, element: element, returnType: re
turnType, parameterNames: parameterNames, parameterTypes: parameterTypes, requir
edParameterCount: requiredParameterCount, hasNamedParameters: hasNamedParameters
, parameterName: parameterName, parameterType: parameterType, importUri: importU
ri); | |
2923 } else { | |
2924 throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestion", json); | |
2925 } | |
2926 } | |
2927 | |
2928 @override | |
2929 Map<String, dynamic> toJson() { | |
2930 Map<String, dynamic> result = {}; | |
2931 result["kind"] = kind.toJson(); | |
2932 result["relevance"] = relevance; | |
2933 result["completion"] = completion; | |
2934 result["selectionOffset"] = selectionOffset; | |
2935 result["selectionLength"] = selectionLength; | |
2936 result["isDeprecated"] = isDeprecated; | |
2937 result["isPotential"] = isPotential; | |
2938 if (docSummary != null) { | |
2939 result["docSummary"] = docSummary; | |
2940 } | |
2941 if (docComplete != null) { | |
2942 result["docComplete"] = docComplete; | |
2943 } | |
2944 if (declaringType != null) { | |
2945 result["declaringType"] = declaringType; | |
2946 } | |
2947 if (element != null) { | |
2948 result["element"] = element.toJson(); | |
2949 } | |
2950 if (returnType != null) { | |
2951 result["returnType"] = returnType; | |
2952 } | |
2953 if (parameterNames != null) { | |
2954 result["parameterNames"] = parameterNames; | |
2955 } | |
2956 if (parameterTypes != null) { | |
2957 result["parameterTypes"] = parameterTypes; | |
2958 } | |
2959 if (requiredParameterCount != null) { | |
2960 result["requiredParameterCount"] = requiredParameterCount; | |
2961 } | |
2962 if (hasNamedParameters != null) { | |
2963 result["hasNamedParameters"] = hasNamedParameters; | |
2964 } | |
2965 if (parameterName != null) { | |
2966 result["parameterName"] = parameterName; | |
2967 } | |
2968 if (parameterType != null) { | |
2969 result["parameterType"] = parameterType; | |
2970 } | |
2971 if (importUri != null) { | |
2972 result["importUri"] = importUri; | |
2973 } | |
2974 return result; | |
2975 } | |
2976 | |
2977 @override | |
2978 String toString() => JSON.encode(toJson()); | |
2979 | |
2980 @override | |
2981 bool operator==(other) { | |
2982 if (other is CompletionSuggestion) { | |
2983 return kind == other.kind && | |
2984 relevance == other.relevance && | |
2985 completion == other.completion && | |
2986 selectionOffset == other.selectionOffset && | |
2987 selectionLength == other.selectionLength && | |
2988 isDeprecated == other.isDeprecated && | |
2989 isPotential == other.isPotential && | |
2990 docSummary == other.docSummary && | |
2991 docComplete == other.docComplete && | |
2992 declaringType == other.declaringType && | |
2993 element == other.element && | |
2994 returnType == other.returnType && | |
2995 listEqual(parameterNames, other.parameterNames, (String a, String b) =
> a == b) && | |
2996 listEqual(parameterTypes, other.parameterTypes, (String a, String b) =
> a == b) && | |
2997 requiredParameterCount == other.requiredParameterCount && | |
2998 hasNamedParameters == other.hasNamedParameters && | |
2999 parameterName == other.parameterName && | |
3000 parameterType == other.parameterType && | |
3001 importUri == other.importUri; | |
3002 } | |
3003 return false; | |
3004 } | |
3005 | |
3006 @override | |
3007 int get hashCode { | |
3008 int hash = 0; | |
3009 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | |
3010 hash = JenkinsSmiHash.combine(hash, relevance.hashCode); | |
3011 hash = JenkinsSmiHash.combine(hash, completion.hashCode); | |
3012 hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode); | |
3013 hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode); | |
3014 hash = JenkinsSmiHash.combine(hash, isDeprecated.hashCode); | |
3015 hash = JenkinsSmiHash.combine(hash, isPotential.hashCode); | |
3016 hash = JenkinsSmiHash.combine(hash, docSummary.hashCode); | |
3017 hash = JenkinsSmiHash.combine(hash, docComplete.hashCode); | |
3018 hash = JenkinsSmiHash.combine(hash, declaringType.hashCode); | |
3019 hash = JenkinsSmiHash.combine(hash, element.hashCode); | |
3020 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); | |
3021 hash = JenkinsSmiHash.combine(hash, parameterNames.hashCode); | |
3022 hash = JenkinsSmiHash.combine(hash, parameterTypes.hashCode); | |
3023 hash = JenkinsSmiHash.combine(hash, requiredParameterCount.hashCode); | |
3024 hash = JenkinsSmiHash.combine(hash, hasNamedParameters.hashCode); | |
3025 hash = JenkinsSmiHash.combine(hash, parameterName.hashCode); | |
3026 hash = JenkinsSmiHash.combine(hash, parameterType.hashCode); | |
3027 hash = JenkinsSmiHash.combine(hash, importUri.hashCode); | |
3028 return JenkinsSmiHash.finish(hash); | |
3029 } | |
3030 } | |
3031 | |
3032 /** | |
3033 * CompletionSuggestionKind | |
3034 * | |
3035 * enum { | |
3036 * ARGUMENT_LIST | |
3037 * IMPORT | |
3038 * IDENTIFIER | |
3039 * INVOCATION | |
3040 * KEYWORD | |
3041 * NAMED_ARGUMENT | |
3042 * OPTIONAL_ARGUMENT | |
3043 * PARAMETER | |
3044 * } | |
3045 * | |
3046 * Clients may not extend, implement or mix-in this class. | |
3047 */ | |
3048 class CompletionSuggestionKind implements Enum { | |
3049 /** | |
3050 * A list of arguments for the method or function that is being invoked. For | |
3051 * this suggestion kind, the completion field is a textual representation of | |
3052 * the invocation and the parameterNames, parameterTypes, and | |
3053 * requiredParameterCount attributes are defined. | |
3054 */ | |
3055 static const CompletionSuggestionKind ARGUMENT_LIST = const CompletionSuggesti
onKind._("ARGUMENT_LIST"); | |
3056 | |
3057 static const CompletionSuggestionKind IMPORT = const CompletionSuggestionKind.
_("IMPORT"); | |
3058 | |
3059 /** | |
3060 * The element identifier should be inserted at the completion location. For | |
3061 * example "someMethod" in import 'myLib.dart' show someMethod;. For | |
3062 * suggestions of this kind, the element attribute is defined and the | |
3063 * completion field is the element's identifier. | |
3064 */ | |
3065 static const CompletionSuggestionKind IDENTIFIER = const CompletionSuggestionK
ind._("IDENTIFIER"); | |
3066 | |
3067 /** | |
3068 * The element is being invoked at the completion location. For example, | |
3069 * 'someMethod' in x.someMethod();. For suggestions of this kind, the element | |
3070 * attribute is defined and the completion field is the element's identifier. | |
3071 */ | |
3072 static const CompletionSuggestionKind INVOCATION = const CompletionSuggestionK
ind._("INVOCATION"); | |
3073 | |
3074 /** | |
3075 * A keyword is being suggested. For suggestions of this kind, the completion | |
3076 * is the keyword. | |
3077 */ | |
3078 static const CompletionSuggestionKind KEYWORD = const CompletionSuggestionKind
._("KEYWORD"); | |
3079 | |
3080 /** | |
3081 * A named argument for the current call site is being suggested. For | |
3082 * suggestions of this kind, the completion is the named argument identifier | |
3083 * including a trailing ':' and a space. | |
3084 */ | |
3085 static const CompletionSuggestionKind NAMED_ARGUMENT = const CompletionSuggest
ionKind._("NAMED_ARGUMENT"); | |
3086 | |
3087 static const CompletionSuggestionKind OPTIONAL_ARGUMENT = const CompletionSugg
estionKind._("OPTIONAL_ARGUMENT"); | |
3088 | |
3089 static const CompletionSuggestionKind PARAMETER = const CompletionSuggestionKi
nd._("PARAMETER"); | |
3090 | |
3091 /** | |
3092 * A list containing all of the enum values that are defined. | |
3093 */ | |
3094 static const List<CompletionSuggestionKind> VALUES = const <CompletionSuggesti
onKind>[ARGUMENT_LIST, IMPORT, IDENTIFIER, INVOCATION, KEYWORD, NAMED_ARGUMENT,
OPTIONAL_ARGUMENT, PARAMETER]; | |
3095 | |
3096 @override | |
3097 final String name; | |
3098 | |
3099 const CompletionSuggestionKind._(this.name); | |
3100 | |
3101 factory CompletionSuggestionKind(String name) { | |
3102 switch (name) { | |
3103 case "ARGUMENT_LIST": | |
3104 return ARGUMENT_LIST; | |
3105 case "IMPORT": | |
3106 return IMPORT; | |
3107 case "IDENTIFIER": | |
3108 return IDENTIFIER; | |
3109 case "INVOCATION": | |
3110 return INVOCATION; | |
3111 case "KEYWORD": | |
3112 return KEYWORD; | |
3113 case "NAMED_ARGUMENT": | |
3114 return NAMED_ARGUMENT; | |
3115 case "OPTIONAL_ARGUMENT": | |
3116 return OPTIONAL_ARGUMENT; | |
3117 case "PARAMETER": | |
3118 return PARAMETER; | |
3119 } | |
3120 throw new Exception('Illegal enum value: $name'); | |
3121 } | |
3122 | |
3123 factory CompletionSuggestionKind.fromJson(JsonDecoder jsonDecoder, String json
Path, Object json) { | |
3124 if (json is String) { | |
3125 try { | |
3126 return new CompletionSuggestionKind(json); | |
3127 } catch(_) { | |
3128 // Fall through | |
3129 } | |
3130 } | |
3131 throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestionKind", json); | |
3132 } | |
3133 | |
3134 @override | |
3135 String toString() => "CompletionSuggestionKind.$name"; | |
3136 | |
3137 String toJson() => name; | |
3138 } | |
3139 | |
3140 /** | |
3141 * ContextBuilderOptions | |
3142 * | |
3143 * { | |
3144 * "dartSdkSummaryPath": optional String | |
3145 * "defaultAnalysisOptionsFilePath": optional List<String> | |
3146 * "declaredVariables": optional Map<String, String> | |
3147 * "defaultPackageFilePath": optional List<String> | |
3148 * "defaultPackagesDirectoryPath": optional List<String> | |
3149 * } | |
3150 * | |
3151 * Clients may not extend, implement or mix-in this class. | |
3152 */ | |
3153 class ContextBuilderOptions implements HasToJson { | |
3154 String _dartSdkSummaryPath; | |
3155 | |
3156 List<String> _defaultAnalysisOptionsFilePath; | |
3157 | |
3158 Map<String, String> _declaredVariables; | |
3159 | |
3160 List<String> _defaultPackageFilePath; | |
3161 | |
3162 List<String> _defaultPackagesDirectoryPath; | |
3163 | |
3164 /** | |
3165 * The file path of the file containing the summary of the SDK that should be | |
3166 * used to "analyze" the SDK. The field will be omitted if the summary should | |
3167 * be found in the SDK. | |
3168 */ | |
3169 String get dartSdkSummaryPath => _dartSdkSummaryPath; | |
3170 | |
3171 /** | |
3172 * The file path of the file containing the summary of the SDK that should be | |
3173 * used to "analyze" the SDK. The field will be omitted if the summary should | |
3174 * be found in the SDK. | |
3175 */ | |
3176 void set dartSdkSummaryPath(String value) { | |
3177 this._dartSdkSummaryPath = value; | |
3178 } | |
3179 | |
3180 /** | |
3181 * The file path of the analysis options file that should be used in place of | |
3182 * any file in the root directory or a parent of the root directory. The | |
3183 * field will be omitted if the normal lookup mechanism should be used. | |
3184 */ | |
3185 List<String> get defaultAnalysisOptionsFilePath => _defaultAnalysisOptionsFile
Path; | |
3186 | |
3187 /** | |
3188 * The file path of the analysis options file that should be used in place of | |
3189 * any file in the root directory or a parent of the root directory. The | |
3190 * field will be omitted if the normal lookup mechanism should be used. | |
3191 */ | |
3192 void set defaultAnalysisOptionsFilePath(List<String> value) { | |
3193 this._defaultAnalysisOptionsFilePath = value; | |
3194 } | |
3195 | |
3196 /** | |
3197 * A table mapping variable names to values for the declared variables. The | |
3198 * field will be omitted if no additional variables need to be declared. | |
3199 */ | |
3200 Map<String, String> get declaredVariables => _declaredVariables; | |
3201 | |
3202 /** | |
3203 * A table mapping variable names to values for the declared variables. The | |
3204 * field will be omitted if no additional variables need to be declared. | |
3205 */ | |
3206 void set declaredVariables(Map<String, String> value) { | |
3207 this._declaredVariables = value; | |
3208 } | |
3209 | |
3210 /** | |
3211 * The file path of the .packages file that should be used in place of any | |
3212 * file found using the normal (Package Specification DEP) lookup mechanism. | |
3213 * The field will be omitted if the normal lookup mechanism should be used. | |
3214 */ | |
3215 List<String> get defaultPackageFilePath => _defaultPackageFilePath; | |
3216 | |
3217 /** | |
3218 * The file path of the .packages file that should be used in place of any | |
3219 * file found using the normal (Package Specification DEP) lookup mechanism. | |
3220 * The field will be omitted if the normal lookup mechanism should be used. | |
3221 */ | |
3222 void set defaultPackageFilePath(List<String> value) { | |
3223 this._defaultPackageFilePath = value; | |
3224 } | |
3225 | |
3226 /** | |
3227 * The file path of the packages directory that should be used in place of | |
3228 * any file found using the normal (Package Specification DEP) lookup | |
3229 * mechanism. The field will be omitted if the normal lookup mechanism should | |
3230 * be used. | |
3231 */ | |
3232 List<String> get defaultPackagesDirectoryPath => _defaultPackagesDirectoryPath
; | |
3233 | |
3234 /** | |
3235 * The file path of the packages directory that should be used in place of | |
3236 * any file found using the normal (Package Specification DEP) lookup | |
3237 * mechanism. The field will be omitted if the normal lookup mechanism should | |
3238 * be used. | |
3239 */ | |
3240 void set defaultPackagesDirectoryPath(List<String> value) { | |
3241 this._defaultPackagesDirectoryPath = value; | |
3242 } | |
3243 | |
3244 ContextBuilderOptions({String dartSdkSummaryPath, List<String> defaultAnalysis
OptionsFilePath, Map<String, String> declaredVariables, List<String> defaultPack
ageFilePath, List<String> defaultPackagesDirectoryPath}) { | |
3245 this.dartSdkSummaryPath = dartSdkSummaryPath; | |
3246 this.defaultAnalysisOptionsFilePath = defaultAnalysisOptionsFilePath; | |
3247 this.declaredVariables = declaredVariables; | |
3248 this.defaultPackageFilePath = defaultPackageFilePath; | |
3249 this.defaultPackagesDirectoryPath = defaultPackagesDirectoryPath; | |
3250 } | |
3251 | |
3252 factory ContextBuilderOptions.fromJson(JsonDecoder jsonDecoder, String jsonPat
h, Object json) { | |
3253 if (json == null) { | |
3254 json = {}; | |
3255 } | |
3256 if (json is Map) { | |
3257 String dartSdkSummaryPath; | |
3258 if (json.containsKey("dartSdkSummaryPath")) { | |
3259 dartSdkSummaryPath = jsonDecoder.decodeString(jsonPath + ".dartSdkSummar
yPath", json["dartSdkSummaryPath"]); | |
3260 } | |
3261 List<String> defaultAnalysisOptionsFilePath; | |
3262 if (json.containsKey("defaultAnalysisOptionsFilePath")) { | |
3263 defaultAnalysisOptionsFilePath = jsonDecoder.decodeList(jsonPath + ".def
aultAnalysisOptionsFilePath", json["defaultAnalysisOptionsFilePath"], jsonDecode
r.decodeString); | |
3264 } | |
3265 Map<String, String> declaredVariables; | |
3266 if (json.containsKey("declaredVariables")) { | |
3267 declaredVariables = jsonDecoder.decodeMap(jsonPath + ".declaredVariables
", json["declaredVariables"], valueDecoder: jsonDecoder.decodeString); | |
3268 } | |
3269 List<String> defaultPackageFilePath; | |
3270 if (json.containsKey("defaultPackageFilePath")) { | |
3271 defaultPackageFilePath = jsonDecoder.decodeList(jsonPath + ".defaultPack
ageFilePath", json["defaultPackageFilePath"], jsonDecoder.decodeString); | |
3272 } | |
3273 List<String> defaultPackagesDirectoryPath; | |
3274 if (json.containsKey("defaultPackagesDirectoryPath")) { | |
3275 defaultPackagesDirectoryPath = jsonDecoder.decodeList(jsonPath + ".defau
ltPackagesDirectoryPath", json["defaultPackagesDirectoryPath"], jsonDecoder.deco
deString); | |
3276 } | |
3277 return new ContextBuilderOptions(dartSdkSummaryPath: dartSdkSummaryPath, d
efaultAnalysisOptionsFilePath: defaultAnalysisOptionsFilePath, declaredVariables
: declaredVariables, defaultPackageFilePath: defaultPackageFilePath, defaultPack
agesDirectoryPath: defaultPackagesDirectoryPath); | |
3278 } else { | |
3279 throw jsonDecoder.mismatch(jsonPath, "ContextBuilderOptions", json); | |
3280 } | |
3281 } | |
3282 | |
3283 @override | |
3284 Map<String, dynamic> toJson() { | |
3285 Map<String, dynamic> result = {}; | |
3286 if (dartSdkSummaryPath != null) { | |
3287 result["dartSdkSummaryPath"] = dartSdkSummaryPath; | |
3288 } | |
3289 if (defaultAnalysisOptionsFilePath != null) { | |
3290 result["defaultAnalysisOptionsFilePath"] = defaultAnalysisOptionsFilePath; | |
3291 } | |
3292 if (declaredVariables != null) { | |
3293 result["declaredVariables"] = declaredVariables; | |
3294 } | |
3295 if (defaultPackageFilePath != null) { | |
3296 result["defaultPackageFilePath"] = defaultPackageFilePath; | |
3297 } | |
3298 if (defaultPackagesDirectoryPath != null) { | |
3299 result["defaultPackagesDirectoryPath"] = defaultPackagesDirectoryPath; | |
3300 } | |
3301 return result; | |
3302 } | |
3303 | |
3304 @override | |
3305 String toString() => JSON.encode(toJson()); | |
3306 | |
3307 @override | |
3308 bool operator==(other) { | |
3309 if (other is ContextBuilderOptions) { | |
3310 return dartSdkSummaryPath == other.dartSdkSummaryPath && | |
3311 listEqual(defaultAnalysisOptionsFilePath, other.defaultAnalysisOptions
FilePath, (String a, String b) => a == b) && | |
3312 mapEqual(declaredVariables, other.declaredVariables, (String a, String
b) => a == b) && | |
3313 listEqual(defaultPackageFilePath, other.defaultPackageFilePath, (Strin
g a, String b) => a == b) && | |
3314 listEqual(defaultPackagesDirectoryPath, other.defaultPackagesDirectory
Path, (String a, String b) => a == b); | |
3315 } | |
3316 return false; | |
3317 } | |
3318 | |
3319 @override | |
3320 int get hashCode { | |
3321 int hash = 0; | |
3322 hash = JenkinsSmiHash.combine(hash, dartSdkSummaryPath.hashCode); | |
3323 hash = JenkinsSmiHash.combine(hash, defaultAnalysisOptionsFilePath.hashCode)
; | |
3324 hash = JenkinsSmiHash.combine(hash, declaredVariables.hashCode); | |
3325 hash = JenkinsSmiHash.combine(hash, defaultPackageFilePath.hashCode); | |
3326 hash = JenkinsSmiHash.combine(hash, defaultPackagesDirectoryPath.hashCode); | |
3327 return JenkinsSmiHash.finish(hash); | |
3328 } | |
3329 } | |
3330 | |
3331 /** | |
3332 * ContextRoot | |
3333 * | |
3334 * { | |
3335 * "root": String | |
3336 * "exclude": List<String> | |
3337 * } | |
3338 * | |
3339 * Clients may not extend, implement or mix-in this class. | |
3340 */ | |
3341 class ContextRoot implements HasToJson { | |
3342 String _root; | |
3343 | |
3344 List<String> _exclude; | |
3345 | |
3346 /** | |
3347 * The absolute path of the root directory containing the files to be | |
3348 * analyzed. | |
3349 */ | |
3350 String get root => _root; | |
3351 | |
3352 /** | |
3353 * The absolute path of the root directory containing the files to be | |
3354 * analyzed. | |
3355 */ | |
3356 void set root(String value) { | |
3357 assert(value != null); | |
3358 this._root = value; | |
3359 } | |
3360 | |
3361 /** | |
3362 * A list of the absolute paths of files and directories within the root | |
3363 * directory that should not be analyzed. | |
3364 */ | |
3365 List<String> get exclude => _exclude; | |
3366 | |
3367 /** | |
3368 * A list of the absolute paths of files and directories within the root | |
3369 * directory that should not be analyzed. | |
3370 */ | |
3371 void set exclude(List<String> value) { | |
3372 assert(value != null); | |
3373 this._exclude = value; | |
3374 } | |
3375 | |
3376 ContextRoot(String root, List<String> exclude) { | |
3377 this.root = root; | |
3378 this.exclude = exclude; | |
3379 } | |
3380 | |
3381 factory ContextRoot.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object
json) { | |
3382 if (json == null) { | |
3383 json = {}; | |
3384 } | |
3385 if (json is Map) { | |
3386 String root; | |
3387 if (json.containsKey("root")) { | |
3388 root = jsonDecoder.decodeString(jsonPath + ".root", json["root"]); | |
3389 } else { | |
3390 throw jsonDecoder.mismatch(jsonPath, "root"); | |
3391 } | |
3392 List<String> exclude; | |
3393 if (json.containsKey("exclude")) { | |
3394 exclude = jsonDecoder.decodeList(jsonPath + ".exclude", json["exclude"],
jsonDecoder.decodeString); | |
3395 } else { | |
3396 throw jsonDecoder.mismatch(jsonPath, "exclude"); | |
3397 } | |
3398 return new ContextRoot(root, exclude); | |
3399 } else { | |
3400 throw jsonDecoder.mismatch(jsonPath, "ContextRoot", json); | |
3401 } | |
3402 } | |
3403 | |
3404 @override | |
3405 Map<String, dynamic> toJson() { | |
3406 Map<String, dynamic> result = {}; | |
3407 result["root"] = root; | |
3408 result["exclude"] = exclude; | |
3409 return result; | |
3410 } | |
3411 | |
3412 @override | |
3413 String toString() => JSON.encode(toJson()); | |
3414 | |
3415 @override | |
3416 bool operator==(other) { | |
3417 if (other is ContextRoot) { | |
3418 return root == other.root && | |
3419 listEqual(exclude, other.exclude, (String a, String b) => a == b); | |
3420 } | |
3421 return false; | |
3422 } | |
3423 | |
3424 @override | |
3425 int get hashCode { | |
3426 int hash = 0; | |
3427 hash = JenkinsSmiHash.combine(hash, root.hashCode); | |
3428 hash = JenkinsSmiHash.combine(hash, exclude.hashCode); | |
3429 return JenkinsSmiHash.finish(hash); | |
3430 } | |
3431 } | |
3432 | |
3433 /** | |
3434 * convertGetterToMethod feedback | |
3435 * | |
3436 * Clients may not extend, implement or mix-in this class. | |
3437 */ | |
3438 class ConvertGetterToMethodFeedback extends RefactoringFeedback implements HasTo
Json { | |
3439 @override | |
3440 bool operator==(other) { | |
3441 if (other is ConvertGetterToMethodFeedback) { | |
3442 return true; | |
3443 } | |
3444 return false; | |
3445 } | |
3446 | |
3447 @override | |
3448 int get hashCode { | |
3449 return 616032599; | |
3450 } | |
3451 } | |
3452 | |
3453 /** | |
3454 * convertGetterToMethod options | |
3455 * | |
3456 * Clients may not extend, implement or mix-in this class. | |
3457 */ | |
3458 class ConvertGetterToMethodOptions extends RefactoringOptions implements HasToJs
on { | |
3459 @override | |
3460 bool operator==(other) { | |
3461 if (other is ConvertGetterToMethodOptions) { | |
3462 return true; | |
3463 } | |
3464 return false; | |
3465 } | |
3466 | |
3467 @override | |
3468 int get hashCode { | |
3469 return 488848400; | |
3470 } | |
3471 } | |
3472 | |
3473 /** | |
3474 * convertMethodToGetter feedback | |
3475 * | |
3476 * Clients may not extend, implement or mix-in this class. | |
3477 */ | |
3478 class ConvertMethodToGetterFeedback extends RefactoringFeedback implements HasTo
Json { | |
3479 @override | |
3480 bool operator==(other) { | |
3481 if (other is ConvertMethodToGetterFeedback) { | |
3482 return true; | |
3483 } | |
3484 return false; | |
3485 } | |
3486 | |
3487 @override | |
3488 int get hashCode { | |
3489 return 165291526; | |
3490 } | |
3491 } | |
3492 | |
3493 /** | |
3494 * convertMethodToGetter options | |
3495 * | |
3496 * Clients may not extend, implement or mix-in this class. | |
3497 */ | |
3498 class ConvertMethodToGetterOptions extends RefactoringOptions implements HasToJs
on { | |
3499 @override | |
3500 bool operator==(other) { | |
3501 if (other is ConvertMethodToGetterOptions) { | |
3502 return true; | |
3503 } | |
3504 return false; | |
3505 } | |
3506 | |
3507 @override | |
3508 int get hashCode { | |
3509 return 27952290; | |
3510 } | |
3511 } | |
3512 | |
3513 /** | |
3514 * edit.getAssists params | |
3515 * | |
3516 * { | |
3517 * "file": FilePath | |
3518 * "offset": int | |
3519 * "length": int | |
3520 * } | |
3521 * | |
3522 * Clients may not extend, implement or mix-in this class. | |
3523 */ | |
3524 class EditGetAssistsParams implements RequestParams { | |
3525 String _file; | |
3526 | |
3527 int _offset; | |
3528 | |
3529 int _length; | |
3530 | |
3531 /** | |
3532 * The file containing the code for which assists are being requested. | |
3533 */ | |
3534 String get file => _file; | |
3535 | |
3536 /** | |
3537 * The file containing the code for which assists are being requested. | |
3538 */ | |
3539 void set file(String value) { | |
3540 assert(value != null); | |
3541 this._file = value; | |
3542 } | |
3543 | |
3544 /** | |
3545 * The offset of the code for which assists are being requested. | |
3546 */ | |
3547 int get offset => _offset; | |
3548 | |
3549 /** | |
3550 * The offset of the code for which assists are being requested. | |
3551 */ | |
3552 void set offset(int value) { | |
3553 assert(value != null); | |
3554 this._offset = value; | |
3555 } | |
3556 | |
3557 /** | |
3558 * The length of the code for which assists are being requested. | |
3559 */ | |
3560 int get length => _length; | |
3561 | |
3562 /** | |
3563 * The length of the code for which assists are being requested. | |
3564 */ | |
3565 void set length(int value) { | |
3566 assert(value != null); | |
3567 this._length = value; | |
3568 } | |
3569 | |
3570 EditGetAssistsParams(String file, int offset, int length) { | |
3571 this.file = file; | |
3572 this.offset = offset; | |
3573 this.length = length; | |
3574 } | |
3575 | |
3576 factory EditGetAssistsParams.fromJson(JsonDecoder jsonDecoder, String jsonPath
, Object json) { | |
3577 if (json == null) { | |
3578 json = {}; | |
3579 } | |
3580 if (json is Map) { | |
3581 String file; | |
3582 if (json.containsKey("file")) { | |
3583 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
3584 } else { | |
3585 throw jsonDecoder.mismatch(jsonPath, "file"); | |
3586 } | |
3587 int offset; | |
3588 if (json.containsKey("offset")) { | |
3589 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
3590 } else { | |
3591 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
3592 } | |
3593 int length; | |
3594 if (json.containsKey("length")) { | |
3595 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
3596 } else { | |
3597 throw jsonDecoder.mismatch(jsonPath, "length"); | |
3598 } | |
3599 return new EditGetAssistsParams(file, offset, length); | |
3600 } else { | |
3601 throw jsonDecoder.mismatch(jsonPath, "edit.getAssists params", json); | |
3602 } | |
3603 } | |
3604 | |
3605 factory EditGetAssistsParams.fromRequest(Request request) { | |
3606 return new EditGetAssistsParams.fromJson( | |
3607 new RequestDecoder(request), "params", request.params); | |
3608 } | |
3609 | |
3610 @override | |
3611 Map<String, dynamic> toJson() { | |
3612 Map<String, dynamic> result = {}; | |
3613 result["file"] = file; | |
3614 result["offset"] = offset; | |
3615 result["length"] = length; | |
3616 return result; | |
3617 } | |
3618 | |
3619 @override | |
3620 Request toRequest(String id) { | |
3621 return new Request(id, "edit.getAssists", toJson()); | |
3622 } | |
3623 | |
3624 @override | |
3625 String toString() => JSON.encode(toJson()); | |
3626 | |
3627 @override | |
3628 bool operator==(other) { | |
3629 if (other is EditGetAssistsParams) { | |
3630 return file == other.file && | |
3631 offset == other.offset && | |
3632 length == other.length; | |
3633 } | |
3634 return false; | |
3635 } | |
3636 | |
3637 @override | |
3638 int get hashCode { | |
3639 int hash = 0; | |
3640 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
3641 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
3642 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
3643 return JenkinsSmiHash.finish(hash); | |
3644 } | |
3645 } | |
3646 | |
3647 /** | |
3648 * edit.getAssists result | |
3649 * | |
3650 * { | |
3651 * "assists": List<PrioritizedSourceChange> | |
3652 * } | |
3653 * | |
3654 * Clients may not extend, implement or mix-in this class. | |
3655 */ | |
3656 class EditGetAssistsResult implements ResponseResult { | |
3657 List<PrioritizedSourceChange> _assists; | |
3658 | |
3659 /** | |
3660 * The assists that are available at the given location. | |
3661 */ | |
3662 List<PrioritizedSourceChange> get assists => _assists; | |
3663 | |
3664 /** | |
3665 * The assists that are available at the given location. | |
3666 */ | |
3667 void set assists(List<PrioritizedSourceChange> value) { | |
3668 assert(value != null); | |
3669 this._assists = value; | |
3670 } | |
3671 | |
3672 EditGetAssistsResult(List<PrioritizedSourceChange> assists) { | |
3673 this.assists = assists; | |
3674 } | |
3675 | |
3676 factory EditGetAssistsResult.fromJson(JsonDecoder jsonDecoder, String jsonPath
, Object json) { | |
3677 if (json == null) { | |
3678 json = {}; | |
3679 } | |
3680 if (json is Map) { | |
3681 List<PrioritizedSourceChange> assists; | |
3682 if (json.containsKey("assists")) { | |
3683 assists = jsonDecoder.decodeList(jsonPath + ".assists", json["assists"],
(String jsonPath, Object json) => new PrioritizedSourceChange.fromJson(jsonDeco
der, jsonPath, json)); | |
3684 } else { | |
3685 throw jsonDecoder.mismatch(jsonPath, "assists"); | |
3686 } | |
3687 return new EditGetAssistsResult(assists); | |
3688 } else { | |
3689 throw jsonDecoder.mismatch(jsonPath, "edit.getAssists result", json); | |
3690 } | |
3691 } | |
3692 | |
3693 factory EditGetAssistsResult.fromResponse(Response response) { | |
3694 return new EditGetAssistsResult.fromJson( | |
3695 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "
result", response.result); | |
3696 } | |
3697 | |
3698 @override | |
3699 Map<String, dynamic> toJson() { | |
3700 Map<String, dynamic> result = {}; | |
3701 result["assists"] = assists.map((PrioritizedSourceChange value) => value.toJ
son()).toList(); | |
3702 return result; | |
3703 } | |
3704 | |
3705 @override | |
3706 Response toResponse(String id) { | |
3707 return new Response(id, result: toJson()); | |
3708 } | |
3709 | |
3710 @override | |
3711 String toString() => JSON.encode(toJson()); | |
3712 | |
3713 @override | |
3714 bool operator==(other) { | |
3715 if (other is EditGetAssistsResult) { | |
3716 return listEqual(assists, other.assists, (PrioritizedSourceChange a, Prior
itizedSourceChange b) => a == b); | |
3717 } | |
3718 return false; | |
3719 } | |
3720 | |
3721 @override | |
3722 int get hashCode { | |
3723 int hash = 0; | |
3724 hash = JenkinsSmiHash.combine(hash, assists.hashCode); | |
3725 return JenkinsSmiHash.finish(hash); | |
3726 } | |
3727 } | |
3728 | |
3729 /** | |
3730 * edit.getAvailableRefactorings params | |
3731 * | |
3732 * { | |
3733 * "file": FilePath | |
3734 * "offset": int | |
3735 * "length": int | |
3736 * } | |
3737 * | |
3738 * Clients may not extend, implement or mix-in this class. | |
3739 */ | |
3740 class EditGetAvailableRefactoringsParams implements RequestParams { | |
3741 String _file; | |
3742 | |
3743 int _offset; | |
3744 | |
3745 int _length; | |
3746 | |
3747 /** | |
3748 * The file containing the code on which the refactoring would be based. | |
3749 */ | |
3750 String get file => _file; | |
3751 | |
3752 /** | |
3753 * The file containing the code on which the refactoring would be based. | |
3754 */ | |
3755 void set file(String value) { | |
3756 assert(value != null); | |
3757 this._file = value; | |
3758 } | |
3759 | |
3760 /** | |
3761 * The offset of the code on which the refactoring would be based. | |
3762 */ | |
3763 int get offset => _offset; | |
3764 | |
3765 /** | |
3766 * The offset of the code on which the refactoring would be based. | |
3767 */ | |
3768 void set offset(int value) { | |
3769 assert(value != null); | |
3770 this._offset = value; | |
3771 } | |
3772 | |
3773 /** | |
3774 * The length of the code on which the refactoring would be based. | |
3775 */ | |
3776 int get length => _length; | |
3777 | |
3778 /** | |
3779 * The length of the code on which the refactoring would be based. | |
3780 */ | |
3781 void set length(int value) { | |
3782 assert(value != null); | |
3783 this._length = value; | |
3784 } | |
3785 | |
3786 EditGetAvailableRefactoringsParams(String file, int offset, int length) { | |
3787 this.file = file; | |
3788 this.offset = offset; | |
3789 this.length = length; | |
3790 } | |
3791 | |
3792 factory EditGetAvailableRefactoringsParams.fromJson(JsonDecoder jsonDecoder, S
tring jsonPath, Object json) { | |
3793 if (json == null) { | |
3794 json = {}; | |
3795 } | |
3796 if (json is Map) { | |
3797 String file; | |
3798 if (json.containsKey("file")) { | |
3799 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
3800 } else { | |
3801 throw jsonDecoder.mismatch(jsonPath, "file"); | |
3802 } | |
3803 int offset; | |
3804 if (json.containsKey("offset")) { | |
3805 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
3806 } else { | |
3807 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
3808 } | |
3809 int length; | |
3810 if (json.containsKey("length")) { | |
3811 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
3812 } else { | |
3813 throw jsonDecoder.mismatch(jsonPath, "length"); | |
3814 } | |
3815 return new EditGetAvailableRefactoringsParams(file, offset, length); | |
3816 } else { | |
3817 throw jsonDecoder.mismatch(jsonPath, "edit.getAvailableRefactorings params
", json); | |
3818 } | |
3819 } | |
3820 | |
3821 factory EditGetAvailableRefactoringsParams.fromRequest(Request request) { | |
3822 return new EditGetAvailableRefactoringsParams.fromJson( | |
3823 new RequestDecoder(request), "params", request.params); | |
3824 } | |
3825 | |
3826 @override | |
3827 Map<String, dynamic> toJson() { | |
3828 Map<String, dynamic> result = {}; | |
3829 result["file"] = file; | |
3830 result["offset"] = offset; | |
3831 result["length"] = length; | |
3832 return result; | |
3833 } | |
3834 | |
3835 @override | |
3836 Request toRequest(String id) { | |
3837 return new Request(id, "edit.getAvailableRefactorings", toJson()); | |
3838 } | |
3839 | |
3840 @override | |
3841 String toString() => JSON.encode(toJson()); | |
3842 | |
3843 @override | |
3844 bool operator==(other) { | |
3845 if (other is EditGetAvailableRefactoringsParams) { | |
3846 return file == other.file && | |
3847 offset == other.offset && | |
3848 length == other.length; | |
3849 } | |
3850 return false; | |
3851 } | |
3852 | |
3853 @override | |
3854 int get hashCode { | |
3855 int hash = 0; | |
3856 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
3857 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
3858 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
3859 return JenkinsSmiHash.finish(hash); | |
3860 } | |
3861 } | |
3862 | |
3863 /** | |
3864 * edit.getAvailableRefactorings result | |
3865 * | |
3866 * { | |
3867 * "kinds": List<RefactoringKind> | |
3868 * } | |
3869 * | |
3870 * Clients may not extend, implement or mix-in this class. | |
3871 */ | |
3872 class EditGetAvailableRefactoringsResult implements ResponseResult { | |
3873 List<RefactoringKind> _kinds; | |
3874 | |
3875 /** | |
3876 * The kinds of refactorings that are valid for the given selection. | |
3877 * | |
3878 * The list of refactoring kinds is currently limited to those defined by the | |
3879 * server API, preventing plugins from adding their own refactorings. | |
3880 * However, plugins can support pre-defined refactorings, such as a rename | |
3881 * refactoring, at locations not supported by server. | |
3882 */ | |
3883 List<RefactoringKind> get kinds => _kinds; | |
3884 | |
3885 /** | |
3886 * The kinds of refactorings that are valid for the given selection. | |
3887 * | |
3888 * The list of refactoring kinds is currently limited to those defined by the | |
3889 * server API, preventing plugins from adding their own refactorings. | |
3890 * However, plugins can support pre-defined refactorings, such as a rename | |
3891 * refactoring, at locations not supported by server. | |
3892 */ | |
3893 void set kinds(List<RefactoringKind> value) { | |
3894 assert(value != null); | |
3895 this._kinds = value; | |
3896 } | |
3897 | |
3898 EditGetAvailableRefactoringsResult(List<RefactoringKind> kinds) { | |
3899 this.kinds = kinds; | |
3900 } | |
3901 | |
3902 factory EditGetAvailableRefactoringsResult.fromJson(JsonDecoder jsonDecoder, S
tring jsonPath, Object json) { | |
3903 if (json == null) { | |
3904 json = {}; | |
3905 } | |
3906 if (json is Map) { | |
3907 List<RefactoringKind> kinds; | |
3908 if (json.containsKey("kinds")) { | |
3909 kinds = jsonDecoder.decodeList(jsonPath + ".kinds", json["kinds"], (Stri
ng jsonPath, Object json) => new RefactoringKind.fromJson(jsonDecoder, jsonPath,
json)); | |
3910 } else { | |
3911 throw jsonDecoder.mismatch(jsonPath, "kinds"); | |
3912 } | |
3913 return new EditGetAvailableRefactoringsResult(kinds); | |
3914 } else { | |
3915 throw jsonDecoder.mismatch(jsonPath, "edit.getAvailableRefactorings result
", json); | |
3916 } | |
3917 } | |
3918 | |
3919 factory EditGetAvailableRefactoringsResult.fromResponse(Response response) { | |
3920 return new EditGetAvailableRefactoringsResult.fromJson( | |
3921 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "
result", response.result); | |
3922 } | |
3923 | |
3924 @override | |
3925 Map<String, dynamic> toJson() { | |
3926 Map<String, dynamic> result = {}; | |
3927 result["kinds"] = kinds.map((RefactoringKind value) => value.toJson()).toLis
t(); | |
3928 return result; | |
3929 } | |
3930 | |
3931 @override | |
3932 Response toResponse(String id) { | |
3933 return new Response(id, result: toJson()); | |
3934 } | |
3935 | |
3936 @override | |
3937 String toString() => JSON.encode(toJson()); | |
3938 | |
3939 @override | |
3940 bool operator==(other) { | |
3941 if (other is EditGetAvailableRefactoringsResult) { | |
3942 return listEqual(kinds, other.kinds, (RefactoringKind a, RefactoringKind b
) => a == b); | |
3943 } | |
3944 return false; | |
3945 } | |
3946 | |
3947 @override | |
3948 int get hashCode { | |
3949 int hash = 0; | |
3950 hash = JenkinsSmiHash.combine(hash, kinds.hashCode); | |
3951 return JenkinsSmiHash.finish(hash); | |
3952 } | |
3953 } | |
3954 | |
3955 /** | |
3956 * edit.getFixes params | |
3957 * | |
3958 * { | |
3959 * "file": FilePath | |
3960 * "offset": int | |
3961 * } | |
3962 * | |
3963 * Clients may not extend, implement or mix-in this class. | |
3964 */ | |
3965 class EditGetFixesParams implements RequestParams { | |
3966 String _file; | |
3967 | |
3968 int _offset; | |
3969 | |
3970 /** | |
3971 * The file containing the errors for which fixes are being requested. | |
3972 */ | |
3973 String get file => _file; | |
3974 | |
3975 /** | |
3976 * The file containing the errors for which fixes are being requested. | |
3977 */ | |
3978 void set file(String value) { | |
3979 assert(value != null); | |
3980 this._file = value; | |
3981 } | |
3982 | |
3983 /** | |
3984 * The offset used to select the errors for which fixes will be returned. | |
3985 */ | |
3986 int get offset => _offset; | |
3987 | |
3988 /** | |
3989 * The offset used to select the errors for which fixes will be returned. | |
3990 */ | |
3991 void set offset(int value) { | |
3992 assert(value != null); | |
3993 this._offset = value; | |
3994 } | |
3995 | |
3996 EditGetFixesParams(String file, int offset) { | |
3997 this.file = file; | |
3998 this.offset = offset; | |
3999 } | |
4000 | |
4001 factory EditGetFixesParams.fromJson(JsonDecoder jsonDecoder, String jsonPath,
Object json) { | |
4002 if (json == null) { | |
4003 json = {}; | |
4004 } | |
4005 if (json is Map) { | |
4006 String file; | |
4007 if (json.containsKey("file")) { | |
4008 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
4009 } else { | |
4010 throw jsonDecoder.mismatch(jsonPath, "file"); | |
4011 } | |
4012 int offset; | |
4013 if (json.containsKey("offset")) { | |
4014 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
4015 } else { | |
4016 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
4017 } | |
4018 return new EditGetFixesParams(file, offset); | |
4019 } else { | |
4020 throw jsonDecoder.mismatch(jsonPath, "edit.getFixes params", json); | |
4021 } | |
4022 } | |
4023 | |
4024 factory EditGetFixesParams.fromRequest(Request request) { | |
4025 return new EditGetFixesParams.fromJson( | |
4026 new RequestDecoder(request), "params", request.params); | |
4027 } | |
4028 | |
4029 @override | |
4030 Map<String, dynamic> toJson() { | |
4031 Map<String, dynamic> result = {}; | |
4032 result["file"] = file; | |
4033 result["offset"] = offset; | |
4034 return result; | |
4035 } | |
4036 | |
4037 @override | |
4038 Request toRequest(String id) { | |
4039 return new Request(id, "edit.getFixes", toJson()); | |
4040 } | |
4041 | |
4042 @override | |
4043 String toString() => JSON.encode(toJson()); | |
4044 | |
4045 @override | |
4046 bool operator==(other) { | |
4047 if (other is EditGetFixesParams) { | |
4048 return file == other.file && | |
4049 offset == other.offset; | |
4050 } | |
4051 return false; | |
4052 } | |
4053 | |
4054 @override | |
4055 int get hashCode { | |
4056 int hash = 0; | |
4057 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
4058 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
4059 return JenkinsSmiHash.finish(hash); | |
4060 } | |
4061 } | |
4062 | |
4063 /** | |
4064 * edit.getFixes result | |
4065 * | |
4066 * { | |
4067 * "fixes": List<AnalysisErrorFixes> | |
4068 * } | |
4069 * | |
4070 * Clients may not extend, implement or mix-in this class. | |
4071 */ | |
4072 class EditGetFixesResult implements ResponseResult { | |
4073 List<AnalysisErrorFixes> _fixes; | |
4074 | |
4075 /** | |
4076 * The fixes that are available for the errors at the given offset. | |
4077 */ | |
4078 List<AnalysisErrorFixes> get fixes => _fixes; | |
4079 | |
4080 /** | |
4081 * The fixes that are available for the errors at the given offset. | |
4082 */ | |
4083 void set fixes(List<AnalysisErrorFixes> value) { | |
4084 assert(value != null); | |
4085 this._fixes = value; | |
4086 } | |
4087 | |
4088 EditGetFixesResult(List<AnalysisErrorFixes> fixes) { | |
4089 this.fixes = fixes; | |
4090 } | |
4091 | |
4092 factory EditGetFixesResult.fromJson(JsonDecoder jsonDecoder, String jsonPath,
Object json) { | |
4093 if (json == null) { | |
4094 json = {}; | |
4095 } | |
4096 if (json is Map) { | |
4097 List<AnalysisErrorFixes> fixes; | |
4098 if (json.containsKey("fixes")) { | |
4099 fixes = jsonDecoder.decodeList(jsonPath + ".fixes", json["fixes"], (Stri
ng jsonPath, Object json) => new AnalysisErrorFixes.fromJson(jsonDecoder, jsonPa
th, json)); | |
4100 } else { | |
4101 throw jsonDecoder.mismatch(jsonPath, "fixes"); | |
4102 } | |
4103 return new EditGetFixesResult(fixes); | |
4104 } else { | |
4105 throw jsonDecoder.mismatch(jsonPath, "edit.getFixes result", json); | |
4106 } | |
4107 } | |
4108 | |
4109 factory EditGetFixesResult.fromResponse(Response response) { | |
4110 return new EditGetFixesResult.fromJson( | |
4111 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "
result", response.result); | |
4112 } | |
4113 | |
4114 @override | |
4115 Map<String, dynamic> toJson() { | |
4116 Map<String, dynamic> result = {}; | |
4117 result["fixes"] = fixes.map((AnalysisErrorFixes value) => value.toJson()).to
List(); | |
4118 return result; | |
4119 } | |
4120 | |
4121 @override | |
4122 Response toResponse(String id) { | |
4123 return new Response(id, result: toJson()); | |
4124 } | |
4125 | |
4126 @override | |
4127 String toString() => JSON.encode(toJson()); | |
4128 | |
4129 @override | |
4130 bool operator==(other) { | |
4131 if (other is EditGetFixesResult) { | |
4132 return listEqual(fixes, other.fixes, (AnalysisErrorFixes a, AnalysisErrorF
ixes b) => a == b); | |
4133 } | |
4134 return false; | |
4135 } | |
4136 | |
4137 @override | |
4138 int get hashCode { | |
4139 int hash = 0; | |
4140 hash = JenkinsSmiHash.combine(hash, fixes.hashCode); | |
4141 return JenkinsSmiHash.finish(hash); | |
4142 } | |
4143 } | |
4144 | |
4145 /** | |
4146 * edit.getRefactoring params | |
4147 * | |
4148 * { | |
4149 * "kind": RefactoringKind | |
4150 * "file": FilePath | |
4151 * "offset": int | |
4152 * "length": int | |
4153 * "validateOnly": bool | |
4154 * "options": optional RefactoringOptions | |
4155 * } | |
4156 * | |
4157 * Clients may not extend, implement or mix-in this class. | |
4158 */ | |
4159 class EditGetRefactoringParams implements RequestParams { | |
4160 RefactoringKind _kind; | |
4161 | |
4162 String _file; | |
4163 | |
4164 int _offset; | |
4165 | |
4166 int _length; | |
4167 | |
4168 bool _validateOnly; | |
4169 | |
4170 RefactoringOptions _options; | |
4171 | |
4172 /** | |
4173 * The kind of refactoring to be performed. | |
4174 */ | |
4175 RefactoringKind get kind => _kind; | |
4176 | |
4177 /** | |
4178 * The kind of refactoring to be performed. | |
4179 */ | |
4180 void set kind(RefactoringKind value) { | |
4181 assert(value != null); | |
4182 this._kind = value; | |
4183 } | |
4184 | |
4185 /** | |
4186 * The file containing the code involved in the refactoring. | |
4187 */ | |
4188 String get file => _file; | |
4189 | |
4190 /** | |
4191 * The file containing the code involved in the refactoring. | |
4192 */ | |
4193 void set file(String value) { | |
4194 assert(value != null); | |
4195 this._file = value; | |
4196 } | |
4197 | |
4198 /** | |
4199 * The offset of the region involved in the refactoring. | |
4200 */ | |
4201 int get offset => _offset; | |
4202 | |
4203 /** | |
4204 * The offset of the region involved in the refactoring. | |
4205 */ | |
4206 void set offset(int value) { | |
4207 assert(value != null); | |
4208 this._offset = value; | |
4209 } | |
4210 | |
4211 /** | |
4212 * The length of the region involved in the refactoring. | |
4213 */ | |
4214 int get length => _length; | |
4215 | |
4216 /** | |
4217 * The length of the region involved in the refactoring. | |
4218 */ | |
4219 void set length(int value) { | |
4220 assert(value != null); | |
4221 this._length = value; | |
4222 } | |
4223 | |
4224 /** | |
4225 * True if the client is only requesting that the values of the options be | |
4226 * validated and no change be generated. | |
4227 */ | |
4228 bool get validateOnly => _validateOnly; | |
4229 | |
4230 /** | |
4231 * True if the client is only requesting that the values of the options be | |
4232 * validated and no change be generated. | |
4233 */ | |
4234 void set validateOnly(bool value) { | |
4235 assert(value != null); | |
4236 this._validateOnly = value; | |
4237 } | |
4238 | |
4239 /** | |
4240 * Data used to provide values provided by the user. The structure of the | |
4241 * data is dependent on the kind of refactoring being performed. The data | |
4242 * that is expected is documented in the section titled Refactorings, labeled | |
4243 * as "Options". This field can be omitted if the refactoring does not | |
4244 * require any options or if the values of those options are not known. | |
4245 */ | |
4246 RefactoringOptions get options => _options; | |
4247 | |
4248 /** | |
4249 * Data used to provide values provided by the user. The structure of the | |
4250 * data is dependent on the kind of refactoring being performed. The data | |
4251 * that is expected is documented in the section titled Refactorings, labeled | |
4252 * as "Options". This field can be omitted if the refactoring does not | |
4253 * require any options or if the values of those options are not known. | |
4254 */ | |
4255 void set options(RefactoringOptions value) { | |
4256 this._options = value; | |
4257 } | |
4258 | |
4259 EditGetRefactoringParams(RefactoringKind kind, String file, int offset, int le
ngth, bool validateOnly, {RefactoringOptions options}) { | |
4260 this.kind = kind; | |
4261 this.file = file; | |
4262 this.offset = offset; | |
4263 this.length = length; | |
4264 this.validateOnly = validateOnly; | |
4265 this.options = options; | |
4266 } | |
4267 | |
4268 factory EditGetRefactoringParams.fromJson(JsonDecoder jsonDecoder, String json
Path, Object json) { | |
4269 if (json == null) { | |
4270 json = {}; | |
4271 } | |
4272 if (json is Map) { | |
4273 RefactoringKind kind; | |
4274 if (json.containsKey("kind")) { | |
4275 kind = new RefactoringKind.fromJson(jsonDecoder, jsonPath + ".kind", jso
n["kind"]); | |
4276 } else { | |
4277 throw jsonDecoder.mismatch(jsonPath, "kind"); | |
4278 } | |
4279 String file; | |
4280 if (json.containsKey("file")) { | |
4281 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
4282 } else { | |
4283 throw jsonDecoder.mismatch(jsonPath, "file"); | |
4284 } | |
4285 int offset; | |
4286 if (json.containsKey("offset")) { | |
4287 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
4288 } else { | |
4289 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
4290 } | |
4291 int length; | |
4292 if (json.containsKey("length")) { | |
4293 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
4294 } else { | |
4295 throw jsonDecoder.mismatch(jsonPath, "length"); | |
4296 } | |
4297 bool validateOnly; | |
4298 if (json.containsKey("validateOnly")) { | |
4299 validateOnly = jsonDecoder.decodeBool(jsonPath + ".validateOnly", json["
validateOnly"]); | |
4300 } else { | |
4301 throw jsonDecoder.mismatch(jsonPath, "validateOnly"); | |
4302 } | |
4303 RefactoringOptions options; | |
4304 if (json.containsKey("options")) { | |
4305 options = new RefactoringOptions.fromJson(jsonDecoder, jsonPath + ".opti
ons", json["options"], kind); | |
4306 } | |
4307 return new EditGetRefactoringParams(kind, file, offset, length, validateOn
ly, options: options); | |
4308 } else { | |
4309 throw jsonDecoder.mismatch(jsonPath, "edit.getRefactoring params", json); | |
4310 } | |
4311 } | |
4312 | |
4313 factory EditGetRefactoringParams.fromRequest(Request request) { | |
4314 var params = new EditGetRefactoringParams.fromJson( | |
4315 new RequestDecoder(request), "params", request.params); | |
4316 REQUEST_ID_REFACTORING_KINDS[request.id] = params.kind; | |
4317 return params; | |
4318 } | |
4319 | |
4320 @override | |
4321 Map<String, dynamic> toJson() { | |
4322 Map<String, dynamic> result = {}; | |
4323 result["kind"] = kind.toJson(); | |
4324 result["file"] = file; | |
4325 result["offset"] = offset; | |
4326 result["length"] = length; | |
4327 result["validateOnly"] = validateOnly; | |
4328 if (options != null) { | |
4329 result["options"] = options.toJson(); | |
4330 } | |
4331 return result; | |
4332 } | |
4333 | |
4334 @override | |
4335 Request toRequest(String id) { | |
4336 return new Request(id, "edit.getRefactoring", toJson()); | |
4337 } | |
4338 | |
4339 @override | |
4340 String toString() => JSON.encode(toJson()); | |
4341 | |
4342 @override | |
4343 bool operator==(other) { | |
4344 if (other is EditGetRefactoringParams) { | |
4345 return kind == other.kind && | |
4346 file == other.file && | |
4347 offset == other.offset && | |
4348 length == other.length && | |
4349 validateOnly == other.validateOnly && | |
4350 options == other.options; | |
4351 } | |
4352 return false; | |
4353 } | |
4354 | |
4355 @override | |
4356 int get hashCode { | |
4357 int hash = 0; | |
4358 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | |
4359 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
4360 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
4361 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
4362 hash = JenkinsSmiHash.combine(hash, validateOnly.hashCode); | |
4363 hash = JenkinsSmiHash.combine(hash, options.hashCode); | |
4364 return JenkinsSmiHash.finish(hash); | |
4365 } | |
4366 } | |
4367 | |
4368 /** | |
4369 * edit.getRefactoring result | |
4370 * | |
4371 * { | |
4372 * "initialProblems": List<RefactoringProblem> | |
4373 * "optionsProblems": List<RefactoringProblem> | |
4374 * "finalProblems": List<RefactoringProblem> | |
4375 * "feedback": optional RefactoringFeedback | |
4376 * "change": optional SourceChange | |
4377 * "potentialEdits": optional List<String> | |
4378 * } | |
4379 * | |
4380 * Clients may not extend, implement or mix-in this class. | |
4381 */ | |
4382 class EditGetRefactoringResult implements ResponseResult { | |
4383 List<RefactoringProblem> _initialProblems; | |
4384 | |
4385 List<RefactoringProblem> _optionsProblems; | |
4386 | |
4387 List<RefactoringProblem> _finalProblems; | |
4388 | |
4389 RefactoringFeedback _feedback; | |
4390 | |
4391 SourceChange _change; | |
4392 | |
4393 List<String> _potentialEdits; | |
4394 | |
4395 /** | |
4396 * The initial status of the refactoring, that is, problems related to the | |
4397 * context in which the refactoring is requested. The list should be empty if | |
4398 * there are no known problems. | |
4399 */ | |
4400 List<RefactoringProblem> get initialProblems => _initialProblems; | |
4401 | |
4402 /** | |
4403 * The initial status of the refactoring, that is, problems related to the | |
4404 * context in which the refactoring is requested. The list should be empty if | |
4405 * there are no known problems. | |
4406 */ | |
4407 void set initialProblems(List<RefactoringProblem> value) { | |
4408 assert(value != null); | |
4409 this._initialProblems = value; | |
4410 } | |
4411 | |
4412 /** | |
4413 * The options validation status, that is, problems in the given options, | |
4414 * such as light-weight validation of a new name, flags compatibility, etc. | |
4415 * The list should be empty if there are no known problems. | |
4416 */ | |
4417 List<RefactoringProblem> get optionsProblems => _optionsProblems; | |
4418 | |
4419 /** | |
4420 * The options validation status, that is, problems in the given options, | |
4421 * such as light-weight validation of a new name, flags compatibility, etc. | |
4422 * The list should be empty if there are no known problems. | |
4423 */ | |
4424 void set optionsProblems(List<RefactoringProblem> value) { | |
4425 assert(value != null); | |
4426 this._optionsProblems = value; | |
4427 } | |
4428 | |
4429 /** | |
4430 * The final status of the refactoring, that is, problems identified in the | |
4431 * result of a full, potentially expensive validation and / or change | |
4432 * creation. The list should be empty if there are no known problems. | |
4433 */ | |
4434 List<RefactoringProblem> get finalProblems => _finalProblems; | |
4435 | |
4436 /** | |
4437 * The final status of the refactoring, that is, problems identified in the | |
4438 * result of a full, potentially expensive validation and / or change | |
4439 * creation. The list should be empty if there are no known problems. | |
4440 */ | |
4441 void set finalProblems(List<RefactoringProblem> value) { | |
4442 assert(value != null); | |
4443 this._finalProblems = value; | |
4444 } | |
4445 | |
4446 /** | |
4447 * Data used to provide feedback to the user. The structure of the data is | |
4448 * dependent on the kind of refactoring being created. The data that is | |
4449 * returned is documented in the section titled Refactorings, labeled as | |
4450 * "Feedback". | |
4451 */ | |
4452 RefactoringFeedback get feedback => _feedback; | |
4453 | |
4454 /** | |
4455 * Data used to provide feedback to the user. The structure of the data is | |
4456 * dependent on the kind of refactoring being created. The data that is | |
4457 * returned is documented in the section titled Refactorings, labeled as | |
4458 * "Feedback". | |
4459 */ | |
4460 void set feedback(RefactoringFeedback value) { | |
4461 this._feedback = value; | |
4462 } | |
4463 | |
4464 /** | |
4465 * The changes that are to be applied to affect the refactoring. This field | |
4466 * can be omitted if there are problems that prevent a set of changes from | |
4467 * being computed, such as having no options specified for a refactoring that | |
4468 * requires them, or if only validation was requested. | |
4469 */ | |
4470 SourceChange get change => _change; | |
4471 | |
4472 /** | |
4473 * The changes that are to be applied to affect the refactoring. This field | |
4474 * can be omitted if there are problems that prevent a set of changes from | |
4475 * being computed, such as having no options specified for a refactoring that | |
4476 * requires them, or if only validation was requested. | |
4477 */ | |
4478 void set change(SourceChange value) { | |
4479 this._change = value; | |
4480 } | |
4481 | |
4482 /** | |
4483 * The ids of source edits that are not known to be valid. An edit is not | |
4484 * known to be valid if there was insufficient type information for the | |
4485 * plugin to be able to determine whether or not the code needs to be | |
4486 * modified, such as when a member is being renamed and there is a reference | |
4487 * to a member from an unknown type. This field can be omitted if the change | |
4488 * field is omitted or if there are no potential edits for the refactoring. | |
4489 */ | |
4490 List<String> get potentialEdits => _potentialEdits; | |
4491 | |
4492 /** | |
4493 * The ids of source edits that are not known to be valid. An edit is not | |
4494 * known to be valid if there was insufficient type information for the | |
4495 * plugin to be able to determine whether or not the code needs to be | |
4496 * modified, such as when a member is being renamed and there is a reference | |
4497 * to a member from an unknown type. This field can be omitted if the change | |
4498 * field is omitted or if there are no potential edits for the refactoring. | |
4499 */ | |
4500 void set potentialEdits(List<String> value) { | |
4501 this._potentialEdits = value; | |
4502 } | |
4503 | |
4504 EditGetRefactoringResult(List<RefactoringProblem> initialProblems, List<Refact
oringProblem> optionsProblems, List<RefactoringProblem> finalProblems, {Refactor
ingFeedback feedback, SourceChange change, List<String> potentialEdits}) { | |
4505 this.initialProblems = initialProblems; | |
4506 this.optionsProblems = optionsProblems; | |
4507 this.finalProblems = finalProblems; | |
4508 this.feedback = feedback; | |
4509 this.change = change; | |
4510 this.potentialEdits = potentialEdits; | |
4511 } | |
4512 | |
4513 factory EditGetRefactoringResult.fromJson(JsonDecoder jsonDecoder, String json
Path, Object json) { | |
4514 if (json == null) { | |
4515 json = {}; | |
4516 } | |
4517 if (json is Map) { | |
4518 List<RefactoringProblem> initialProblems; | |
4519 if (json.containsKey("initialProblems")) { | |
4520 initialProblems = jsonDecoder.decodeList(jsonPath + ".initialProblems",
json["initialProblems"], (String jsonPath, Object json) => new RefactoringProble
m.fromJson(jsonDecoder, jsonPath, json)); | |
4521 } else { | |
4522 throw jsonDecoder.mismatch(jsonPath, "initialProblems"); | |
4523 } | |
4524 List<RefactoringProblem> optionsProblems; | |
4525 if (json.containsKey("optionsProblems")) { | |
4526 optionsProblems = jsonDecoder.decodeList(jsonPath + ".optionsProblems",
json["optionsProblems"], (String jsonPath, Object json) => new RefactoringProble
m.fromJson(jsonDecoder, jsonPath, json)); | |
4527 } else { | |
4528 throw jsonDecoder.mismatch(jsonPath, "optionsProblems"); | |
4529 } | |
4530 List<RefactoringProblem> finalProblems; | |
4531 if (json.containsKey("finalProblems")) { | |
4532 finalProblems = jsonDecoder.decodeList(jsonPath + ".finalProblems", json
["finalProblems"], (String jsonPath, Object json) => new RefactoringProblem.from
Json(jsonDecoder, jsonPath, json)); | |
4533 } else { | |
4534 throw jsonDecoder.mismatch(jsonPath, "finalProblems"); | |
4535 } | |
4536 RefactoringFeedback feedback; | |
4537 if (json.containsKey("feedback")) { | |
4538 feedback = new RefactoringFeedback.fromJson(jsonDecoder, jsonPath + ".fe
edback", json["feedback"], json); | |
4539 } | |
4540 SourceChange change; | |
4541 if (json.containsKey("change")) { | |
4542 change = new SourceChange.fromJson(jsonDecoder, jsonPath + ".change", js
on["change"]); | |
4543 } | |
4544 List<String> potentialEdits; | |
4545 if (json.containsKey("potentialEdits")) { | |
4546 potentialEdits = jsonDecoder.decodeList(jsonPath + ".potentialEdits", js
on["potentialEdits"], jsonDecoder.decodeString); | |
4547 } | |
4548 return new EditGetRefactoringResult(initialProblems, optionsProblems, fina
lProblems, feedback: feedback, change: change, potentialEdits: potentialEdits); | |
4549 } else { | |
4550 throw jsonDecoder.mismatch(jsonPath, "edit.getRefactoring result", json); | |
4551 } | |
4552 } | |
4553 | |
4554 factory EditGetRefactoringResult.fromResponse(Response response) { | |
4555 return new EditGetRefactoringResult.fromJson( | |
4556 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "
result", response.result); | |
4557 } | |
4558 | |
4559 @override | |
4560 Map<String, dynamic> toJson() { | |
4561 Map<String, dynamic> result = {}; | |
4562 result["initialProblems"] = initialProblems.map((RefactoringProblem value) =
> value.toJson()).toList(); | |
4563 result["optionsProblems"] = optionsProblems.map((RefactoringProblem value) =
> value.toJson()).toList(); | |
4564 result["finalProblems"] = finalProblems.map((RefactoringProblem value) => va
lue.toJson()).toList(); | |
4565 if (feedback != null) { | |
4566 result["feedback"] = feedback.toJson(); | |
4567 } | |
4568 if (change != null) { | |
4569 result["change"] = change.toJson(); | |
4570 } | |
4571 if (potentialEdits != null) { | |
4572 result["potentialEdits"] = potentialEdits; | |
4573 } | |
4574 return result; | |
4575 } | |
4576 | |
4577 @override | |
4578 Response toResponse(String id) { | |
4579 return new Response(id, result: toJson()); | |
4580 } | |
4581 | |
4582 @override | |
4583 String toString() => JSON.encode(toJson()); | |
4584 | |
4585 @override | |
4586 bool operator==(other) { | |
4587 if (other is EditGetRefactoringResult) { | |
4588 return listEqual(initialProblems, other.initialProblems, (RefactoringProbl
em a, RefactoringProblem b) => a == b) && | |
4589 listEqual(optionsProblems, other.optionsProblems, (RefactoringProblem
a, RefactoringProblem b) => a == b) && | |
4590 listEqual(finalProblems, other.finalProblems, (RefactoringProblem a, R
efactoringProblem b) => a == b) && | |
4591 feedback == other.feedback && | |
4592 change == other.change && | |
4593 listEqual(potentialEdits, other.potentialEdits, (String a, String b) =
> a == b); | |
4594 } | |
4595 return false; | |
4596 } | |
4597 | |
4598 @override | |
4599 int get hashCode { | |
4600 int hash = 0; | |
4601 hash = JenkinsSmiHash.combine(hash, initialProblems.hashCode); | |
4602 hash = JenkinsSmiHash.combine(hash, optionsProblems.hashCode); | |
4603 hash = JenkinsSmiHash.combine(hash, finalProblems.hashCode); | |
4604 hash = JenkinsSmiHash.combine(hash, feedback.hashCode); | |
4605 hash = JenkinsSmiHash.combine(hash, change.hashCode); | |
4606 hash = JenkinsSmiHash.combine(hash, potentialEdits.hashCode); | |
4607 return JenkinsSmiHash.finish(hash); | |
4608 } | |
4609 } | |
4610 | |
4611 /** | |
4612 * Element | |
4613 * | |
4614 * { | |
4615 * "kind": ElementKind | |
4616 * "name": String | |
4617 * "location": optional Location | |
4618 * "flags": int | |
4619 * "parameters": optional String | |
4620 * "returnType": optional String | |
4621 * "typeParameters": optional String | |
4622 * } | |
4623 * | |
4624 * Clients may not extend, implement or mix-in this class. | |
4625 */ | |
4626 class Element implements HasToJson { | |
4627 static const int FLAG_ABSTRACT = 0x01; | |
4628 static const int FLAG_CONST = 0x02; | |
4629 static const int FLAG_FINAL = 0x04; | |
4630 static const int FLAG_STATIC = 0x08; | |
4631 static const int FLAG_PRIVATE = 0x10; | |
4632 static const int FLAG_DEPRECATED = 0x20; | |
4633 | |
4634 static int makeFlags({isAbstract: false, isConst: false, isFinal: false, isSta
tic: false, isPrivate: false, isDeprecated: false}) { | |
4635 int flags = 0; | |
4636 if (isAbstract) flags |= FLAG_ABSTRACT; | |
4637 if (isConst) flags |= FLAG_CONST; | |
4638 if (isFinal) flags |= FLAG_FINAL; | |
4639 if (isStatic) flags |= FLAG_STATIC; | |
4640 if (isPrivate) flags |= FLAG_PRIVATE; | |
4641 if (isDeprecated) flags |= FLAG_DEPRECATED; | |
4642 return flags; | |
4643 } | |
4644 | |
4645 ElementKind _kind; | |
4646 | |
4647 String _name; | |
4648 | |
4649 Location _location; | |
4650 | |
4651 int _flags; | |
4652 | |
4653 String _parameters; | |
4654 | |
4655 String _returnType; | |
4656 | |
4657 String _typeParameters; | |
4658 | |
4659 /** | |
4660 * The kind of the element. | |
4661 */ | |
4662 ElementKind get kind => _kind; | |
4663 | |
4664 /** | |
4665 * The kind of the element. | |
4666 */ | |
4667 void set kind(ElementKind value) { | |
4668 assert(value != null); | |
4669 this._kind = value; | |
4670 } | |
4671 | |
4672 /** | |
4673 * The name of the element. This is typically used as the label in the | |
4674 * outline. | |
4675 */ | |
4676 String get name => _name; | |
4677 | |
4678 /** | |
4679 * The name of the element. This is typically used as the label in the | |
4680 * outline. | |
4681 */ | |
4682 void set name(String value) { | |
4683 assert(value != null); | |
4684 this._name = value; | |
4685 } | |
4686 | |
4687 /** | |
4688 * The location of the name in the declaration of the element. | |
4689 */ | |
4690 Location get location => _location; | |
4691 | |
4692 /** | |
4693 * The location of the name in the declaration of the element. | |
4694 */ | |
4695 void set location(Location value) { | |
4696 this._location = value; | |
4697 } | |
4698 | |
4699 /** | |
4700 * A bit-map containing the following flags: | |
4701 * | |
4702 * - 0x01 - set if the element is explicitly or implicitly abstract | |
4703 * - 0x02 - set if the element was declared to be ‘const’ | |
4704 * - 0x04 - set if the element was declared to be ‘final’ | |
4705 * - 0x08 - set if the element is a static member of a class or is a | |
4706 * top-level function or field | |
4707 * - 0x10 - set if the element is private | |
4708 * - 0x20 - set if the element is deprecated | |
4709 */ | |
4710 int get flags => _flags; | |
4711 | |
4712 /** | |
4713 * A bit-map containing the following flags: | |
4714 * | |
4715 * - 0x01 - set if the element is explicitly or implicitly abstract | |
4716 * - 0x02 - set if the element was declared to be ‘const’ | |
4717 * - 0x04 - set if the element was declared to be ‘final’ | |
4718 * - 0x08 - set if the element is a static member of a class or is a | |
4719 * top-level function or field | |
4720 * - 0x10 - set if the element is private | |
4721 * - 0x20 - set if the element is deprecated | |
4722 */ | |
4723 void set flags(int value) { | |
4724 assert(value != null); | |
4725 this._flags = value; | |
4726 } | |
4727 | |
4728 /** | |
4729 * The parameter list for the element. If the element is not a method or | |
4730 * function this field will not be defined. If the element doesn't have | |
4731 * parameters (e.g. getter), this field will not be defined. If the element | |
4732 * has zero parameters, this field will have a value of "()". | |
4733 */ | |
4734 String get parameters => _parameters; | |
4735 | |
4736 /** | |
4737 * The parameter list for the element. If the element is not a method or | |
4738 * function this field will not be defined. If the element doesn't have | |
4739 * parameters (e.g. getter), this field will not be defined. If the element | |
4740 * has zero parameters, this field will have a value of "()". | |
4741 */ | |
4742 void set parameters(String value) { | |
4743 this._parameters = value; | |
4744 } | |
4745 | |
4746 /** | |
4747 * The return type of the element. If the element is not a method or function | |
4748 * this field will not be defined. If the element does not have a declared | |
4749 * return type, this field will contain an empty string. | |
4750 */ | |
4751 String get returnType => _returnType; | |
4752 | |
4753 /** | |
4754 * The return type of the element. If the element is not a method or function | |
4755 * this field will not be defined. If the element does not have a declared | |
4756 * return type, this field will contain an empty string. | |
4757 */ | |
4758 void set returnType(String value) { | |
4759 this._returnType = value; | |
4760 } | |
4761 | |
4762 /** | |
4763 * The type parameter list for the element. If the element doesn't have type | |
4764 * parameters, this field will not be defined. | |
4765 */ | |
4766 String get typeParameters => _typeParameters; | |
4767 | |
4768 /** | |
4769 * The type parameter list for the element. If the element doesn't have type | |
4770 * parameters, this field will not be defined. | |
4771 */ | |
4772 void set typeParameters(String value) { | |
4773 this._typeParameters = value; | |
4774 } | |
4775 | |
4776 Element(ElementKind kind, String name, int flags, {Location location, String p
arameters, String returnType, String typeParameters}) { | |
4777 this.kind = kind; | |
4778 this.name = name; | |
4779 this.location = location; | |
4780 this.flags = flags; | |
4781 this.parameters = parameters; | |
4782 this.returnType = returnType; | |
4783 this.typeParameters = typeParameters; | |
4784 } | |
4785 | |
4786 factory Element.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json
) { | |
4787 if (json == null) { | |
4788 json = {}; | |
4789 } | |
4790 if (json is Map) { | |
4791 ElementKind kind; | |
4792 if (json.containsKey("kind")) { | |
4793 kind = new ElementKind.fromJson(jsonDecoder, jsonPath + ".kind", json["k
ind"]); | |
4794 } else { | |
4795 throw jsonDecoder.mismatch(jsonPath, "kind"); | |
4796 } | |
4797 String name; | |
4798 if (json.containsKey("name")) { | |
4799 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | |
4800 } else { | |
4801 throw jsonDecoder.mismatch(jsonPath, "name"); | |
4802 } | |
4803 Location location; | |
4804 if (json.containsKey("location")) { | |
4805 location = new Location.fromJson(jsonDecoder, jsonPath + ".location", js
on["location"]); | |
4806 } | |
4807 int flags; | |
4808 if (json.containsKey("flags")) { | |
4809 flags = jsonDecoder.decodeInt(jsonPath + ".flags", json["flags"]); | |
4810 } else { | |
4811 throw jsonDecoder.mismatch(jsonPath, "flags"); | |
4812 } | |
4813 String parameters; | |
4814 if (json.containsKey("parameters")) { | |
4815 parameters = jsonDecoder.decodeString(jsonPath + ".parameters", json["pa
rameters"]); | |
4816 } | |
4817 String returnType; | |
4818 if (json.containsKey("returnType")) { | |
4819 returnType = jsonDecoder.decodeString(jsonPath + ".returnType", json["re
turnType"]); | |
4820 } | |
4821 String typeParameters; | |
4822 if (json.containsKey("typeParameters")) { | |
4823 typeParameters = jsonDecoder.decodeString(jsonPath + ".typeParameters",
json["typeParameters"]); | |
4824 } | |
4825 return new Element(kind, name, flags, location: location, parameters: para
meters, returnType: returnType, typeParameters: typeParameters); | |
4826 } else { | |
4827 throw jsonDecoder.mismatch(jsonPath, "Element", json); | |
4828 } | |
4829 } | |
4830 | |
4831 bool get isAbstract => (flags & FLAG_ABSTRACT) != 0; | |
4832 bool get isConst => (flags & FLAG_CONST) != 0; | |
4833 bool get isFinal => (flags & FLAG_FINAL) != 0; | |
4834 bool get isStatic => (flags & FLAG_STATIC) != 0; | |
4835 bool get isPrivate => (flags & FLAG_PRIVATE) != 0; | |
4836 bool get isDeprecated => (flags & FLAG_DEPRECATED) != 0; | |
4837 | |
4838 @override | |
4839 Map<String, dynamic> toJson() { | |
4840 Map<String, dynamic> result = {}; | |
4841 result["kind"] = kind.toJson(); | |
4842 result["name"] = name; | |
4843 if (location != null) { | |
4844 result["location"] = location.toJson(); | |
4845 } | |
4846 result["flags"] = flags; | |
4847 if (parameters != null) { | |
4848 result["parameters"] = parameters; | |
4849 } | |
4850 if (returnType != null) { | |
4851 result["returnType"] = returnType; | |
4852 } | |
4853 if (typeParameters != null) { | |
4854 result["typeParameters"] = typeParameters; | |
4855 } | |
4856 return result; | |
4857 } | |
4858 | |
4859 @override | |
4860 String toString() => JSON.encode(toJson()); | |
4861 | |
4862 @override | |
4863 bool operator==(other) { | |
4864 if (other is Element) { | |
4865 return kind == other.kind && | |
4866 name == other.name && | |
4867 location == other.location && | |
4868 flags == other.flags && | |
4869 parameters == other.parameters && | |
4870 returnType == other.returnType && | |
4871 typeParameters == other.typeParameters; | |
4872 } | |
4873 return false; | |
4874 } | |
4875 | |
4876 @override | |
4877 int get hashCode { | |
4878 int hash = 0; | |
4879 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | |
4880 hash = JenkinsSmiHash.combine(hash, name.hashCode); | |
4881 hash = JenkinsSmiHash.combine(hash, location.hashCode); | |
4882 hash = JenkinsSmiHash.combine(hash, flags.hashCode); | |
4883 hash = JenkinsSmiHash.combine(hash, parameters.hashCode); | |
4884 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); | |
4885 hash = JenkinsSmiHash.combine(hash, typeParameters.hashCode); | |
4886 return JenkinsSmiHash.finish(hash); | |
4887 } | |
4888 } | |
4889 | |
4890 /** | |
4891 * ElementKind | |
4892 * | |
4893 * enum { | |
4894 * CLASS | |
4895 * CLASS_TYPE_ALIAS | |
4896 * COMPILATION_UNIT | |
4897 * CONSTRUCTOR | |
4898 * ENUM | |
4899 * ENUM_CONSTANT | |
4900 * FIELD | |
4901 * FILE | |
4902 * FUNCTION | |
4903 * FUNCTION_TYPE_ALIAS | |
4904 * GETTER | |
4905 * LABEL | |
4906 * LIBRARY | |
4907 * LOCAL_VARIABLE | |
4908 * METHOD | |
4909 * PARAMETER | |
4910 * PREFIX | |
4911 * SETTER | |
4912 * TOP_LEVEL_VARIABLE | |
4913 * TYPE_PARAMETER | |
4914 * UNKNOWN | |
4915 * } | |
4916 * | |
4917 * Clients may not extend, implement or mix-in this class. | |
4918 */ | |
4919 class ElementKind implements Enum { | |
4920 static const ElementKind CLASS = const ElementKind._("CLASS"); | |
4921 | |
4922 static const ElementKind CLASS_TYPE_ALIAS = const ElementKind._("CLASS_TYPE_AL
IAS"); | |
4923 | |
4924 static const ElementKind COMPILATION_UNIT = const ElementKind._("COMPILATION_U
NIT"); | |
4925 | |
4926 static const ElementKind CONSTRUCTOR = const ElementKind._("CONSTRUCTOR"); | |
4927 | |
4928 static const ElementKind ENUM = const ElementKind._("ENUM"); | |
4929 | |
4930 static const ElementKind ENUM_CONSTANT = const ElementKind._("ENUM_CONSTANT"); | |
4931 | |
4932 static const ElementKind FIELD = const ElementKind._("FIELD"); | |
4933 | |
4934 static const ElementKind FILE = const ElementKind._("FILE"); | |
4935 | |
4936 static const ElementKind FUNCTION = const ElementKind._("FUNCTION"); | |
4937 | |
4938 static const ElementKind FUNCTION_TYPE_ALIAS = const ElementKind._("FUNCTION_T
YPE_ALIAS"); | |
4939 | |
4940 static const ElementKind GETTER = const ElementKind._("GETTER"); | |
4941 | |
4942 static const ElementKind LABEL = const ElementKind._("LABEL"); | |
4943 | |
4944 static const ElementKind LIBRARY = const ElementKind._("LIBRARY"); | |
4945 | |
4946 static const ElementKind LOCAL_VARIABLE = const ElementKind._("LOCAL_VARIABLE"
); | |
4947 | |
4948 static const ElementKind METHOD = const ElementKind._("METHOD"); | |
4949 | |
4950 static const ElementKind PARAMETER = const ElementKind._("PARAMETER"); | |
4951 | |
4952 static const ElementKind PREFIX = const ElementKind._("PREFIX"); | |
4953 | |
4954 static const ElementKind SETTER = const ElementKind._("SETTER"); | |
4955 | |
4956 static const ElementKind TOP_LEVEL_VARIABLE = const ElementKind._("TOP_LEVEL_V
ARIABLE"); | |
4957 | |
4958 static const ElementKind TYPE_PARAMETER = const ElementKind._("TYPE_PARAMETER"
); | |
4959 | |
4960 static const ElementKind UNKNOWN = const ElementKind._("UNKNOWN"); | |
4961 | |
4962 /** | |
4963 * A list containing all of the enum values that are defined. | |
4964 */ | |
4965 static const List<ElementKind> VALUES = const <ElementKind>[CLASS, CLASS_TYPE_
ALIAS, COMPILATION_UNIT, CONSTRUCTOR, ENUM, ENUM_CONSTANT, FIELD, FILE, FUNCTION
, FUNCTION_TYPE_ALIAS, GETTER, LABEL, LIBRARY, LOCAL_VARIABLE, METHOD, PARAMETER
, PREFIX, SETTER, TOP_LEVEL_VARIABLE, TYPE_PARAMETER, UNKNOWN]; | |
4966 | |
4967 @override | |
4968 final String name; | |
4969 | |
4970 const ElementKind._(this.name); | |
4971 | |
4972 factory ElementKind(String name) { | |
4973 switch (name) { | |
4974 case "CLASS": | |
4975 return CLASS; | |
4976 case "CLASS_TYPE_ALIAS": | |
4977 return CLASS_TYPE_ALIAS; | |
4978 case "COMPILATION_UNIT": | |
4979 return COMPILATION_UNIT; | |
4980 case "CONSTRUCTOR": | |
4981 return CONSTRUCTOR; | |
4982 case "ENUM": | |
4983 return ENUM; | |
4984 case "ENUM_CONSTANT": | |
4985 return ENUM_CONSTANT; | |
4986 case "FIELD": | |
4987 return FIELD; | |
4988 case "FILE": | |
4989 return FILE; | |
4990 case "FUNCTION": | |
4991 return FUNCTION; | |
4992 case "FUNCTION_TYPE_ALIAS": | |
4993 return FUNCTION_TYPE_ALIAS; | |
4994 case "GETTER": | |
4995 return GETTER; | |
4996 case "LABEL": | |
4997 return LABEL; | |
4998 case "LIBRARY": | |
4999 return LIBRARY; | |
5000 case "LOCAL_VARIABLE": | |
5001 return LOCAL_VARIABLE; | |
5002 case "METHOD": | |
5003 return METHOD; | |
5004 case "PARAMETER": | |
5005 return PARAMETER; | |
5006 case "PREFIX": | |
5007 return PREFIX; | |
5008 case "SETTER": | |
5009 return SETTER; | |
5010 case "TOP_LEVEL_VARIABLE": | |
5011 return TOP_LEVEL_VARIABLE; | |
5012 case "TYPE_PARAMETER": | |
5013 return TYPE_PARAMETER; | |
5014 case "UNKNOWN": | |
5015 return UNKNOWN; | |
5016 } | |
5017 throw new Exception('Illegal enum value: $name'); | |
5018 } | |
5019 | |
5020 factory ElementKind.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object
json) { | |
5021 if (json is String) { | |
5022 try { | |
5023 return new ElementKind(json); | |
5024 } catch(_) { | |
5025 // Fall through | |
5026 } | |
5027 } | |
5028 throw jsonDecoder.mismatch(jsonPath, "ElementKind", json); | |
5029 } | |
5030 | |
5031 @override | |
5032 String toString() => "ElementKind.$name"; | |
5033 | |
5034 String toJson() => name; | |
5035 } | |
5036 | |
5037 /** | |
5038 * extractLocalVariable feedback | |
5039 * | |
5040 * { | |
5041 * "coveringExpressionOffsets": optional List<int> | |
5042 * "coveringExpressionLengths": optional List<int> | |
5043 * "names": List<String> | |
5044 * "offsets": List<int> | |
5045 * "lengths": List<int> | |
5046 * } | |
5047 * | |
5048 * Clients may not extend, implement or mix-in this class. | |
5049 */ | |
5050 class ExtractLocalVariableFeedback extends RefactoringFeedback { | |
5051 List<int> _coveringExpressionOffsets; | |
5052 | |
5053 List<int> _coveringExpressionLengths; | |
5054 | |
5055 List<String> _names; | |
5056 | |
5057 List<int> _offsets; | |
5058 | |
5059 List<int> _lengths; | |
5060 | |
5061 /** | |
5062 * The offsets of the expressions that cover the specified selection, from | |
5063 * the down most to the up most. | |
5064 */ | |
5065 List<int> get coveringExpressionOffsets => _coveringExpressionOffsets; | |
5066 | |
5067 /** | |
5068 * The offsets of the expressions that cover the specified selection, from | |
5069 * the down most to the up most. | |
5070 */ | |
5071 void set coveringExpressionOffsets(List<int> value) { | |
5072 this._coveringExpressionOffsets = value; | |
5073 } | |
5074 | |
5075 /** | |
5076 * The lengths of the expressions that cover the specified selection, from | |
5077 * the down most to the up most. | |
5078 */ | |
5079 List<int> get coveringExpressionLengths => _coveringExpressionLengths; | |
5080 | |
5081 /** | |
5082 * The lengths of the expressions that cover the specified selection, from | |
5083 * the down most to the up most. | |
5084 */ | |
5085 void set coveringExpressionLengths(List<int> value) { | |
5086 this._coveringExpressionLengths = value; | |
5087 } | |
5088 | |
5089 /** | |
5090 * The proposed names for the local variable. | |
5091 */ | |
5092 List<String> get names => _names; | |
5093 | |
5094 /** | |
5095 * The proposed names for the local variable. | |
5096 */ | |
5097 void set names(List<String> value) { | |
5098 assert(value != null); | |
5099 this._names = value; | |
5100 } | |
5101 | |
5102 /** | |
5103 * The offsets of the expressions that would be replaced by a reference to | |
5104 * the variable. | |
5105 */ | |
5106 List<int> get offsets => _offsets; | |
5107 | |
5108 /** | |
5109 * The offsets of the expressions that would be replaced by a reference to | |
5110 * the variable. | |
5111 */ | |
5112 void set offsets(List<int> value) { | |
5113 assert(value != null); | |
5114 this._offsets = value; | |
5115 } | |
5116 | |
5117 /** | |
5118 * The lengths of the expressions that would be replaced by a reference to | |
5119 * the variable. The lengths correspond to the offsets. In other words, for a | |
5120 * given expression, if the offset of that expression is offsets[i], then the | |
5121 * length of that expression is lengths[i]. | |
5122 */ | |
5123 List<int> get lengths => _lengths; | |
5124 | |
5125 /** | |
5126 * The lengths of the expressions that would be replaced by a reference to | |
5127 * the variable. The lengths correspond to the offsets. In other words, for a | |
5128 * given expression, if the offset of that expression is offsets[i], then the | |
5129 * length of that expression is lengths[i]. | |
5130 */ | |
5131 void set lengths(List<int> value) { | |
5132 assert(value != null); | |
5133 this._lengths = value; | |
5134 } | |
5135 | |
5136 ExtractLocalVariableFeedback(List<String> names, List<int> offsets, List<int>
lengths, {List<int> coveringExpressionOffsets, List<int> coveringExpressionLengt
hs}) { | |
5137 this.coveringExpressionOffsets = coveringExpressionOffsets; | |
5138 this.coveringExpressionLengths = coveringExpressionLengths; | |
5139 this.names = names; | |
5140 this.offsets = offsets; | |
5141 this.lengths = lengths; | |
5142 } | |
5143 | |
5144 factory ExtractLocalVariableFeedback.fromJson(JsonDecoder jsonDecoder, String
jsonPath, Object json) { | |
5145 if (json == null) { | |
5146 json = {}; | |
5147 } | |
5148 if (json is Map) { | |
5149 List<int> coveringExpressionOffsets; | |
5150 if (json.containsKey("coveringExpressionOffsets")) { | |
5151 coveringExpressionOffsets = jsonDecoder.decodeList(jsonPath + ".covering
ExpressionOffsets", json["coveringExpressionOffsets"], jsonDecoder.decodeInt); | |
5152 } | |
5153 List<int> coveringExpressionLengths; | |
5154 if (json.containsKey("coveringExpressionLengths")) { | |
5155 coveringExpressionLengths = jsonDecoder.decodeList(jsonPath + ".covering
ExpressionLengths", json["coveringExpressionLengths"], jsonDecoder.decodeInt); | |
5156 } | |
5157 List<String> names; | |
5158 if (json.containsKey("names")) { | |
5159 names = jsonDecoder.decodeList(jsonPath + ".names", json["names"], jsonD
ecoder.decodeString); | |
5160 } else { | |
5161 throw jsonDecoder.mismatch(jsonPath, "names"); | |
5162 } | |
5163 List<int> offsets; | |
5164 if (json.containsKey("offsets")) { | |
5165 offsets = jsonDecoder.decodeList(jsonPath + ".offsets", json["offsets"],
jsonDecoder.decodeInt); | |
5166 } else { | |
5167 throw jsonDecoder.mismatch(jsonPath, "offsets"); | |
5168 } | |
5169 List<int> lengths; | |
5170 if (json.containsKey("lengths")) { | |
5171 lengths = jsonDecoder.decodeList(jsonPath + ".lengths", json["lengths"],
jsonDecoder.decodeInt); | |
5172 } else { | |
5173 throw jsonDecoder.mismatch(jsonPath, "lengths"); | |
5174 } | |
5175 return new ExtractLocalVariableFeedback(names, offsets, lengths, coveringE
xpressionOffsets: coveringExpressionOffsets, coveringExpressionLengths: covering
ExpressionLengths); | |
5176 } else { | |
5177 throw jsonDecoder.mismatch(jsonPath, "extractLocalVariable feedback", json
); | |
5178 } | |
5179 } | |
5180 | |
5181 @override | |
5182 Map<String, dynamic> toJson() { | |
5183 Map<String, dynamic> result = {}; | |
5184 if (coveringExpressionOffsets != null) { | |
5185 result["coveringExpressionOffsets"] = coveringExpressionOffsets; | |
5186 } | |
5187 if (coveringExpressionLengths != null) { | |
5188 result["coveringExpressionLengths"] = coveringExpressionLengths; | |
5189 } | |
5190 result["names"] = names; | |
5191 result["offsets"] = offsets; | |
5192 result["lengths"] = lengths; | |
5193 return result; | |
5194 } | |
5195 | |
5196 @override | |
5197 String toString() => JSON.encode(toJson()); | |
5198 | |
5199 @override | |
5200 bool operator==(other) { | |
5201 if (other is ExtractLocalVariableFeedback) { | |
5202 return listEqual(coveringExpressionOffsets, other.coveringExpressionOffset
s, (int a, int b) => a == b) && | |
5203 listEqual(coveringExpressionLengths, other.coveringExpressionLengths,
(int a, int b) => a == b) && | |
5204 listEqual(names, other.names, (String a, String b) => a == b) && | |
5205 listEqual(offsets, other.offsets, (int a, int b) => a == b) && | |
5206 listEqual(lengths, other.lengths, (int a, int b) => a == b); | |
5207 } | |
5208 return false; | |
5209 } | |
5210 | |
5211 @override | |
5212 int get hashCode { | |
5213 int hash = 0; | |
5214 hash = JenkinsSmiHash.combine(hash, coveringExpressionOffsets.hashCode); | |
5215 hash = JenkinsSmiHash.combine(hash, coveringExpressionLengths.hashCode); | |
5216 hash = JenkinsSmiHash.combine(hash, names.hashCode); | |
5217 hash = JenkinsSmiHash.combine(hash, offsets.hashCode); | |
5218 hash = JenkinsSmiHash.combine(hash, lengths.hashCode); | |
5219 return JenkinsSmiHash.finish(hash); | |
5220 } | |
5221 } | |
5222 | |
5223 /** | |
5224 * extractLocalVariable options | |
5225 * | |
5226 * { | |
5227 * "name": String | |
5228 * "extractAll": bool | |
5229 * } | |
5230 * | |
5231 * Clients may not extend, implement or mix-in this class. | |
5232 */ | |
5233 class ExtractLocalVariableOptions extends RefactoringOptions { | |
5234 String _name; | |
5235 | |
5236 bool _extractAll; | |
5237 | |
5238 /** | |
5239 * The name that the local variable should be given. | |
5240 */ | |
5241 String get name => _name; | |
5242 | |
5243 /** | |
5244 * The name that the local variable should be given. | |
5245 */ | |
5246 void set name(String value) { | |
5247 assert(value != null); | |
5248 this._name = value; | |
5249 } | |
5250 | |
5251 /** | |
5252 * True if all occurrences of the expression within the scope in which the | |
5253 * variable will be defined should be replaced by a reference to the local | |
5254 * variable. The expression used to initiate the refactoring will always be | |
5255 * replaced. | |
5256 */ | |
5257 bool get extractAll => _extractAll; | |
5258 | |
5259 /** | |
5260 * True if all occurrences of the expression within the scope in which the | |
5261 * variable will be defined should be replaced by a reference to the local | |
5262 * variable. The expression used to initiate the refactoring will always be | |
5263 * replaced. | |
5264 */ | |
5265 void set extractAll(bool value) { | |
5266 assert(value != null); | |
5267 this._extractAll = value; | |
5268 } | |
5269 | |
5270 ExtractLocalVariableOptions(String name, bool extractAll) { | |
5271 this.name = name; | |
5272 this.extractAll = extractAll; | |
5273 } | |
5274 | |
5275 factory ExtractLocalVariableOptions.fromJson(JsonDecoder jsonDecoder, String j
sonPath, Object json) { | |
5276 if (json == null) { | |
5277 json = {}; | |
5278 } | |
5279 if (json is Map) { | |
5280 String name; | |
5281 if (json.containsKey("name")) { | |
5282 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | |
5283 } else { | |
5284 throw jsonDecoder.mismatch(jsonPath, "name"); | |
5285 } | |
5286 bool extractAll; | |
5287 if (json.containsKey("extractAll")) { | |
5288 extractAll = jsonDecoder.decodeBool(jsonPath + ".extractAll", json["extr
actAll"]); | |
5289 } else { | |
5290 throw jsonDecoder.mismatch(jsonPath, "extractAll"); | |
5291 } | |
5292 return new ExtractLocalVariableOptions(name, extractAll); | |
5293 } else { | |
5294 throw jsonDecoder.mismatch(jsonPath, "extractLocalVariable options", json)
; | |
5295 } | |
5296 } | |
5297 | |
5298 factory ExtractLocalVariableOptions.fromRefactoringParams(EditGetRefactoringPa
rams refactoringParams, Request request) { | |
5299 return new ExtractLocalVariableOptions.fromJson( | |
5300 new RequestDecoder(request), "options", refactoringParams.options); | |
5301 } | |
5302 | |
5303 @override | |
5304 Map<String, dynamic> toJson() { | |
5305 Map<String, dynamic> result = {}; | |
5306 result["name"] = name; | |
5307 result["extractAll"] = extractAll; | |
5308 return result; | |
5309 } | |
5310 | |
5311 @override | |
5312 String toString() => JSON.encode(toJson()); | |
5313 | |
5314 @override | |
5315 bool operator==(other) { | |
5316 if (other is ExtractLocalVariableOptions) { | |
5317 return name == other.name && | |
5318 extractAll == other.extractAll; | |
5319 } | |
5320 return false; | |
5321 } | |
5322 | |
5323 @override | |
5324 int get hashCode { | |
5325 int hash = 0; | |
5326 hash = JenkinsSmiHash.combine(hash, name.hashCode); | |
5327 hash = JenkinsSmiHash.combine(hash, extractAll.hashCode); | |
5328 return JenkinsSmiHash.finish(hash); | |
5329 } | |
5330 } | |
5331 | |
5332 /** | |
5333 * extractMethod feedback | |
5334 * | |
5335 * { | |
5336 * "offset": int | |
5337 * "length": int | |
5338 * "returnType": String | |
5339 * "names": List<String> | |
5340 * "canCreateGetter": bool | |
5341 * "parameters": List<RefactoringMethodParameter> | |
5342 * "offsets": List<int> | |
5343 * "lengths": List<int> | |
5344 * } | |
5345 * | |
5346 * Clients may not extend, implement or mix-in this class. | |
5347 */ | |
5348 class ExtractMethodFeedback extends RefactoringFeedback { | |
5349 int _offset; | |
5350 | |
5351 int _length; | |
5352 | |
5353 String _returnType; | |
5354 | |
5355 List<String> _names; | |
5356 | |
5357 bool _canCreateGetter; | |
5358 | |
5359 List<RefactoringMethodParameter> _parameters; | |
5360 | |
5361 List<int> _offsets; | |
5362 | |
5363 List<int> _lengths; | |
5364 | |
5365 /** | |
5366 * The offset to the beginning of the expression or statements that will be | |
5367 * extracted. | |
5368 */ | |
5369 int get offset => _offset; | |
5370 | |
5371 /** | |
5372 * The offset to the beginning of the expression or statements that will be | |
5373 * extracted. | |
5374 */ | |
5375 void set offset(int value) { | |
5376 assert(value != null); | |
5377 this._offset = value; | |
5378 } | |
5379 | |
5380 /** | |
5381 * The length of the expression or statements that will be extracted. | |
5382 */ | |
5383 int get length => _length; | |
5384 | |
5385 /** | |
5386 * The length of the expression or statements that will be extracted. | |
5387 */ | |
5388 void set length(int value) { | |
5389 assert(value != null); | |
5390 this._length = value; | |
5391 } | |
5392 | |
5393 /** | |
5394 * The proposed return type for the method. If the returned element does not | |
5395 * have a declared return type, this field will contain an empty string. | |
5396 */ | |
5397 String get returnType => _returnType; | |
5398 | |
5399 /** | |
5400 * The proposed return type for the method. If the returned element does not | |
5401 * have a declared return type, this field will contain an empty string. | |
5402 */ | |
5403 void set returnType(String value) { | |
5404 assert(value != null); | |
5405 this._returnType = value; | |
5406 } | |
5407 | |
5408 /** | |
5409 * The proposed names for the method. | |
5410 */ | |
5411 List<String> get names => _names; | |
5412 | |
5413 /** | |
5414 * The proposed names for the method. | |
5415 */ | |
5416 void set names(List<String> value) { | |
5417 assert(value != null); | |
5418 this._names = value; | |
5419 } | |
5420 | |
5421 /** | |
5422 * True if a getter could be created rather than a method. | |
5423 */ | |
5424 bool get canCreateGetter => _canCreateGetter; | |
5425 | |
5426 /** | |
5427 * True if a getter could be created rather than a method. | |
5428 */ | |
5429 void set canCreateGetter(bool value) { | |
5430 assert(value != null); | |
5431 this._canCreateGetter = value; | |
5432 } | |
5433 | |
5434 /** | |
5435 * The proposed parameters for the method. | |
5436 */ | |
5437 List<RefactoringMethodParameter> get parameters => _parameters; | |
5438 | |
5439 /** | |
5440 * The proposed parameters for the method. | |
5441 */ | |
5442 void set parameters(List<RefactoringMethodParameter> value) { | |
5443 assert(value != null); | |
5444 this._parameters = value; | |
5445 } | |
5446 | |
5447 /** | |
5448 * The offsets of the expressions or statements that would be replaced by an | |
5449 * invocation of the method. | |
5450 */ | |
5451 List<int> get offsets => _offsets; | |
5452 | |
5453 /** | |
5454 * The offsets of the expressions or statements that would be replaced by an | |
5455 * invocation of the method. | |
5456 */ | |
5457 void set offsets(List<int> value) { | |
5458 assert(value != null); | |
5459 this._offsets = value; | |
5460 } | |
5461 | |
5462 /** | |
5463 * The lengths of the expressions or statements that would be replaced by an | |
5464 * invocation of the method. The lengths correspond to the offsets. In other | |
5465 * words, for a given expression (or block of statements), if the offset of | |
5466 * that expression is offsets[i], then the length of that expression is | |
5467 * lengths[i]. | |
5468 */ | |
5469 List<int> get lengths => _lengths; | |
5470 | |
5471 /** | |
5472 * The lengths of the expressions or statements that would be replaced by an | |
5473 * invocation of the method. The lengths correspond to the offsets. In other | |
5474 * words, for a given expression (or block of statements), if the offset of | |
5475 * that expression is offsets[i], then the length of that expression is | |
5476 * lengths[i]. | |
5477 */ | |
5478 void set lengths(List<int> value) { | |
5479 assert(value != null); | |
5480 this._lengths = value; | |
5481 } | |
5482 | |
5483 ExtractMethodFeedback(int offset, int length, String returnType, List<String>
names, bool canCreateGetter, List<RefactoringMethodParameter> parameters, List<i
nt> offsets, List<int> lengths) { | |
5484 this.offset = offset; | |
5485 this.length = length; | |
5486 this.returnType = returnType; | |
5487 this.names = names; | |
5488 this.canCreateGetter = canCreateGetter; | |
5489 this.parameters = parameters; | |
5490 this.offsets = offsets; | |
5491 this.lengths = lengths; | |
5492 } | |
5493 | |
5494 factory ExtractMethodFeedback.fromJson(JsonDecoder jsonDecoder, String jsonPat
h, Object json) { | |
5495 if (json == null) { | |
5496 json = {}; | |
5497 } | |
5498 if (json is Map) { | |
5499 int offset; | |
5500 if (json.containsKey("offset")) { | |
5501 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
5502 } else { | |
5503 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
5504 } | |
5505 int length; | |
5506 if (json.containsKey("length")) { | |
5507 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
5508 } else { | |
5509 throw jsonDecoder.mismatch(jsonPath, "length"); | |
5510 } | |
5511 String returnType; | |
5512 if (json.containsKey("returnType")) { | |
5513 returnType = jsonDecoder.decodeString(jsonPath + ".returnType", json["re
turnType"]); | |
5514 } else { | |
5515 throw jsonDecoder.mismatch(jsonPath, "returnType"); | |
5516 } | |
5517 List<String> names; | |
5518 if (json.containsKey("names")) { | |
5519 names = jsonDecoder.decodeList(jsonPath + ".names", json["names"], jsonD
ecoder.decodeString); | |
5520 } else { | |
5521 throw jsonDecoder.mismatch(jsonPath, "names"); | |
5522 } | |
5523 bool canCreateGetter; | |
5524 if (json.containsKey("canCreateGetter")) { | |
5525 canCreateGetter = jsonDecoder.decodeBool(jsonPath + ".canCreateGetter",
json["canCreateGetter"]); | |
5526 } else { | |
5527 throw jsonDecoder.mismatch(jsonPath, "canCreateGetter"); | |
5528 } | |
5529 List<RefactoringMethodParameter> parameters; | |
5530 if (json.containsKey("parameters")) { | |
5531 parameters = jsonDecoder.decodeList(jsonPath + ".parameters", json["para
meters"], (String jsonPath, Object json) => new RefactoringMethodParameter.fromJ
son(jsonDecoder, jsonPath, json)); | |
5532 } else { | |
5533 throw jsonDecoder.mismatch(jsonPath, "parameters"); | |
5534 } | |
5535 List<int> offsets; | |
5536 if (json.containsKey("offsets")) { | |
5537 offsets = jsonDecoder.decodeList(jsonPath + ".offsets", json["offsets"],
jsonDecoder.decodeInt); | |
5538 } else { | |
5539 throw jsonDecoder.mismatch(jsonPath, "offsets"); | |
5540 } | |
5541 List<int> lengths; | |
5542 if (json.containsKey("lengths")) { | |
5543 lengths = jsonDecoder.decodeList(jsonPath + ".lengths", json["lengths"],
jsonDecoder.decodeInt); | |
5544 } else { | |
5545 throw jsonDecoder.mismatch(jsonPath, "lengths"); | |
5546 } | |
5547 return new ExtractMethodFeedback(offset, length, returnType, names, canCre
ateGetter, parameters, offsets, lengths); | |
5548 } else { | |
5549 throw jsonDecoder.mismatch(jsonPath, "extractMethod feedback", json); | |
5550 } | |
5551 } | |
5552 | |
5553 @override | |
5554 Map<String, dynamic> toJson() { | |
5555 Map<String, dynamic> result = {}; | |
5556 result["offset"] = offset; | |
5557 result["length"] = length; | |
5558 result["returnType"] = returnType; | |
5559 result["names"] = names; | |
5560 result["canCreateGetter"] = canCreateGetter; | |
5561 result["parameters"] = parameters.map((RefactoringMethodParameter value) =>
value.toJson()).toList(); | |
5562 result["offsets"] = offsets; | |
5563 result["lengths"] = lengths; | |
5564 return result; | |
5565 } | |
5566 | |
5567 @override | |
5568 String toString() => JSON.encode(toJson()); | |
5569 | |
5570 @override | |
5571 bool operator==(other) { | |
5572 if (other is ExtractMethodFeedback) { | |
5573 return offset == other.offset && | |
5574 length == other.length && | |
5575 returnType == other.returnType && | |
5576 listEqual(names, other.names, (String a, String b) => a == b) && | |
5577 canCreateGetter == other.canCreateGetter && | |
5578 listEqual(parameters, other.parameters, (RefactoringMethodParameter a,
RefactoringMethodParameter b) => a == b) && | |
5579 listEqual(offsets, other.offsets, (int a, int b) => a == b) && | |
5580 listEqual(lengths, other.lengths, (int a, int b) => a == b); | |
5581 } | |
5582 return false; | |
5583 } | |
5584 | |
5585 @override | |
5586 int get hashCode { | |
5587 int hash = 0; | |
5588 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
5589 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
5590 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); | |
5591 hash = JenkinsSmiHash.combine(hash, names.hashCode); | |
5592 hash = JenkinsSmiHash.combine(hash, canCreateGetter.hashCode); | |
5593 hash = JenkinsSmiHash.combine(hash, parameters.hashCode); | |
5594 hash = JenkinsSmiHash.combine(hash, offsets.hashCode); | |
5595 hash = JenkinsSmiHash.combine(hash, lengths.hashCode); | |
5596 return JenkinsSmiHash.finish(hash); | |
5597 } | |
5598 } | |
5599 | |
5600 /** | |
5601 * extractMethod options | |
5602 * | |
5603 * { | |
5604 * "returnType": String | |
5605 * "createGetter": bool | |
5606 * "name": String | |
5607 * "parameters": List<RefactoringMethodParameter> | |
5608 * "extractAll": bool | |
5609 * } | |
5610 * | |
5611 * Clients may not extend, implement or mix-in this class. | |
5612 */ | |
5613 class ExtractMethodOptions extends RefactoringOptions { | |
5614 String _returnType; | |
5615 | |
5616 bool _createGetter; | |
5617 | |
5618 String _name; | |
5619 | |
5620 List<RefactoringMethodParameter> _parameters; | |
5621 | |
5622 bool _extractAll; | |
5623 | |
5624 /** | |
5625 * The return type that should be defined for the method. | |
5626 */ | |
5627 String get returnType => _returnType; | |
5628 | |
5629 /** | |
5630 * The return type that should be defined for the method. | |
5631 */ | |
5632 void set returnType(String value) { | |
5633 assert(value != null); | |
5634 this._returnType = value; | |
5635 } | |
5636 | |
5637 /** | |
5638 * True if a getter should be created rather than a method. It is an error if | |
5639 * this field is true and the list of parameters is non-empty. | |
5640 */ | |
5641 bool get createGetter => _createGetter; | |
5642 | |
5643 /** | |
5644 * True if a getter should be created rather than a method. It is an error if | |
5645 * this field is true and the list of parameters is non-empty. | |
5646 */ | |
5647 void set createGetter(bool value) { | |
5648 assert(value != null); | |
5649 this._createGetter = value; | |
5650 } | |
5651 | |
5652 /** | |
5653 * The name that the method should be given. | |
5654 */ | |
5655 String get name => _name; | |
5656 | |
5657 /** | |
5658 * The name that the method should be given. | |
5659 */ | |
5660 void set name(String value) { | |
5661 assert(value != null); | |
5662 this._name = value; | |
5663 } | |
5664 | |
5665 /** | |
5666 * The parameters that should be defined for the method. | |
5667 * | |
5668 * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL | |
5669 * parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a | |
5670 * NAMED parameter. | |
5671 * | |
5672 * - To change the order and/or update proposed parameters, add parameters | |
5673 * with the same identifiers as proposed. | |
5674 * - To add new parameters, omit their identifier. | |
5675 * - To remove some parameters, omit them in this list. | |
5676 */ | |
5677 List<RefactoringMethodParameter> get parameters => _parameters; | |
5678 | |
5679 /** | |
5680 * The parameters that should be defined for the method. | |
5681 * | |
5682 * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL | |
5683 * parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a | |
5684 * NAMED parameter. | |
5685 * | |
5686 * - To change the order and/or update proposed parameters, add parameters | |
5687 * with the same identifiers as proposed. | |
5688 * - To add new parameters, omit their identifier. | |
5689 * - To remove some parameters, omit them in this list. | |
5690 */ | |
5691 void set parameters(List<RefactoringMethodParameter> value) { | |
5692 assert(value != null); | |
5693 this._parameters = value; | |
5694 } | |
5695 | |
5696 /** | |
5697 * True if all occurrences of the expression or statements should be replaced | |
5698 * by an invocation of the method. The expression or statements used to | |
5699 * initiate the refactoring will always be replaced. | |
5700 */ | |
5701 bool get extractAll => _extractAll; | |
5702 | |
5703 /** | |
5704 * True if all occurrences of the expression or statements should be replaced | |
5705 * by an invocation of the method. The expression or statements used to | |
5706 * initiate the refactoring will always be replaced. | |
5707 */ | |
5708 void set extractAll(bool value) { | |
5709 assert(value != null); | |
5710 this._extractAll = value; | |
5711 } | |
5712 | |
5713 ExtractMethodOptions(String returnType, bool createGetter, String name, List<R
efactoringMethodParameter> parameters, bool extractAll) { | |
5714 this.returnType = returnType; | |
5715 this.createGetter = createGetter; | |
5716 this.name = name; | |
5717 this.parameters = parameters; | |
5718 this.extractAll = extractAll; | |
5719 } | |
5720 | |
5721 factory ExtractMethodOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath
, Object json) { | |
5722 if (json == null) { | |
5723 json = {}; | |
5724 } | |
5725 if (json is Map) { | |
5726 String returnType; | |
5727 if (json.containsKey("returnType")) { | |
5728 returnType = jsonDecoder.decodeString(jsonPath + ".returnType", json["re
turnType"]); | |
5729 } else { | |
5730 throw jsonDecoder.mismatch(jsonPath, "returnType"); | |
5731 } | |
5732 bool createGetter; | |
5733 if (json.containsKey("createGetter")) { | |
5734 createGetter = jsonDecoder.decodeBool(jsonPath + ".createGetter", json["
createGetter"]); | |
5735 } else { | |
5736 throw jsonDecoder.mismatch(jsonPath, "createGetter"); | |
5737 } | |
5738 String name; | |
5739 if (json.containsKey("name")) { | |
5740 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | |
5741 } else { | |
5742 throw jsonDecoder.mismatch(jsonPath, "name"); | |
5743 } | |
5744 List<RefactoringMethodParameter> parameters; | |
5745 if (json.containsKey("parameters")) { | |
5746 parameters = jsonDecoder.decodeList(jsonPath + ".parameters", json["para
meters"], (String jsonPath, Object json) => new RefactoringMethodParameter.fromJ
son(jsonDecoder, jsonPath, json)); | |
5747 } else { | |
5748 throw jsonDecoder.mismatch(jsonPath, "parameters"); | |
5749 } | |
5750 bool extractAll; | |
5751 if (json.containsKey("extractAll")) { | |
5752 extractAll = jsonDecoder.decodeBool(jsonPath + ".extractAll", json["extr
actAll"]); | |
5753 } else { | |
5754 throw jsonDecoder.mismatch(jsonPath, "extractAll"); | |
5755 } | |
5756 return new ExtractMethodOptions(returnType, createGetter, name, parameters
, extractAll); | |
5757 } else { | |
5758 throw jsonDecoder.mismatch(jsonPath, "extractMethod options", json); | |
5759 } | |
5760 } | |
5761 | |
5762 factory ExtractMethodOptions.fromRefactoringParams(EditGetRefactoringParams re
factoringParams, Request request) { | |
5763 return new ExtractMethodOptions.fromJson( | |
5764 new RequestDecoder(request), "options", refactoringParams.options); | |
5765 } | |
5766 | |
5767 @override | |
5768 Map<String, dynamic> toJson() { | |
5769 Map<String, dynamic> result = {}; | |
5770 result["returnType"] = returnType; | |
5771 result["createGetter"] = createGetter; | |
5772 result["name"] = name; | |
5773 result["parameters"] = parameters.map((RefactoringMethodParameter value) =>
value.toJson()).toList(); | |
5774 result["extractAll"] = extractAll; | |
5775 return result; | |
5776 } | |
5777 | |
5778 @override | |
5779 String toString() => JSON.encode(toJson()); | |
5780 | |
5781 @override | |
5782 bool operator==(other) { | |
5783 if (other is ExtractMethodOptions) { | |
5784 return returnType == other.returnType && | |
5785 createGetter == other.createGetter && | |
5786 name == other.name && | |
5787 listEqual(parameters, other.parameters, (RefactoringMethodParameter a,
RefactoringMethodParameter b) => a == b) && | |
5788 extractAll == other.extractAll; | |
5789 } | |
5790 return false; | |
5791 } | |
5792 | |
5793 @override | |
5794 int get hashCode { | |
5795 int hash = 0; | |
5796 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); | |
5797 hash = JenkinsSmiHash.combine(hash, createGetter.hashCode); | |
5798 hash = JenkinsSmiHash.combine(hash, name.hashCode); | |
5799 hash = JenkinsSmiHash.combine(hash, parameters.hashCode); | |
5800 hash = JenkinsSmiHash.combine(hash, extractAll.hashCode); | |
5801 return JenkinsSmiHash.finish(hash); | |
5802 } | |
5803 } | |
5804 | |
5805 /** | |
5806 * FoldingKind | |
5807 * | |
5808 * enum { | |
5809 * COMMENT | |
5810 * CLASS_MEMBER | |
5811 * DIRECTIVES | |
5812 * DOCUMENTATION_COMMENT | |
5813 * TOP_LEVEL_DECLARATION | |
5814 * } | |
5815 * | |
5816 * Clients may not extend, implement or mix-in this class. | |
5817 */ | |
5818 class FoldingKind implements Enum { | |
5819 static const FoldingKind COMMENT = const FoldingKind._("COMMENT"); | |
5820 | |
5821 static const FoldingKind CLASS_MEMBER = const FoldingKind._("CLASS_MEMBER"); | |
5822 | |
5823 static const FoldingKind DIRECTIVES = const FoldingKind._("DIRECTIVES"); | |
5824 | |
5825 static const FoldingKind DOCUMENTATION_COMMENT = const FoldingKind._("DOCUMENT
ATION_COMMENT"); | |
5826 | |
5827 static const FoldingKind TOP_LEVEL_DECLARATION = const FoldingKind._("TOP_LEVE
L_DECLARATION"); | |
5828 | |
5829 /** | |
5830 * A list containing all of the enum values that are defined. | |
5831 */ | |
5832 static const List<FoldingKind> VALUES = const <FoldingKind>[COMMENT, CLASS_MEM
BER, DIRECTIVES, DOCUMENTATION_COMMENT, TOP_LEVEL_DECLARATION]; | |
5833 | |
5834 @override | |
5835 final String name; | |
5836 | |
5837 const FoldingKind._(this.name); | |
5838 | |
5839 factory FoldingKind(String name) { | |
5840 switch (name) { | |
5841 case "COMMENT": | |
5842 return COMMENT; | |
5843 case "CLASS_MEMBER": | |
5844 return CLASS_MEMBER; | |
5845 case "DIRECTIVES": | |
5846 return DIRECTIVES; | |
5847 case "DOCUMENTATION_COMMENT": | |
5848 return DOCUMENTATION_COMMENT; | |
5849 case "TOP_LEVEL_DECLARATION": | |
5850 return TOP_LEVEL_DECLARATION; | |
5851 } | |
5852 throw new Exception('Illegal enum value: $name'); | |
5853 } | |
5854 | |
5855 factory FoldingKind.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object
json) { | |
5856 if (json is String) { | |
5857 try { | |
5858 return new FoldingKind(json); | |
5859 } catch(_) { | |
5860 // Fall through | |
5861 } | |
5862 } | |
5863 throw jsonDecoder.mismatch(jsonPath, "FoldingKind", json); | |
5864 } | |
5865 | |
5866 @override | |
5867 String toString() => "FoldingKind.$name"; | |
5868 | |
5869 String toJson() => name; | |
5870 } | |
5871 | |
5872 /** | |
5873 * FoldingRegion | |
5874 * | |
5875 * { | |
5876 * "kind": FoldingKind | |
5877 * "offset": int | |
5878 * "length": int | |
5879 * } | |
5880 * | |
5881 * Clients may not extend, implement or mix-in this class. | |
5882 */ | |
5883 class FoldingRegion implements HasToJson { | |
5884 FoldingKind _kind; | |
5885 | |
5886 int _offset; | |
5887 | |
5888 int _length; | |
5889 | |
5890 /** | |
5891 * The kind of the region. | |
5892 */ | |
5893 FoldingKind get kind => _kind; | |
5894 | |
5895 /** | |
5896 * The kind of the region. | |
5897 */ | |
5898 void set kind(FoldingKind value) { | |
5899 assert(value != null); | |
5900 this._kind = value; | |
5901 } | |
5902 | |
5903 /** | |
5904 * The offset of the region to be folded. | |
5905 */ | |
5906 int get offset => _offset; | |
5907 | |
5908 /** | |
5909 * The offset of the region to be folded. | |
5910 */ | |
5911 void set offset(int value) { | |
5912 assert(value != null); | |
5913 this._offset = value; | |
5914 } | |
5915 | |
5916 /** | |
5917 * The length of the region to be folded. | |
5918 */ | |
5919 int get length => _length; | |
5920 | |
5921 /** | |
5922 * The length of the region to be folded. | |
5923 */ | |
5924 void set length(int value) { | |
5925 assert(value != null); | |
5926 this._length = value; | |
5927 } | |
5928 | |
5929 FoldingRegion(FoldingKind kind, int offset, int length) { | |
5930 this.kind = kind; | |
5931 this.offset = offset; | |
5932 this.length = length; | |
5933 } | |
5934 | |
5935 factory FoldingRegion.fromJson(JsonDecoder jsonDecoder, String jsonPath, Objec
t json) { | |
5936 if (json == null) { | |
5937 json = {}; | |
5938 } | |
5939 if (json is Map) { | |
5940 FoldingKind kind; | |
5941 if (json.containsKey("kind")) { | |
5942 kind = new FoldingKind.fromJson(jsonDecoder, jsonPath + ".kind", json["k
ind"]); | |
5943 } else { | |
5944 throw jsonDecoder.mismatch(jsonPath, "kind"); | |
5945 } | |
5946 int offset; | |
5947 if (json.containsKey("offset")) { | |
5948 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
5949 } else { | |
5950 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
5951 } | |
5952 int length; | |
5953 if (json.containsKey("length")) { | |
5954 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
5955 } else { | |
5956 throw jsonDecoder.mismatch(jsonPath, "length"); | |
5957 } | |
5958 return new FoldingRegion(kind, offset, length); | |
5959 } else { | |
5960 throw jsonDecoder.mismatch(jsonPath, "FoldingRegion", json); | |
5961 } | |
5962 } | |
5963 | |
5964 @override | |
5965 Map<String, dynamic> toJson() { | |
5966 Map<String, dynamic> result = {}; | |
5967 result["kind"] = kind.toJson(); | |
5968 result["offset"] = offset; | |
5969 result["length"] = length; | |
5970 return result; | |
5971 } | |
5972 | |
5973 @override | |
5974 String toString() => JSON.encode(toJson()); | |
5975 | |
5976 @override | |
5977 bool operator==(other) { | |
5978 if (other is FoldingRegion) { | |
5979 return kind == other.kind && | |
5980 offset == other.offset && | |
5981 length == other.length; | |
5982 } | |
5983 return false; | |
5984 } | |
5985 | |
5986 @override | |
5987 int get hashCode { | |
5988 int hash = 0; | |
5989 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | |
5990 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
5991 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
5992 return JenkinsSmiHash.finish(hash); | |
5993 } | |
5994 } | |
5995 | |
5996 /** | |
5997 * HighlightRegion | |
5998 * | |
5999 * { | |
6000 * "type": HighlightRegionType | |
6001 * "offset": int | |
6002 * "length": int | |
6003 * } | |
6004 * | |
6005 * Clients may not extend, implement or mix-in this class. | |
6006 */ | |
6007 class HighlightRegion implements HasToJson { | |
6008 HighlightRegionType _type; | |
6009 | |
6010 int _offset; | |
6011 | |
6012 int _length; | |
6013 | |
6014 /** | |
6015 * The type of highlight associated with the region. | |
6016 */ | |
6017 HighlightRegionType get type => _type; | |
6018 | |
6019 /** | |
6020 * The type of highlight associated with the region. | |
6021 */ | |
6022 void set type(HighlightRegionType value) { | |
6023 assert(value != null); | |
6024 this._type = value; | |
6025 } | |
6026 | |
6027 /** | |
6028 * The offset of the region to be highlighted. | |
6029 */ | |
6030 int get offset => _offset; | |
6031 | |
6032 /** | |
6033 * The offset of the region to be highlighted. | |
6034 */ | |
6035 void set offset(int value) { | |
6036 assert(value != null); | |
6037 this._offset = value; | |
6038 } | |
6039 | |
6040 /** | |
6041 * The length of the region to be highlighted. | |
6042 */ | |
6043 int get length => _length; | |
6044 | |
6045 /** | |
6046 * The length of the region to be highlighted. | |
6047 */ | |
6048 void set length(int value) { | |
6049 assert(value != null); | |
6050 this._length = value; | |
6051 } | |
6052 | |
6053 HighlightRegion(HighlightRegionType type, int offset, int length) { | |
6054 this.type = type; | |
6055 this.offset = offset; | |
6056 this.length = length; | |
6057 } | |
6058 | |
6059 factory HighlightRegion.fromJson(JsonDecoder jsonDecoder, String jsonPath, Obj
ect json) { | |
6060 if (json == null) { | |
6061 json = {}; | |
6062 } | |
6063 if (json is Map) { | |
6064 HighlightRegionType type; | |
6065 if (json.containsKey("type")) { | |
6066 type = new HighlightRegionType.fromJson(jsonDecoder, jsonPath + ".type",
json["type"]); | |
6067 } else { | |
6068 throw jsonDecoder.mismatch(jsonPath, "type"); | |
6069 } | |
6070 int offset; | |
6071 if (json.containsKey("offset")) { | |
6072 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
6073 } else { | |
6074 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
6075 } | |
6076 int length; | |
6077 if (json.containsKey("length")) { | |
6078 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
6079 } else { | |
6080 throw jsonDecoder.mismatch(jsonPath, "length"); | |
6081 } | |
6082 return new HighlightRegion(type, offset, length); | |
6083 } else { | |
6084 throw jsonDecoder.mismatch(jsonPath, "HighlightRegion", json); | |
6085 } | |
6086 } | |
6087 | |
6088 @override | |
6089 Map<String, dynamic> toJson() { | |
6090 Map<String, dynamic> result = {}; | |
6091 result["type"] = type.toJson(); | |
6092 result["offset"] = offset; | |
6093 result["length"] = length; | |
6094 return result; | |
6095 } | |
6096 | |
6097 @override | |
6098 String toString() => JSON.encode(toJson()); | |
6099 | |
6100 @override | |
6101 bool operator==(other) { | |
6102 if (other is HighlightRegion) { | |
6103 return type == other.type && | |
6104 offset == other.offset && | |
6105 length == other.length; | |
6106 } | |
6107 return false; | |
6108 } | |
6109 | |
6110 @override | |
6111 int get hashCode { | |
6112 int hash = 0; | |
6113 hash = JenkinsSmiHash.combine(hash, type.hashCode); | |
6114 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
6115 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
6116 return JenkinsSmiHash.finish(hash); | |
6117 } | |
6118 } | |
6119 | |
6120 /** | |
6121 * HighlightRegionType | |
6122 * | |
6123 * enum { | |
6124 * ANNOTATION | |
6125 * BUILT_IN | |
6126 * CLASS | |
6127 * COMMENT_BLOCK | |
6128 * COMMENT_DOCUMENTATION | |
6129 * COMMENT_END_OF_LINE | |
6130 * CONSTRUCTOR | |
6131 * DIRECTIVE | |
6132 * DYNAMIC_TYPE | |
6133 * DYNAMIC_LOCAL_VARIABLE_DECLARATION | |
6134 * DYNAMIC_LOCAL_VARIABLE_REFERENCE | |
6135 * DYNAMIC_PARAMETER_DECLARATION | |
6136 * DYNAMIC_PARAMETER_REFERENCE | |
6137 * ENUM | |
6138 * ENUM_CONSTANT | |
6139 * FIELD | |
6140 * FIELD_STATIC | |
6141 * FUNCTION | |
6142 * FUNCTION_DECLARATION | |
6143 * FUNCTION_TYPE_ALIAS | |
6144 * GETTER_DECLARATION | |
6145 * IDENTIFIER_DEFAULT | |
6146 * IMPORT_PREFIX | |
6147 * INSTANCE_FIELD_DECLARATION | |
6148 * INSTANCE_FIELD_REFERENCE | |
6149 * INSTANCE_GETTER_DECLARATION | |
6150 * INSTANCE_GETTER_REFERENCE | |
6151 * INSTANCE_METHOD_DECLARATION | |
6152 * INSTANCE_METHOD_REFERENCE | |
6153 * INSTANCE_SETTER_DECLARATION | |
6154 * INSTANCE_SETTER_REFERENCE | |
6155 * INVALID_STRING_ESCAPE | |
6156 * KEYWORD | |
6157 * LABEL | |
6158 * LIBRARY_NAME | |
6159 * LITERAL_BOOLEAN | |
6160 * LITERAL_DOUBLE | |
6161 * LITERAL_INTEGER | |
6162 * LITERAL_LIST | |
6163 * LITERAL_MAP | |
6164 * LITERAL_STRING | |
6165 * LOCAL_FUNCTION_DECLARATION | |
6166 * LOCAL_FUNCTION_REFERENCE | |
6167 * LOCAL_VARIABLE | |
6168 * LOCAL_VARIABLE_DECLARATION | |
6169 * LOCAL_VARIABLE_REFERENCE | |
6170 * METHOD | |
6171 * METHOD_DECLARATION | |
6172 * METHOD_DECLARATION_STATIC | |
6173 * METHOD_STATIC | |
6174 * PARAMETER | |
6175 * SETTER_DECLARATION | |
6176 * TOP_LEVEL_VARIABLE | |
6177 * PARAMETER_DECLARATION | |
6178 * PARAMETER_REFERENCE | |
6179 * STATIC_FIELD_DECLARATION | |
6180 * STATIC_GETTER_DECLARATION | |
6181 * STATIC_GETTER_REFERENCE | |
6182 * STATIC_METHOD_DECLARATION | |
6183 * STATIC_METHOD_REFERENCE | |
6184 * STATIC_SETTER_DECLARATION | |
6185 * STATIC_SETTER_REFERENCE | |
6186 * TOP_LEVEL_FUNCTION_DECLARATION | |
6187 * TOP_LEVEL_FUNCTION_REFERENCE | |
6188 * TOP_LEVEL_GETTER_DECLARATION | |
6189 * TOP_LEVEL_GETTER_REFERENCE | |
6190 * TOP_LEVEL_SETTER_DECLARATION | |
6191 * TOP_LEVEL_SETTER_REFERENCE | |
6192 * TOP_LEVEL_VARIABLE_DECLARATION | |
6193 * TYPE_NAME_DYNAMIC | |
6194 * TYPE_PARAMETER | |
6195 * UNRESOLVED_INSTANCE_MEMBER_REFERENCE | |
6196 * VALID_STRING_ESCAPE | |
6197 * } | |
6198 * | |
6199 * Clients may not extend, implement or mix-in this class. | |
6200 */ | |
6201 class HighlightRegionType implements Enum { | |
6202 static const HighlightRegionType ANNOTATION = const HighlightRegionType._("ANN
OTATION"); | |
6203 | |
6204 static const HighlightRegionType BUILT_IN = const HighlightRegionType._("BUILT
_IN"); | |
6205 | |
6206 static const HighlightRegionType CLASS = const HighlightRegionType._("CLASS"); | |
6207 | |
6208 static const HighlightRegionType COMMENT_BLOCK = const HighlightRegionType._("
COMMENT_BLOCK"); | |
6209 | |
6210 static const HighlightRegionType COMMENT_DOCUMENTATION = const HighlightRegion
Type._("COMMENT_DOCUMENTATION"); | |
6211 | |
6212 static const HighlightRegionType COMMENT_END_OF_LINE = const HighlightRegionTy
pe._("COMMENT_END_OF_LINE"); | |
6213 | |
6214 static const HighlightRegionType CONSTRUCTOR = const HighlightRegionType._("CO
NSTRUCTOR"); | |
6215 | |
6216 static const HighlightRegionType DIRECTIVE = const HighlightRegionType._("DIRE
CTIVE"); | |
6217 | |
6218 /** | |
6219 * Only for version 1 of highlight. | |
6220 */ | |
6221 static const HighlightRegionType DYNAMIC_TYPE = const HighlightRegionType._("D
YNAMIC_TYPE"); | |
6222 | |
6223 /** | |
6224 * Only for version 2 of highlight. | |
6225 */ | |
6226 static const HighlightRegionType DYNAMIC_LOCAL_VARIABLE_DECLARATION = const Hi
ghlightRegionType._("DYNAMIC_LOCAL_VARIABLE_DECLARATION"); | |
6227 | |
6228 /** | |
6229 * Only for version 2 of highlight. | |
6230 */ | |
6231 static const HighlightRegionType DYNAMIC_LOCAL_VARIABLE_REFERENCE = const High
lightRegionType._("DYNAMIC_LOCAL_VARIABLE_REFERENCE"); | |
6232 | |
6233 /** | |
6234 * Only for version 2 of highlight. | |
6235 */ | |
6236 static const HighlightRegionType DYNAMIC_PARAMETER_DECLARATION = const Highlig
htRegionType._("DYNAMIC_PARAMETER_DECLARATION"); | |
6237 | |
6238 /** | |
6239 * Only for version 2 of highlight. | |
6240 */ | |
6241 static const HighlightRegionType DYNAMIC_PARAMETER_REFERENCE = const Highlight
RegionType._("DYNAMIC_PARAMETER_REFERENCE"); | |
6242 | |
6243 static const HighlightRegionType ENUM = const HighlightRegionType._("ENUM"); | |
6244 | |
6245 static const HighlightRegionType ENUM_CONSTANT = const HighlightRegionType._("
ENUM_CONSTANT"); | |
6246 | |
6247 /** | |
6248 * Only for version 1 of highlight. | |
6249 */ | |
6250 static const HighlightRegionType FIELD = const HighlightRegionType._("FIELD"); | |
6251 | |
6252 /** | |
6253 * Only for version 1 of highlight. | |
6254 */ | |
6255 static const HighlightRegionType FIELD_STATIC = const HighlightRegionType._("F
IELD_STATIC"); | |
6256 | |
6257 /** | |
6258 * Only for version 1 of highlight. | |
6259 */ | |
6260 static const HighlightRegionType FUNCTION = const HighlightRegionType._("FUNCT
ION"); | |
6261 | |
6262 /** | |
6263 * Only for version 1 of highlight. | |
6264 */ | |
6265 static const HighlightRegionType FUNCTION_DECLARATION = const HighlightRegionT
ype._("FUNCTION_DECLARATION"); | |
6266 | |
6267 static const HighlightRegionType FUNCTION_TYPE_ALIAS = const HighlightRegionTy
pe._("FUNCTION_TYPE_ALIAS"); | |
6268 | |
6269 /** | |
6270 * Only for version 1 of highlight. | |
6271 */ | |
6272 static const HighlightRegionType GETTER_DECLARATION = const HighlightRegionTyp
e._("GETTER_DECLARATION"); | |
6273 | |
6274 static const HighlightRegionType IDENTIFIER_DEFAULT = const HighlightRegionTyp
e._("IDENTIFIER_DEFAULT"); | |
6275 | |
6276 static const HighlightRegionType IMPORT_PREFIX = const HighlightRegionType._("
IMPORT_PREFIX"); | |
6277 | |
6278 /** | |
6279 * Only for version 2 of highlight. | |
6280 */ | |
6281 static const HighlightRegionType INSTANCE_FIELD_DECLARATION = const HighlightR
egionType._("INSTANCE_FIELD_DECLARATION"); | |
6282 | |
6283 /** | |
6284 * Only for version 2 of highlight. | |
6285 */ | |
6286 static const HighlightRegionType INSTANCE_FIELD_REFERENCE = const HighlightReg
ionType._("INSTANCE_FIELD_REFERENCE"); | |
6287 | |
6288 /** | |
6289 * Only for version 2 of highlight. | |
6290 */ | |
6291 static const HighlightRegionType INSTANCE_GETTER_DECLARATION = const Highlight
RegionType._("INSTANCE_GETTER_DECLARATION"); | |
6292 | |
6293 /** | |
6294 * Only for version 2 of highlight. | |
6295 */ | |
6296 static const HighlightRegionType INSTANCE_GETTER_REFERENCE = const HighlightRe
gionType._("INSTANCE_GETTER_REFERENCE"); | |
6297 | |
6298 /** | |
6299 * Only for version 2 of highlight. | |
6300 */ | |
6301 static const HighlightRegionType INSTANCE_METHOD_DECLARATION = const Highlight
RegionType._("INSTANCE_METHOD_DECLARATION"); | |
6302 | |
6303 /** | |
6304 * Only for version 2 of highlight. | |
6305 */ | |
6306 static const HighlightRegionType INSTANCE_METHOD_REFERENCE = const HighlightRe
gionType._("INSTANCE_METHOD_REFERENCE"); | |
6307 | |
6308 /** | |
6309 * Only for version 2 of highlight. | |
6310 */ | |
6311 static const HighlightRegionType INSTANCE_SETTER_DECLARATION = const Highlight
RegionType._("INSTANCE_SETTER_DECLARATION"); | |
6312 | |
6313 /** | |
6314 * Only for version 2 of highlight. | |
6315 */ | |
6316 static const HighlightRegionType INSTANCE_SETTER_REFERENCE = const HighlightRe
gionType._("INSTANCE_SETTER_REFERENCE"); | |
6317 | |
6318 /** | |
6319 * Only for version 2 of highlight. | |
6320 */ | |
6321 static const HighlightRegionType INVALID_STRING_ESCAPE = const HighlightRegion
Type._("INVALID_STRING_ESCAPE"); | |
6322 | |
6323 static const HighlightRegionType KEYWORD = const HighlightRegionType._("KEYWOR
D"); | |
6324 | |
6325 static const HighlightRegionType LABEL = const HighlightRegionType._("LABEL"); | |
6326 | |
6327 /** | |
6328 * Only for version 2 of highlight. | |
6329 */ | |
6330 static const HighlightRegionType LIBRARY_NAME = const HighlightRegionType._("L
IBRARY_NAME"); | |
6331 | |
6332 static const HighlightRegionType LITERAL_BOOLEAN = const HighlightRegionType._
("LITERAL_BOOLEAN"); | |
6333 | |
6334 static const HighlightRegionType LITERAL_DOUBLE = const HighlightRegionType._(
"LITERAL_DOUBLE"); | |
6335 | |
6336 static const HighlightRegionType LITERAL_INTEGER = const HighlightRegionType._
("LITERAL_INTEGER"); | |
6337 | |
6338 static const HighlightRegionType LITERAL_LIST = const HighlightRegionType._("L
ITERAL_LIST"); | |
6339 | |
6340 static const HighlightRegionType LITERAL_MAP = const HighlightRegionType._("LI
TERAL_MAP"); | |
6341 | |
6342 static const HighlightRegionType LITERAL_STRING = const HighlightRegionType._(
"LITERAL_STRING"); | |
6343 | |
6344 /** | |
6345 * Only for version 2 of highlight. | |
6346 */ | |
6347 static const HighlightRegionType LOCAL_FUNCTION_DECLARATION = const HighlightR
egionType._("LOCAL_FUNCTION_DECLARATION"); | |
6348 | |
6349 /** | |
6350 * Only for version 2 of highlight. | |
6351 */ | |
6352 static const HighlightRegionType LOCAL_FUNCTION_REFERENCE = const HighlightReg
ionType._("LOCAL_FUNCTION_REFERENCE"); | |
6353 | |
6354 /** | |
6355 * Only for version 1 of highlight. | |
6356 */ | |
6357 static const HighlightRegionType LOCAL_VARIABLE = const HighlightRegionType._(
"LOCAL_VARIABLE"); | |
6358 | |
6359 static const HighlightRegionType LOCAL_VARIABLE_DECLARATION = const HighlightR
egionType._("LOCAL_VARIABLE_DECLARATION"); | |
6360 | |
6361 /** | |
6362 * Only for version 2 of highlight. | |
6363 */ | |
6364 static const HighlightRegionType LOCAL_VARIABLE_REFERENCE = const HighlightReg
ionType._("LOCAL_VARIABLE_REFERENCE"); | |
6365 | |
6366 /** | |
6367 * Only for version 1 of highlight. | |
6368 */ | |
6369 static const HighlightRegionType METHOD = const HighlightRegionType._("METHOD"
); | |
6370 | |
6371 /** | |
6372 * Only for version 1 of highlight. | |
6373 */ | |
6374 static const HighlightRegionType METHOD_DECLARATION = const HighlightRegionTyp
e._("METHOD_DECLARATION"); | |
6375 | |
6376 /** | |
6377 * Only for version 1 of highlight. | |
6378 */ | |
6379 static const HighlightRegionType METHOD_DECLARATION_STATIC = const HighlightRe
gionType._("METHOD_DECLARATION_STATIC"); | |
6380 | |
6381 /** | |
6382 * Only for version 1 of highlight. | |
6383 */ | |
6384 static const HighlightRegionType METHOD_STATIC = const HighlightRegionType._("
METHOD_STATIC"); | |
6385 | |
6386 /** | |
6387 * Only for version 1 of highlight. | |
6388 */ | |
6389 static const HighlightRegionType PARAMETER = const HighlightRegionType._("PARA
METER"); | |
6390 | |
6391 /** | |
6392 * Only for version 1 of highlight. | |
6393 */ | |
6394 static const HighlightRegionType SETTER_DECLARATION = const HighlightRegionTyp
e._("SETTER_DECLARATION"); | |
6395 | |
6396 /** | |
6397 * Only for version 1 of highlight. | |
6398 */ | |
6399 static const HighlightRegionType TOP_LEVEL_VARIABLE = const HighlightRegionTyp
e._("TOP_LEVEL_VARIABLE"); | |
6400 | |
6401 /** | |
6402 * Only for version 2 of highlight. | |
6403 */ | |
6404 static const HighlightRegionType PARAMETER_DECLARATION = const HighlightRegion
Type._("PARAMETER_DECLARATION"); | |
6405 | |
6406 /** | |
6407 * Only for version 2 of highlight. | |
6408 */ | |
6409 static const HighlightRegionType PARAMETER_REFERENCE = const HighlightRegionTy
pe._("PARAMETER_REFERENCE"); | |
6410 | |
6411 /** | |
6412 * Only for version 2 of highlight. | |
6413 */ | |
6414 static const HighlightRegionType STATIC_FIELD_DECLARATION = const HighlightReg
ionType._("STATIC_FIELD_DECLARATION"); | |
6415 | |
6416 /** | |
6417 * Only for version 2 of highlight. | |
6418 */ | |
6419 static const HighlightRegionType STATIC_GETTER_DECLARATION = const HighlightRe
gionType._("STATIC_GETTER_DECLARATION"); | |
6420 | |
6421 /** | |
6422 * Only for version 2 of highlight. | |
6423 */ | |
6424 static const HighlightRegionType STATIC_GETTER_REFERENCE = const HighlightRegi
onType._("STATIC_GETTER_REFERENCE"); | |
6425 | |
6426 /** | |
6427 * Only for version 2 of highlight. | |
6428 */ | |
6429 static const HighlightRegionType STATIC_METHOD_DECLARATION = const HighlightRe
gionType._("STATIC_METHOD_DECLARATION"); | |
6430 | |
6431 /** | |
6432 * Only for version 2 of highlight. | |
6433 */ | |
6434 static const HighlightRegionType STATIC_METHOD_REFERENCE = const HighlightRegi
onType._("STATIC_METHOD_REFERENCE"); | |
6435 | |
6436 /** | |
6437 * Only for version 2 of highlight. | |
6438 */ | |
6439 static const HighlightRegionType STATIC_SETTER_DECLARATION = const HighlightRe
gionType._("STATIC_SETTER_DECLARATION"); | |
6440 | |
6441 /** | |
6442 * Only for version 2 of highlight. | |
6443 */ | |
6444 static const HighlightRegionType STATIC_SETTER_REFERENCE = const HighlightRegi
onType._("STATIC_SETTER_REFERENCE"); | |
6445 | |
6446 /** | |
6447 * Only for version 2 of highlight. | |
6448 */ | |
6449 static const HighlightRegionType TOP_LEVEL_FUNCTION_DECLARATION = const Highli
ghtRegionType._("TOP_LEVEL_FUNCTION_DECLARATION"); | |
6450 | |
6451 /** | |
6452 * Only for version 2 of highlight. | |
6453 */ | |
6454 static const HighlightRegionType TOP_LEVEL_FUNCTION_REFERENCE = const Highligh
tRegionType._("TOP_LEVEL_FUNCTION_REFERENCE"); | |
6455 | |
6456 /** | |
6457 * Only for version 2 of highlight. | |
6458 */ | |
6459 static const HighlightRegionType TOP_LEVEL_GETTER_DECLARATION = const Highligh
tRegionType._("TOP_LEVEL_GETTER_DECLARATION"); | |
6460 | |
6461 /** | |
6462 * Only for version 2 of highlight. | |
6463 */ | |
6464 static const HighlightRegionType TOP_LEVEL_GETTER_REFERENCE = const HighlightR
egionType._("TOP_LEVEL_GETTER_REFERENCE"); | |
6465 | |
6466 /** | |
6467 * Only for version 2 of highlight. | |
6468 */ | |
6469 static const HighlightRegionType TOP_LEVEL_SETTER_DECLARATION = const Highligh
tRegionType._("TOP_LEVEL_SETTER_DECLARATION"); | |
6470 | |
6471 /** | |
6472 * Only for version 2 of highlight. | |
6473 */ | |
6474 static const HighlightRegionType TOP_LEVEL_SETTER_REFERENCE = const HighlightR
egionType._("TOP_LEVEL_SETTER_REFERENCE"); | |
6475 | |
6476 /** | |
6477 * Only for version 2 of highlight. | |
6478 */ | |
6479 static const HighlightRegionType TOP_LEVEL_VARIABLE_DECLARATION = const Highli
ghtRegionType._("TOP_LEVEL_VARIABLE_DECLARATION"); | |
6480 | |
6481 static const HighlightRegionType TYPE_NAME_DYNAMIC = const HighlightRegionType
._("TYPE_NAME_DYNAMIC"); | |
6482 | |
6483 static const HighlightRegionType TYPE_PARAMETER = const HighlightRegionType._(
"TYPE_PARAMETER"); | |
6484 | |
6485 /** | |
6486 * Only for version 2 of highlight. | |
6487 */ | |
6488 static const HighlightRegionType UNRESOLVED_INSTANCE_MEMBER_REFERENCE = const
HighlightRegionType._("UNRESOLVED_INSTANCE_MEMBER_REFERENCE"); | |
6489 | |
6490 /** | |
6491 * Only for version 2 of highlight. | |
6492 */ | |
6493 static const HighlightRegionType VALID_STRING_ESCAPE = const HighlightRegionTy
pe._("VALID_STRING_ESCAPE"); | |
6494 | |
6495 /** | |
6496 * A list containing all of the enum values that are defined. | |
6497 */ | |
6498 static const List<HighlightRegionType> VALUES = const <HighlightRegionType>[AN
NOTATION, BUILT_IN, CLASS, COMMENT_BLOCK, COMMENT_DOCUMENTATION, COMMENT_END_OF_
LINE, CONSTRUCTOR, DIRECTIVE, DYNAMIC_TYPE, DYNAMIC_LOCAL_VARIABLE_DECLARATION,
DYNAMIC_LOCAL_VARIABLE_REFERENCE, DYNAMIC_PARAMETER_DECLARATION, DYNAMIC_PARAMET
ER_REFERENCE, ENUM, ENUM_CONSTANT, FIELD, FIELD_STATIC, FUNCTION, FUNCTION_DECLA
RATION, FUNCTION_TYPE_ALIAS, GETTER_DECLARATION, IDENTIFIER_DEFAULT, IMPORT_PREF
IX, INSTANCE_FIELD_DECLARATION, INSTANCE_FIELD_REFERENCE, INSTANCE_GETTER_DECLAR
ATION, INSTANCE_GETTER_REFERENCE, INSTANCE_METHOD_DECLARATION, INSTANCE_METHOD_R
EFERENCE, INSTANCE_SETTER_DECLARATION, INSTANCE_SETTER_REFERENCE, INVALID_STRING
_ESCAPE, KEYWORD, LABEL, LIBRARY_NAME, LITERAL_BOOLEAN, LITERAL_DOUBLE, LITERAL_
INTEGER, LITERAL_LIST, LITERAL_MAP, LITERAL_STRING, LOCAL_FUNCTION_DECLARATION,
LOCAL_FUNCTION_REFERENCE, LOCAL_VARIABLE, LOCAL_VARIABLE_DECLARATION, LOCAL_VARI
ABLE_REFERENCE, METHOD, METHOD_DECLARATION, METHOD_DECLARATION_STATIC, METHOD_ST
ATIC, PARAMETER, SETTER_DECLARATION, TOP_LEVEL_VARIABLE, PARAMETER_DECLARATION,
PARAMETER_REFERENCE, STATIC_FIELD_DECLARATION, STATIC_GETTER_DECLARATION, STATIC
_GETTER_REFERENCE, STATIC_METHOD_DECLARATION, STATIC_METHOD_REFERENCE, STATIC_SE
TTER_DECLARATION, STATIC_SETTER_REFERENCE, TOP_LEVEL_FUNCTION_DECLARATION, TOP_L
EVEL_FUNCTION_REFERENCE, TOP_LEVEL_GETTER_DECLARATION, TOP_LEVEL_GETTER_REFERENC
E, TOP_LEVEL_SETTER_DECLARATION, TOP_LEVEL_SETTER_REFERENCE, TOP_LEVEL_VARIABLE_
DECLARATION, TYPE_NAME_DYNAMIC, TYPE_PARAMETER, UNRESOLVED_INSTANCE_MEMBER_REFER
ENCE, VALID_STRING_ESCAPE]; | |
6499 | |
6500 @override | |
6501 final String name; | |
6502 | |
6503 const HighlightRegionType._(this.name); | |
6504 | |
6505 factory HighlightRegionType(String name) { | |
6506 switch (name) { | |
6507 case "ANNOTATION": | |
6508 return ANNOTATION; | |
6509 case "BUILT_IN": | |
6510 return BUILT_IN; | |
6511 case "CLASS": | |
6512 return CLASS; | |
6513 case "COMMENT_BLOCK": | |
6514 return COMMENT_BLOCK; | |
6515 case "COMMENT_DOCUMENTATION": | |
6516 return COMMENT_DOCUMENTATION; | |
6517 case "COMMENT_END_OF_LINE": | |
6518 return COMMENT_END_OF_LINE; | |
6519 case "CONSTRUCTOR": | |
6520 return CONSTRUCTOR; | |
6521 case "DIRECTIVE": | |
6522 return DIRECTIVE; | |
6523 case "DYNAMIC_TYPE": | |
6524 return DYNAMIC_TYPE; | |
6525 case "DYNAMIC_LOCAL_VARIABLE_DECLARATION": | |
6526 return DYNAMIC_LOCAL_VARIABLE_DECLARATION; | |
6527 case "DYNAMIC_LOCAL_VARIABLE_REFERENCE": | |
6528 return DYNAMIC_LOCAL_VARIABLE_REFERENCE; | |
6529 case "DYNAMIC_PARAMETER_DECLARATION": | |
6530 return DYNAMIC_PARAMETER_DECLARATION; | |
6531 case "DYNAMIC_PARAMETER_REFERENCE": | |
6532 return DYNAMIC_PARAMETER_REFERENCE; | |
6533 case "ENUM": | |
6534 return ENUM; | |
6535 case "ENUM_CONSTANT": | |
6536 return ENUM_CONSTANT; | |
6537 case "FIELD": | |
6538 return FIELD; | |
6539 case "FIELD_STATIC": | |
6540 return FIELD_STATIC; | |
6541 case "FUNCTION": | |
6542 return FUNCTION; | |
6543 case "FUNCTION_DECLARATION": | |
6544 return FUNCTION_DECLARATION; | |
6545 case "FUNCTION_TYPE_ALIAS": | |
6546 return FUNCTION_TYPE_ALIAS; | |
6547 case "GETTER_DECLARATION": | |
6548 return GETTER_DECLARATION; | |
6549 case "IDENTIFIER_DEFAULT": | |
6550 return IDENTIFIER_DEFAULT; | |
6551 case "IMPORT_PREFIX": | |
6552 return IMPORT_PREFIX; | |
6553 case "INSTANCE_FIELD_DECLARATION": | |
6554 return INSTANCE_FIELD_DECLARATION; | |
6555 case "INSTANCE_FIELD_REFERENCE": | |
6556 return INSTANCE_FIELD_REFERENCE; | |
6557 case "INSTANCE_GETTER_DECLARATION": | |
6558 return INSTANCE_GETTER_DECLARATION; | |
6559 case "INSTANCE_GETTER_REFERENCE": | |
6560 return INSTANCE_GETTER_REFERENCE; | |
6561 case "INSTANCE_METHOD_DECLARATION": | |
6562 return INSTANCE_METHOD_DECLARATION; | |
6563 case "INSTANCE_METHOD_REFERENCE": | |
6564 return INSTANCE_METHOD_REFERENCE; | |
6565 case "INSTANCE_SETTER_DECLARATION": | |
6566 return INSTANCE_SETTER_DECLARATION; | |
6567 case "INSTANCE_SETTER_REFERENCE": | |
6568 return INSTANCE_SETTER_REFERENCE; | |
6569 case "INVALID_STRING_ESCAPE": | |
6570 return INVALID_STRING_ESCAPE; | |
6571 case "KEYWORD": | |
6572 return KEYWORD; | |
6573 case "LABEL": | |
6574 return LABEL; | |
6575 case "LIBRARY_NAME": | |
6576 return LIBRARY_NAME; | |
6577 case "LITERAL_BOOLEAN": | |
6578 return LITERAL_BOOLEAN; | |
6579 case "LITERAL_DOUBLE": | |
6580 return LITERAL_DOUBLE; | |
6581 case "LITERAL_INTEGER": | |
6582 return LITERAL_INTEGER; | |
6583 case "LITERAL_LIST": | |
6584 return LITERAL_LIST; | |
6585 case "LITERAL_MAP": | |
6586 return LITERAL_MAP; | |
6587 case "LITERAL_STRING": | |
6588 return LITERAL_STRING; | |
6589 case "LOCAL_FUNCTION_DECLARATION": | |
6590 return LOCAL_FUNCTION_DECLARATION; | |
6591 case "LOCAL_FUNCTION_REFERENCE": | |
6592 return LOCAL_FUNCTION_REFERENCE; | |
6593 case "LOCAL_VARIABLE": | |
6594 return LOCAL_VARIABLE; | |
6595 case "LOCAL_VARIABLE_DECLARATION": | |
6596 return LOCAL_VARIABLE_DECLARATION; | |
6597 case "LOCAL_VARIABLE_REFERENCE": | |
6598 return LOCAL_VARIABLE_REFERENCE; | |
6599 case "METHOD": | |
6600 return METHOD; | |
6601 case "METHOD_DECLARATION": | |
6602 return METHOD_DECLARATION; | |
6603 case "METHOD_DECLARATION_STATIC": | |
6604 return METHOD_DECLARATION_STATIC; | |
6605 case "METHOD_STATIC": | |
6606 return METHOD_STATIC; | |
6607 case "PARAMETER": | |
6608 return PARAMETER; | |
6609 case "SETTER_DECLARATION": | |
6610 return SETTER_DECLARATION; | |
6611 case "TOP_LEVEL_VARIABLE": | |
6612 return TOP_LEVEL_VARIABLE; | |
6613 case "PARAMETER_DECLARATION": | |
6614 return PARAMETER_DECLARATION; | |
6615 case "PARAMETER_REFERENCE": | |
6616 return PARAMETER_REFERENCE; | |
6617 case "STATIC_FIELD_DECLARATION": | |
6618 return STATIC_FIELD_DECLARATION; | |
6619 case "STATIC_GETTER_DECLARATION": | |
6620 return STATIC_GETTER_DECLARATION; | |
6621 case "STATIC_GETTER_REFERENCE": | |
6622 return STATIC_GETTER_REFERENCE; | |
6623 case "STATIC_METHOD_DECLARATION": | |
6624 return STATIC_METHOD_DECLARATION; | |
6625 case "STATIC_METHOD_REFERENCE": | |
6626 return STATIC_METHOD_REFERENCE; | |
6627 case "STATIC_SETTER_DECLARATION": | |
6628 return STATIC_SETTER_DECLARATION; | |
6629 case "STATIC_SETTER_REFERENCE": | |
6630 return STATIC_SETTER_REFERENCE; | |
6631 case "TOP_LEVEL_FUNCTION_DECLARATION": | |
6632 return TOP_LEVEL_FUNCTION_DECLARATION; | |
6633 case "TOP_LEVEL_FUNCTION_REFERENCE": | |
6634 return TOP_LEVEL_FUNCTION_REFERENCE; | |
6635 case "TOP_LEVEL_GETTER_DECLARATION": | |
6636 return TOP_LEVEL_GETTER_DECLARATION; | |
6637 case "TOP_LEVEL_GETTER_REFERENCE": | |
6638 return TOP_LEVEL_GETTER_REFERENCE; | |
6639 case "TOP_LEVEL_SETTER_DECLARATION": | |
6640 return TOP_LEVEL_SETTER_DECLARATION; | |
6641 case "TOP_LEVEL_SETTER_REFERENCE": | |
6642 return TOP_LEVEL_SETTER_REFERENCE; | |
6643 case "TOP_LEVEL_VARIABLE_DECLARATION": | |
6644 return TOP_LEVEL_VARIABLE_DECLARATION; | |
6645 case "TYPE_NAME_DYNAMIC": | |
6646 return TYPE_NAME_DYNAMIC; | |
6647 case "TYPE_PARAMETER": | |
6648 return TYPE_PARAMETER; | |
6649 case "UNRESOLVED_INSTANCE_MEMBER_REFERENCE": | |
6650 return UNRESOLVED_INSTANCE_MEMBER_REFERENCE; | |
6651 case "VALID_STRING_ESCAPE": | |
6652 return VALID_STRING_ESCAPE; | |
6653 } | |
6654 throw new Exception('Illegal enum value: $name'); | |
6655 } | |
6656 | |
6657 factory HighlightRegionType.fromJson(JsonDecoder jsonDecoder, String jsonPath,
Object json) { | |
6658 if (json is String) { | |
6659 try { | |
6660 return new HighlightRegionType(json); | |
6661 } catch(_) { | |
6662 // Fall through | |
6663 } | |
6664 } | |
6665 throw jsonDecoder.mismatch(jsonPath, "HighlightRegionType", json); | |
6666 } | |
6667 | |
6668 @override | |
6669 String toString() => "HighlightRegionType.$name"; | |
6670 | |
6671 String toJson() => name; | |
6672 } | |
6673 | |
6674 /** | |
6675 * inlineLocalVariable feedback | |
6676 * | |
6677 * { | |
6678 * "name": String | |
6679 * "occurrences": int | |
6680 * } | |
6681 * | |
6682 * Clients may not extend, implement or mix-in this class. | |
6683 */ | |
6684 class InlineLocalVariableFeedback extends RefactoringFeedback { | |
6685 String _name; | |
6686 | |
6687 int _occurrences; | |
6688 | |
6689 /** | |
6690 * The name of the variable being inlined. | |
6691 */ | |
6692 String get name => _name; | |
6693 | |
6694 /** | |
6695 * The name of the variable being inlined. | |
6696 */ | |
6697 void set name(String value) { | |
6698 assert(value != null); | |
6699 this._name = value; | |
6700 } | |
6701 | |
6702 /** | |
6703 * The number of times the variable occurs. | |
6704 */ | |
6705 int get occurrences => _occurrences; | |
6706 | |
6707 /** | |
6708 * The number of times the variable occurs. | |
6709 */ | |
6710 void set occurrences(int value) { | |
6711 assert(value != null); | |
6712 this._occurrences = value; | |
6713 } | |
6714 | |
6715 InlineLocalVariableFeedback(String name, int occurrences) { | |
6716 this.name = name; | |
6717 this.occurrences = occurrences; | |
6718 } | |
6719 | |
6720 factory InlineLocalVariableFeedback.fromJson(JsonDecoder jsonDecoder, String j
sonPath, Object json) { | |
6721 if (json == null) { | |
6722 json = {}; | |
6723 } | |
6724 if (json is Map) { | |
6725 String name; | |
6726 if (json.containsKey("name")) { | |
6727 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | |
6728 } else { | |
6729 throw jsonDecoder.mismatch(jsonPath, "name"); | |
6730 } | |
6731 int occurrences; | |
6732 if (json.containsKey("occurrences")) { | |
6733 occurrences = jsonDecoder.decodeInt(jsonPath + ".occurrences", json["occ
urrences"]); | |
6734 } else { | |
6735 throw jsonDecoder.mismatch(jsonPath, "occurrences"); | |
6736 } | |
6737 return new InlineLocalVariableFeedback(name, occurrences); | |
6738 } else { | |
6739 throw jsonDecoder.mismatch(jsonPath, "inlineLocalVariable feedback", json)
; | |
6740 } | |
6741 } | |
6742 | |
6743 @override | |
6744 Map<String, dynamic> toJson() { | |
6745 Map<String, dynamic> result = {}; | |
6746 result["name"] = name; | |
6747 result["occurrences"] = occurrences; | |
6748 return result; | |
6749 } | |
6750 | |
6751 @override | |
6752 String toString() => JSON.encode(toJson()); | |
6753 | |
6754 @override | |
6755 bool operator==(other) { | |
6756 if (other is InlineLocalVariableFeedback) { | |
6757 return name == other.name && | |
6758 occurrences == other.occurrences; | |
6759 } | |
6760 return false; | |
6761 } | |
6762 | |
6763 @override | |
6764 int get hashCode { | |
6765 int hash = 0; | |
6766 hash = JenkinsSmiHash.combine(hash, name.hashCode); | |
6767 hash = JenkinsSmiHash.combine(hash, occurrences.hashCode); | |
6768 return JenkinsSmiHash.finish(hash); | |
6769 } | |
6770 } | |
6771 | |
6772 /** | |
6773 * inlineLocalVariable options | |
6774 * | |
6775 * Clients may not extend, implement or mix-in this class. | |
6776 */ | |
6777 class InlineLocalVariableOptions extends RefactoringOptions implements HasToJson
{ | |
6778 @override | |
6779 bool operator==(other) { | |
6780 if (other is InlineLocalVariableOptions) { | |
6781 return true; | |
6782 } | |
6783 return false; | |
6784 } | |
6785 | |
6786 @override | |
6787 int get hashCode { | |
6788 return 540364977; | |
6789 } | |
6790 } | |
6791 | |
6792 /** | |
6793 * inlineMethod feedback | |
6794 * | |
6795 * { | |
6796 * "className": optional String | |
6797 * "methodName": String | |
6798 * "isDeclaration": bool | |
6799 * } | |
6800 * | |
6801 * Clients may not extend, implement or mix-in this class. | |
6802 */ | |
6803 class InlineMethodFeedback extends RefactoringFeedback { | |
6804 String _className; | |
6805 | |
6806 String _methodName; | |
6807 | |
6808 bool _isDeclaration; | |
6809 | |
6810 /** | |
6811 * The name of the class enclosing the method being inlined. If not a class | |
6812 * member is being inlined, this field will be absent. | |
6813 */ | |
6814 String get className => _className; | |
6815 | |
6816 /** | |
6817 * The name of the class enclosing the method being inlined. If not a class | |
6818 * member is being inlined, this field will be absent. | |
6819 */ | |
6820 void set className(String value) { | |
6821 this._className = value; | |
6822 } | |
6823 | |
6824 /** | |
6825 * The name of the method (or function) being inlined. | |
6826 */ | |
6827 String get methodName => _methodName; | |
6828 | |
6829 /** | |
6830 * The name of the method (or function) being inlined. | |
6831 */ | |
6832 void set methodName(String value) { | |
6833 assert(value != null); | |
6834 this._methodName = value; | |
6835 } | |
6836 | |
6837 /** | |
6838 * True if the declaration of the method is selected and all references | |
6839 * should be inlined. | |
6840 */ | |
6841 bool get isDeclaration => _isDeclaration; | |
6842 | |
6843 /** | |
6844 * True if the declaration of the method is selected and all references | |
6845 * should be inlined. | |
6846 */ | |
6847 void set isDeclaration(bool value) { | |
6848 assert(value != null); | |
6849 this._isDeclaration = value; | |
6850 } | |
6851 | |
6852 InlineMethodFeedback(String methodName, bool isDeclaration, {String className}
) { | |
6853 this.className = className; | |
6854 this.methodName = methodName; | |
6855 this.isDeclaration = isDeclaration; | |
6856 } | |
6857 | |
6858 factory InlineMethodFeedback.fromJson(JsonDecoder jsonDecoder, String jsonPath
, Object json) { | |
6859 if (json == null) { | |
6860 json = {}; | |
6861 } | |
6862 if (json is Map) { | |
6863 String className; | |
6864 if (json.containsKey("className")) { | |
6865 className = jsonDecoder.decodeString(jsonPath + ".className", json["clas
sName"]); | |
6866 } | |
6867 String methodName; | |
6868 if (json.containsKey("methodName")) { | |
6869 methodName = jsonDecoder.decodeString(jsonPath + ".methodName", json["me
thodName"]); | |
6870 } else { | |
6871 throw jsonDecoder.mismatch(jsonPath, "methodName"); | |
6872 } | |
6873 bool isDeclaration; | |
6874 if (json.containsKey("isDeclaration")) { | |
6875 isDeclaration = jsonDecoder.decodeBool(jsonPath + ".isDeclaration", json
["isDeclaration"]); | |
6876 } else { | |
6877 throw jsonDecoder.mismatch(jsonPath, "isDeclaration"); | |
6878 } | |
6879 return new InlineMethodFeedback(methodName, isDeclaration, className: clas
sName); | |
6880 } else { | |
6881 throw jsonDecoder.mismatch(jsonPath, "inlineMethod feedback", json); | |
6882 } | |
6883 } | |
6884 | |
6885 @override | |
6886 Map<String, dynamic> toJson() { | |
6887 Map<String, dynamic> result = {}; | |
6888 if (className != null) { | |
6889 result["className"] = className; | |
6890 } | |
6891 result["methodName"] = methodName; | |
6892 result["isDeclaration"] = isDeclaration; | |
6893 return result; | |
6894 } | |
6895 | |
6896 @override | |
6897 String toString() => JSON.encode(toJson()); | |
6898 | |
6899 @override | |
6900 bool operator==(other) { | |
6901 if (other is InlineMethodFeedback) { | |
6902 return className == other.className && | |
6903 methodName == other.methodName && | |
6904 isDeclaration == other.isDeclaration; | |
6905 } | |
6906 return false; | |
6907 } | |
6908 | |
6909 @override | |
6910 int get hashCode { | |
6911 int hash = 0; | |
6912 hash = JenkinsSmiHash.combine(hash, className.hashCode); | |
6913 hash = JenkinsSmiHash.combine(hash, methodName.hashCode); | |
6914 hash = JenkinsSmiHash.combine(hash, isDeclaration.hashCode); | |
6915 return JenkinsSmiHash.finish(hash); | |
6916 } | |
6917 } | |
6918 | |
6919 /** | |
6920 * inlineMethod options | |
6921 * | |
6922 * { | |
6923 * "deleteSource": bool | |
6924 * "inlineAll": bool | |
6925 * } | |
6926 * | |
6927 * Clients may not extend, implement or mix-in this class. | |
6928 */ | |
6929 class InlineMethodOptions extends RefactoringOptions { | |
6930 bool _deleteSource; | |
6931 | |
6932 bool _inlineAll; | |
6933 | |
6934 /** | |
6935 * True if the method being inlined should be removed. It is an error if this | |
6936 * field is true and inlineAll is false. | |
6937 */ | |
6938 bool get deleteSource => _deleteSource; | |
6939 | |
6940 /** | |
6941 * True if the method being inlined should be removed. It is an error if this | |
6942 * field is true and inlineAll is false. | |
6943 */ | |
6944 void set deleteSource(bool value) { | |
6945 assert(value != null); | |
6946 this._deleteSource = value; | |
6947 } | |
6948 | |
6949 /** | |
6950 * True if all invocations of the method should be inlined, or false if only | |
6951 * the invocation site used to create this refactoring should be inlined. | |
6952 */ | |
6953 bool get inlineAll => _inlineAll; | |
6954 | |
6955 /** | |
6956 * True if all invocations of the method should be inlined, or false if only | |
6957 * the invocation site used to create this refactoring should be inlined. | |
6958 */ | |
6959 void set inlineAll(bool value) { | |
6960 assert(value != null); | |
6961 this._inlineAll = value; | |
6962 } | |
6963 | |
6964 InlineMethodOptions(bool deleteSource, bool inlineAll) { | |
6965 this.deleteSource = deleteSource; | |
6966 this.inlineAll = inlineAll; | |
6967 } | |
6968 | |
6969 factory InlineMethodOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath,
Object json) { | |
6970 if (json == null) { | |
6971 json = {}; | |
6972 } | |
6973 if (json is Map) { | |
6974 bool deleteSource; | |
6975 if (json.containsKey("deleteSource")) { | |
6976 deleteSource = jsonDecoder.decodeBool(jsonPath + ".deleteSource", json["
deleteSource"]); | |
6977 } else { | |
6978 throw jsonDecoder.mismatch(jsonPath, "deleteSource"); | |
6979 } | |
6980 bool inlineAll; | |
6981 if (json.containsKey("inlineAll")) { | |
6982 inlineAll = jsonDecoder.decodeBool(jsonPath + ".inlineAll", json["inline
All"]); | |
6983 } else { | |
6984 throw jsonDecoder.mismatch(jsonPath, "inlineAll"); | |
6985 } | |
6986 return new InlineMethodOptions(deleteSource, inlineAll); | |
6987 } else { | |
6988 throw jsonDecoder.mismatch(jsonPath, "inlineMethod options", json); | |
6989 } | |
6990 } | |
6991 | |
6992 factory InlineMethodOptions.fromRefactoringParams(EditGetRefactoringParams ref
actoringParams, Request request) { | |
6993 return new InlineMethodOptions.fromJson( | |
6994 new RequestDecoder(request), "options", refactoringParams.options); | |
6995 } | |
6996 | |
6997 @override | |
6998 Map<String, dynamic> toJson() { | |
6999 Map<String, dynamic> result = {}; | |
7000 result["deleteSource"] = deleteSource; | |
7001 result["inlineAll"] = inlineAll; | |
7002 return result; | |
7003 } | |
7004 | |
7005 @override | |
7006 String toString() => JSON.encode(toJson()); | |
7007 | |
7008 @override | |
7009 bool operator==(other) { | |
7010 if (other is InlineMethodOptions) { | |
7011 return deleteSource == other.deleteSource && | |
7012 inlineAll == other.inlineAll; | |
7013 } | |
7014 return false; | |
7015 } | |
7016 | |
7017 @override | |
7018 int get hashCode { | |
7019 int hash = 0; | |
7020 hash = JenkinsSmiHash.combine(hash, deleteSource.hashCode); | |
7021 hash = JenkinsSmiHash.combine(hash, inlineAll.hashCode); | |
7022 return JenkinsSmiHash.finish(hash); | |
7023 } | |
7024 } | |
7025 | |
7026 /** | |
7027 * LinkedEditGroup | |
7028 * | |
7029 * { | |
7030 * "positions": List<Position> | |
7031 * "length": int | |
7032 * "suggestions": List<LinkedEditSuggestion> | |
7033 * } | |
7034 * | |
7035 * Clients may not extend, implement or mix-in this class. | |
7036 */ | |
7037 class LinkedEditGroup implements HasToJson { | |
7038 List<Position> _positions; | |
7039 | |
7040 int _length; | |
7041 | |
7042 List<LinkedEditSuggestion> _suggestions; | |
7043 | |
7044 /** | |
7045 * The positions of the regions that should be edited simultaneously. | |
7046 */ | |
7047 List<Position> get positions => _positions; | |
7048 | |
7049 /** | |
7050 * The positions of the regions that should be edited simultaneously. | |
7051 */ | |
7052 void set positions(List<Position> value) { | |
7053 assert(value != null); | |
7054 this._positions = value; | |
7055 } | |
7056 | |
7057 /** | |
7058 * The length of the regions that should be edited simultaneously. | |
7059 */ | |
7060 int get length => _length; | |
7061 | |
7062 /** | |
7063 * The length of the regions that should be edited simultaneously. | |
7064 */ | |
7065 void set length(int value) { | |
7066 assert(value != null); | |
7067 this._length = value; | |
7068 } | |
7069 | |
7070 /** | |
7071 * Pre-computed suggestions for what every region might want to be changed | |
7072 * to. | |
7073 */ | |
7074 List<LinkedEditSuggestion> get suggestions => _suggestions; | |
7075 | |
7076 /** | |
7077 * Pre-computed suggestions for what every region might want to be changed | |
7078 * to. | |
7079 */ | |
7080 void set suggestions(List<LinkedEditSuggestion> value) { | |
7081 assert(value != null); | |
7082 this._suggestions = value; | |
7083 } | |
7084 | |
7085 LinkedEditGroup(List<Position> positions, int length, List<LinkedEditSuggestio
n> suggestions) { | |
7086 this.positions = positions; | |
7087 this.length = length; | |
7088 this.suggestions = suggestions; | |
7089 } | |
7090 | |
7091 factory LinkedEditGroup.fromJson(JsonDecoder jsonDecoder, String jsonPath, Obj
ect json) { | |
7092 if (json == null) { | |
7093 json = {}; | |
7094 } | |
7095 if (json is Map) { | |
7096 List<Position> positions; | |
7097 if (json.containsKey("positions")) { | |
7098 positions = jsonDecoder.decodeList(jsonPath + ".positions", json["positi
ons"], (String jsonPath, Object json) => new Position.fromJson(jsonDecoder, json
Path, json)); | |
7099 } else { | |
7100 throw jsonDecoder.mismatch(jsonPath, "positions"); | |
7101 } | |
7102 int length; | |
7103 if (json.containsKey("length")) { | |
7104 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
7105 } else { | |
7106 throw jsonDecoder.mismatch(jsonPath, "length"); | |
7107 } | |
7108 List<LinkedEditSuggestion> suggestions; | |
7109 if (json.containsKey("suggestions")) { | |
7110 suggestions = jsonDecoder.decodeList(jsonPath + ".suggestions", json["su
ggestions"], (String jsonPath, Object json) => new LinkedEditSuggestion.fromJson
(jsonDecoder, jsonPath, json)); | |
7111 } else { | |
7112 throw jsonDecoder.mismatch(jsonPath, "suggestions"); | |
7113 } | |
7114 return new LinkedEditGroup(positions, length, suggestions); | |
7115 } else { | |
7116 throw jsonDecoder.mismatch(jsonPath, "LinkedEditGroup", json); | |
7117 } | |
7118 } | |
7119 | |
7120 /** | |
7121 * Construct an empty LinkedEditGroup. | |
7122 */ | |
7123 LinkedEditGroup.empty() : this(<Position>[], 0, <LinkedEditSuggestion>[]); | |
7124 | |
7125 @override | |
7126 Map<String, dynamic> toJson() { | |
7127 Map<String, dynamic> result = {}; | |
7128 result["positions"] = positions.map((Position value) => value.toJson()).toLi
st(); | |
7129 result["length"] = length; | |
7130 result["suggestions"] = suggestions.map((LinkedEditSuggestion value) => valu
e.toJson()).toList(); | |
7131 return result; | |
7132 } | |
7133 | |
7134 /** | |
7135 * Add a new position and change the length. | |
7136 */ | |
7137 void addPosition(Position position, int length) { | |
7138 positions.add(position); | |
7139 this.length = length; | |
7140 } | |
7141 | |
7142 /** | |
7143 * Add a new suggestion. | |
7144 */ | |
7145 void addSuggestion(LinkedEditSuggestion suggestion) { | |
7146 suggestions.add(suggestion); | |
7147 } | |
7148 | |
7149 @override | |
7150 String toString() => JSON.encode(toJson()); | |
7151 | |
7152 @override | |
7153 bool operator==(other) { | |
7154 if (other is LinkedEditGroup) { | |
7155 return listEqual(positions, other.positions, (Position a, Position b) => a
== b) && | |
7156 length == other.length && | |
7157 listEqual(suggestions, other.suggestions, (LinkedEditSuggestion a, Lin
kedEditSuggestion b) => a == b); | |
7158 } | |
7159 return false; | |
7160 } | |
7161 | |
7162 @override | |
7163 int get hashCode { | |
7164 int hash = 0; | |
7165 hash = JenkinsSmiHash.combine(hash, positions.hashCode); | |
7166 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
7167 hash = JenkinsSmiHash.combine(hash, suggestions.hashCode); | |
7168 return JenkinsSmiHash.finish(hash); | |
7169 } | |
7170 } | |
7171 | |
7172 /** | |
7173 * LinkedEditSuggestion | |
7174 * | |
7175 * { | |
7176 * "value": String | |
7177 * "kind": LinkedEditSuggestionKind | |
7178 * } | |
7179 * | |
7180 * Clients may not extend, implement or mix-in this class. | |
7181 */ | |
7182 class LinkedEditSuggestion implements HasToJson { | |
7183 String _value; | |
7184 | |
7185 LinkedEditSuggestionKind _kind; | |
7186 | |
7187 /** | |
7188 * The value that could be used to replace all of the linked edit regions. | |
7189 */ | |
7190 String get value => _value; | |
7191 | |
7192 /** | |
7193 * The value that could be used to replace all of the linked edit regions. | |
7194 */ | |
7195 void set value(String value) { | |
7196 assert(value != null); | |
7197 this._value = value; | |
7198 } | |
7199 | |
7200 /** | |
7201 * The kind of value being proposed. | |
7202 */ | |
7203 LinkedEditSuggestionKind get kind => _kind; | |
7204 | |
7205 /** | |
7206 * The kind of value being proposed. | |
7207 */ | |
7208 void set kind(LinkedEditSuggestionKind value) { | |
7209 assert(value != null); | |
7210 this._kind = value; | |
7211 } | |
7212 | |
7213 LinkedEditSuggestion(String value, LinkedEditSuggestionKind kind) { | |
7214 this.value = value; | |
7215 this.kind = kind; | |
7216 } | |
7217 | |
7218 factory LinkedEditSuggestion.fromJson(JsonDecoder jsonDecoder, String jsonPath
, Object json) { | |
7219 if (json == null) { | |
7220 json = {}; | |
7221 } | |
7222 if (json is Map) { | |
7223 String value; | |
7224 if (json.containsKey("value")) { | |
7225 value = jsonDecoder.decodeString(jsonPath + ".value", json["value"]); | |
7226 } else { | |
7227 throw jsonDecoder.mismatch(jsonPath, "value"); | |
7228 } | |
7229 LinkedEditSuggestionKind kind; | |
7230 if (json.containsKey("kind")) { | |
7231 kind = new LinkedEditSuggestionKind.fromJson(jsonDecoder, jsonPath + ".k
ind", json["kind"]); | |
7232 } else { | |
7233 throw jsonDecoder.mismatch(jsonPath, "kind"); | |
7234 } | |
7235 return new LinkedEditSuggestion(value, kind); | |
7236 } else { | |
7237 throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestion", json); | |
7238 } | |
7239 } | |
7240 | |
7241 @override | |
7242 Map<String, dynamic> toJson() { | |
7243 Map<String, dynamic> result = {}; | |
7244 result["value"] = value; | |
7245 result["kind"] = kind.toJson(); | |
7246 return result; | |
7247 } | |
7248 | |
7249 @override | |
7250 String toString() => JSON.encode(toJson()); | |
7251 | |
7252 @override | |
7253 bool operator==(other) { | |
7254 if (other is LinkedEditSuggestion) { | |
7255 return value == other.value && | |
7256 kind == other.kind; | |
7257 } | |
7258 return false; | |
7259 } | |
7260 | |
7261 @override | |
7262 int get hashCode { | |
7263 int hash = 0; | |
7264 hash = JenkinsSmiHash.combine(hash, value.hashCode); | |
7265 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | |
7266 return JenkinsSmiHash.finish(hash); | |
7267 } | |
7268 } | |
7269 | |
7270 /** | |
7271 * LinkedEditSuggestionKind | |
7272 * | |
7273 * enum { | |
7274 * METHOD | |
7275 * PARAMETER | |
7276 * TYPE | |
7277 * VARIABLE | |
7278 * } | |
7279 * | |
7280 * Clients may not extend, implement or mix-in this class. | |
7281 */ | |
7282 class LinkedEditSuggestionKind implements Enum { | |
7283 static const LinkedEditSuggestionKind METHOD = const LinkedEditSuggestionKind.
_("METHOD"); | |
7284 | |
7285 static const LinkedEditSuggestionKind PARAMETER = const LinkedEditSuggestionKi
nd._("PARAMETER"); | |
7286 | |
7287 static const LinkedEditSuggestionKind TYPE = const LinkedEditSuggestionKind._(
"TYPE"); | |
7288 | |
7289 static const LinkedEditSuggestionKind VARIABLE = const LinkedEditSuggestionKin
d._("VARIABLE"); | |
7290 | |
7291 /** | |
7292 * A list containing all of the enum values that are defined. | |
7293 */ | |
7294 static const List<LinkedEditSuggestionKind> VALUES = const <LinkedEditSuggesti
onKind>[METHOD, PARAMETER, TYPE, VARIABLE]; | |
7295 | |
7296 @override | |
7297 final String name; | |
7298 | |
7299 const LinkedEditSuggestionKind._(this.name); | |
7300 | |
7301 factory LinkedEditSuggestionKind(String name) { | |
7302 switch (name) { | |
7303 case "METHOD": | |
7304 return METHOD; | |
7305 case "PARAMETER": | |
7306 return PARAMETER; | |
7307 case "TYPE": | |
7308 return TYPE; | |
7309 case "VARIABLE": | |
7310 return VARIABLE; | |
7311 } | |
7312 throw new Exception('Illegal enum value: $name'); | |
7313 } | |
7314 | |
7315 factory LinkedEditSuggestionKind.fromJson(JsonDecoder jsonDecoder, String json
Path, Object json) { | |
7316 if (json is String) { | |
7317 try { | |
7318 return new LinkedEditSuggestionKind(json); | |
7319 } catch(_) { | |
7320 // Fall through | |
7321 } | |
7322 } | |
7323 throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestionKind", json); | |
7324 } | |
7325 | |
7326 @override | |
7327 String toString() => "LinkedEditSuggestionKind.$name"; | |
7328 | |
7329 String toJson() => name; | |
7330 } | |
7331 | |
7332 /** | |
7333 * Location | |
7334 * | |
7335 * { | |
7336 * "file": FilePath | |
7337 * "offset": int | |
7338 * "length": int | |
7339 * "startLine": int | |
7340 * "startColumn": int | |
7341 * } | |
7342 * | |
7343 * Clients may not extend, implement or mix-in this class. | |
7344 */ | |
7345 class Location implements HasToJson { | |
7346 String _file; | |
7347 | |
7348 int _offset; | |
7349 | |
7350 int _length; | |
7351 | |
7352 int _startLine; | |
7353 | |
7354 int _startColumn; | |
7355 | |
7356 /** | |
7357 * The file containing the range. | |
7358 */ | |
7359 String get file => _file; | |
7360 | |
7361 /** | |
7362 * The file containing the range. | |
7363 */ | |
7364 void set file(String value) { | |
7365 assert(value != null); | |
7366 this._file = value; | |
7367 } | |
7368 | |
7369 /** | |
7370 * The offset of the range. | |
7371 */ | |
7372 int get offset => _offset; | |
7373 | |
7374 /** | |
7375 * The offset of the range. | |
7376 */ | |
7377 void set offset(int value) { | |
7378 assert(value != null); | |
7379 this._offset = value; | |
7380 } | |
7381 | |
7382 /** | |
7383 * The length of the range. | |
7384 */ | |
7385 int get length => _length; | |
7386 | |
7387 /** | |
7388 * The length of the range. | |
7389 */ | |
7390 void set length(int value) { | |
7391 assert(value != null); | |
7392 this._length = value; | |
7393 } | |
7394 | |
7395 /** | |
7396 * The one-based index of the line containing the first character of the | |
7397 * range. | |
7398 */ | |
7399 int get startLine => _startLine; | |
7400 | |
7401 /** | |
7402 * The one-based index of the line containing the first character of the | |
7403 * range. | |
7404 */ | |
7405 void set startLine(int value) { | |
7406 assert(value != null); | |
7407 this._startLine = value; | |
7408 } | |
7409 | |
7410 /** | |
7411 * The one-based index of the column containing the first character of the | |
7412 * range. | |
7413 */ | |
7414 int get startColumn => _startColumn; | |
7415 | |
7416 /** | |
7417 * The one-based index of the column containing the first character of the | |
7418 * range. | |
7419 */ | |
7420 void set startColumn(int value) { | |
7421 assert(value != null); | |
7422 this._startColumn = value; | |
7423 } | |
7424 | |
7425 Location(String file, int offset, int length, int startLine, int startColumn)
{ | |
7426 this.file = file; | |
7427 this.offset = offset; | |
7428 this.length = length; | |
7429 this.startLine = startLine; | |
7430 this.startColumn = startColumn; | |
7431 } | |
7432 | |
7433 factory Location.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object jso
n) { | |
7434 if (json == null) { | |
7435 json = {}; | |
7436 } | |
7437 if (json is Map) { | |
7438 String file; | |
7439 if (json.containsKey("file")) { | |
7440 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
7441 } else { | |
7442 throw jsonDecoder.mismatch(jsonPath, "file"); | |
7443 } | |
7444 int offset; | |
7445 if (json.containsKey("offset")) { | |
7446 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
7447 } else { | |
7448 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
7449 } | |
7450 int length; | |
7451 if (json.containsKey("length")) { | |
7452 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
7453 } else { | |
7454 throw jsonDecoder.mismatch(jsonPath, "length"); | |
7455 } | |
7456 int startLine; | |
7457 if (json.containsKey("startLine")) { | |
7458 startLine = jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLi
ne"]); | |
7459 } else { | |
7460 throw jsonDecoder.mismatch(jsonPath, "startLine"); | |
7461 } | |
7462 int startColumn; | |
7463 if (json.containsKey("startColumn")) { | |
7464 startColumn = jsonDecoder.decodeInt(jsonPath + ".startColumn", json["sta
rtColumn"]); | |
7465 } else { | |
7466 throw jsonDecoder.mismatch(jsonPath, "startColumn"); | |
7467 } | |
7468 return new Location(file, offset, length, startLine, startColumn); | |
7469 } else { | |
7470 throw jsonDecoder.mismatch(jsonPath, "Location", json); | |
7471 } | |
7472 } | |
7473 | |
7474 @override | |
7475 Map<String, dynamic> toJson() { | |
7476 Map<String, dynamic> result = {}; | |
7477 result["file"] = file; | |
7478 result["offset"] = offset; | |
7479 result["length"] = length; | |
7480 result["startLine"] = startLine; | |
7481 result["startColumn"] = startColumn; | |
7482 return result; | |
7483 } | |
7484 | |
7485 @override | |
7486 String toString() => JSON.encode(toJson()); | |
7487 | |
7488 @override | |
7489 bool operator==(other) { | |
7490 if (other is Location) { | |
7491 return file == other.file && | |
7492 offset == other.offset && | |
7493 length == other.length && | |
7494 startLine == other.startLine && | |
7495 startColumn == other.startColumn; | |
7496 } | |
7497 return false; | |
7498 } | |
7499 | |
7500 @override | |
7501 int get hashCode { | |
7502 int hash = 0; | |
7503 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
7504 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
7505 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
7506 hash = JenkinsSmiHash.combine(hash, startLine.hashCode); | |
7507 hash = JenkinsSmiHash.combine(hash, startColumn.hashCode); | |
7508 return JenkinsSmiHash.finish(hash); | |
7509 } | |
7510 } | |
7511 | |
7512 /** | |
7513 * moveFile feedback | |
7514 * | |
7515 * Clients may not extend, implement or mix-in this class. | |
7516 */ | |
7517 class MoveFileFeedback extends RefactoringFeedback implements HasToJson { | |
7518 @override | |
7519 bool operator==(other) { | |
7520 if (other is MoveFileFeedback) { | |
7521 return true; | |
7522 } | |
7523 return false; | |
7524 } | |
7525 | |
7526 @override | |
7527 int get hashCode { | |
7528 return 438975893; | |
7529 } | |
7530 } | |
7531 | |
7532 /** | |
7533 * moveFile options | |
7534 * | |
7535 * { | |
7536 * "newFile": FilePath | |
7537 * } | |
7538 * | |
7539 * Clients may not extend, implement or mix-in this class. | |
7540 */ | |
7541 class MoveFileOptions extends RefactoringOptions { | |
7542 String _newFile; | |
7543 | |
7544 /** | |
7545 * The new file path to which the given file is being moved. | |
7546 */ | |
7547 String get newFile => _newFile; | |
7548 | |
7549 /** | |
7550 * The new file path to which the given file is being moved. | |
7551 */ | |
7552 void set newFile(String value) { | |
7553 assert(value != null); | |
7554 this._newFile = value; | |
7555 } | |
7556 | |
7557 MoveFileOptions(String newFile) { | |
7558 this.newFile = newFile; | |
7559 } | |
7560 | |
7561 factory MoveFileOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath, Obj
ect json) { | |
7562 if (json == null) { | |
7563 json = {}; | |
7564 } | |
7565 if (json is Map) { | |
7566 String newFile; | |
7567 if (json.containsKey("newFile")) { | |
7568 newFile = jsonDecoder.decodeString(jsonPath + ".newFile", json["newFile"
]); | |
7569 } else { | |
7570 throw jsonDecoder.mismatch(jsonPath, "newFile"); | |
7571 } | |
7572 return new MoveFileOptions(newFile); | |
7573 } else { | |
7574 throw jsonDecoder.mismatch(jsonPath, "moveFile options", json); | |
7575 } | |
7576 } | |
7577 | |
7578 factory MoveFileOptions.fromRefactoringParams(EditGetRefactoringParams refacto
ringParams, Request request) { | |
7579 return new MoveFileOptions.fromJson( | |
7580 new RequestDecoder(request), "options", refactoringParams.options); | |
7581 } | |
7582 | |
7583 @override | |
7584 Map<String, dynamic> toJson() { | |
7585 Map<String, dynamic> result = {}; | |
7586 result["newFile"] = newFile; | |
7587 return result; | |
7588 } | |
7589 | |
7590 @override | |
7591 String toString() => JSON.encode(toJson()); | |
7592 | |
7593 @override | |
7594 bool operator==(other) { | |
7595 if (other is MoveFileOptions) { | |
7596 return newFile == other.newFile; | |
7597 } | |
7598 return false; | |
7599 } | |
7600 | |
7601 @override | |
7602 int get hashCode { | |
7603 int hash = 0; | |
7604 hash = JenkinsSmiHash.combine(hash, newFile.hashCode); | |
7605 return JenkinsSmiHash.finish(hash); | |
7606 } | |
7607 } | |
7608 | |
7609 /** | |
7610 * NavigationRegion | |
7611 * | |
7612 * { | |
7613 * "offset": int | |
7614 * "length": int | |
7615 * "targets": List<int> | |
7616 * } | |
7617 * | |
7618 * Clients may not extend, implement or mix-in this class. | |
7619 */ | |
7620 class NavigationRegion implements HasToJson { | |
7621 int _offset; | |
7622 | |
7623 int _length; | |
7624 | |
7625 List<int> _targets; | |
7626 | |
7627 /** | |
7628 * The offset of the region from which the user can navigate. | |
7629 */ | |
7630 int get offset => _offset; | |
7631 | |
7632 /** | |
7633 * The offset of the region from which the user can navigate. | |
7634 */ | |
7635 void set offset(int value) { | |
7636 assert(value != null); | |
7637 this._offset = value; | |
7638 } | |
7639 | |
7640 /** | |
7641 * The length of the region from which the user can navigate. | |
7642 */ | |
7643 int get length => _length; | |
7644 | |
7645 /** | |
7646 * The length of the region from which the user can navigate. | |
7647 */ | |
7648 void set length(int value) { | |
7649 assert(value != null); | |
7650 this._length = value; | |
7651 } | |
7652 | |
7653 /** | |
7654 * The indexes of the targets (in the enclosing navigation response) to which | |
7655 * the given region is bound. By opening the target, clients can implement | |
7656 * one form of navigation. This list cannot be empty. | |
7657 */ | |
7658 List<int> get targets => _targets; | |
7659 | |
7660 /** | |
7661 * The indexes of the targets (in the enclosing navigation response) to which | |
7662 * the given region is bound. By opening the target, clients can implement | |
7663 * one form of navigation. This list cannot be empty. | |
7664 */ | |
7665 void set targets(List<int> value) { | |
7666 assert(value != null); | |
7667 this._targets = value; | |
7668 } | |
7669 | |
7670 NavigationRegion(int offset, int length, List<int> targets) { | |
7671 this.offset = offset; | |
7672 this.length = length; | |
7673 this.targets = targets; | |
7674 } | |
7675 | |
7676 factory NavigationRegion.fromJson(JsonDecoder jsonDecoder, String jsonPath, Ob
ject json) { | |
7677 if (json == null) { | |
7678 json = {}; | |
7679 } | |
7680 if (json is Map) { | |
7681 int offset; | |
7682 if (json.containsKey("offset")) { | |
7683 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
7684 } else { | |
7685 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
7686 } | |
7687 int length; | |
7688 if (json.containsKey("length")) { | |
7689 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
7690 } else { | |
7691 throw jsonDecoder.mismatch(jsonPath, "length"); | |
7692 } | |
7693 List<int> targets; | |
7694 if (json.containsKey("targets")) { | |
7695 targets = jsonDecoder.decodeList(jsonPath + ".targets", json["targets"],
jsonDecoder.decodeInt); | |
7696 } else { | |
7697 throw jsonDecoder.mismatch(jsonPath, "targets"); | |
7698 } | |
7699 return new NavigationRegion(offset, length, targets); | |
7700 } else { | |
7701 throw jsonDecoder.mismatch(jsonPath, "NavigationRegion", json); | |
7702 } | |
7703 } | |
7704 | |
7705 @override | |
7706 Map<String, dynamic> toJson() { | |
7707 Map<String, dynamic> result = {}; | |
7708 result["offset"] = offset; | |
7709 result["length"] = length; | |
7710 result["targets"] = targets; | |
7711 return result; | |
7712 } | |
7713 | |
7714 @override | |
7715 String toString() => JSON.encode(toJson()); | |
7716 | |
7717 @override | |
7718 bool operator==(other) { | |
7719 if (other is NavigationRegion) { | |
7720 return offset == other.offset && | |
7721 length == other.length && | |
7722 listEqual(targets, other.targets, (int a, int b) => a == b); | |
7723 } | |
7724 return false; | |
7725 } | |
7726 | |
7727 @override | |
7728 int get hashCode { | |
7729 int hash = 0; | |
7730 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
7731 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
7732 hash = JenkinsSmiHash.combine(hash, targets.hashCode); | |
7733 return JenkinsSmiHash.finish(hash); | |
7734 } | |
7735 } | |
7736 | |
7737 /** | |
7738 * NavigationTarget | |
7739 * | |
7740 * { | |
7741 * "kind": ElementKind | |
7742 * "fileIndex": int | |
7743 * "offset": int | |
7744 * "length": int | |
7745 * "startLine": int | |
7746 * "startColumn": int | |
7747 * } | |
7748 * | |
7749 * Clients may not extend, implement or mix-in this class. | |
7750 */ | |
7751 class NavigationTarget implements HasToJson { | |
7752 ElementKind _kind; | |
7753 | |
7754 int _fileIndex; | |
7755 | |
7756 int _offset; | |
7757 | |
7758 int _length; | |
7759 | |
7760 int _startLine; | |
7761 | |
7762 int _startColumn; | |
7763 | |
7764 /** | |
7765 * The kind of the element. | |
7766 */ | |
7767 ElementKind get kind => _kind; | |
7768 | |
7769 /** | |
7770 * The kind of the element. | |
7771 */ | |
7772 void set kind(ElementKind value) { | |
7773 assert(value != null); | |
7774 this._kind = value; | |
7775 } | |
7776 | |
7777 /** | |
7778 * The index of the file (in the enclosing navigation response) to navigate | |
7779 * to. | |
7780 */ | |
7781 int get fileIndex => _fileIndex; | |
7782 | |
7783 /** | |
7784 * The index of the file (in the enclosing navigation response) to navigate | |
7785 * to. | |
7786 */ | |
7787 void set fileIndex(int value) { | |
7788 assert(value != null); | |
7789 this._fileIndex = value; | |
7790 } | |
7791 | |
7792 /** | |
7793 * The offset of the region to which the user can navigate. | |
7794 */ | |
7795 int get offset => _offset; | |
7796 | |
7797 /** | |
7798 * The offset of the region to which the user can navigate. | |
7799 */ | |
7800 void set offset(int value) { | |
7801 assert(value != null); | |
7802 this._offset = value; | |
7803 } | |
7804 | |
7805 /** | |
7806 * The length of the region to which the user can navigate. | |
7807 */ | |
7808 int get length => _length; | |
7809 | |
7810 /** | |
7811 * The length of the region to which the user can navigate. | |
7812 */ | |
7813 void set length(int value) { | |
7814 assert(value != null); | |
7815 this._length = value; | |
7816 } | |
7817 | |
7818 /** | |
7819 * The one-based index of the line containing the first character of the | |
7820 * region. | |
7821 */ | |
7822 int get startLine => _startLine; | |
7823 | |
7824 /** | |
7825 * The one-based index of the line containing the first character of the | |
7826 * region. | |
7827 */ | |
7828 void set startLine(int value) { | |
7829 assert(value != null); | |
7830 this._startLine = value; | |
7831 } | |
7832 | |
7833 /** | |
7834 * The one-based index of the column containing the first character of the | |
7835 * region. | |
7836 */ | |
7837 int get startColumn => _startColumn; | |
7838 | |
7839 /** | |
7840 * The one-based index of the column containing the first character of the | |
7841 * region. | |
7842 */ | |
7843 void set startColumn(int value) { | |
7844 assert(value != null); | |
7845 this._startColumn = value; | |
7846 } | |
7847 | |
7848 NavigationTarget(ElementKind kind, int fileIndex, int offset, int length, int
startLine, int startColumn) { | |
7849 this.kind = kind; | |
7850 this.fileIndex = fileIndex; | |
7851 this.offset = offset; | |
7852 this.length = length; | |
7853 this.startLine = startLine; | |
7854 this.startColumn = startColumn; | |
7855 } | |
7856 | |
7857 factory NavigationTarget.fromJson(JsonDecoder jsonDecoder, String jsonPath, Ob
ject json) { | |
7858 if (json == null) { | |
7859 json = {}; | |
7860 } | |
7861 if (json is Map) { | |
7862 ElementKind kind; | |
7863 if (json.containsKey("kind")) { | |
7864 kind = new ElementKind.fromJson(jsonDecoder, jsonPath + ".kind", json["k
ind"]); | |
7865 } else { | |
7866 throw jsonDecoder.mismatch(jsonPath, "kind"); | |
7867 } | |
7868 int fileIndex; | |
7869 if (json.containsKey("fileIndex")) { | |
7870 fileIndex = jsonDecoder.decodeInt(jsonPath + ".fileIndex", json["fileInd
ex"]); | |
7871 } else { | |
7872 throw jsonDecoder.mismatch(jsonPath, "fileIndex"); | |
7873 } | |
7874 int offset; | |
7875 if (json.containsKey("offset")) { | |
7876 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
7877 } else { | |
7878 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
7879 } | |
7880 int length; | |
7881 if (json.containsKey("length")) { | |
7882 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
7883 } else { | |
7884 throw jsonDecoder.mismatch(jsonPath, "length"); | |
7885 } | |
7886 int startLine; | |
7887 if (json.containsKey("startLine")) { | |
7888 startLine = jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLi
ne"]); | |
7889 } else { | |
7890 throw jsonDecoder.mismatch(jsonPath, "startLine"); | |
7891 } | |
7892 int startColumn; | |
7893 if (json.containsKey("startColumn")) { | |
7894 startColumn = jsonDecoder.decodeInt(jsonPath + ".startColumn", json["sta
rtColumn"]); | |
7895 } else { | |
7896 throw jsonDecoder.mismatch(jsonPath, "startColumn"); | |
7897 } | |
7898 return new NavigationTarget(kind, fileIndex, offset, length, startLine, st
artColumn); | |
7899 } else { | |
7900 throw jsonDecoder.mismatch(jsonPath, "NavigationTarget", json); | |
7901 } | |
7902 } | |
7903 | |
7904 @override | |
7905 Map<String, dynamic> toJson() { | |
7906 Map<String, dynamic> result = {}; | |
7907 result["kind"] = kind.toJson(); | |
7908 result["fileIndex"] = fileIndex; | |
7909 result["offset"] = offset; | |
7910 result["length"] = length; | |
7911 result["startLine"] = startLine; | |
7912 result["startColumn"] = startColumn; | |
7913 return result; | |
7914 } | |
7915 | |
7916 @override | |
7917 String toString() => JSON.encode(toJson()); | |
7918 | |
7919 @override | |
7920 bool operator==(other) { | |
7921 if (other is NavigationTarget) { | |
7922 return kind == other.kind && | |
7923 fileIndex == other.fileIndex && | |
7924 offset == other.offset && | |
7925 length == other.length && | |
7926 startLine == other.startLine && | |
7927 startColumn == other.startColumn; | |
7928 } | |
7929 return false; | |
7930 } | |
7931 | |
7932 @override | |
7933 int get hashCode { | |
7934 int hash = 0; | |
7935 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | |
7936 hash = JenkinsSmiHash.combine(hash, fileIndex.hashCode); | |
7937 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
7938 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
7939 hash = JenkinsSmiHash.combine(hash, startLine.hashCode); | |
7940 hash = JenkinsSmiHash.combine(hash, startColumn.hashCode); | |
7941 return JenkinsSmiHash.finish(hash); | |
7942 } | |
7943 } | |
7944 | |
7945 /** | |
7946 * Occurrences | |
7947 * | |
7948 * { | |
7949 * "element": Element | |
7950 * "offsets": List<int> | |
7951 * "length": int | |
7952 * } | |
7953 * | |
7954 * Clients may not extend, implement or mix-in this class. | |
7955 */ | |
7956 class Occurrences implements HasToJson { | |
7957 Element _element; | |
7958 | |
7959 List<int> _offsets; | |
7960 | |
7961 int _length; | |
7962 | |
7963 /** | |
7964 * The element that was referenced. | |
7965 */ | |
7966 Element get element => _element; | |
7967 | |
7968 /** | |
7969 * The element that was referenced. | |
7970 */ | |
7971 void set element(Element value) { | |
7972 assert(value != null); | |
7973 this._element = value; | |
7974 } | |
7975 | |
7976 /** | |
7977 * The offsets of the name of the referenced element within the file. | |
7978 */ | |
7979 List<int> get offsets => _offsets; | |
7980 | |
7981 /** | |
7982 * The offsets of the name of the referenced element within the file. | |
7983 */ | |
7984 void set offsets(List<int> value) { | |
7985 assert(value != null); | |
7986 this._offsets = value; | |
7987 } | |
7988 | |
7989 /** | |
7990 * The length of the name of the referenced element. | |
7991 */ | |
7992 int get length => _length; | |
7993 | |
7994 /** | |
7995 * The length of the name of the referenced element. | |
7996 */ | |
7997 void set length(int value) { | |
7998 assert(value != null); | |
7999 this._length = value; | |
8000 } | |
8001 | |
8002 Occurrences(Element element, List<int> offsets, int length) { | |
8003 this.element = element; | |
8004 this.offsets = offsets; | |
8005 this.length = length; | |
8006 } | |
8007 | |
8008 factory Occurrences.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object
json) { | |
8009 if (json == null) { | |
8010 json = {}; | |
8011 } | |
8012 if (json is Map) { | |
8013 Element element; | |
8014 if (json.containsKey("element")) { | |
8015 element = new Element.fromJson(jsonDecoder, jsonPath + ".element", json[
"element"]); | |
8016 } else { | |
8017 throw jsonDecoder.mismatch(jsonPath, "element"); | |
8018 } | |
8019 List<int> offsets; | |
8020 if (json.containsKey("offsets")) { | |
8021 offsets = jsonDecoder.decodeList(jsonPath + ".offsets", json["offsets"],
jsonDecoder.decodeInt); | |
8022 } else { | |
8023 throw jsonDecoder.mismatch(jsonPath, "offsets"); | |
8024 } | |
8025 int length; | |
8026 if (json.containsKey("length")) { | |
8027 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
8028 } else { | |
8029 throw jsonDecoder.mismatch(jsonPath, "length"); | |
8030 } | |
8031 return new Occurrences(element, offsets, length); | |
8032 } else { | |
8033 throw jsonDecoder.mismatch(jsonPath, "Occurrences", json); | |
8034 } | |
8035 } | |
8036 | |
8037 @override | |
8038 Map<String, dynamic> toJson() { | |
8039 Map<String, dynamic> result = {}; | |
8040 result["element"] = element.toJson(); | |
8041 result["offsets"] = offsets; | |
8042 result["length"] = length; | |
8043 return result; | |
8044 } | |
8045 | |
8046 @override | |
8047 String toString() => JSON.encode(toJson()); | |
8048 | |
8049 @override | |
8050 bool operator==(other) { | |
8051 if (other is Occurrences) { | |
8052 return element == other.element && | |
8053 listEqual(offsets, other.offsets, (int a, int b) => a == b) && | |
8054 length == other.length; | |
8055 } | |
8056 return false; | |
8057 } | |
8058 | |
8059 @override | |
8060 int get hashCode { | |
8061 int hash = 0; | |
8062 hash = JenkinsSmiHash.combine(hash, element.hashCode); | |
8063 hash = JenkinsSmiHash.combine(hash, offsets.hashCode); | |
8064 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
8065 return JenkinsSmiHash.finish(hash); | |
8066 } | |
8067 } | |
8068 | |
8069 /** | |
8070 * Outline | |
8071 * | |
8072 * { | |
8073 * "element": Element | |
8074 * "offset": int | |
8075 * "length": int | |
8076 * "children": optional List<Outline> | |
8077 * } | |
8078 * | |
8079 * Clients may not extend, implement or mix-in this class. | |
8080 */ | |
8081 class Outline implements HasToJson { | |
8082 Element _element; | |
8083 | |
8084 int _offset; | |
8085 | |
8086 int _length; | |
8087 | |
8088 List<Outline> _children; | |
8089 | |
8090 /** | |
8091 * A description of the element represented by this node. | |
8092 */ | |
8093 Element get element => _element; | |
8094 | |
8095 /** | |
8096 * A description of the element represented by this node. | |
8097 */ | |
8098 void set element(Element value) { | |
8099 assert(value != null); | |
8100 this._element = value; | |
8101 } | |
8102 | |
8103 /** | |
8104 * The offset of the first character of the element. This is different than | |
8105 * the offset in the Element, which is the offset of the name of the element. | |
8106 * It can be used, for example, to map locations in the file back to an | |
8107 * outline. | |
8108 */ | |
8109 int get offset => _offset; | |
8110 | |
8111 /** | |
8112 * The offset of the first character of the element. This is different than | |
8113 * the offset in the Element, which is the offset of the name of the element. | |
8114 * It can be used, for example, to map locations in the file back to an | |
8115 * outline. | |
8116 */ | |
8117 void set offset(int value) { | |
8118 assert(value != null); | |
8119 this._offset = value; | |
8120 } | |
8121 | |
8122 /** | |
8123 * The length of the element. | |
8124 */ | |
8125 int get length => _length; | |
8126 | |
8127 /** | |
8128 * The length of the element. | |
8129 */ | |
8130 void set length(int value) { | |
8131 assert(value != null); | |
8132 this._length = value; | |
8133 } | |
8134 | |
8135 /** | |
8136 * The children of the node. The field will be omitted if the node has no | |
8137 * children. | |
8138 */ | |
8139 List<Outline> get children => _children; | |
8140 | |
8141 /** | |
8142 * The children of the node. The field will be omitted if the node has no | |
8143 * children. | |
8144 */ | |
8145 void set children(List<Outline> value) { | |
8146 this._children = value; | |
8147 } | |
8148 | |
8149 Outline(Element element, int offset, int length, {List<Outline> children}) { | |
8150 this.element = element; | |
8151 this.offset = offset; | |
8152 this.length = length; | |
8153 this.children = children; | |
8154 } | |
8155 | |
8156 factory Outline.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object json
) { | |
8157 if (json == null) { | |
8158 json = {}; | |
8159 } | |
8160 if (json is Map) { | |
8161 Element element; | |
8162 if (json.containsKey("element")) { | |
8163 element = new Element.fromJson(jsonDecoder, jsonPath + ".element", json[
"element"]); | |
8164 } else { | |
8165 throw jsonDecoder.mismatch(jsonPath, "element"); | |
8166 } | |
8167 int offset; | |
8168 if (json.containsKey("offset")) { | |
8169 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
8170 } else { | |
8171 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
8172 } | |
8173 int length; | |
8174 if (json.containsKey("length")) { | |
8175 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
8176 } else { | |
8177 throw jsonDecoder.mismatch(jsonPath, "length"); | |
8178 } | |
8179 List<Outline> children; | |
8180 if (json.containsKey("children")) { | |
8181 children = jsonDecoder.decodeList(jsonPath + ".children", json["children
"], (String jsonPath, Object json) => new Outline.fromJson(jsonDecoder, jsonPath
, json)); | |
8182 } | |
8183 return new Outline(element, offset, length, children: children); | |
8184 } else { | |
8185 throw jsonDecoder.mismatch(jsonPath, "Outline", json); | |
8186 } | |
8187 } | |
8188 | |
8189 @override | |
8190 Map<String, dynamic> toJson() { | |
8191 Map<String, dynamic> result = {}; | |
8192 result["element"] = element.toJson(); | |
8193 result["offset"] = offset; | |
8194 result["length"] = length; | |
8195 if (children != null) { | |
8196 result["children"] = children.map((Outline value) => value.toJson()).toLis
t(); | |
8197 } | |
8198 return result; | |
8199 } | |
8200 | |
8201 @override | |
8202 String toString() => JSON.encode(toJson()); | |
8203 | |
8204 @override | |
8205 bool operator==(other) { | |
8206 if (other is Outline) { | |
8207 return element == other.element && | |
8208 offset == other.offset && | |
8209 length == other.length && | |
8210 listEqual(children, other.children, (Outline a, Outline b) => a == b); | |
8211 } | |
8212 return false; | |
8213 } | |
8214 | |
8215 @override | |
8216 int get hashCode { | |
8217 int hash = 0; | |
8218 hash = JenkinsSmiHash.combine(hash, element.hashCode); | |
8219 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
8220 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
8221 hash = JenkinsSmiHash.combine(hash, children.hashCode); | |
8222 return JenkinsSmiHash.finish(hash); | |
8223 } | |
8224 } | |
8225 | |
8226 /** | |
8227 * plugin.error params | |
8228 * | |
8229 * { | |
8230 * "isFatal": bool | |
8231 * "message": String | |
8232 * "stackTrace": String | |
8233 * } | |
8234 * | |
8235 * Clients may not extend, implement or mix-in this class. | |
8236 */ | |
8237 class PluginErrorParams implements HasToJson { | |
8238 bool _isFatal; | |
8239 | |
8240 String _message; | |
8241 | |
8242 String _stackTrace; | |
8243 | |
8244 /** | |
8245 * A flag indicating whether the error is a fatal error, meaning that the | |
8246 * plugin will shutdown automatically after sending this notification. If | |
8247 * true, the server will not expect any other responses or notifications from | |
8248 * the plugin. | |
8249 */ | |
8250 bool get isFatal => _isFatal; | |
8251 | |
8252 /** | |
8253 * A flag indicating whether the error is a fatal error, meaning that the | |
8254 * plugin will shutdown automatically after sending this notification. If | |
8255 * true, the server will not expect any other responses or notifications from | |
8256 * the plugin. | |
8257 */ | |
8258 void set isFatal(bool value) { | |
8259 assert(value != null); | |
8260 this._isFatal = value; | |
8261 } | |
8262 | |
8263 /** | |
8264 * The error message indicating what kind of error was encountered. | |
8265 */ | |
8266 String get message => _message; | |
8267 | |
8268 /** | |
8269 * The error message indicating what kind of error was encountered. | |
8270 */ | |
8271 void set message(String value) { | |
8272 assert(value != null); | |
8273 this._message = value; | |
8274 } | |
8275 | |
8276 /** | |
8277 * The stack trace associated with the generation of the error, used for | |
8278 * debugging the plugin. | |
8279 */ | |
8280 String get stackTrace => _stackTrace; | |
8281 | |
8282 /** | |
8283 * The stack trace associated with the generation of the error, used for | |
8284 * debugging the plugin. | |
8285 */ | |
8286 void set stackTrace(String value) { | |
8287 assert(value != null); | |
8288 this._stackTrace = value; | |
8289 } | |
8290 | |
8291 PluginErrorParams(bool isFatal, String message, String stackTrace) { | |
8292 this.isFatal = isFatal; | |
8293 this.message = message; | |
8294 this.stackTrace = stackTrace; | |
8295 } | |
8296 | |
8297 factory PluginErrorParams.fromJson(JsonDecoder jsonDecoder, String jsonPath, O
bject json) { | |
8298 if (json == null) { | |
8299 json = {}; | |
8300 } | |
8301 if (json is Map) { | |
8302 bool isFatal; | |
8303 if (json.containsKey("isFatal")) { | |
8304 isFatal = jsonDecoder.decodeBool(jsonPath + ".isFatal", json["isFatal"])
; | |
8305 } else { | |
8306 throw jsonDecoder.mismatch(jsonPath, "isFatal"); | |
8307 } | |
8308 String message; | |
8309 if (json.containsKey("message")) { | |
8310 message = jsonDecoder.decodeString(jsonPath + ".message", json["message"
]); | |
8311 } else { | |
8312 throw jsonDecoder.mismatch(jsonPath, "message"); | |
8313 } | |
8314 String stackTrace; | |
8315 if (json.containsKey("stackTrace")) { | |
8316 stackTrace = jsonDecoder.decodeString(jsonPath + ".stackTrace", json["st
ackTrace"]); | |
8317 } else { | |
8318 throw jsonDecoder.mismatch(jsonPath, "stackTrace"); | |
8319 } | |
8320 return new PluginErrorParams(isFatal, message, stackTrace); | |
8321 } else { | |
8322 throw jsonDecoder.mismatch(jsonPath, "plugin.error params", json); | |
8323 } | |
8324 } | |
8325 | |
8326 factory PluginErrorParams.fromNotification(Notification notification) { | |
8327 return new PluginErrorParams.fromJson( | |
8328 new ResponseDecoder(null), "params", notification.params); | |
8329 } | |
8330 | |
8331 @override | |
8332 Map<String, dynamic> toJson() { | |
8333 Map<String, dynamic> result = {}; | |
8334 result["isFatal"] = isFatal; | |
8335 result["message"] = message; | |
8336 result["stackTrace"] = stackTrace; | |
8337 return result; | |
8338 } | |
8339 | |
8340 Notification toNotification() { | |
8341 return new Notification("plugin.error", toJson()); | |
8342 } | |
8343 | |
8344 @override | |
8345 String toString() => JSON.encode(toJson()); | |
8346 | |
8347 @override | |
8348 bool operator==(other) { | |
8349 if (other is PluginErrorParams) { | |
8350 return isFatal == other.isFatal && | |
8351 message == other.message && | |
8352 stackTrace == other.stackTrace; | |
8353 } | |
8354 return false; | |
8355 } | |
8356 | |
8357 @override | |
8358 int get hashCode { | |
8359 int hash = 0; | |
8360 hash = JenkinsSmiHash.combine(hash, isFatal.hashCode); | |
8361 hash = JenkinsSmiHash.combine(hash, message.hashCode); | |
8362 hash = JenkinsSmiHash.combine(hash, stackTrace.hashCode); | |
8363 return JenkinsSmiHash.finish(hash); | |
8364 } | |
8365 } | |
8366 | |
8367 /** | |
8368 * plugin.shutdown params | |
8369 * | |
8370 * Clients may not extend, implement or mix-in this class. | |
8371 */ | |
8372 class PluginShutdownParams implements RequestParams { | |
8373 @override | |
8374 Map<String, dynamic> toJson() => <String, dynamic>{}; | |
8375 | |
8376 @override | |
8377 Request toRequest(String id) { | |
8378 return new Request(id, "plugin.shutdown", null); | |
8379 } | |
8380 | |
8381 @override | |
8382 bool operator==(other) { | |
8383 if (other is PluginShutdownParams) { | |
8384 return true; | |
8385 } | |
8386 return false; | |
8387 } | |
8388 | |
8389 @override | |
8390 int get hashCode { | |
8391 return 478064585; | |
8392 } | |
8393 } | |
8394 | |
8395 /** | |
8396 * plugin.shutdown result | |
8397 * | |
8398 * Clients may not extend, implement or mix-in this class. | |
8399 */ | |
8400 class PluginShutdownResult implements ResponseResult { | |
8401 @override | |
8402 Map<String, dynamic> toJson() => <String, dynamic>{}; | |
8403 | |
8404 @override | |
8405 Response toResponse(String id) { | |
8406 return new Response(id, result: null); | |
8407 } | |
8408 | |
8409 @override | |
8410 bool operator==(other) { | |
8411 if (other is PluginShutdownResult) { | |
8412 return true; | |
8413 } | |
8414 return false; | |
8415 } | |
8416 | |
8417 @override | |
8418 int get hashCode { | |
8419 return 9389109; | |
8420 } | |
8421 } | |
8422 | |
8423 /** | |
8424 * plugin.versionCheck params | |
8425 * | |
8426 * { | |
8427 * "byteStorePath": String | |
8428 * "version": String | |
8429 * } | |
8430 * | |
8431 * Clients may not extend, implement or mix-in this class. | |
8432 */ | |
8433 class PluginVersionCheckParams implements RequestParams { | |
8434 String _byteStorePath; | |
8435 | |
8436 String _version; | |
8437 | |
8438 /** | |
8439 * The path to the directory containing the on-disk byte store that is to be | |
8440 * used by any analysis drivers that are created. | |
8441 */ | |
8442 String get byteStorePath => _byteStorePath; | |
8443 | |
8444 /** | |
8445 * The path to the directory containing the on-disk byte store that is to be | |
8446 * used by any analysis drivers that are created. | |
8447 */ | |
8448 void set byteStorePath(String value) { | |
8449 assert(value != null); | |
8450 this._byteStorePath = value; | |
8451 } | |
8452 | |
8453 /** | |
8454 * The version number of the plugin spec supported by the analysis server | |
8455 * that is executing the plugin. | |
8456 */ | |
8457 String get version => _version; | |
8458 | |
8459 /** | |
8460 * The version number of the plugin spec supported by the analysis server | |
8461 * that is executing the plugin. | |
8462 */ | |
8463 void set version(String value) { | |
8464 assert(value != null); | |
8465 this._version = value; | |
8466 } | |
8467 | |
8468 PluginVersionCheckParams(String byteStorePath, String version) { | |
8469 this.byteStorePath = byteStorePath; | |
8470 this.version = version; | |
8471 } | |
8472 | |
8473 factory PluginVersionCheckParams.fromJson(JsonDecoder jsonDecoder, String json
Path, Object json) { | |
8474 if (json == null) { | |
8475 json = {}; | |
8476 } | |
8477 if (json is Map) { | |
8478 String byteStorePath; | |
8479 if (json.containsKey("byteStorePath")) { | |
8480 byteStorePath = jsonDecoder.decodeString(jsonPath + ".byteStorePath", js
on["byteStorePath"]); | |
8481 } else { | |
8482 throw jsonDecoder.mismatch(jsonPath, "byteStorePath"); | |
8483 } | |
8484 String version; | |
8485 if (json.containsKey("version")) { | |
8486 version = jsonDecoder.decodeString(jsonPath + ".version", json["version"
]); | |
8487 } else { | |
8488 throw jsonDecoder.mismatch(jsonPath, "version"); | |
8489 } | |
8490 return new PluginVersionCheckParams(byteStorePath, version); | |
8491 } else { | |
8492 throw jsonDecoder.mismatch(jsonPath, "plugin.versionCheck params", json); | |
8493 } | |
8494 } | |
8495 | |
8496 factory PluginVersionCheckParams.fromRequest(Request request) { | |
8497 return new PluginVersionCheckParams.fromJson( | |
8498 new RequestDecoder(request), "params", request.params); | |
8499 } | |
8500 | |
8501 @override | |
8502 Map<String, dynamic> toJson() { | |
8503 Map<String, dynamic> result = {}; | |
8504 result["byteStorePath"] = byteStorePath; | |
8505 result["version"] = version; | |
8506 return result; | |
8507 } | |
8508 | |
8509 @override | |
8510 Request toRequest(String id) { | |
8511 return new Request(id, "plugin.versionCheck", toJson()); | |
8512 } | |
8513 | |
8514 @override | |
8515 String toString() => JSON.encode(toJson()); | |
8516 | |
8517 @override | |
8518 bool operator==(other) { | |
8519 if (other is PluginVersionCheckParams) { | |
8520 return byteStorePath == other.byteStorePath && | |
8521 version == other.version; | |
8522 } | |
8523 return false; | |
8524 } | |
8525 | |
8526 @override | |
8527 int get hashCode { | |
8528 int hash = 0; | |
8529 hash = JenkinsSmiHash.combine(hash, byteStorePath.hashCode); | |
8530 hash = JenkinsSmiHash.combine(hash, version.hashCode); | |
8531 return JenkinsSmiHash.finish(hash); | |
8532 } | |
8533 } | |
8534 | |
8535 /** | |
8536 * plugin.versionCheck result | |
8537 * | |
8538 * { | |
8539 * "isCompatible": bool | |
8540 * "name": String | |
8541 * "version": String | |
8542 * "contactInfo": optional String | |
8543 * "interestingFiles": List<String> | |
8544 * } | |
8545 * | |
8546 * Clients may not extend, implement or mix-in this class. | |
8547 */ | |
8548 class PluginVersionCheckResult implements ResponseResult { | |
8549 bool _isCompatible; | |
8550 | |
8551 String _name; | |
8552 | |
8553 String _version; | |
8554 | |
8555 String _contactInfo; | |
8556 | |
8557 List<String> _interestingFiles; | |
8558 | |
8559 /** | |
8560 * A flag indicating whether the plugin supports the same version of the | |
8561 * plugin spec as the analysis server. If the value is false, then the plugin | |
8562 * is expected to shutdown after returning the response. | |
8563 */ | |
8564 bool get isCompatible => _isCompatible; | |
8565 | |
8566 /** | |
8567 * A flag indicating whether the plugin supports the same version of the | |
8568 * plugin spec as the analysis server. If the value is false, then the plugin | |
8569 * is expected to shutdown after returning the response. | |
8570 */ | |
8571 void set isCompatible(bool value) { | |
8572 assert(value != null); | |
8573 this._isCompatible = value; | |
8574 } | |
8575 | |
8576 /** | |
8577 * The name of the plugin. This value is only used when the server needs to | |
8578 * identify the plugin, either to the user or for debugging purposes. | |
8579 */ | |
8580 String get name => _name; | |
8581 | |
8582 /** | |
8583 * The name of the plugin. This value is only used when the server needs to | |
8584 * identify the plugin, either to the user or for debugging purposes. | |
8585 */ | |
8586 void set name(String value) { | |
8587 assert(value != null); | |
8588 this._name = value; | |
8589 } | |
8590 | |
8591 /** | |
8592 * The version of the plugin. This value is only used when the server needs | |
8593 * to identify the plugin, either to the user or for debugging purposes. | |
8594 */ | |
8595 String get version => _version; | |
8596 | |
8597 /** | |
8598 * The version of the plugin. This value is only used when the server needs | |
8599 * to identify the plugin, either to the user or for debugging purposes. | |
8600 */ | |
8601 void set version(String value) { | |
8602 assert(value != null); | |
8603 this._version = value; | |
8604 } | |
8605 | |
8606 /** | |
8607 * Information that the user can use to use to contact the maintainers of the | |
8608 * plugin when there is a problem. | |
8609 */ | |
8610 String get contactInfo => _contactInfo; | |
8611 | |
8612 /** | |
8613 * Information that the user can use to use to contact the maintainers of the | |
8614 * plugin when there is a problem. | |
8615 */ | |
8616 void set contactInfo(String value) { | |
8617 this._contactInfo = value; | |
8618 } | |
8619 | |
8620 /** | |
8621 * The glob patterns of the files for which the plugin will provide | |
8622 * information. This value is ignored if the isCompatible field is false. | |
8623 * Otherwise, it will be used to identify the files for which the plugin | |
8624 * should be notified of changes. | |
8625 */ | |
8626 List<String> get interestingFiles => _interestingFiles; | |
8627 | |
8628 /** | |
8629 * The glob patterns of the files for which the plugin will provide | |
8630 * information. This value is ignored if the isCompatible field is false. | |
8631 * Otherwise, it will be used to identify the files for which the plugin | |
8632 * should be notified of changes. | |
8633 */ | |
8634 void set interestingFiles(List<String> value) { | |
8635 assert(value != null); | |
8636 this._interestingFiles = value; | |
8637 } | |
8638 | |
8639 PluginVersionCheckResult(bool isCompatible, String name, String version, List<
String> interestingFiles, {String contactInfo}) { | |
8640 this.isCompatible = isCompatible; | |
8641 this.name = name; | |
8642 this.version = version; | |
8643 this.contactInfo = contactInfo; | |
8644 this.interestingFiles = interestingFiles; | |
8645 } | |
8646 | |
8647 factory PluginVersionCheckResult.fromJson(JsonDecoder jsonDecoder, String json
Path, Object json) { | |
8648 if (json == null) { | |
8649 json = {}; | |
8650 } | |
8651 if (json is Map) { | |
8652 bool isCompatible; | |
8653 if (json.containsKey("isCompatible")) { | |
8654 isCompatible = jsonDecoder.decodeBool(jsonPath + ".isCompatible", json["
isCompatible"]); | |
8655 } else { | |
8656 throw jsonDecoder.mismatch(jsonPath, "isCompatible"); | |
8657 } | |
8658 String name; | |
8659 if (json.containsKey("name")) { | |
8660 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | |
8661 } else { | |
8662 throw jsonDecoder.mismatch(jsonPath, "name"); | |
8663 } | |
8664 String version; | |
8665 if (json.containsKey("version")) { | |
8666 version = jsonDecoder.decodeString(jsonPath + ".version", json["version"
]); | |
8667 } else { | |
8668 throw jsonDecoder.mismatch(jsonPath, "version"); | |
8669 } | |
8670 String contactInfo; | |
8671 if (json.containsKey("contactInfo")) { | |
8672 contactInfo = jsonDecoder.decodeString(jsonPath + ".contactInfo", json["
contactInfo"]); | |
8673 } | |
8674 List<String> interestingFiles; | |
8675 if (json.containsKey("interestingFiles")) { | |
8676 interestingFiles = jsonDecoder.decodeList(jsonPath + ".interestingFiles"
, json["interestingFiles"], jsonDecoder.decodeString); | |
8677 } else { | |
8678 throw jsonDecoder.mismatch(jsonPath, "interestingFiles"); | |
8679 } | |
8680 return new PluginVersionCheckResult(isCompatible, name, version, interesti
ngFiles, contactInfo: contactInfo); | |
8681 } else { | |
8682 throw jsonDecoder.mismatch(jsonPath, "plugin.versionCheck result", json); | |
8683 } | |
8684 } | |
8685 | |
8686 factory PluginVersionCheckResult.fromResponse(Response response) { | |
8687 return new PluginVersionCheckResult.fromJson( | |
8688 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), "
result", response.result); | |
8689 } | |
8690 | |
8691 @override | |
8692 Map<String, dynamic> toJson() { | |
8693 Map<String, dynamic> result = {}; | |
8694 result["isCompatible"] = isCompatible; | |
8695 result["name"] = name; | |
8696 result["version"] = version; | |
8697 if (contactInfo != null) { | |
8698 result["contactInfo"] = contactInfo; | |
8699 } | |
8700 result["interestingFiles"] = interestingFiles; | |
8701 return result; | |
8702 } | |
8703 | |
8704 @override | |
8705 Response toResponse(String id) { | |
8706 return new Response(id, result: toJson()); | |
8707 } | |
8708 | |
8709 @override | |
8710 String toString() => JSON.encode(toJson()); | |
8711 | |
8712 @override | |
8713 bool operator==(other) { | |
8714 if (other is PluginVersionCheckResult) { | |
8715 return isCompatible == other.isCompatible && | |
8716 name == other.name && | |
8717 version == other.version && | |
8718 contactInfo == other.contactInfo && | |
8719 listEqual(interestingFiles, other.interestingFiles, (String a, String
b) => a == b); | |
8720 } | |
8721 return false; | |
8722 } | |
8723 | |
8724 @override | |
8725 int get hashCode { | |
8726 int hash = 0; | |
8727 hash = JenkinsSmiHash.combine(hash, isCompatible.hashCode); | |
8728 hash = JenkinsSmiHash.combine(hash, name.hashCode); | |
8729 hash = JenkinsSmiHash.combine(hash, version.hashCode); | |
8730 hash = JenkinsSmiHash.combine(hash, contactInfo.hashCode); | |
8731 hash = JenkinsSmiHash.combine(hash, interestingFiles.hashCode); | |
8732 return JenkinsSmiHash.finish(hash); | |
8733 } | |
8734 } | |
8735 | |
8736 /** | |
8737 * Position | |
8738 * | |
8739 * { | |
8740 * "file": FilePath | |
8741 * "offset": int | |
8742 * } | |
8743 * | |
8744 * Clients may not extend, implement or mix-in this class. | |
8745 */ | |
8746 class Position implements HasToJson { | |
8747 String _file; | |
8748 | |
8749 int _offset; | |
8750 | |
8751 /** | |
8752 * The file containing the position. | |
8753 */ | |
8754 String get file => _file; | |
8755 | |
8756 /** | |
8757 * The file containing the position. | |
8758 */ | |
8759 void set file(String value) { | |
8760 assert(value != null); | |
8761 this._file = value; | |
8762 } | |
8763 | |
8764 /** | |
8765 * The offset of the position. | |
8766 */ | |
8767 int get offset => _offset; | |
8768 | |
8769 /** | |
8770 * The offset of the position. | |
8771 */ | |
8772 void set offset(int value) { | |
8773 assert(value != null); | |
8774 this._offset = value; | |
8775 } | |
8776 | |
8777 Position(String file, int offset) { | |
8778 this.file = file; | |
8779 this.offset = offset; | |
8780 } | |
8781 | |
8782 factory Position.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object jso
n) { | |
8783 if (json == null) { | |
8784 json = {}; | |
8785 } | |
8786 if (json is Map) { | |
8787 String file; | |
8788 if (json.containsKey("file")) { | |
8789 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
8790 } else { | |
8791 throw jsonDecoder.mismatch(jsonPath, "file"); | |
8792 } | |
8793 int offset; | |
8794 if (json.containsKey("offset")) { | |
8795 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
8796 } else { | |
8797 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
8798 } | |
8799 return new Position(file, offset); | |
8800 } else { | |
8801 throw jsonDecoder.mismatch(jsonPath, "Position", json); | |
8802 } | |
8803 } | |
8804 | |
8805 @override | |
8806 Map<String, dynamic> toJson() { | |
8807 Map<String, dynamic> result = {}; | |
8808 result["file"] = file; | |
8809 result["offset"] = offset; | |
8810 return result; | |
8811 } | |
8812 | |
8813 @override | |
8814 String toString() => JSON.encode(toJson()); | |
8815 | |
8816 @override | |
8817 bool operator==(other) { | |
8818 if (other is Position) { | |
8819 return file == other.file && | |
8820 offset == other.offset; | |
8821 } | |
8822 return false; | |
8823 } | |
8824 | |
8825 @override | |
8826 int get hashCode { | |
8827 int hash = 0; | |
8828 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
8829 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
8830 return JenkinsSmiHash.finish(hash); | |
8831 } | |
8832 } | |
8833 | |
8834 /** | |
8835 * PrioritizedSourceChange | |
8836 * | |
8837 * { | |
8838 * "priority": int | |
8839 * "change": SourceChange | |
8840 * } | |
8841 * | |
8842 * Clients may not extend, implement or mix-in this class. | |
8843 */ | |
8844 class PrioritizedSourceChange implements HasToJson { | |
8845 int _priority; | |
8846 | |
8847 SourceChange _change; | |
8848 | |
8849 /** | |
8850 * The priority of the change. The value is expected to be non-negative, and | |
8851 * zero (0) is the lowest priority. | |
8852 */ | |
8853 int get priority => _priority; | |
8854 | |
8855 /** | |
8856 * The priority of the change. The value is expected to be non-negative, and | |
8857 * zero (0) is the lowest priority. | |
8858 */ | |
8859 void set priority(int value) { | |
8860 assert(value != null); | |
8861 this._priority = value; | |
8862 } | |
8863 | |
8864 /** | |
8865 * The change with which the relevance is associated. | |
8866 */ | |
8867 SourceChange get change => _change; | |
8868 | |
8869 /** | |
8870 * The change with which the relevance is associated. | |
8871 */ | |
8872 void set change(SourceChange value) { | |
8873 assert(value != null); | |
8874 this._change = value; | |
8875 } | |
8876 | |
8877 PrioritizedSourceChange(int priority, SourceChange change) { | |
8878 this.priority = priority; | |
8879 this.change = change; | |
8880 } | |
8881 | |
8882 factory PrioritizedSourceChange.fromJson(JsonDecoder jsonDecoder, String jsonP
ath, Object json) { | |
8883 if (json == null) { | |
8884 json = {}; | |
8885 } | |
8886 if (json is Map) { | |
8887 int priority; | |
8888 if (json.containsKey("priority")) { | |
8889 priority = jsonDecoder.decodeInt(jsonPath + ".priority", json["priority"
]); | |
8890 } else { | |
8891 throw jsonDecoder.mismatch(jsonPath, "priority"); | |
8892 } | |
8893 SourceChange change; | |
8894 if (json.containsKey("change")) { | |
8895 change = new SourceChange.fromJson(jsonDecoder, jsonPath + ".change", js
on["change"]); | |
8896 } else { | |
8897 throw jsonDecoder.mismatch(jsonPath, "change"); | |
8898 } | |
8899 return new PrioritizedSourceChange(priority, change); | |
8900 } else { | |
8901 throw jsonDecoder.mismatch(jsonPath, "PrioritizedSourceChange", json); | |
8902 } | |
8903 } | |
8904 | |
8905 @override | |
8906 Map<String, dynamic> toJson() { | |
8907 Map<String, dynamic> result = {}; | |
8908 result["priority"] = priority; | |
8909 result["change"] = change.toJson(); | |
8910 return result; | |
8911 } | |
8912 | |
8913 @override | |
8914 String toString() => JSON.encode(toJson()); | |
8915 | |
8916 @override | |
8917 bool operator==(other) { | |
8918 if (other is PrioritizedSourceChange) { | |
8919 return priority == other.priority && | |
8920 change == other.change; | |
8921 } | |
8922 return false; | |
8923 } | |
8924 | |
8925 @override | |
8926 int get hashCode { | |
8927 int hash = 0; | |
8928 hash = JenkinsSmiHash.combine(hash, priority.hashCode); | |
8929 hash = JenkinsSmiHash.combine(hash, change.hashCode); | |
8930 return JenkinsSmiHash.finish(hash); | |
8931 } | |
8932 } | |
8933 | |
8934 /** | |
8935 * RefactoringFeedback | |
8936 * | |
8937 * { | |
8938 * } | |
8939 * | |
8940 * Clients may not extend, implement or mix-in this class. | |
8941 */ | |
8942 class RefactoringFeedback implements HasToJson { | |
8943 RefactoringFeedback(); | |
8944 | |
8945 factory RefactoringFeedback.fromJson(JsonDecoder jsonDecoder, String jsonPath,
Object json, Map responseJson) { | |
8946 return refactoringFeedbackFromJson(jsonDecoder, jsonPath, json, responseJson
); | |
8947 } | |
8948 | |
8949 @override | |
8950 Map<String, dynamic> toJson() { | |
8951 Map<String, dynamic> result = {}; | |
8952 return result; | |
8953 } | |
8954 | |
8955 @override | |
8956 String toString() => JSON.encode(toJson()); | |
8957 | |
8958 @override | |
8959 bool operator==(other) { | |
8960 if (other is RefactoringFeedback) { | |
8961 return true; | |
8962 } | |
8963 return false; | |
8964 } | |
8965 | |
8966 @override | |
8967 int get hashCode { | |
8968 int hash = 0; | |
8969 return JenkinsSmiHash.finish(hash); | |
8970 } | |
8971 } | |
8972 | |
8973 /** | |
8974 * RefactoringKind | |
8975 * | |
8976 * enum { | |
8977 * CONVERT_GETTER_TO_METHOD | |
8978 * CONVERT_METHOD_TO_GETTER | |
8979 * EXTRACT_LOCAL_VARIABLE | |
8980 * EXTRACT_METHOD | |
8981 * INLINE_LOCAL_VARIABLE | |
8982 * INLINE_METHOD | |
8983 * MOVE_FILE | |
8984 * RENAME | |
8985 * SORT_MEMBERS | |
8986 * } | |
8987 * | |
8988 * Clients may not extend, implement or mix-in this class. | |
8989 */ | |
8990 class RefactoringKind implements Enum { | |
8991 static const RefactoringKind CONVERT_GETTER_TO_METHOD = const RefactoringKind.
_("CONVERT_GETTER_TO_METHOD"); | |
8992 | |
8993 static const RefactoringKind CONVERT_METHOD_TO_GETTER = const RefactoringKind.
_("CONVERT_METHOD_TO_GETTER"); | |
8994 | |
8995 static const RefactoringKind EXTRACT_LOCAL_VARIABLE = const RefactoringKind._(
"EXTRACT_LOCAL_VARIABLE"); | |
8996 | |
8997 static const RefactoringKind EXTRACT_METHOD = const RefactoringKind._("EXTRACT
_METHOD"); | |
8998 | |
8999 static const RefactoringKind INLINE_LOCAL_VARIABLE = const RefactoringKind._("
INLINE_LOCAL_VARIABLE"); | |
9000 | |
9001 static const RefactoringKind INLINE_METHOD = const RefactoringKind._("INLINE_M
ETHOD"); | |
9002 | |
9003 static const RefactoringKind MOVE_FILE = const RefactoringKind._("MOVE_FILE"); | |
9004 | |
9005 static const RefactoringKind RENAME = const RefactoringKind._("RENAME"); | |
9006 | |
9007 static const RefactoringKind SORT_MEMBERS = const RefactoringKind._("SORT_MEMB
ERS"); | |
9008 | |
9009 /** | |
9010 * A list containing all of the enum values that are defined. | |
9011 */ | |
9012 static const List<RefactoringKind> VALUES = const <RefactoringKind>[CONVERT_GE
TTER_TO_METHOD, CONVERT_METHOD_TO_GETTER, EXTRACT_LOCAL_VARIABLE, EXTRACT_METHOD
, INLINE_LOCAL_VARIABLE, INLINE_METHOD, MOVE_FILE, RENAME, SORT_MEMBERS]; | |
9013 | |
9014 @override | |
9015 final String name; | |
9016 | |
9017 const RefactoringKind._(this.name); | |
9018 | |
9019 factory RefactoringKind(String name) { | |
9020 switch (name) { | |
9021 case "CONVERT_GETTER_TO_METHOD": | |
9022 return CONVERT_GETTER_TO_METHOD; | |
9023 case "CONVERT_METHOD_TO_GETTER": | |
9024 return CONVERT_METHOD_TO_GETTER; | |
9025 case "EXTRACT_LOCAL_VARIABLE": | |
9026 return EXTRACT_LOCAL_VARIABLE; | |
9027 case "EXTRACT_METHOD": | |
9028 return EXTRACT_METHOD; | |
9029 case "INLINE_LOCAL_VARIABLE": | |
9030 return INLINE_LOCAL_VARIABLE; | |
9031 case "INLINE_METHOD": | |
9032 return INLINE_METHOD; | |
9033 case "MOVE_FILE": | |
9034 return MOVE_FILE; | |
9035 case "RENAME": | |
9036 return RENAME; | |
9037 case "SORT_MEMBERS": | |
9038 return SORT_MEMBERS; | |
9039 } | |
9040 throw new Exception('Illegal enum value: $name'); | |
9041 } | |
9042 | |
9043 factory RefactoringKind.fromJson(JsonDecoder jsonDecoder, String jsonPath, Obj
ect json) { | |
9044 if (json is String) { | |
9045 try { | |
9046 return new RefactoringKind(json); | |
9047 } catch(_) { | |
9048 // Fall through | |
9049 } | |
9050 } | |
9051 throw jsonDecoder.mismatch(jsonPath, "RefactoringKind", json); | |
9052 } | |
9053 | |
9054 @override | |
9055 String toString() => "RefactoringKind.$name"; | |
9056 | |
9057 String toJson() => name; | |
9058 } | |
9059 | |
9060 /** | |
9061 * RefactoringMethodParameter | |
9062 * | |
9063 * { | |
9064 * "id": optional String | |
9065 * "kind": RefactoringMethodParameterKind | |
9066 * "type": String | |
9067 * "name": String | |
9068 * "parameters": optional String | |
9069 * } | |
9070 * | |
9071 * Clients may not extend, implement or mix-in this class. | |
9072 */ | |
9073 class RefactoringMethodParameter implements HasToJson { | |
9074 String _id; | |
9075 | |
9076 RefactoringMethodParameterKind _kind; | |
9077 | |
9078 String _type; | |
9079 | |
9080 String _name; | |
9081 | |
9082 String _parameters; | |
9083 | |
9084 /** | |
9085 * The unique identifier of the parameter. Clients may omit this field for | |
9086 * the parameters they want to add. | |
9087 */ | |
9088 String get id => _id; | |
9089 | |
9090 /** | |
9091 * The unique identifier of the parameter. Clients may omit this field for | |
9092 * the parameters they want to add. | |
9093 */ | |
9094 void set id(String value) { | |
9095 this._id = value; | |
9096 } | |
9097 | |
9098 /** | |
9099 * The kind of the parameter. | |
9100 */ | |
9101 RefactoringMethodParameterKind get kind => _kind; | |
9102 | |
9103 /** | |
9104 * The kind of the parameter. | |
9105 */ | |
9106 void set kind(RefactoringMethodParameterKind value) { | |
9107 assert(value != null); | |
9108 this._kind = value; | |
9109 } | |
9110 | |
9111 /** | |
9112 * The type that should be given to the parameter, or the return type of the | |
9113 * parameter's function type. | |
9114 */ | |
9115 String get type => _type; | |
9116 | |
9117 /** | |
9118 * The type that should be given to the parameter, or the return type of the | |
9119 * parameter's function type. | |
9120 */ | |
9121 void set type(String value) { | |
9122 assert(value != null); | |
9123 this._type = value; | |
9124 } | |
9125 | |
9126 /** | |
9127 * The name that should be given to the parameter. | |
9128 */ | |
9129 String get name => _name; | |
9130 | |
9131 /** | |
9132 * The name that should be given to the parameter. | |
9133 */ | |
9134 void set name(String value) { | |
9135 assert(value != null); | |
9136 this._name = value; | |
9137 } | |
9138 | |
9139 /** | |
9140 * The parameter list of the parameter's function type. If the parameter is | |
9141 * not of a function type, this field will not be defined. If the function | |
9142 * type has zero parameters, this field will have a value of '()'. | |
9143 */ | |
9144 String get parameters => _parameters; | |
9145 | |
9146 /** | |
9147 * The parameter list of the parameter's function type. If the parameter is | |
9148 * not of a function type, this field will not be defined. If the function | |
9149 * type has zero parameters, this field will have a value of '()'. | |
9150 */ | |
9151 void set parameters(String value) { | |
9152 this._parameters = value; | |
9153 } | |
9154 | |
9155 RefactoringMethodParameter(RefactoringMethodParameterKind kind, String type, S
tring name, {String id, String parameters}) { | |
9156 this.id = id; | |
9157 this.kind = kind; | |
9158 this.type = type; | |
9159 this.name = name; | |
9160 this.parameters = parameters; | |
9161 } | |
9162 | |
9163 factory RefactoringMethodParameter.fromJson(JsonDecoder jsonDecoder, String js
onPath, Object json) { | |
9164 if (json == null) { | |
9165 json = {}; | |
9166 } | |
9167 if (json is Map) { | |
9168 String id; | |
9169 if (json.containsKey("id")) { | |
9170 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | |
9171 } | |
9172 RefactoringMethodParameterKind kind; | |
9173 if (json.containsKey("kind")) { | |
9174 kind = new RefactoringMethodParameterKind.fromJson(jsonDecoder, jsonPath
+ ".kind", json["kind"]); | |
9175 } else { | |
9176 throw jsonDecoder.mismatch(jsonPath, "kind"); | |
9177 } | |
9178 String type; | |
9179 if (json.containsKey("type")) { | |
9180 type = jsonDecoder.decodeString(jsonPath + ".type", json["type"]); | |
9181 } else { | |
9182 throw jsonDecoder.mismatch(jsonPath, "type"); | |
9183 } | |
9184 String name; | |
9185 if (json.containsKey("name")) { | |
9186 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | |
9187 } else { | |
9188 throw jsonDecoder.mismatch(jsonPath, "name"); | |
9189 } | |
9190 String parameters; | |
9191 if (json.containsKey("parameters")) { | |
9192 parameters = jsonDecoder.decodeString(jsonPath + ".parameters", json["pa
rameters"]); | |
9193 } | |
9194 return new RefactoringMethodParameter(kind, type, name, id: id, parameters
: parameters); | |
9195 } else { | |
9196 throw jsonDecoder.mismatch(jsonPath, "RefactoringMethodParameter", json); | |
9197 } | |
9198 } | |
9199 | |
9200 @override | |
9201 Map<String, dynamic> toJson() { | |
9202 Map<String, dynamic> result = {}; | |
9203 if (id != null) { | |
9204 result["id"] = id; | |
9205 } | |
9206 result["kind"] = kind.toJson(); | |
9207 result["type"] = type; | |
9208 result["name"] = name; | |
9209 if (parameters != null) { | |
9210 result["parameters"] = parameters; | |
9211 } | |
9212 return result; | |
9213 } | |
9214 | |
9215 @override | |
9216 String toString() => JSON.encode(toJson()); | |
9217 | |
9218 @override | |
9219 bool operator==(other) { | |
9220 if (other is RefactoringMethodParameter) { | |
9221 return id == other.id && | |
9222 kind == other.kind && | |
9223 type == other.type && | |
9224 name == other.name && | |
9225 parameters == other.parameters; | |
9226 } | |
9227 return false; | |
9228 } | |
9229 | |
9230 @override | |
9231 int get hashCode { | |
9232 int hash = 0; | |
9233 hash = JenkinsSmiHash.combine(hash, id.hashCode); | |
9234 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | |
9235 hash = JenkinsSmiHash.combine(hash, type.hashCode); | |
9236 hash = JenkinsSmiHash.combine(hash, name.hashCode); | |
9237 hash = JenkinsSmiHash.combine(hash, parameters.hashCode); | |
9238 return JenkinsSmiHash.finish(hash); | |
9239 } | |
9240 } | |
9241 | |
9242 /** | |
9243 * RefactoringMethodParameterKind | |
9244 * | |
9245 * enum { | |
9246 * REQUIRED | |
9247 * POSITIONAL | |
9248 * NAMED | |
9249 * } | |
9250 * | |
9251 * Clients may not extend, implement or mix-in this class. | |
9252 */ | |
9253 class RefactoringMethodParameterKind implements Enum { | |
9254 static const RefactoringMethodParameterKind REQUIRED = const RefactoringMethod
ParameterKind._("REQUIRED"); | |
9255 | |
9256 static const RefactoringMethodParameterKind POSITIONAL = const RefactoringMeth
odParameterKind._("POSITIONAL"); | |
9257 | |
9258 static const RefactoringMethodParameterKind NAMED = const RefactoringMethodPar
ameterKind._("NAMED"); | |
9259 | |
9260 /** | |
9261 * A list containing all of the enum values that are defined. | |
9262 */ | |
9263 static const List<RefactoringMethodParameterKind> VALUES = const <RefactoringM
ethodParameterKind>[REQUIRED, POSITIONAL, NAMED]; | |
9264 | |
9265 @override | |
9266 final String name; | |
9267 | |
9268 const RefactoringMethodParameterKind._(this.name); | |
9269 | |
9270 factory RefactoringMethodParameterKind(String name) { | |
9271 switch (name) { | |
9272 case "REQUIRED": | |
9273 return REQUIRED; | |
9274 case "POSITIONAL": | |
9275 return POSITIONAL; | |
9276 case "NAMED": | |
9277 return NAMED; | |
9278 } | |
9279 throw new Exception('Illegal enum value: $name'); | |
9280 } | |
9281 | |
9282 factory RefactoringMethodParameterKind.fromJson(JsonDecoder jsonDecoder, Strin
g jsonPath, Object json) { | |
9283 if (json is String) { | |
9284 try { | |
9285 return new RefactoringMethodParameterKind(json); | |
9286 } catch(_) { | |
9287 // Fall through | |
9288 } | |
9289 } | |
9290 throw jsonDecoder.mismatch(jsonPath, "RefactoringMethodParameterKind", json)
; | |
9291 } | |
9292 | |
9293 @override | |
9294 String toString() => "RefactoringMethodParameterKind.$name"; | |
9295 | |
9296 String toJson() => name; | |
9297 } | |
9298 | |
9299 /** | |
9300 * RefactoringOptions | |
9301 * | |
9302 * { | |
9303 * } | |
9304 * | |
9305 * Clients may not extend, implement or mix-in this class. | |
9306 */ | |
9307 class RefactoringOptions implements HasToJson { | |
9308 RefactoringOptions(); | |
9309 | |
9310 factory RefactoringOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath,
Object json, RefactoringKind kind) { | |
9311 return refactoringOptionsFromJson(jsonDecoder, jsonPath, json, kind); | |
9312 } | |
9313 | |
9314 @override | |
9315 Map<String, dynamic> toJson() { | |
9316 Map<String, dynamic> result = {}; | |
9317 return result; | |
9318 } | |
9319 | |
9320 @override | |
9321 String toString() => JSON.encode(toJson()); | |
9322 | |
9323 @override | |
9324 bool operator==(other) { | |
9325 if (other is RefactoringOptions) { | |
9326 return true; | |
9327 } | |
9328 return false; | |
9329 } | |
9330 | |
9331 @override | |
9332 int get hashCode { | |
9333 int hash = 0; | |
9334 return JenkinsSmiHash.finish(hash); | |
9335 } | |
9336 } | |
9337 | |
9338 /** | |
9339 * RefactoringProblem | |
9340 * | |
9341 * { | |
9342 * "severity": RefactoringProblemSeverity | |
9343 * "message": String | |
9344 * "location": optional Location | |
9345 * } | |
9346 * | |
9347 * Clients may not extend, implement or mix-in this class. | |
9348 */ | |
9349 class RefactoringProblem implements HasToJson { | |
9350 RefactoringProblemSeverity _severity; | |
9351 | |
9352 String _message; | |
9353 | |
9354 Location _location; | |
9355 | |
9356 /** | |
9357 * The severity of the problem being represented. | |
9358 */ | |
9359 RefactoringProblemSeverity get severity => _severity; | |
9360 | |
9361 /** | |
9362 * The severity of the problem being represented. | |
9363 */ | |
9364 void set severity(RefactoringProblemSeverity value) { | |
9365 assert(value != null); | |
9366 this._severity = value; | |
9367 } | |
9368 | |
9369 /** | |
9370 * A human-readable description of the problem being represented. | |
9371 */ | |
9372 String get message => _message; | |
9373 | |
9374 /** | |
9375 * A human-readable description of the problem being represented. | |
9376 */ | |
9377 void set message(String value) { | |
9378 assert(value != null); | |
9379 this._message = value; | |
9380 } | |
9381 | |
9382 /** | |
9383 * The location of the problem being represented. This field is omitted | |
9384 * unless there is a specific location associated with the problem (such as a | |
9385 * location where an element being renamed will be shadowed). | |
9386 */ | |
9387 Location get location => _location; | |
9388 | |
9389 /** | |
9390 * The location of the problem being represented. This field is omitted | |
9391 * unless there is a specific location associated with the problem (such as a | |
9392 * location where an element being renamed will be shadowed). | |
9393 */ | |
9394 void set location(Location value) { | |
9395 this._location = value; | |
9396 } | |
9397 | |
9398 RefactoringProblem(RefactoringProblemSeverity severity, String message, {Locat
ion location}) { | |
9399 this.severity = severity; | |
9400 this.message = message; | |
9401 this.location = location; | |
9402 } | |
9403 | |
9404 factory RefactoringProblem.fromJson(JsonDecoder jsonDecoder, String jsonPath,
Object json) { | |
9405 if (json == null) { | |
9406 json = {}; | |
9407 } | |
9408 if (json is Map) { | |
9409 RefactoringProblemSeverity severity; | |
9410 if (json.containsKey("severity")) { | |
9411 severity = new RefactoringProblemSeverity.fromJson(jsonDecoder, jsonPath
+ ".severity", json["severity"]); | |
9412 } else { | |
9413 throw jsonDecoder.mismatch(jsonPath, "severity"); | |
9414 } | |
9415 String message; | |
9416 if (json.containsKey("message")) { | |
9417 message = jsonDecoder.decodeString(jsonPath + ".message", json["message"
]); | |
9418 } else { | |
9419 throw jsonDecoder.mismatch(jsonPath, "message"); | |
9420 } | |
9421 Location location; | |
9422 if (json.containsKey("location")) { | |
9423 location = new Location.fromJson(jsonDecoder, jsonPath + ".location", js
on["location"]); | |
9424 } | |
9425 return new RefactoringProblem(severity, message, location: location); | |
9426 } else { | |
9427 throw jsonDecoder.mismatch(jsonPath, "RefactoringProblem", json); | |
9428 } | |
9429 } | |
9430 | |
9431 @override | |
9432 Map<String, dynamic> toJson() { | |
9433 Map<String, dynamic> result = {}; | |
9434 result["severity"] = severity.toJson(); | |
9435 result["message"] = message; | |
9436 if (location != null) { | |
9437 result["location"] = location.toJson(); | |
9438 } | |
9439 return result; | |
9440 } | |
9441 | |
9442 @override | |
9443 String toString() => JSON.encode(toJson()); | |
9444 | |
9445 @override | |
9446 bool operator==(other) { | |
9447 if (other is RefactoringProblem) { | |
9448 return severity == other.severity && | |
9449 message == other.message && | |
9450 location == other.location; | |
9451 } | |
9452 return false; | |
9453 } | |
9454 | |
9455 @override | |
9456 int get hashCode { | |
9457 int hash = 0; | |
9458 hash = JenkinsSmiHash.combine(hash, severity.hashCode); | |
9459 hash = JenkinsSmiHash.combine(hash, message.hashCode); | |
9460 hash = JenkinsSmiHash.combine(hash, location.hashCode); | |
9461 return JenkinsSmiHash.finish(hash); | |
9462 } | |
9463 } | |
9464 | |
9465 /** | |
9466 * RefactoringProblemSeverity | |
9467 * | |
9468 * enum { | |
9469 * INFO | |
9470 * WARNING | |
9471 * ERROR | |
9472 * FATAL | |
9473 * } | |
9474 * | |
9475 * Clients may not extend, implement or mix-in this class. | |
9476 */ | |
9477 class RefactoringProblemSeverity implements Enum { | |
9478 /** | |
9479 * A minor code problem. No example, because it is not used yet. | |
9480 */ | |
9481 static const RefactoringProblemSeverity INFO = const RefactoringProblemSeverit
y._("INFO"); | |
9482 | |
9483 /** | |
9484 * A minor code problem. For example names of local variables should be camel | |
9485 * case and start with a lower case letter. Staring the name of a variable | |
9486 * with an upper case is OK from the language point of view, but it is nice | |
9487 * to warn the user. | |
9488 */ | |
9489 static const RefactoringProblemSeverity WARNING = const RefactoringProblemSeve
rity._("WARNING"); | |
9490 | |
9491 /** | |
9492 * The refactoring technically can be performed, but there is a logical | |
9493 * problem. For example the name of a local variable being extracted | |
9494 * conflicts with another name in the scope, or duplicate parameter names in | |
9495 * the method being extracted, or a conflict between a parameter name and a | |
9496 * local variable, etc. In some cases the location of the problem is also | |
9497 * provided, so the IDE can show user the location and the problem, and let | |
9498 * the user decide whether they want to perform the refactoring. For example | |
9499 * the name conflict might be expected, and the user wants to fix it | |
9500 * afterwards. | |
9501 */ | |
9502 static const RefactoringProblemSeverity ERROR = const RefactoringProblemSeveri
ty._("ERROR"); | |
9503 | |
9504 /** | |
9505 * A fatal error, which prevents performing the refactoring. For example the | |
9506 * name of a local variable being extracted is not a valid identifier, or | |
9507 * selection is not a valid expression. | |
9508 */ | |
9509 static const RefactoringProblemSeverity FATAL = const RefactoringProblemSeveri
ty._("FATAL"); | |
9510 | |
9511 /** | |
9512 * A list containing all of the enum values that are defined. | |
9513 */ | |
9514 static const List<RefactoringProblemSeverity> VALUES = const <RefactoringProbl
emSeverity>[INFO, WARNING, ERROR, FATAL]; | |
9515 | |
9516 @override | |
9517 final String name; | |
9518 | |
9519 const RefactoringProblemSeverity._(this.name); | |
9520 | |
9521 factory RefactoringProblemSeverity(String name) { | |
9522 switch (name) { | |
9523 case "INFO": | |
9524 return INFO; | |
9525 case "WARNING": | |
9526 return WARNING; | |
9527 case "ERROR": | |
9528 return ERROR; | |
9529 case "FATAL": | |
9530 return FATAL; | |
9531 } | |
9532 throw new Exception('Illegal enum value: $name'); | |
9533 } | |
9534 | |
9535 factory RefactoringProblemSeverity.fromJson(JsonDecoder jsonDecoder, String js
onPath, Object json) { | |
9536 if (json is String) { | |
9537 try { | |
9538 return new RefactoringProblemSeverity(json); | |
9539 } catch(_) { | |
9540 // Fall through | |
9541 } | |
9542 } | |
9543 throw jsonDecoder.mismatch(jsonPath, "RefactoringProblemSeverity", json); | |
9544 } | |
9545 | |
9546 /** | |
9547 * Returns the [RefactoringProblemSeverity] with the maximal severity. | |
9548 */ | |
9549 static RefactoringProblemSeverity max(RefactoringProblemSeverity a, Refactorin
gProblemSeverity b) => | |
9550 maxRefactoringProblemSeverity(a, b); | |
9551 | |
9552 @override | |
9553 String toString() => "RefactoringProblemSeverity.$name"; | |
9554 | |
9555 String toJson() => name; | |
9556 } | |
9557 | |
9558 /** | |
9559 * RemoveContentOverlay | |
9560 * | |
9561 * { | |
9562 * "type": "remove" | |
9563 * } | |
9564 * | |
9565 * Clients may not extend, implement or mix-in this class. | |
9566 */ | |
9567 class RemoveContentOverlay implements HasToJson { | |
9568 RemoveContentOverlay(); | |
9569 | |
9570 factory RemoveContentOverlay.fromJson(JsonDecoder jsonDecoder, String jsonPath
, Object json) { | |
9571 if (json == null) { | |
9572 json = {}; | |
9573 } | |
9574 if (json is Map) { | |
9575 if (json["type"] != "remove") { | |
9576 throw jsonDecoder.mismatch(jsonPath, "equal " + "remove", json); | |
9577 } | |
9578 return new RemoveContentOverlay(); | |
9579 } else { | |
9580 throw jsonDecoder.mismatch(jsonPath, "RemoveContentOverlay", json); | |
9581 } | |
9582 } | |
9583 | |
9584 @override | |
9585 Map<String, dynamic> toJson() { | |
9586 Map<String, dynamic> result = {}; | |
9587 result["type"] = "remove"; | |
9588 return result; | |
9589 } | |
9590 | |
9591 @override | |
9592 String toString() => JSON.encode(toJson()); | |
9593 | |
9594 @override | |
9595 bool operator==(other) { | |
9596 if (other is RemoveContentOverlay) { | |
9597 return true; | |
9598 } | |
9599 return false; | |
9600 } | |
9601 | |
9602 @override | |
9603 int get hashCode { | |
9604 int hash = 0; | |
9605 hash = JenkinsSmiHash.combine(hash, 114870849); | |
9606 return JenkinsSmiHash.finish(hash); | |
9607 } | |
9608 } | |
9609 | |
9610 /** | |
9611 * rename feedback | |
9612 * | |
9613 * { | |
9614 * "offset": int | |
9615 * "length": int | |
9616 * "elementKindName": String | |
9617 * "oldName": String | |
9618 * } | |
9619 * | |
9620 * Clients may not extend, implement or mix-in this class. | |
9621 */ | |
9622 class RenameFeedback extends RefactoringFeedback { | |
9623 int _offset; | |
9624 | |
9625 int _length; | |
9626 | |
9627 String _elementKindName; | |
9628 | |
9629 String _oldName; | |
9630 | |
9631 /** | |
9632 * The offset to the beginning of the name selected to be renamed. | |
9633 */ | |
9634 int get offset => _offset; | |
9635 | |
9636 /** | |
9637 * The offset to the beginning of the name selected to be renamed. | |
9638 */ | |
9639 void set offset(int value) { | |
9640 assert(value != null); | |
9641 this._offset = value; | |
9642 } | |
9643 | |
9644 /** | |
9645 * The length of the name selected to be renamed. | |
9646 */ | |
9647 int get length => _length; | |
9648 | |
9649 /** | |
9650 * The length of the name selected to be renamed. | |
9651 */ | |
9652 void set length(int value) { | |
9653 assert(value != null); | |
9654 this._length = value; | |
9655 } | |
9656 | |
9657 /** | |
9658 * The human-readable description of the kind of element being renamed (such | |
9659 * as “class” or “function type alias”). | |
9660 */ | |
9661 String get elementKindName => _elementKindName; | |
9662 | |
9663 /** | |
9664 * The human-readable description of the kind of element being renamed (such | |
9665 * as “class” or “function type alias”). | |
9666 */ | |
9667 void set elementKindName(String value) { | |
9668 assert(value != null); | |
9669 this._elementKindName = value; | |
9670 } | |
9671 | |
9672 /** | |
9673 * The old name of the element before the refactoring. | |
9674 */ | |
9675 String get oldName => _oldName; | |
9676 | |
9677 /** | |
9678 * The old name of the element before the refactoring. | |
9679 */ | |
9680 void set oldName(String value) { | |
9681 assert(value != null); | |
9682 this._oldName = value; | |
9683 } | |
9684 | |
9685 RenameFeedback(int offset, int length, String elementKindName, String oldName)
{ | |
9686 this.offset = offset; | |
9687 this.length = length; | |
9688 this.elementKindName = elementKindName; | |
9689 this.oldName = oldName; | |
9690 } | |
9691 | |
9692 factory RenameFeedback.fromJson(JsonDecoder jsonDecoder, String jsonPath, Obje
ct json) { | |
9693 if (json == null) { | |
9694 json = {}; | |
9695 } | |
9696 if (json is Map) { | |
9697 int offset; | |
9698 if (json.containsKey("offset")) { | |
9699 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
9700 } else { | |
9701 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
9702 } | |
9703 int length; | |
9704 if (json.containsKey("length")) { | |
9705 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
9706 } else { | |
9707 throw jsonDecoder.mismatch(jsonPath, "length"); | |
9708 } | |
9709 String elementKindName; | |
9710 if (json.containsKey("elementKindName")) { | |
9711 elementKindName = jsonDecoder.decodeString(jsonPath + ".elementKindName"
, json["elementKindName"]); | |
9712 } else { | |
9713 throw jsonDecoder.mismatch(jsonPath, "elementKindName"); | |
9714 } | |
9715 String oldName; | |
9716 if (json.containsKey("oldName")) { | |
9717 oldName = jsonDecoder.decodeString(jsonPath + ".oldName", json["oldName"
]); | |
9718 } else { | |
9719 throw jsonDecoder.mismatch(jsonPath, "oldName"); | |
9720 } | |
9721 return new RenameFeedback(offset, length, elementKindName, oldName); | |
9722 } else { | |
9723 throw jsonDecoder.mismatch(jsonPath, "rename feedback", json); | |
9724 } | |
9725 } | |
9726 | |
9727 @override | |
9728 Map<String, dynamic> toJson() { | |
9729 Map<String, dynamic> result = {}; | |
9730 result["offset"] = offset; | |
9731 result["length"] = length; | |
9732 result["elementKindName"] = elementKindName; | |
9733 result["oldName"] = oldName; | |
9734 return result; | |
9735 } | |
9736 | |
9737 @override | |
9738 String toString() => JSON.encode(toJson()); | |
9739 | |
9740 @override | |
9741 bool operator==(other) { | |
9742 if (other is RenameFeedback) { | |
9743 return offset == other.offset && | |
9744 length == other.length && | |
9745 elementKindName == other.elementKindName && | |
9746 oldName == other.oldName; | |
9747 } | |
9748 return false; | |
9749 } | |
9750 | |
9751 @override | |
9752 int get hashCode { | |
9753 int hash = 0; | |
9754 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
9755 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
9756 hash = JenkinsSmiHash.combine(hash, elementKindName.hashCode); | |
9757 hash = JenkinsSmiHash.combine(hash, oldName.hashCode); | |
9758 return JenkinsSmiHash.finish(hash); | |
9759 } | |
9760 } | |
9761 | |
9762 /** | |
9763 * rename options | |
9764 * | |
9765 * { | |
9766 * "newName": String | |
9767 * } | |
9768 * | |
9769 * Clients may not extend, implement or mix-in this class. | |
9770 */ | |
9771 class RenameOptions extends RefactoringOptions { | |
9772 String _newName; | |
9773 | |
9774 /** | |
9775 * The name that the element should have after the refactoring. | |
9776 */ | |
9777 String get newName => _newName; | |
9778 | |
9779 /** | |
9780 * The name that the element should have after the refactoring. | |
9781 */ | |
9782 void set newName(String value) { | |
9783 assert(value != null); | |
9784 this._newName = value; | |
9785 } | |
9786 | |
9787 RenameOptions(String newName) { | |
9788 this.newName = newName; | |
9789 } | |
9790 | |
9791 factory RenameOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath, Objec
t json) { | |
9792 if (json == null) { | |
9793 json = {}; | |
9794 } | |
9795 if (json is Map) { | |
9796 String newName; | |
9797 if (json.containsKey("newName")) { | |
9798 newName = jsonDecoder.decodeString(jsonPath + ".newName", json["newName"
]); | |
9799 } else { | |
9800 throw jsonDecoder.mismatch(jsonPath, "newName"); | |
9801 } | |
9802 return new RenameOptions(newName); | |
9803 } else { | |
9804 throw jsonDecoder.mismatch(jsonPath, "rename options", json); | |
9805 } | |
9806 } | |
9807 | |
9808 factory RenameOptions.fromRefactoringParams(EditGetRefactoringParams refactori
ngParams, Request request) { | |
9809 return new RenameOptions.fromJson( | |
9810 new RequestDecoder(request), "options", refactoringParams.options); | |
9811 } | |
9812 | |
9813 @override | |
9814 Map<String, dynamic> toJson() { | |
9815 Map<String, dynamic> result = {}; | |
9816 result["newName"] = newName; | |
9817 return result; | |
9818 } | |
9819 | |
9820 @override | |
9821 String toString() => JSON.encode(toJson()); | |
9822 | |
9823 @override | |
9824 bool operator==(other) { | |
9825 if (other is RenameOptions) { | |
9826 return newName == other.newName; | |
9827 } | |
9828 return false; | |
9829 } | |
9830 | |
9831 @override | |
9832 int get hashCode { | |
9833 int hash = 0; | |
9834 hash = JenkinsSmiHash.combine(hash, newName.hashCode); | |
9835 return JenkinsSmiHash.finish(hash); | |
9836 } | |
9837 } | |
9838 | |
9839 /** | |
9840 * RequestError | |
9841 * | |
9842 * { | |
9843 * "code": RequestErrorCode | |
9844 * "message": String | |
9845 * "stackTrace": optional String | |
9846 * } | |
9847 * | |
9848 * Clients may not extend, implement or mix-in this class. | |
9849 */ | |
9850 class RequestError implements HasToJson { | |
9851 RequestErrorCode _code; | |
9852 | |
9853 String _message; | |
9854 | |
9855 String _stackTrace; | |
9856 | |
9857 /** | |
9858 * A code that uniquely identifies the error that occurred. | |
9859 */ | |
9860 RequestErrorCode get code => _code; | |
9861 | |
9862 /** | |
9863 * A code that uniquely identifies the error that occurred. | |
9864 */ | |
9865 void set code(RequestErrorCode value) { | |
9866 assert(value != null); | |
9867 this._code = value; | |
9868 } | |
9869 | |
9870 /** | |
9871 * A short description of the error. | |
9872 */ | |
9873 String get message => _message; | |
9874 | |
9875 /** | |
9876 * A short description of the error. | |
9877 */ | |
9878 void set message(String value) { | |
9879 assert(value != null); | |
9880 this._message = value; | |
9881 } | |
9882 | |
9883 /** | |
9884 * The stack trace associated with processing the request, used for debugging | |
9885 * the plugin. | |
9886 */ | |
9887 String get stackTrace => _stackTrace; | |
9888 | |
9889 /** | |
9890 * The stack trace associated with processing the request, used for debugging | |
9891 * the plugin. | |
9892 */ | |
9893 void set stackTrace(String value) { | |
9894 this._stackTrace = value; | |
9895 } | |
9896 | |
9897 RequestError(RequestErrorCode code, String message, {String stackTrace}) { | |
9898 this.code = code; | |
9899 this.message = message; | |
9900 this.stackTrace = stackTrace; | |
9901 } | |
9902 | |
9903 factory RequestError.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object
json) { | |
9904 if (json == null) { | |
9905 json = {}; | |
9906 } | |
9907 if (json is Map) { | |
9908 RequestErrorCode code; | |
9909 if (json.containsKey("code")) { | |
9910 code = new RequestErrorCode.fromJson(jsonDecoder, jsonPath + ".code", js
on["code"]); | |
9911 } else { | |
9912 throw jsonDecoder.mismatch(jsonPath, "code"); | |
9913 } | |
9914 String message; | |
9915 if (json.containsKey("message")) { | |
9916 message = jsonDecoder.decodeString(jsonPath + ".message", json["message"
]); | |
9917 } else { | |
9918 throw jsonDecoder.mismatch(jsonPath, "message"); | |
9919 } | |
9920 String stackTrace; | |
9921 if (json.containsKey("stackTrace")) { | |
9922 stackTrace = jsonDecoder.decodeString(jsonPath + ".stackTrace", json["st
ackTrace"]); | |
9923 } | |
9924 return new RequestError(code, message, stackTrace: stackTrace); | |
9925 } else { | |
9926 throw jsonDecoder.mismatch(jsonPath, "RequestError", json); | |
9927 } | |
9928 } | |
9929 | |
9930 @override | |
9931 Map<String, dynamic> toJson() { | |
9932 Map<String, dynamic> result = {}; | |
9933 result["code"] = code.toJson(); | |
9934 result["message"] = message; | |
9935 if (stackTrace != null) { | |
9936 result["stackTrace"] = stackTrace; | |
9937 } | |
9938 return result; | |
9939 } | |
9940 | |
9941 @override | |
9942 String toString() => JSON.encode(toJson()); | |
9943 | |
9944 @override | |
9945 bool operator==(other) { | |
9946 if (other is RequestError) { | |
9947 return code == other.code && | |
9948 message == other.message && | |
9949 stackTrace == other.stackTrace; | |
9950 } | |
9951 return false; | |
9952 } | |
9953 | |
9954 @override | |
9955 int get hashCode { | |
9956 int hash = 0; | |
9957 hash = JenkinsSmiHash.combine(hash, code.hashCode); | |
9958 hash = JenkinsSmiHash.combine(hash, message.hashCode); | |
9959 hash = JenkinsSmiHash.combine(hash, stackTrace.hashCode); | |
9960 return JenkinsSmiHash.finish(hash); | |
9961 } | |
9962 } | |
9963 | |
9964 /** | |
9965 * RequestErrorCode | |
9966 * | |
9967 * enum { | |
9968 * INVALID_OVERLAY_CHANGE | |
9969 * INVALID_PARAMETER | |
9970 * PLUGIN_ERROR | |
9971 * UNKNOWN_REQUEST | |
9972 * } | |
9973 * | |
9974 * Clients may not extend, implement or mix-in this class. | |
9975 */ | |
9976 class RequestErrorCode implements Enum { | |
9977 /** | |
9978 * An "analysis.updateContent" request contained a ChangeContentOverlay | |
9979 * object that can't be applied. This can happen for two reasons: | |
9980 * | |
9981 * - there was no preceding AddContentOverlay and hence no content to which | |
9982 * the edits could be applied, or | |
9983 * - one or more of the specified edits have an offset or length that is out | |
9984 * of range. | |
9985 */ | |
9986 static const RequestErrorCode INVALID_OVERLAY_CHANGE = const RequestErrorCode.
_("INVALID_OVERLAY_CHANGE"); | |
9987 | |
9988 /** | |
9989 * One of the method parameters was invalid. | |
9990 */ | |
9991 static const RequestErrorCode INVALID_PARAMETER = const RequestErrorCode._("IN
VALID_PARAMETER"); | |
9992 | |
9993 /** | |
9994 * An internal error occurred in the plugin while attempting to respond to a | |
9995 * request. Also see the plugin.error notification for errors that occur | |
9996 * outside of handling a request. | |
9997 */ | |
9998 static const RequestErrorCode PLUGIN_ERROR = const RequestErrorCode._("PLUGIN_
ERROR"); | |
9999 | |
10000 /** | |
10001 * A request was received that the plugin does not recognize, or cannot | |
10002 * handle in its current configuration. | |
10003 */ | |
10004 static const RequestErrorCode UNKNOWN_REQUEST = const RequestErrorCode._("UNKN
OWN_REQUEST"); | |
10005 | |
10006 /** | |
10007 * A list containing all of the enum values that are defined. | |
10008 */ | |
10009 static const List<RequestErrorCode> VALUES = const <RequestErrorCode>[INVALID_
OVERLAY_CHANGE, INVALID_PARAMETER, PLUGIN_ERROR, UNKNOWN_REQUEST]; | |
10010 | |
10011 @override | |
10012 final String name; | |
10013 | |
10014 const RequestErrorCode._(this.name); | |
10015 | |
10016 factory RequestErrorCode(String name) { | |
10017 switch (name) { | |
10018 case "INVALID_OVERLAY_CHANGE": | |
10019 return INVALID_OVERLAY_CHANGE; | |
10020 case "INVALID_PARAMETER": | |
10021 return INVALID_PARAMETER; | |
10022 case "PLUGIN_ERROR": | |
10023 return PLUGIN_ERROR; | |
10024 case "UNKNOWN_REQUEST": | |
10025 return UNKNOWN_REQUEST; | |
10026 } | |
10027 throw new Exception('Illegal enum value: $name'); | |
10028 } | |
10029 | |
10030 factory RequestErrorCode.fromJson(JsonDecoder jsonDecoder, String jsonPath, Ob
ject json) { | |
10031 if (json is String) { | |
10032 try { | |
10033 return new RequestErrorCode(json); | |
10034 } catch(_) { | |
10035 // Fall through | |
10036 } | |
10037 } | |
10038 throw jsonDecoder.mismatch(jsonPath, "RequestErrorCode", json); | |
10039 } | |
10040 | |
10041 @override | |
10042 String toString() => "RequestErrorCode.$name"; | |
10043 | |
10044 String toJson() => name; | |
10045 } | |
10046 | |
10047 /** | |
10048 * SourceChange | |
10049 * | |
10050 * { | |
10051 * "message": String | |
10052 * "edits": List<SourceFileEdit> | |
10053 * "linkedEditGroups": List<LinkedEditGroup> | |
10054 * "selection": optional Position | |
10055 * } | |
10056 * | |
10057 * Clients may not extend, implement or mix-in this class. | |
10058 */ | |
10059 class SourceChange implements HasToJson { | |
10060 String _message; | |
10061 | |
10062 List<SourceFileEdit> _edits; | |
10063 | |
10064 List<LinkedEditGroup> _linkedEditGroups; | |
10065 | |
10066 Position _selection; | |
10067 | |
10068 /** | |
10069 * A human-readable description of the change to be applied. | |
10070 */ | |
10071 String get message => _message; | |
10072 | |
10073 /** | |
10074 * A human-readable description of the change to be applied. | |
10075 */ | |
10076 void set message(String value) { | |
10077 assert(value != null); | |
10078 this._message = value; | |
10079 } | |
10080 | |
10081 /** | |
10082 * A list of the edits used to effect the change, grouped by file. | |
10083 */ | |
10084 List<SourceFileEdit> get edits => _edits; | |
10085 | |
10086 /** | |
10087 * A list of the edits used to effect the change, grouped by file. | |
10088 */ | |
10089 void set edits(List<SourceFileEdit> value) { | |
10090 assert(value != null); | |
10091 this._edits = value; | |
10092 } | |
10093 | |
10094 /** | |
10095 * A list of the linked editing groups used to customize the changes that | |
10096 * were made. | |
10097 */ | |
10098 List<LinkedEditGroup> get linkedEditGroups => _linkedEditGroups; | |
10099 | |
10100 /** | |
10101 * A list of the linked editing groups used to customize the changes that | |
10102 * were made. | |
10103 */ | |
10104 void set linkedEditGroups(List<LinkedEditGroup> value) { | |
10105 assert(value != null); | |
10106 this._linkedEditGroups = value; | |
10107 } | |
10108 | |
10109 /** | |
10110 * The position that should be selected after the edits have been applied. | |
10111 */ | |
10112 Position get selection => _selection; | |
10113 | |
10114 /** | |
10115 * The position that should be selected after the edits have been applied. | |
10116 */ | |
10117 void set selection(Position value) { | |
10118 this._selection = value; | |
10119 } | |
10120 | |
10121 SourceChange(String message, {List<SourceFileEdit> edits, List<LinkedEditGroup
> linkedEditGroups, Position selection}) { | |
10122 this.message = message; | |
10123 if (edits == null) { | |
10124 this.edits = <SourceFileEdit>[]; | |
10125 } else { | |
10126 this.edits = edits; | |
10127 } | |
10128 if (linkedEditGroups == null) { | |
10129 this.linkedEditGroups = <LinkedEditGroup>[]; | |
10130 } else { | |
10131 this.linkedEditGroups = linkedEditGroups; | |
10132 } | |
10133 this.selection = selection; | |
10134 } | |
10135 | |
10136 factory SourceChange.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object
json) { | |
10137 if (json == null) { | |
10138 json = {}; | |
10139 } | |
10140 if (json is Map) { | |
10141 String message; | |
10142 if (json.containsKey("message")) { | |
10143 message = jsonDecoder.decodeString(jsonPath + ".message", json["message"
]); | |
10144 } else { | |
10145 throw jsonDecoder.mismatch(jsonPath, "message"); | |
10146 } | |
10147 List<SourceFileEdit> edits; | |
10148 if (json.containsKey("edits")) { | |
10149 edits = jsonDecoder.decodeList(jsonPath + ".edits", json["edits"], (Stri
ng jsonPath, Object json) => new SourceFileEdit.fromJson(jsonDecoder, jsonPath,
json)); | |
10150 } else { | |
10151 throw jsonDecoder.mismatch(jsonPath, "edits"); | |
10152 } | |
10153 List<LinkedEditGroup> linkedEditGroups; | |
10154 if (json.containsKey("linkedEditGroups")) { | |
10155 linkedEditGroups = jsonDecoder.decodeList(jsonPath + ".linkedEditGroups"
, json["linkedEditGroups"], (String jsonPath, Object json) => new LinkedEditGrou
p.fromJson(jsonDecoder, jsonPath, json)); | |
10156 } else { | |
10157 throw jsonDecoder.mismatch(jsonPath, "linkedEditGroups"); | |
10158 } | |
10159 Position selection; | |
10160 if (json.containsKey("selection")) { | |
10161 selection = new Position.fromJson(jsonDecoder, jsonPath + ".selection",
json["selection"]); | |
10162 } | |
10163 return new SourceChange(message, edits: edits, linkedEditGroups: linkedEdi
tGroups, selection: selection); | |
10164 } else { | |
10165 throw jsonDecoder.mismatch(jsonPath, "SourceChange", json); | |
10166 } | |
10167 } | |
10168 | |
10169 @override | |
10170 Map<String, dynamic> toJson() { | |
10171 Map<String, dynamic> result = {}; | |
10172 result["message"] = message; | |
10173 result["edits"] = edits.map((SourceFileEdit value) => value.toJson()).toList
(); | |
10174 result["linkedEditGroups"] = linkedEditGroups.map((LinkedEditGroup value) =>
value.toJson()).toList(); | |
10175 if (selection != null) { | |
10176 result["selection"] = selection.toJson(); | |
10177 } | |
10178 return result; | |
10179 } | |
10180 | |
10181 /** | |
10182 * Adds [edit] to the [FileEdit] for the given [file]. | |
10183 */ | |
10184 void addEdit(String file, int fileStamp, SourceEdit edit) => | |
10185 addEditToSourceChange(this, file, fileStamp, edit); | |
10186 | |
10187 /** | |
10188 * Adds the given [FileEdit]. | |
10189 */ | |
10190 void addFileEdit(SourceFileEdit edit) { | |
10191 edits.add(edit); | |
10192 } | |
10193 | |
10194 /** | |
10195 * Adds the given [LinkedEditGroup]. | |
10196 */ | |
10197 void addLinkedEditGroup(LinkedEditGroup linkedEditGroup) { | |
10198 linkedEditGroups.add(linkedEditGroup); | |
10199 } | |
10200 | |
10201 /** | |
10202 * Returns the [FileEdit] for the given [file], maybe `null`. | |
10203 */ | |
10204 SourceFileEdit getFileEdit(String file) => | |
10205 getChangeFileEdit(this, file); | |
10206 | |
10207 @override | |
10208 String toString() => JSON.encode(toJson()); | |
10209 | |
10210 @override | |
10211 bool operator==(other) { | |
10212 if (other is SourceChange) { | |
10213 return message == other.message && | |
10214 listEqual(edits, other.edits, (SourceFileEdit a, SourceFileEdit b) =>
a == b) && | |
10215 listEqual(linkedEditGroups, other.linkedEditGroups, (LinkedEditGroup a
, LinkedEditGroup b) => a == b) && | |
10216 selection == other.selection; | |
10217 } | |
10218 return false; | |
10219 } | |
10220 | |
10221 @override | |
10222 int get hashCode { | |
10223 int hash = 0; | |
10224 hash = JenkinsSmiHash.combine(hash, message.hashCode); | |
10225 hash = JenkinsSmiHash.combine(hash, edits.hashCode); | |
10226 hash = JenkinsSmiHash.combine(hash, linkedEditGroups.hashCode); | |
10227 hash = JenkinsSmiHash.combine(hash, selection.hashCode); | |
10228 return JenkinsSmiHash.finish(hash); | |
10229 } | |
10230 } | |
10231 | |
10232 /** | |
10233 * SourceEdit | |
10234 * | |
10235 * { | |
10236 * "offset": int | |
10237 * "length": int | |
10238 * "replacement": String | |
10239 * "id": optional String | |
10240 * } | |
10241 * | |
10242 * Clients may not extend, implement or mix-in this class. | |
10243 */ | |
10244 class SourceEdit implements HasToJson { | |
10245 /** | |
10246 * Get the result of applying a set of [edits] to the given [code]. Edits are | |
10247 * applied in the order they appear in [edits]. | |
10248 */ | |
10249 static String applySequence(String code, Iterable<SourceEdit> edits) => | |
10250 applySequenceOfEdits(code, edits); | |
10251 | |
10252 int _offset; | |
10253 | |
10254 int _length; | |
10255 | |
10256 String _replacement; | |
10257 | |
10258 String _id; | |
10259 | |
10260 /** | |
10261 * The offset of the region to be modified. | |
10262 */ | |
10263 int get offset => _offset; | |
10264 | |
10265 /** | |
10266 * The offset of the region to be modified. | |
10267 */ | |
10268 void set offset(int value) { | |
10269 assert(value != null); | |
10270 this._offset = value; | |
10271 } | |
10272 | |
10273 /** | |
10274 * The length of the region to be modified. | |
10275 */ | |
10276 int get length => _length; | |
10277 | |
10278 /** | |
10279 * The length of the region to be modified. | |
10280 */ | |
10281 void set length(int value) { | |
10282 assert(value != null); | |
10283 this._length = value; | |
10284 } | |
10285 | |
10286 /** | |
10287 * The code that is to replace the specified region in the original code. | |
10288 */ | |
10289 String get replacement => _replacement; | |
10290 | |
10291 /** | |
10292 * The code that is to replace the specified region in the original code. | |
10293 */ | |
10294 void set replacement(String value) { | |
10295 assert(value != null); | |
10296 this._replacement = value; | |
10297 } | |
10298 | |
10299 /** | |
10300 * An identifier that uniquely identifies this source edit from other edits | |
10301 * in the same response. This field is omitted unless a containing structure | |
10302 * needs to be able to identify the edit for some reason. | |
10303 * | |
10304 * For example, some refactoring operations can produce edits that might not | |
10305 * be appropriate (referred to as potential edits). Such edits will have an | |
10306 * id so that they can be referenced. Edits in the same response that do not | |
10307 * need to be referenced will not have an id. | |
10308 */ | |
10309 String get id => _id; | |
10310 | |
10311 /** | |
10312 * An identifier that uniquely identifies this source edit from other edits | |
10313 * in the same response. This field is omitted unless a containing structure | |
10314 * needs to be able to identify the edit for some reason. | |
10315 * | |
10316 * For example, some refactoring operations can produce edits that might not | |
10317 * be appropriate (referred to as potential edits). Such edits will have an | |
10318 * id so that they can be referenced. Edits in the same response that do not | |
10319 * need to be referenced will not have an id. | |
10320 */ | |
10321 void set id(String value) { | |
10322 this._id = value; | |
10323 } | |
10324 | |
10325 SourceEdit(int offset, int length, String replacement, {String id}) { | |
10326 this.offset = offset; | |
10327 this.length = length; | |
10328 this.replacement = replacement; | |
10329 this.id = id; | |
10330 } | |
10331 | |
10332 factory SourceEdit.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object j
son) { | |
10333 if (json == null) { | |
10334 json = {}; | |
10335 } | |
10336 if (json is Map) { | |
10337 int offset; | |
10338 if (json.containsKey("offset")) { | |
10339 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
10340 } else { | |
10341 throw jsonDecoder.mismatch(jsonPath, "offset"); | |
10342 } | |
10343 int length; | |
10344 if (json.containsKey("length")) { | |
10345 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
10346 } else { | |
10347 throw jsonDecoder.mismatch(jsonPath, "length"); | |
10348 } | |
10349 String replacement; | |
10350 if (json.containsKey("replacement")) { | |
10351 replacement = jsonDecoder.decodeString(jsonPath + ".replacement", json["
replacement"]); | |
10352 } else { | |
10353 throw jsonDecoder.mismatch(jsonPath, "replacement"); | |
10354 } | |
10355 String id; | |
10356 if (json.containsKey("id")) { | |
10357 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | |
10358 } | |
10359 return new SourceEdit(offset, length, replacement, id: id); | |
10360 } else { | |
10361 throw jsonDecoder.mismatch(jsonPath, "SourceEdit", json); | |
10362 } | |
10363 } | |
10364 | |
10365 /** | |
10366 * The end of the region to be modified. | |
10367 */ | |
10368 int get end => offset + length; | |
10369 | |
10370 @override | |
10371 Map<String, dynamic> toJson() { | |
10372 Map<String, dynamic> result = {}; | |
10373 result["offset"] = offset; | |
10374 result["length"] = length; | |
10375 result["replacement"] = replacement; | |
10376 if (id != null) { | |
10377 result["id"] = id; | |
10378 } | |
10379 return result; | |
10380 } | |
10381 | |
10382 /** | |
10383 * Get the result of applying the edit to the given [code]. | |
10384 */ | |
10385 String apply(String code) => applyEdit(code, this); | |
10386 | |
10387 @override | |
10388 String toString() => JSON.encode(toJson()); | |
10389 | |
10390 @override | |
10391 bool operator==(other) { | |
10392 if (other is SourceEdit) { | |
10393 return offset == other.offset && | |
10394 length == other.length && | |
10395 replacement == other.replacement && | |
10396 id == other.id; | |
10397 } | |
10398 return false; | |
10399 } | |
10400 | |
10401 @override | |
10402 int get hashCode { | |
10403 int hash = 0; | |
10404 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
10405 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
10406 hash = JenkinsSmiHash.combine(hash, replacement.hashCode); | |
10407 hash = JenkinsSmiHash.combine(hash, id.hashCode); | |
10408 return JenkinsSmiHash.finish(hash); | |
10409 } | |
10410 } | |
10411 | |
10412 /** | |
10413 * SourceFileEdit | |
10414 * | |
10415 * { | |
10416 * "file": FilePath | |
10417 * "fileStamp": long | |
10418 * "edits": List<SourceEdit> | |
10419 * } | |
10420 * | |
10421 * Clients may not extend, implement or mix-in this class. | |
10422 */ | |
10423 class SourceFileEdit implements HasToJson { | |
10424 String _file; | |
10425 | |
10426 int _fileStamp; | |
10427 | |
10428 List<SourceEdit> _edits; | |
10429 | |
10430 /** | |
10431 * The file containing the code to be modified. | |
10432 */ | |
10433 String get file => _file; | |
10434 | |
10435 /** | |
10436 * The file containing the code to be modified. | |
10437 */ | |
10438 void set file(String value) { | |
10439 assert(value != null); | |
10440 this._file = value; | |
10441 } | |
10442 | |
10443 /** | |
10444 * The modification stamp of the file at the moment when the change was | |
10445 * created, in milliseconds since the "Unix epoch". Will be -1 if the file | |
10446 * did not exist and should be created. The client may use this field to make | |
10447 * sure that the file was not changed since then, so it is safe to apply the | |
10448 * change. | |
10449 */ | |
10450 int get fileStamp => _fileStamp; | |
10451 | |
10452 /** | |
10453 * The modification stamp of the file at the moment when the change was | |
10454 * created, in milliseconds since the "Unix epoch". Will be -1 if the file | |
10455 * did not exist and should be created. The client may use this field to make | |
10456 * sure that the file was not changed since then, so it is safe to apply the | |
10457 * change. | |
10458 */ | |
10459 void set fileStamp(int value) { | |
10460 assert(value != null); | |
10461 this._fileStamp = value; | |
10462 } | |
10463 | |
10464 /** | |
10465 * A list of the edits used to effect the change. | |
10466 */ | |
10467 List<SourceEdit> get edits => _edits; | |
10468 | |
10469 /** | |
10470 * A list of the edits used to effect the change. | |
10471 */ | |
10472 void set edits(List<SourceEdit> value) { | |
10473 assert(value != null); | |
10474 this._edits = value; | |
10475 } | |
10476 | |
10477 SourceFileEdit(String file, int fileStamp, {List<SourceEdit> edits}) { | |
10478 this.file = file; | |
10479 this.fileStamp = fileStamp; | |
10480 if (edits == null) { | |
10481 this.edits = <SourceEdit>[]; | |
10482 } else { | |
10483 this.edits = edits; | |
10484 } | |
10485 } | |
10486 | |
10487 factory SourceFileEdit.fromJson(JsonDecoder jsonDecoder, String jsonPath, Obje
ct json) { | |
10488 if (json == null) { | |
10489 json = {}; | |
10490 } | |
10491 if (json is Map) { | |
10492 String file; | |
10493 if (json.containsKey("file")) { | |
10494 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
10495 } else { | |
10496 throw jsonDecoder.mismatch(jsonPath, "file"); | |
10497 } | |
10498 int fileStamp; | |
10499 if (json.containsKey("fileStamp")) { | |
10500 fileStamp = jsonDecoder.decodeInt(jsonPath + ".fileStamp", json["fileSta
mp"]); | |
10501 } else { | |
10502 throw jsonDecoder.mismatch(jsonPath, "fileStamp"); | |
10503 } | |
10504 List<SourceEdit> edits; | |
10505 if (json.containsKey("edits")) { | |
10506 edits = jsonDecoder.decodeList(jsonPath + ".edits", json["edits"], (Stri
ng jsonPath, Object json) => new SourceEdit.fromJson(jsonDecoder, jsonPath, json
)); | |
10507 } else { | |
10508 throw jsonDecoder.mismatch(jsonPath, "edits"); | |
10509 } | |
10510 return new SourceFileEdit(file, fileStamp, edits: edits); | |
10511 } else { | |
10512 throw jsonDecoder.mismatch(jsonPath, "SourceFileEdit", json); | |
10513 } | |
10514 } | |
10515 | |
10516 @override | |
10517 Map<String, dynamic> toJson() { | |
10518 Map<String, dynamic> result = {}; | |
10519 result["file"] = file; | |
10520 result["fileStamp"] = fileStamp; | |
10521 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList(); | |
10522 return result; | |
10523 } | |
10524 | |
10525 /** | |
10526 * Adds the given [Edit] to the list. | |
10527 */ | |
10528 void add(SourceEdit edit) => addEditForSource(this, edit); | |
10529 | |
10530 /** | |
10531 * Adds the given [Edit]s. | |
10532 */ | |
10533 void addAll(Iterable<SourceEdit> edits) => | |
10534 addAllEditsForSource(this, edits); | |
10535 | |
10536 @override | |
10537 String toString() => JSON.encode(toJson()); | |
10538 | |
10539 @override | |
10540 bool operator==(other) { | |
10541 if (other is SourceFileEdit) { | |
10542 return file == other.file && | |
10543 fileStamp == other.fileStamp && | |
10544 listEqual(edits, other.edits, (SourceEdit a, SourceEdit b) => a == b); | |
10545 } | |
10546 return false; | |
10547 } | |
10548 | |
10549 @override | |
10550 int get hashCode { | |
10551 int hash = 0; | |
10552 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
10553 hash = JenkinsSmiHash.combine(hash, fileStamp.hashCode); | |
10554 hash = JenkinsSmiHash.combine(hash, edits.hashCode); | |
10555 return JenkinsSmiHash.finish(hash); | |
10556 } | |
10557 } | |
10558 | |
10559 /** | |
10560 * WatchEvent | |
10561 * | |
10562 * { | |
10563 * "type": WatchEventType | |
10564 * "path": String | |
10565 * } | |
10566 * | |
10567 * Clients may not extend, implement or mix-in this class. | |
10568 */ | |
10569 class WatchEvent implements HasToJson { | |
10570 WatchEventType _type; | |
10571 | |
10572 String _path; | |
10573 | |
10574 /** | |
10575 * The type of change represented by this event. | |
10576 */ | |
10577 WatchEventType get type => _type; | |
10578 | |
10579 /** | |
10580 * The type of change represented by this event. | |
10581 */ | |
10582 void set type(WatchEventType value) { | |
10583 assert(value != null); | |
10584 this._type = value; | |
10585 } | |
10586 | |
10587 /** | |
10588 * The absolute path of the file or directory that changed. | |
10589 */ | |
10590 String get path => _path; | |
10591 | |
10592 /** | |
10593 * The absolute path of the file or directory that changed. | |
10594 */ | |
10595 void set path(String value) { | |
10596 assert(value != null); | |
10597 this._path = value; | |
10598 } | |
10599 | |
10600 WatchEvent(WatchEventType type, String path) { | |
10601 this.type = type; | |
10602 this.path = path; | |
10603 } | |
10604 | |
10605 factory WatchEvent.fromJson(JsonDecoder jsonDecoder, String jsonPath, Object j
son) { | |
10606 if (json == null) { | |
10607 json = {}; | |
10608 } | |
10609 if (json is Map) { | |
10610 WatchEventType type; | |
10611 if (json.containsKey("type")) { | |
10612 type = new WatchEventType.fromJson(jsonDecoder, jsonPath + ".type", json
["type"]); | |
10613 } else { | |
10614 throw jsonDecoder.mismatch(jsonPath, "type"); | |
10615 } | |
10616 String path; | |
10617 if (json.containsKey("path")) { | |
10618 path = jsonDecoder.decodeString(jsonPath + ".path", json["path"]); | |
10619 } else { | |
10620 throw jsonDecoder.mismatch(jsonPath, "path"); | |
10621 } | |
10622 return new WatchEvent(type, path); | |
10623 } else { | |
10624 throw jsonDecoder.mismatch(jsonPath, "WatchEvent", json); | |
10625 } | |
10626 } | |
10627 | |
10628 @override | |
10629 Map<String, dynamic> toJson() { | |
10630 Map<String, dynamic> result = {}; | |
10631 result["type"] = type.toJson(); | |
10632 result["path"] = path; | |
10633 return result; | |
10634 } | |
10635 | |
10636 @override | |
10637 String toString() => JSON.encode(toJson()); | |
10638 | |
10639 @override | |
10640 bool operator==(other) { | |
10641 if (other is WatchEvent) { | |
10642 return type == other.type && | |
10643 path == other.path; | |
10644 } | |
10645 return false; | |
10646 } | |
10647 | |
10648 @override | |
10649 int get hashCode { | |
10650 int hash = 0; | |
10651 hash = JenkinsSmiHash.combine(hash, type.hashCode); | |
10652 hash = JenkinsSmiHash.combine(hash, path.hashCode); | |
10653 return JenkinsSmiHash.finish(hash); | |
10654 } | |
10655 } | |
10656 | |
10657 /** | |
10658 * WatchEventType | |
10659 * | |
10660 * enum { | |
10661 * ADD | |
10662 * MODIFY | |
10663 * REMOVE | |
10664 * } | |
10665 * | |
10666 * Clients may not extend, implement or mix-in this class. | |
10667 */ | |
10668 class WatchEventType implements Enum { | |
10669 /** | |
10670 * An indication that the file or directory was added. | |
10671 */ | |
10672 static const WatchEventType ADD = const WatchEventType._("ADD"); | |
10673 | |
10674 /** | |
10675 * An indication that the file was modified. | |
10676 */ | |
10677 static const WatchEventType MODIFY = const WatchEventType._("MODIFY"); | |
10678 | |
10679 /** | |
10680 * An indication that the file or directory was removed. | |
10681 */ | |
10682 static const WatchEventType REMOVE = const WatchEventType._("REMOVE"); | |
10683 | |
10684 /** | |
10685 * A list containing all of the enum values that are defined. | |
10686 */ | |
10687 static const List<WatchEventType> VALUES = const <WatchEventType>[ADD, MODIFY,
REMOVE]; | |
10688 | |
10689 @override | |
10690 final String name; | |
10691 | |
10692 const WatchEventType._(this.name); | |
10693 | |
10694 factory WatchEventType(String name) { | |
10695 switch (name) { | |
10696 case "ADD": | |
10697 return ADD; | |
10698 case "MODIFY": | |
10699 return MODIFY; | |
10700 case "REMOVE": | |
10701 return REMOVE; | |
10702 } | |
10703 throw new Exception('Illegal enum value: $name'); | |
10704 } | |
10705 | |
10706 factory WatchEventType.fromJson(JsonDecoder jsonDecoder, String jsonPath, Obje
ct json) { | |
10707 if (json is String) { | |
10708 try { | |
10709 return new WatchEventType(json); | |
10710 } catch(_) { | |
10711 // Fall through | |
10712 } | |
10713 } | |
10714 throw jsonDecoder.mismatch(jsonPath, "WatchEventType", json); | |
10715 } | |
10716 | |
10717 @override | |
10718 String toString() => "WatchEventType.$name"; | |
10719 | |
10720 String toJson() => name; | |
10721 } | |
OLD | NEW |