| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 // | 4 // |
| 5 // This file has been automatically generated. Please do not edit it manually. | 5 // This file has been automatically generated. Please do not edit it manually. |
| 6 // To regenerate the file, use the script | 6 // To regenerate the file, use the script |
| 7 // "pkg/analysis_server/tool/spec/generate_files". | 7 // "pkg/analysis_server/tool/spec/generate_files". |
| 8 | 8 |
| 9 part of analysis_server.plugin.protocol.protocol; | 9 import 'dart:convert' hide JsonDecoder; |
| 10 |
| 11 import 'package:analyzer/src/generated/utilities_general.dart'; |
| 12 import 'package:analysis_server/protocol/protocol.dart'; |
| 13 import 'package:analysis_server/src/protocol/protocol_internal.dart'; |
| 10 | 14 |
| 11 /** | 15 /** |
| 12 * server.getVersion params | 16 * AddContentOverlay |
| 13 * | |
| 14 * Clients may not extend, implement or mix-in this class. | |
| 15 */ | |
| 16 class ServerGetVersionParams { | |
| 17 Request toRequest(String id) { | |
| 18 return new Request(id, "server.getVersion", null); | |
| 19 } | |
| 20 | |
| 21 @override | |
| 22 bool operator ==(other) { | |
| 23 if (other is ServerGetVersionParams) { | |
| 24 return true; | |
| 25 } | |
| 26 return false; | |
| 27 } | |
| 28 | |
| 29 @override | |
| 30 int get hashCode { | |
| 31 return 55877452; | |
| 32 } | |
| 33 } | |
| 34 | |
| 35 /** | |
| 36 * server.getVersion result | |
| 37 * | 17 * |
| 38 * { | 18 * { |
| 39 * "version": String | 19 * "type": "add" |
| 20 * "content": String |
| 40 * } | 21 * } |
| 41 * | 22 * |
| 42 * Clients may not extend, implement or mix-in this class. | 23 * Clients may not extend, implement or mix-in this class. |
| 43 */ | 24 */ |
| 44 class ServerGetVersionResult implements HasToJson { | 25 class AddContentOverlay implements HasToJson { |
| 45 String _version; | 26 String _content; |
| 46 | 27 |
| 47 /** | 28 /** |
| 48 * The version number of the analysis server. | 29 * The new content of the file. |
| 49 */ | 30 */ |
| 50 String get version => _version; | 31 String get content => _content; |
| 51 | 32 |
| 52 /** | 33 /** |
| 53 * The version number of the analysis server. | 34 * The new content of the file. |
| 54 */ | 35 */ |
| 55 void set version(String value) { | 36 void set content(String value) { |
| 56 assert(value != null); | 37 assert(value != null); |
| 57 this._version = value; | 38 this._content = value; |
| 58 } | 39 } |
| 59 | 40 |
| 60 ServerGetVersionResult(String version) { | 41 AddContentOverlay(String content) { |
| 61 this.version = version; | 42 this.content = content; |
| 62 } | 43 } |
| 63 | 44 |
| 64 factory ServerGetVersionResult.fromJson( | 45 factory AddContentOverlay.fromJson( |
| 65 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 46 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 66 if (json == null) { | 47 if (json == null) { |
| 67 json = {}; | 48 json = {}; |
| 68 } | 49 } |
| 69 if (json is Map) { | 50 if (json is Map) { |
| 70 String version; | 51 if (json["type"] != "add") { |
| 71 if (json.containsKey("version")) { | 52 throw jsonDecoder.mismatch(jsonPath, "equal " + "add", json); |
| 72 version = | 53 } |
| 73 jsonDecoder.decodeString(jsonPath + ".version", json["version"]); | 54 String content; |
| 55 if (json.containsKey("content")) { |
| 56 content = |
| 57 jsonDecoder.decodeString(jsonPath + ".content", json["content"]); |
| 74 } else { | 58 } else { |
| 75 throw jsonDecoder.missingKey(jsonPath, "version"); | 59 throw jsonDecoder.mismatch(jsonPath, "content"); |
| 76 } | 60 } |
| 77 return new ServerGetVersionResult(version); | 61 return new AddContentOverlay(content); |
| 78 } else { | 62 } else { |
| 79 throw jsonDecoder.mismatch(jsonPath, "server.getVersion result", json); | 63 throw jsonDecoder.mismatch(jsonPath, "AddContentOverlay", json); |
| 80 } | 64 } |
| 81 } | 65 } |
| 82 | 66 |
| 83 factory ServerGetVersionResult.fromResponse(Response response) { | 67 @override |
| 84 return new ServerGetVersionResult.fromJson( | |
| 85 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | |
| 86 "result", | |
| 87 response._result); | |
| 88 } | |
| 89 | |
| 90 Map<String, dynamic> toJson() { | 68 Map<String, dynamic> toJson() { |
| 91 Map<String, dynamic> result = {}; | 69 Map<String, dynamic> result = {}; |
| 92 result["version"] = version; | 70 result["type"] = "add"; |
| 71 result["content"] = content; |
| 93 return result; | 72 return result; |
| 94 } | 73 } |
| 95 | 74 |
| 96 Response toResponse(String id) { | |
| 97 return new Response(id, result: toJson()); | |
| 98 } | |
| 99 | |
| 100 @override | 75 @override |
| 101 String toString() => JSON.encode(toJson()); | 76 String toString() => JSON.encode(toJson()); |
| 102 | 77 |
| 103 @override | 78 @override |
| 104 bool operator ==(other) { | 79 bool operator ==(other) { |
| 105 if (other is ServerGetVersionResult) { | 80 if (other is AddContentOverlay) { |
| 106 return version == other.version; | 81 return content == other.content; |
| 107 } | 82 } |
| 108 return false; | 83 return false; |
| 109 } | 84 } |
| 110 | 85 |
| 111 @override | 86 @override |
| 112 int get hashCode { | 87 int get hashCode { |
| 113 int hash = 0; | 88 int hash = 0; |
| 114 hash = JenkinsSmiHash.combine(hash, version.hashCode); | 89 hash = JenkinsSmiHash.combine(hash, 704418402); |
| 90 hash = JenkinsSmiHash.combine(hash, content.hashCode); |
| 115 return JenkinsSmiHash.finish(hash); | 91 return JenkinsSmiHash.finish(hash); |
| 116 } | 92 } |
| 117 } | 93 } |
| 118 | 94 |
| 119 /** | 95 /** |
| 120 * server.shutdown params | 96 * analysis.analyzedFiles params |
| 121 * | |
| 122 * Clients may not extend, implement or mix-in this class. | |
| 123 */ | |
| 124 class ServerShutdownParams { | |
| 125 Request toRequest(String id) { | |
| 126 return new Request(id, "server.shutdown", null); | |
| 127 } | |
| 128 | |
| 129 @override | |
| 130 bool operator ==(other) { | |
| 131 if (other is ServerShutdownParams) { | |
| 132 return true; | |
| 133 } | |
| 134 return false; | |
| 135 } | |
| 136 | |
| 137 @override | |
| 138 int get hashCode { | |
| 139 return 366630911; | |
| 140 } | |
| 141 } | |
| 142 | |
| 143 /** | |
| 144 * server.shutdown result | |
| 145 * | |
| 146 * Clients may not extend, implement or mix-in this class. | |
| 147 */ | |
| 148 class ServerShutdownResult { | |
| 149 Response toResponse(String id) { | |
| 150 return new Response(id, result: null); | |
| 151 } | |
| 152 | |
| 153 @override | |
| 154 bool operator ==(other) { | |
| 155 if (other is ServerShutdownResult) { | |
| 156 return true; | |
| 157 } | |
| 158 return false; | |
| 159 } | |
| 160 | |
| 161 @override | |
| 162 int get hashCode { | |
| 163 return 193626532; | |
| 164 } | |
| 165 } | |
| 166 | |
| 167 /** | |
| 168 * server.setSubscriptions params | |
| 169 * | 97 * |
| 170 * { | 98 * { |
| 171 * "subscriptions": List<ServerService> | 99 * "directories": List<FilePath> |
| 172 * } | 100 * } |
| 173 * | 101 * |
| 174 * Clients may not extend, implement or mix-in this class. | 102 * Clients may not extend, implement or mix-in this class. |
| 175 */ | 103 */ |
| 176 class ServerSetSubscriptionsParams implements HasToJson { | 104 class AnalysisAnalyzedFilesParams implements HasToJson { |
| 177 List<ServerService> _subscriptions; | 105 List<String> _directories; |
| 178 | 106 |
| 179 /** | 107 /** |
| 180 * A list of the services being subscribed to. | 108 * A list of the paths of the files that are being analyzed. |
| 181 */ | 109 */ |
| 182 List<ServerService> get subscriptions => _subscriptions; | 110 List<String> get directories => _directories; |
| 183 | 111 |
| 184 /** | 112 /** |
| 185 * A list of the services being subscribed to. | 113 * A list of the paths of the files that are being analyzed. |
| 186 */ | 114 */ |
| 187 void set subscriptions(List<ServerService> value) { | 115 void set directories(List<String> value) { |
| 188 assert(value != null); | 116 assert(value != null); |
| 189 this._subscriptions = value; | 117 this._directories = value; |
| 190 } | 118 } |
| 191 | 119 |
| 192 ServerSetSubscriptionsParams(List<ServerService> subscriptions) { | 120 AnalysisAnalyzedFilesParams(List<String> directories) { |
| 193 this.subscriptions = subscriptions; | 121 this.directories = directories; |
| 194 } | 122 } |
| 195 | 123 |
| 196 factory ServerSetSubscriptionsParams.fromJson( | 124 factory AnalysisAnalyzedFilesParams.fromJson( |
| 197 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 125 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 198 if (json == null) { | 126 if (json == null) { |
| 199 json = {}; | 127 json = {}; |
| 200 } | 128 } |
| 201 if (json is Map) { | 129 if (json is Map) { |
| 202 List<ServerService> subscriptions; | 130 List<String> directories; |
| 203 if (json.containsKey("subscriptions")) { | 131 if (json.containsKey("directories")) { |
| 204 subscriptions = jsonDecoder.decodeList( | 132 directories = jsonDecoder.decodeList(jsonPath + ".directories", |
| 205 jsonPath + ".subscriptions", | 133 json["directories"], jsonDecoder.decodeString); |
| 206 json["subscriptions"], | |
| 207 (String jsonPath, Object json) => | |
| 208 new ServerService.fromJson(jsonDecoder, jsonPath, json)); | |
| 209 } else { | 134 } else { |
| 210 throw jsonDecoder.missingKey(jsonPath, "subscriptions"); | 135 throw jsonDecoder.mismatch(jsonPath, "directories"); |
| 211 } | 136 } |
| 212 return new ServerSetSubscriptionsParams(subscriptions); | 137 return new AnalysisAnalyzedFilesParams(directories); |
| 213 } else { | 138 } else { |
| 214 throw jsonDecoder.mismatch( | 139 throw jsonDecoder.mismatch( |
| 215 jsonPath, "server.setSubscriptions params", json); | 140 jsonPath, "analysis.analyzedFiles params", json); |
| 216 } | 141 } |
| 217 } | 142 } |
| 218 | 143 |
| 219 factory ServerSetSubscriptionsParams.fromRequest(Request request) { | 144 factory AnalysisAnalyzedFilesParams.fromNotification( |
| 220 return new ServerSetSubscriptionsParams.fromJson( | 145 Notification notification) { |
| 221 new RequestDecoder(request), "params", request._params); | 146 return new AnalysisAnalyzedFilesParams.fromJson( |
| 147 new ResponseDecoder(null), "params", notification.params); |
| 222 } | 148 } |
| 223 | 149 |
| 150 @override |
| 224 Map<String, dynamic> toJson() { | 151 Map<String, dynamic> toJson() { |
| 225 Map<String, dynamic> result = {}; | 152 Map<String, dynamic> result = {}; |
| 226 result["subscriptions"] = | 153 result["directories"] = directories; |
| 227 subscriptions.map((ServerService value) => value.toJson()).toList(); | |
| 228 return result; | 154 return result; |
| 229 } | 155 } |
| 230 | 156 |
| 231 Request toRequest(String id) { | 157 Notification toNotification() { |
| 232 return new Request(id, "server.setSubscriptions", toJson()); | 158 return new Notification("analysis.analyzedFiles", toJson()); |
| 233 } | 159 } |
| 234 | 160 |
| 235 @override | 161 @override |
| 236 String toString() => JSON.encode(toJson()); | 162 String toString() => JSON.encode(toJson()); |
| 237 | 163 |
| 238 @override | 164 @override |
| 239 bool operator ==(other) { | 165 bool operator ==(other) { |
| 240 if (other is ServerSetSubscriptionsParams) { | 166 if (other is AnalysisAnalyzedFilesParams) { |
| 241 return listEqual(subscriptions, other.subscriptions, | 167 return listEqual( |
| 242 (ServerService a, ServerService b) => a == b); | 168 directories, other.directories, (String a, String b) => a == b); |
| 243 } | 169 } |
| 244 return false; | 170 return false; |
| 245 } | 171 } |
| 246 | 172 |
| 247 @override | 173 @override |
| 248 int get hashCode { | 174 int get hashCode { |
| 249 int hash = 0; | 175 int hash = 0; |
| 250 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode); | 176 hash = JenkinsSmiHash.combine(hash, directories.hashCode); |
| 251 return JenkinsSmiHash.finish(hash); | 177 return JenkinsSmiHash.finish(hash); |
| 252 } | 178 } |
| 253 } | 179 } |
| 254 | 180 |
| 255 /** | 181 /** |
| 256 * server.setSubscriptions result | 182 * AnalysisError |
| 257 * | |
| 258 * Clients may not extend, implement or mix-in this class. | |
| 259 */ | |
| 260 class ServerSetSubscriptionsResult { | |
| 261 Response toResponse(String id) { | |
| 262 return new Response(id, result: null); | |
| 263 } | |
| 264 | |
| 265 @override | |
| 266 bool operator ==(other) { | |
| 267 if (other is ServerSetSubscriptionsResult) { | |
| 268 return true; | |
| 269 } | |
| 270 return false; | |
| 271 } | |
| 272 | |
| 273 @override | |
| 274 int get hashCode { | |
| 275 return 748820900; | |
| 276 } | |
| 277 } | |
| 278 | |
| 279 /** | |
| 280 * server.connected params | |
| 281 * | 183 * |
| 282 * { | 184 * { |
| 283 * "version": String | 185 * "severity": AnalysisErrorSeverity |
| 284 * "pid": int | 186 * "type": AnalysisErrorType |
| 285 * "sessionId": optional String | 187 * "location": Location |
| 188 * "message": String |
| 189 * "correction": optional String |
| 190 * "code": String |
| 191 * "hasFix": optional bool |
| 286 * } | 192 * } |
| 287 * | 193 * |
| 288 * Clients may not extend, implement or mix-in this class. | 194 * Clients may not extend, implement or mix-in this class. |
| 289 */ | 195 */ |
| 290 class ServerConnectedParams implements HasToJson { | 196 class AnalysisError implements HasToJson { |
| 291 String _version; | 197 AnalysisErrorSeverity _severity; |
| 292 | 198 |
| 293 int _pid; | 199 AnalysisErrorType _type; |
| 294 | 200 |
| 295 String _sessionId; | 201 Location _location; |
| 296 | 202 |
| 297 /** | 203 String _message; |
| 298 * The version number of the analysis server. | 204 |
| 299 */ | 205 String _correction; |
| 300 String get version => _version; | 206 |
| 301 | 207 String _code; |
| 302 /** | 208 |
| 303 * The version number of the analysis server. | 209 bool _hasFix; |
| 304 */ | 210 |
| 305 void set version(String value) { | 211 /** |
| 306 assert(value != null); | 212 * The severity of the error. |
| 307 this._version = value; | 213 */ |
| 308 } | 214 AnalysisErrorSeverity get severity => _severity; |
| 309 | 215 |
| 310 /** | 216 /** |
| 311 * The process id of the analysis server process. | 217 * The severity of the error. |
| 312 */ | 218 */ |
| 313 int get pid => _pid; | 219 void set severity(AnalysisErrorSeverity value) { |
| 314 | 220 assert(value != null); |
| 315 /** | 221 this._severity = value; |
| 316 * The process id of the analysis server process. | 222 } |
| 317 */ | 223 |
| 318 void set pid(int value) { | 224 /** |
| 319 assert(value != null); | 225 * The type of the error. |
| 320 this._pid = value; | 226 */ |
| 321 } | 227 AnalysisErrorType get type => _type; |
| 322 | 228 |
| 323 /** | 229 /** |
| 324 * The session id for this session. | 230 * The type of the error. |
| 325 */ | 231 */ |
| 326 String get sessionId => _sessionId; | 232 void set type(AnalysisErrorType value) { |
| 327 | 233 assert(value != null); |
| 328 /** | 234 this._type = value; |
| 329 * The session id for this session. | 235 } |
| 330 */ | 236 |
| 331 void set sessionId(String value) { | 237 /** |
| 332 this._sessionId = value; | 238 * The location associated with the error. |
| 333 } | 239 */ |
| 334 | 240 Location get location => _location; |
| 335 ServerConnectedParams(String version, int pid, {String sessionId}) { | 241 |
| 336 this.version = version; | 242 /** |
| 337 this.pid = pid; | 243 * The location associated with the error. |
| 338 this.sessionId = sessionId; | 244 */ |
| 339 } | 245 void set location(Location value) { |
| 340 | 246 assert(value != null); |
| 341 factory ServerConnectedParams.fromJson( | 247 this._location = value; |
| 248 } |
| 249 |
| 250 /** |
| 251 * The message to be displayed for this error. The message should indicate |
| 252 * what is wrong with the code and why it is wrong. |
| 253 */ |
| 254 String get message => _message; |
| 255 |
| 256 /** |
| 257 * The message to be displayed for this error. The message should indicate |
| 258 * what is wrong with the code and why it is wrong. |
| 259 */ |
| 260 void set message(String value) { |
| 261 assert(value != null); |
| 262 this._message = value; |
| 263 } |
| 264 |
| 265 /** |
| 266 * The correction message to be displayed for this error. The correction |
| 267 * message should indicate how the user can fix the error. The field is |
| 268 * omitted if there is no correction message associated with the error code. |
| 269 */ |
| 270 String get correction => _correction; |
| 271 |
| 272 /** |
| 273 * The correction message to be displayed for this error. The correction |
| 274 * message should indicate how the user can fix the error. The field is |
| 275 * omitted if there is no correction message associated with the error code. |
| 276 */ |
| 277 void set correction(String value) { |
| 278 this._correction = value; |
| 279 } |
| 280 |
| 281 /** |
| 282 * The name, as a string, of the error code associated with this error. |
| 283 */ |
| 284 String get code => _code; |
| 285 |
| 286 /** |
| 287 * The name, as a string, of the error code associated with this error. |
| 288 */ |
| 289 void set code(String value) { |
| 290 assert(value != null); |
| 291 this._code = value; |
| 292 } |
| 293 |
| 294 /** |
| 295 * A hint to indicate to interested clients that this error has an associated |
| 296 * fix (or fixes). The absence of this field implies there are not known to |
| 297 * be fixes. Note that since the operation to calculate whether fixes apply |
| 298 * needs to be performant it is possible that complicated tests will be |
| 299 * skipped and a false negative returned. For this reason, this attribute |
| 300 * should be treated as a "hint". Despite the possibility of false negatives, |
| 301 * no false positives should be returned. If a client sees this flag set they |
| 302 * can proceed with the confidence that there are in fact associated fixes. |
| 303 */ |
| 304 bool get hasFix => _hasFix; |
| 305 |
| 306 /** |
| 307 * A hint to indicate to interested clients that this error has an associated |
| 308 * fix (or fixes). The absence of this field implies there are not known to |
| 309 * be fixes. Note that since the operation to calculate whether fixes apply |
| 310 * needs to be performant it is possible that complicated tests will be |
| 311 * skipped and a false negative returned. For this reason, this attribute |
| 312 * should be treated as a "hint". Despite the possibility of false negatives, |
| 313 * no false positives should be returned. If a client sees this flag set they |
| 314 * can proceed with the confidence that there are in fact associated fixes. |
| 315 */ |
| 316 void set hasFix(bool value) { |
| 317 this._hasFix = value; |
| 318 } |
| 319 |
| 320 AnalysisError(AnalysisErrorSeverity severity, AnalysisErrorType type, |
| 321 Location location, String message, String code, |
| 322 {String correction, bool hasFix}) { |
| 323 this.severity = severity; |
| 324 this.type = type; |
| 325 this.location = location; |
| 326 this.message = message; |
| 327 this.correction = correction; |
| 328 this.code = code; |
| 329 this.hasFix = hasFix; |
| 330 } |
| 331 |
| 332 factory AnalysisError.fromJson( |
| 342 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 333 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 343 if (json == null) { | 334 if (json == null) { |
| 344 json = {}; | 335 json = {}; |
| 345 } | 336 } |
| 346 if (json is Map) { | 337 if (json is Map) { |
| 347 String version; | 338 AnalysisErrorSeverity severity; |
| 348 if (json.containsKey("version")) { | 339 if (json.containsKey("severity")) { |
| 349 version = | 340 severity = new AnalysisErrorSeverity.fromJson( |
| 350 jsonDecoder.decodeString(jsonPath + ".version", json["version"]); | 341 jsonDecoder, jsonPath + ".severity", json["severity"]); |
| 351 } else { | 342 } else { |
| 352 throw jsonDecoder.missingKey(jsonPath, "version"); | 343 throw jsonDecoder.mismatch(jsonPath, "severity"); |
| 353 } | 344 } |
| 354 int pid; | 345 AnalysisErrorType type; |
| 355 if (json.containsKey("pid")) { | 346 if (json.containsKey("type")) { |
| 356 pid = jsonDecoder.decodeInt(jsonPath + ".pid", json["pid"]); | 347 type = new AnalysisErrorType.fromJson( |
| 357 } else { | 348 jsonDecoder, jsonPath + ".type", json["type"]); |
| 358 throw jsonDecoder.missingKey(jsonPath, "pid"); | 349 } else { |
| 359 } | 350 throw jsonDecoder.mismatch(jsonPath, "type"); |
| 360 String sessionId; | 351 } |
| 361 if (json.containsKey("sessionId")) { | 352 Location location; |
| 362 sessionId = jsonDecoder.decodeString( | 353 if (json.containsKey("location")) { |
| 363 jsonPath + ".sessionId", json["sessionId"]); | 354 location = new Location.fromJson( |
| 364 } | 355 jsonDecoder, jsonPath + ".location", json["location"]); |
| 365 return new ServerConnectedParams(version, pid, sessionId: sessionId); | 356 } else { |
| 366 } else { | 357 throw jsonDecoder.mismatch(jsonPath, "location"); |
| 367 throw jsonDecoder.mismatch(jsonPath, "server.connected params", json); | |
| 368 } | |
| 369 } | |
| 370 | |
| 371 factory ServerConnectedParams.fromNotification(Notification notification) { | |
| 372 return new ServerConnectedParams.fromJson( | |
| 373 new ResponseDecoder(null), "params", notification._params); | |
| 374 } | |
| 375 | |
| 376 Map<String, dynamic> toJson() { | |
| 377 Map<String, dynamic> result = {}; | |
| 378 result["version"] = version; | |
| 379 result["pid"] = pid; | |
| 380 if (sessionId != null) { | |
| 381 result["sessionId"] = sessionId; | |
| 382 } | |
| 383 return result; | |
| 384 } | |
| 385 | |
| 386 Notification toNotification() { | |
| 387 return new Notification("server.connected", toJson()); | |
| 388 } | |
| 389 | |
| 390 @override | |
| 391 String toString() => JSON.encode(toJson()); | |
| 392 | |
| 393 @override | |
| 394 bool operator ==(other) { | |
| 395 if (other is ServerConnectedParams) { | |
| 396 return version == other.version && | |
| 397 pid == other.pid && | |
| 398 sessionId == other.sessionId; | |
| 399 } | |
| 400 return false; | |
| 401 } | |
| 402 | |
| 403 @override | |
| 404 int get hashCode { | |
| 405 int hash = 0; | |
| 406 hash = JenkinsSmiHash.combine(hash, version.hashCode); | |
| 407 hash = JenkinsSmiHash.combine(hash, pid.hashCode); | |
| 408 hash = JenkinsSmiHash.combine(hash, sessionId.hashCode); | |
| 409 return JenkinsSmiHash.finish(hash); | |
| 410 } | |
| 411 } | |
| 412 | |
| 413 /** | |
| 414 * server.error params | |
| 415 * | |
| 416 * { | |
| 417 * "isFatal": bool | |
| 418 * "message": String | |
| 419 * "stackTrace": String | |
| 420 * } | |
| 421 * | |
| 422 * Clients may not extend, implement or mix-in this class. | |
| 423 */ | |
| 424 class ServerErrorParams implements HasToJson { | |
| 425 bool _isFatal; | |
| 426 | |
| 427 String _message; | |
| 428 | |
| 429 String _stackTrace; | |
| 430 | |
| 431 /** | |
| 432 * True if the error is a fatal error, meaning that the server will shutdown | |
| 433 * automatically after sending this notification. | |
| 434 */ | |
| 435 bool get isFatal => _isFatal; | |
| 436 | |
| 437 /** | |
| 438 * True if the error is a fatal error, meaning that the server will shutdown | |
| 439 * automatically after sending this notification. | |
| 440 */ | |
| 441 void set isFatal(bool value) { | |
| 442 assert(value != null); | |
| 443 this._isFatal = value; | |
| 444 } | |
| 445 | |
| 446 /** | |
| 447 * The error message indicating what kind of error was encountered. | |
| 448 */ | |
| 449 String get message => _message; | |
| 450 | |
| 451 /** | |
| 452 * The error message indicating what kind of error was encountered. | |
| 453 */ | |
| 454 void set message(String value) { | |
| 455 assert(value != null); | |
| 456 this._message = value; | |
| 457 } | |
| 458 | |
| 459 /** | |
| 460 * The stack trace associated with the generation of the error, used for | |
| 461 * debugging the server. | |
| 462 */ | |
| 463 String get stackTrace => _stackTrace; | |
| 464 | |
| 465 /** | |
| 466 * The stack trace associated with the generation of the error, used for | |
| 467 * debugging the server. | |
| 468 */ | |
| 469 void set stackTrace(String value) { | |
| 470 assert(value != null); | |
| 471 this._stackTrace = value; | |
| 472 } | |
| 473 | |
| 474 ServerErrorParams(bool isFatal, String message, String stackTrace) { | |
| 475 this.isFatal = isFatal; | |
| 476 this.message = message; | |
| 477 this.stackTrace = stackTrace; | |
| 478 } | |
| 479 | |
| 480 factory ServerErrorParams.fromJson( | |
| 481 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 482 if (json == null) { | |
| 483 json = {}; | |
| 484 } | |
| 485 if (json is Map) { | |
| 486 bool isFatal; | |
| 487 if (json.containsKey("isFatal")) { | |
| 488 isFatal = | |
| 489 jsonDecoder.decodeBool(jsonPath + ".isFatal", json["isFatal"]); | |
| 490 } else { | |
| 491 throw jsonDecoder.missingKey(jsonPath, "isFatal"); | |
| 492 } | 358 } |
| 493 String message; | 359 String message; |
| 494 if (json.containsKey("message")) { | 360 if (json.containsKey("message")) { |
| 495 message = | 361 message = |
| 496 jsonDecoder.decodeString(jsonPath + ".message", json["message"]); | 362 jsonDecoder.decodeString(jsonPath + ".message", json["message"]); |
| 497 } else { | 363 } else { |
| 498 throw jsonDecoder.missingKey(jsonPath, "message"); | 364 throw jsonDecoder.mismatch(jsonPath, "message"); |
| 499 } | 365 } |
| 500 String stackTrace; | 366 String correction; |
| 501 if (json.containsKey("stackTrace")) { | 367 if (json.containsKey("correction")) { |
| 502 stackTrace = jsonDecoder.decodeString( | 368 correction = jsonDecoder.decodeString( |
| 503 jsonPath + ".stackTrace", json["stackTrace"]); | 369 jsonPath + ".correction", json["correction"]); |
| 504 } else { | 370 } |
| 505 throw jsonDecoder.missingKey(jsonPath, "stackTrace"); | 371 String code; |
| 506 } | 372 if (json.containsKey("code")) { |
| 507 return new ServerErrorParams(isFatal, message, stackTrace); | 373 code = jsonDecoder.decodeString(jsonPath + ".code", json["code"]); |
| 374 } else { |
| 375 throw jsonDecoder.mismatch(jsonPath, "code"); |
| 376 } |
| 377 bool hasFix; |
| 378 if (json.containsKey("hasFix")) { |
| 379 hasFix = jsonDecoder.decodeBool(jsonPath + ".hasFix", json["hasFix"]); |
| 380 } |
| 381 return new AnalysisError(severity, type, location, message, code, |
| 382 correction: correction, hasFix: hasFix); |
| 508 } else { | 383 } else { |
| 509 throw jsonDecoder.mismatch(jsonPath, "server.error params", json); | 384 throw jsonDecoder.mismatch(jsonPath, "AnalysisError", json); |
| 510 } | 385 } |
| 511 } | 386 } |
| 512 | 387 |
| 513 factory ServerErrorParams.fromNotification(Notification notification) { | 388 @override |
| 514 return new ServerErrorParams.fromJson( | |
| 515 new ResponseDecoder(null), "params", notification._params); | |
| 516 } | |
| 517 | |
| 518 Map<String, dynamic> toJson() { | 389 Map<String, dynamic> toJson() { |
| 519 Map<String, dynamic> result = {}; | 390 Map<String, dynamic> result = {}; |
| 520 result["isFatal"] = isFatal; | 391 result["severity"] = severity.toJson(); |
| 392 result["type"] = type.toJson(); |
| 393 result["location"] = location.toJson(); |
| 521 result["message"] = message; | 394 result["message"] = message; |
| 522 result["stackTrace"] = stackTrace; | 395 if (correction != null) { |
| 396 result["correction"] = correction; |
| 397 } |
| 398 result["code"] = code; |
| 399 if (hasFix != null) { |
| 400 result["hasFix"] = hasFix; |
| 401 } |
| 523 return result; | 402 return result; |
| 524 } | 403 } |
| 525 | 404 |
| 526 Notification toNotification() { | |
| 527 return new Notification("server.error", toJson()); | |
| 528 } | |
| 529 | |
| 530 @override | 405 @override |
| 531 String toString() => JSON.encode(toJson()); | 406 String toString() => JSON.encode(toJson()); |
| 532 | 407 |
| 533 @override | 408 @override |
| 534 bool operator ==(other) { | 409 bool operator ==(other) { |
| 535 if (other is ServerErrorParams) { | 410 if (other is AnalysisError) { |
| 536 return isFatal == other.isFatal && | 411 return severity == other.severity && |
| 412 type == other.type && |
| 413 location == other.location && |
| 537 message == other.message && | 414 message == other.message && |
| 538 stackTrace == other.stackTrace; | 415 correction == other.correction && |
| 416 code == other.code && |
| 417 hasFix == other.hasFix; |
| 539 } | 418 } |
| 540 return false; | 419 return false; |
| 541 } | 420 } |
| 542 | 421 |
| 543 @override | 422 @override |
| 544 int get hashCode { | 423 int get hashCode { |
| 545 int hash = 0; | 424 int hash = 0; |
| 546 hash = JenkinsSmiHash.combine(hash, isFatal.hashCode); | 425 hash = JenkinsSmiHash.combine(hash, severity.hashCode); |
| 426 hash = JenkinsSmiHash.combine(hash, type.hashCode); |
| 427 hash = JenkinsSmiHash.combine(hash, location.hashCode); |
| 547 hash = JenkinsSmiHash.combine(hash, message.hashCode); | 428 hash = JenkinsSmiHash.combine(hash, message.hashCode); |
| 548 hash = JenkinsSmiHash.combine(hash, stackTrace.hashCode); | 429 hash = JenkinsSmiHash.combine(hash, correction.hashCode); |
| 430 hash = JenkinsSmiHash.combine(hash, code.hashCode); |
| 431 hash = JenkinsSmiHash.combine(hash, hasFix.hashCode); |
| 549 return JenkinsSmiHash.finish(hash); | 432 return JenkinsSmiHash.finish(hash); |
| 550 } | 433 } |
| 551 } | 434 } |
| 552 | 435 |
| 553 /** | 436 /** |
| 554 * server.status params | 437 * AnalysisErrorFixes |
| 555 * | 438 * |
| 556 * { | 439 * { |
| 557 * "analysis": optional AnalysisStatus | 440 * "error": AnalysisError |
| 558 * "pub": optional PubStatus | 441 * "fixes": List<SourceChange> |
| 559 * } | 442 * } |
| 560 * | 443 * |
| 561 * Clients may not extend, implement or mix-in this class. | 444 * Clients may not extend, implement or mix-in this class. |
| 562 */ | 445 */ |
| 563 class ServerStatusParams implements HasToJson { | 446 class AnalysisErrorFixes implements HasToJson { |
| 564 AnalysisStatus _analysis; | 447 AnalysisError _error; |
| 565 | 448 |
| 566 PubStatus _pub; | 449 List<SourceChange> _fixes; |
| 567 | 450 |
| 568 /** | 451 /** |
| 569 * The current status of analysis, including whether analysis is being | 452 * The error with which the fixes are associated. |
| 570 * performed and if so what is being analyzed. | |
| 571 */ | 453 */ |
| 572 AnalysisStatus get analysis => _analysis; | 454 AnalysisError get error => _error; |
| 573 | 455 |
| 574 /** | 456 /** |
| 575 * The current status of analysis, including whether analysis is being | 457 * The error with which the fixes are associated. |
| 576 * performed and if so what is being analyzed. | |
| 577 */ | 458 */ |
| 578 void set analysis(AnalysisStatus value) { | 459 void set error(AnalysisError value) { |
| 579 this._analysis = value; | 460 assert(value != null); |
| 461 this._error = value; |
| 580 } | 462 } |
| 581 | 463 |
| 582 /** | 464 /** |
| 583 * The current status of pub execution, indicating whether we are currently | 465 * The fixes associated with the error. |
| 584 * running pub. | |
| 585 */ | 466 */ |
| 586 PubStatus get pub => _pub; | 467 List<SourceChange> get fixes => _fixes; |
| 587 | 468 |
| 588 /** | 469 /** |
| 589 * The current status of pub execution, indicating whether we are currently | 470 * The fixes associated with the error. |
| 590 * running pub. | |
| 591 */ | 471 */ |
| 592 void set pub(PubStatus value) { | 472 void set fixes(List<SourceChange> value) { |
| 593 this._pub = value; | 473 assert(value != null); |
| 474 this._fixes = value; |
| 594 } | 475 } |
| 595 | 476 |
| 596 ServerStatusParams({AnalysisStatus analysis, PubStatus pub}) { | 477 AnalysisErrorFixes(AnalysisError error, {List<SourceChange> fixes}) { |
| 597 this.analysis = analysis; | 478 this.error = error; |
| 598 this.pub = pub; | 479 if (fixes == null) { |
| 480 this.fixes = <SourceChange>[]; |
| 481 } else { |
| 482 this.fixes = fixes; |
| 483 } |
| 599 } | 484 } |
| 600 | 485 |
| 601 factory ServerStatusParams.fromJson( | 486 factory AnalysisErrorFixes.fromJson( |
| 602 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 487 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 603 if (json == null) { | 488 if (json == null) { |
| 604 json = {}; | 489 json = {}; |
| 605 } | 490 } |
| 606 if (json is Map) { | 491 if (json is Map) { |
| 607 AnalysisStatus analysis; | 492 AnalysisError error; |
| 608 if (json.containsKey("analysis")) { | 493 if (json.containsKey("error")) { |
| 609 analysis = new AnalysisStatus.fromJson( | 494 error = new AnalysisError.fromJson( |
| 610 jsonDecoder, jsonPath + ".analysis", json["analysis"]); | 495 jsonDecoder, jsonPath + ".error", json["error"]); |
| 496 } else { |
| 497 throw jsonDecoder.mismatch(jsonPath, "error"); |
| 611 } | 498 } |
| 612 PubStatus pub; | 499 List<SourceChange> fixes; |
| 613 if (json.containsKey("pub")) { | 500 if (json.containsKey("fixes")) { |
| 614 pub = | 501 fixes = jsonDecoder.decodeList( |
| 615 new PubStatus.fromJson(jsonDecoder, jsonPath + ".pub", json["pub"]); | 502 jsonPath + ".fixes", |
| 503 json["fixes"], |
| 504 (String jsonPath, Object json) => |
| 505 new SourceChange.fromJson(jsonDecoder, jsonPath, json)); |
| 506 } else { |
| 507 throw jsonDecoder.mismatch(jsonPath, "fixes"); |
| 616 } | 508 } |
| 617 return new ServerStatusParams(analysis: analysis, pub: pub); | 509 return new AnalysisErrorFixes(error, fixes: fixes); |
| 618 } else { | 510 } else { |
| 619 throw jsonDecoder.mismatch(jsonPath, "server.status params", json); | 511 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorFixes", json); |
| 620 } | 512 } |
| 621 } | 513 } |
| 622 | 514 |
| 623 factory ServerStatusParams.fromNotification(Notification notification) { | 515 @override |
| 624 return new ServerStatusParams.fromJson( | |
| 625 new ResponseDecoder(null), "params", notification._params); | |
| 626 } | |
| 627 | |
| 628 Map<String, dynamic> toJson() { | 516 Map<String, dynamic> toJson() { |
| 629 Map<String, dynamic> result = {}; | 517 Map<String, dynamic> result = {}; |
| 630 if (analysis != null) { | 518 result["error"] = error.toJson(); |
| 631 result["analysis"] = analysis.toJson(); | 519 result["fixes"] = |
| 632 } | 520 fixes.map((SourceChange value) => value.toJson()).toList(); |
| 633 if (pub != null) { | |
| 634 result["pub"] = pub.toJson(); | |
| 635 } | |
| 636 return result; | 521 return result; |
| 637 } | 522 } |
| 638 | 523 |
| 639 Notification toNotification() { | |
| 640 return new Notification("server.status", toJson()); | |
| 641 } | |
| 642 | |
| 643 @override | 524 @override |
| 644 String toString() => JSON.encode(toJson()); | 525 String toString() => JSON.encode(toJson()); |
| 645 | 526 |
| 646 @override | 527 @override |
| 647 bool operator ==(other) { | 528 bool operator ==(other) { |
| 648 if (other is ServerStatusParams) { | 529 if (other is AnalysisErrorFixes) { |
| 649 return analysis == other.analysis && pub == other.pub; | 530 return error == other.error && |
| 531 listEqual( |
| 532 fixes, other.fixes, (SourceChange a, SourceChange b) => a == b); |
| 650 } | 533 } |
| 651 return false; | 534 return false; |
| 652 } | 535 } |
| 653 | 536 |
| 654 @override | 537 @override |
| 655 int get hashCode { | 538 int get hashCode { |
| 656 int hash = 0; | 539 int hash = 0; |
| 657 hash = JenkinsSmiHash.combine(hash, analysis.hashCode); | 540 hash = JenkinsSmiHash.combine(hash, error.hashCode); |
| 658 hash = JenkinsSmiHash.combine(hash, pub.hashCode); | 541 hash = JenkinsSmiHash.combine(hash, fixes.hashCode); |
| 659 return JenkinsSmiHash.finish(hash); | 542 return JenkinsSmiHash.finish(hash); |
| 660 } | 543 } |
| 661 } | 544 } |
| 662 | 545 |
| 663 /** | 546 /** |
| 664 * analysis.getErrors params | 547 * AnalysisErrorSeverity |
| 665 * | 548 * |
| 666 * { | 549 * enum { |
| 667 * "file": FilePath | 550 * INFO |
| 551 * WARNING |
| 552 * ERROR |
| 668 * } | 553 * } |
| 669 * | 554 * |
| 670 * Clients may not extend, implement or mix-in this class. | 555 * Clients may not extend, implement or mix-in this class. |
| 671 */ | 556 */ |
| 672 class AnalysisGetErrorsParams implements HasToJson { | 557 class AnalysisErrorSeverity implements Enum { |
| 673 String _file; | 558 static const AnalysisErrorSeverity INFO = |
| 559 const AnalysisErrorSeverity._("INFO"); |
| 560 |
| 561 static const AnalysisErrorSeverity WARNING = |
| 562 const AnalysisErrorSeverity._("WARNING"); |
| 563 |
| 564 static const AnalysisErrorSeverity ERROR = |
| 565 const AnalysisErrorSeverity._("ERROR"); |
| 674 | 566 |
| 675 /** | 567 /** |
| 676 * The file for which errors are being requested. | 568 * A list containing all of the enum values that are defined. |
| 677 */ | 569 */ |
| 678 String get file => _file; | 570 static const List<AnalysisErrorSeverity> VALUES = |
| 571 const <AnalysisErrorSeverity>[INFO, WARNING, ERROR]; |
| 679 | 572 |
| 680 /** | 573 @override |
| 681 * The file for which errors are being requested. | 574 final String name; |
| 682 */ | 575 |
| 683 void set file(String value) { | 576 const AnalysisErrorSeverity._(this.name); |
| 684 assert(value != null); | 577 |
| 685 this._file = value; | 578 factory AnalysisErrorSeverity(String name) { |
| 579 switch (name) { |
| 580 case "INFO": |
| 581 return INFO; |
| 582 case "WARNING": |
| 583 return WARNING; |
| 584 case "ERROR": |
| 585 return ERROR; |
| 586 } |
| 587 throw new Exception('Illegal enum value: $name'); |
| 686 } | 588 } |
| 687 | 589 |
| 688 AnalysisGetErrorsParams(String file) { | 590 factory AnalysisErrorSeverity.fromJson( |
| 689 this.file = file; | |
| 690 } | |
| 691 | |
| 692 factory AnalysisGetErrorsParams.fromJson( | |
| 693 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 591 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 694 if (json == null) { | 592 if (json is String) { |
| 695 json = {}; | 593 try { |
| 594 return new AnalysisErrorSeverity(json); |
| 595 } catch (_) { |
| 596 // Fall through |
| 597 } |
| 696 } | 598 } |
| 697 if (json is Map) { | 599 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorSeverity", json); |
| 698 String file; | |
| 699 if (json.containsKey("file")) { | |
| 700 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
| 701 } else { | |
| 702 throw jsonDecoder.missingKey(jsonPath, "file"); | |
| 703 } | |
| 704 return new AnalysisGetErrorsParams(file); | |
| 705 } else { | |
| 706 throw jsonDecoder.mismatch(jsonPath, "analysis.getErrors params", json); | |
| 707 } | |
| 708 } | |
| 709 | |
| 710 factory AnalysisGetErrorsParams.fromRequest(Request request) { | |
| 711 return new AnalysisGetErrorsParams.fromJson( | |
| 712 new RequestDecoder(request), "params", request._params); | |
| 713 } | |
| 714 | |
| 715 Map<String, dynamic> toJson() { | |
| 716 Map<String, dynamic> result = {}; | |
| 717 result["file"] = file; | |
| 718 return result; | |
| 719 } | |
| 720 | |
| 721 Request toRequest(String id) { | |
| 722 return new Request(id, "analysis.getErrors", toJson()); | |
| 723 } | 600 } |
| 724 | 601 |
| 725 @override | 602 @override |
| 726 String toString() => JSON.encode(toJson()); | 603 String toString() => "AnalysisErrorSeverity.$name"; |
| 604 |
| 605 String toJson() => name; |
| 606 } |
| 607 |
| 608 /** |
| 609 * AnalysisErrorType |
| 610 * |
| 611 * enum { |
| 612 * CHECKED_MODE_COMPILE_TIME_ERROR |
| 613 * COMPILE_TIME_ERROR |
| 614 * HINT |
| 615 * LINT |
| 616 * STATIC_TYPE_WARNING |
| 617 * STATIC_WARNING |
| 618 * SYNTACTIC_ERROR |
| 619 * TODO |
| 620 * } |
| 621 * |
| 622 * Clients may not extend, implement or mix-in this class. |
| 623 */ |
| 624 class AnalysisErrorType implements Enum { |
| 625 static const AnalysisErrorType CHECKED_MODE_COMPILE_TIME_ERROR = |
| 626 const AnalysisErrorType._("CHECKED_MODE_COMPILE_TIME_ERROR"); |
| 627 |
| 628 static const AnalysisErrorType COMPILE_TIME_ERROR = |
| 629 const AnalysisErrorType._("COMPILE_TIME_ERROR"); |
| 630 |
| 631 static const AnalysisErrorType HINT = const AnalysisErrorType._("HINT"); |
| 632 |
| 633 static const AnalysisErrorType LINT = const AnalysisErrorType._("LINT"); |
| 634 |
| 635 static const AnalysisErrorType STATIC_TYPE_WARNING = |
| 636 const AnalysisErrorType._("STATIC_TYPE_WARNING"); |
| 637 |
| 638 static const AnalysisErrorType STATIC_WARNING = |
| 639 const AnalysisErrorType._("STATIC_WARNING"); |
| 640 |
| 641 static const AnalysisErrorType SYNTACTIC_ERROR = |
| 642 const AnalysisErrorType._("SYNTACTIC_ERROR"); |
| 643 |
| 644 static const AnalysisErrorType TODO = const AnalysisErrorType._("TODO"); |
| 645 |
| 646 /** |
| 647 * A list containing all of the enum values that are defined. |
| 648 */ |
| 649 static const List<AnalysisErrorType> VALUES = const <AnalysisErrorType>[ |
| 650 CHECKED_MODE_COMPILE_TIME_ERROR, |
| 651 COMPILE_TIME_ERROR, |
| 652 HINT, |
| 653 LINT, |
| 654 STATIC_TYPE_WARNING, |
| 655 STATIC_WARNING, |
| 656 SYNTACTIC_ERROR, |
| 657 TODO |
| 658 ]; |
| 727 | 659 |
| 728 @override | 660 @override |
| 729 bool operator ==(other) { | 661 final String name; |
| 730 if (other is AnalysisGetErrorsParams) { | 662 |
| 731 return file == other.file; | 663 const AnalysisErrorType._(this.name); |
| 664 |
| 665 factory AnalysisErrorType(String name) { |
| 666 switch (name) { |
| 667 case "CHECKED_MODE_COMPILE_TIME_ERROR": |
| 668 return CHECKED_MODE_COMPILE_TIME_ERROR; |
| 669 case "COMPILE_TIME_ERROR": |
| 670 return COMPILE_TIME_ERROR; |
| 671 case "HINT": |
| 672 return HINT; |
| 673 case "LINT": |
| 674 return LINT; |
| 675 case "STATIC_TYPE_WARNING": |
| 676 return STATIC_TYPE_WARNING; |
| 677 case "STATIC_WARNING": |
| 678 return STATIC_WARNING; |
| 679 case "SYNTACTIC_ERROR": |
| 680 return SYNTACTIC_ERROR; |
| 681 case "TODO": |
| 682 return TODO; |
| 732 } | 683 } |
| 733 return false; | 684 throw new Exception('Illegal enum value: $name'); |
| 685 } |
| 686 |
| 687 factory AnalysisErrorType.fromJson( |
| 688 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 689 if (json is String) { |
| 690 try { |
| 691 return new AnalysisErrorType(json); |
| 692 } catch (_) { |
| 693 // Fall through |
| 694 } |
| 695 } |
| 696 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorType", json); |
| 734 } | 697 } |
| 735 | 698 |
| 736 @override | 699 @override |
| 737 int get hashCode { | 700 String toString() => "AnalysisErrorType.$name"; |
| 738 int hash = 0; | 701 |
| 739 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 702 String toJson() => name; |
| 740 return JenkinsSmiHash.finish(hash); | |
| 741 } | |
| 742 } | 703 } |
| 743 | 704 |
| 744 /** | 705 /** |
| 745 * analysis.getErrors result | 706 * analysis.errors params |
| 746 * | 707 * |
| 747 * { | 708 * { |
| 709 * "file": FilePath |
| 748 * "errors": List<AnalysisError> | 710 * "errors": List<AnalysisError> |
| 749 * } | 711 * } |
| 750 * | 712 * |
| 751 * Clients may not extend, implement or mix-in this class. | 713 * Clients may not extend, implement or mix-in this class. |
| 752 */ | 714 */ |
| 753 class AnalysisGetErrorsResult implements HasToJson { | 715 class AnalysisErrorsParams implements HasToJson { |
| 716 String _file; |
| 717 |
| 754 List<AnalysisError> _errors; | 718 List<AnalysisError> _errors; |
| 755 | 719 |
| 756 /** | 720 /** |
| 757 * The errors associated with the file. | 721 * The file containing the errors. |
| 758 */ | |
| 759 List<AnalysisError> get errors => _errors; | |
| 760 | |
| 761 /** | |
| 762 * The errors associated with the file. | |
| 763 */ | |
| 764 void set errors(List<AnalysisError> value) { | |
| 765 assert(value != null); | |
| 766 this._errors = value; | |
| 767 } | |
| 768 | |
| 769 AnalysisGetErrorsResult(List<AnalysisError> errors) { | |
| 770 this.errors = errors; | |
| 771 } | |
| 772 | |
| 773 factory AnalysisGetErrorsResult.fromJson( | |
| 774 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 775 if (json == null) { | |
| 776 json = {}; | |
| 777 } | |
| 778 if (json is Map) { | |
| 779 List<AnalysisError> errors; | |
| 780 if (json.containsKey("errors")) { | |
| 781 errors = jsonDecoder.decodeList( | |
| 782 jsonPath + ".errors", | |
| 783 json["errors"], | |
| 784 (String jsonPath, Object json) => | |
| 785 new AnalysisError.fromJson(jsonDecoder, jsonPath, json)); | |
| 786 } else { | |
| 787 throw jsonDecoder.missingKey(jsonPath, "errors"); | |
| 788 } | |
| 789 return new AnalysisGetErrorsResult(errors); | |
| 790 } else { | |
| 791 throw jsonDecoder.mismatch(jsonPath, "analysis.getErrors result", json); | |
| 792 } | |
| 793 } | |
| 794 | |
| 795 factory AnalysisGetErrorsResult.fromResponse(Response response) { | |
| 796 return new AnalysisGetErrorsResult.fromJson( | |
| 797 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | |
| 798 "result", | |
| 799 response._result); | |
| 800 } | |
| 801 | |
| 802 Map<String, dynamic> toJson() { | |
| 803 Map<String, dynamic> result = {}; | |
| 804 result["errors"] = | |
| 805 errors.map((AnalysisError value) => value.toJson()).toList(); | |
| 806 return result; | |
| 807 } | |
| 808 | |
| 809 Response toResponse(String id) { | |
| 810 return new Response(id, result: toJson()); | |
| 811 } | |
| 812 | |
| 813 @override | |
| 814 String toString() => JSON.encode(toJson()); | |
| 815 | |
| 816 @override | |
| 817 bool operator ==(other) { | |
| 818 if (other is AnalysisGetErrorsResult) { | |
| 819 return listEqual( | |
| 820 errors, other.errors, (AnalysisError a, AnalysisError b) => a == b); | |
| 821 } | |
| 822 return false; | |
| 823 } | |
| 824 | |
| 825 @override | |
| 826 int get hashCode { | |
| 827 int hash = 0; | |
| 828 hash = JenkinsSmiHash.combine(hash, errors.hashCode); | |
| 829 return JenkinsSmiHash.finish(hash); | |
| 830 } | |
| 831 } | |
| 832 | |
| 833 /** | |
| 834 * analysis.getHover params | |
| 835 * | |
| 836 * { | |
| 837 * "file": FilePath | |
| 838 * "offset": int | |
| 839 * } | |
| 840 * | |
| 841 * Clients may not extend, implement or mix-in this class. | |
| 842 */ | |
| 843 class AnalysisGetHoverParams implements HasToJson { | |
| 844 String _file; | |
| 845 | |
| 846 int _offset; | |
| 847 | |
| 848 /** | |
| 849 * The file in which hover information is being requested. | |
| 850 */ | 722 */ |
| 851 String get file => _file; | 723 String get file => _file; |
| 852 | 724 |
| 853 /** | 725 /** |
| 854 * The file in which hover information is being requested. | 726 * The file containing the errors. |
| 855 */ | 727 */ |
| 856 void set file(String value) { | 728 void set file(String value) { |
| 857 assert(value != null); | 729 assert(value != null); |
| 858 this._file = value; | 730 this._file = value; |
| 859 } | 731 } |
| 860 | 732 |
| 861 /** | 733 /** |
| 862 * The offset for which hover information is being requested. | 734 * The errors contained in the file. |
| 863 */ | 735 */ |
| 864 int get offset => _offset; | 736 List<AnalysisError> get errors => _errors; |
| 865 | 737 |
| 866 /** | 738 /** |
| 867 * The offset for which hover information is being requested. | 739 * The errors contained in the file. |
| 868 */ | 740 */ |
| 869 void set offset(int value) { | 741 void set errors(List<AnalysisError> value) { |
| 870 assert(value != null); | 742 assert(value != null); |
| 871 this._offset = value; | 743 this._errors = value; |
| 872 } | 744 } |
| 873 | 745 |
| 874 AnalysisGetHoverParams(String file, int offset) { | 746 AnalysisErrorsParams(String file, List<AnalysisError> errors) { |
| 875 this.file = file; | 747 this.file = file; |
| 876 this.offset = offset; | 748 this.errors = errors; |
| 877 } | 749 } |
| 878 | 750 |
| 879 factory AnalysisGetHoverParams.fromJson( | 751 factory AnalysisErrorsParams.fromJson( |
| 880 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 752 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 881 if (json == null) { | 753 if (json == null) { |
| 882 json = {}; | 754 json = {}; |
| 883 } | 755 } |
| 884 if (json is Map) { | 756 if (json is Map) { |
| 885 String file; | 757 String file; |
| 886 if (json.containsKey("file")) { | 758 if (json.containsKey("file")) { |
| 887 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 759 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 888 } else { | 760 } else { |
| 889 throw jsonDecoder.missingKey(jsonPath, "file"); | 761 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 890 } | 762 } |
| 891 int offset; | 763 List<AnalysisError> errors; |
| 892 if (json.containsKey("offset")) { | 764 if (json.containsKey("errors")) { |
| 893 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 765 errors = jsonDecoder.decodeList( |
| 766 jsonPath + ".errors", |
| 767 json["errors"], |
| 768 (String jsonPath, Object json) => |
| 769 new AnalysisError.fromJson(jsonDecoder, jsonPath, json)); |
| 894 } else { | 770 } else { |
| 895 throw jsonDecoder.missingKey(jsonPath, "offset"); | 771 throw jsonDecoder.mismatch(jsonPath, "errors"); |
| 896 } | 772 } |
| 897 return new AnalysisGetHoverParams(file, offset); | 773 return new AnalysisErrorsParams(file, errors); |
| 898 } else { | 774 } else { |
| 899 throw jsonDecoder.mismatch(jsonPath, "analysis.getHover params", json); | 775 throw jsonDecoder.mismatch(jsonPath, "analysis.errors params", json); |
| 900 } | 776 } |
| 901 } | 777 } |
| 902 | 778 |
| 903 factory AnalysisGetHoverParams.fromRequest(Request request) { | 779 factory AnalysisErrorsParams.fromNotification(Notification notification) { |
| 904 return new AnalysisGetHoverParams.fromJson( | 780 return new AnalysisErrorsParams.fromJson( |
| 905 new RequestDecoder(request), "params", request._params); | 781 new ResponseDecoder(null), "params", notification.params); |
| 906 } | 782 } |
| 907 | 783 |
| 784 @override |
| 908 Map<String, dynamic> toJson() { | 785 Map<String, dynamic> toJson() { |
| 909 Map<String, dynamic> result = {}; | 786 Map<String, dynamic> result = {}; |
| 910 result["file"] = file; | 787 result["file"] = file; |
| 911 result["offset"] = offset; | 788 result["errors"] = |
| 789 errors.map((AnalysisError value) => value.toJson()).toList(); |
| 912 return result; | 790 return result; |
| 913 } | 791 } |
| 914 | 792 |
| 915 Request toRequest(String id) { | 793 Notification toNotification() { |
| 916 return new Request(id, "analysis.getHover", toJson()); | 794 return new Notification("analysis.errors", toJson()); |
| 917 } | 795 } |
| 918 | 796 |
| 919 @override | 797 @override |
| 920 String toString() => JSON.encode(toJson()); | 798 String toString() => JSON.encode(toJson()); |
| 921 | 799 |
| 922 @override | 800 @override |
| 923 bool operator ==(other) { | 801 bool operator ==(other) { |
| 924 if (other is AnalysisGetHoverParams) { | 802 if (other is AnalysisErrorsParams) { |
| 925 return file == other.file && offset == other.offset; | 803 return file == other.file && |
| 804 listEqual(errors, other.errors, |
| 805 (AnalysisError a, AnalysisError b) => a == b); |
| 926 } | 806 } |
| 927 return false; | 807 return false; |
| 928 } | 808 } |
| 929 | 809 |
| 930 @override | 810 @override |
| 931 int get hashCode { | 811 int get hashCode { |
| 932 int hash = 0; | 812 int hash = 0; |
| 933 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 813 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 934 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 814 hash = JenkinsSmiHash.combine(hash, errors.hashCode); |
| 935 return JenkinsSmiHash.finish(hash); | 815 return JenkinsSmiHash.finish(hash); |
| 936 } | 816 } |
| 937 } | 817 } |
| 938 | 818 |
| 939 /** | 819 /** |
| 940 * analysis.getHover result | 820 * analysis.flushResults params |
| 941 * | 821 * |
| 942 * { | 822 * { |
| 943 * "hovers": List<HoverInformation> | 823 * "files": List<FilePath> |
| 944 * } | 824 * } |
| 945 * | 825 * |
| 946 * Clients may not extend, implement or mix-in this class. | 826 * Clients may not extend, implement or mix-in this class. |
| 947 */ | 827 */ |
| 948 class AnalysisGetHoverResult implements HasToJson { | 828 class AnalysisFlushResultsParams implements HasToJson { |
| 949 List<HoverInformation> _hovers; | 829 List<String> _files; |
| 950 | 830 |
| 951 /** | 831 /** |
| 952 * The hover information associated with the location. The list will be empty | 832 * The files that are no longer being analyzed. |
| 953 * if no information could be determined for the location. The list can | |
| 954 * contain multiple items if the file is being analyzed in multiple contexts | |
| 955 * in conflicting ways (such as a part that is included in multiple | |
| 956 * libraries). | |
| 957 */ | 833 */ |
| 958 List<HoverInformation> get hovers => _hovers; | 834 List<String> get files => _files; |
| 959 | 835 |
| 960 /** | 836 /** |
| 961 * The hover information associated with the location. The list will be empty | 837 * The files that are no longer being analyzed. |
| 962 * if no information could be determined for the location. The list can | |
| 963 * contain multiple items if the file is being analyzed in multiple contexts | |
| 964 * in conflicting ways (such as a part that is included in multiple | |
| 965 * libraries). | |
| 966 */ | 838 */ |
| 967 void set hovers(List<HoverInformation> value) { | 839 void set files(List<String> value) { |
| 968 assert(value != null); | 840 assert(value != null); |
| 969 this._hovers = value; | 841 this._files = value; |
| 970 } | 842 } |
| 971 | 843 |
| 972 AnalysisGetHoverResult(List<HoverInformation> hovers) { | 844 AnalysisFlushResultsParams(List<String> files) { |
| 973 this.hovers = hovers; | 845 this.files = files; |
| 974 } | 846 } |
| 975 | 847 |
| 976 factory AnalysisGetHoverResult.fromJson( | 848 factory AnalysisFlushResultsParams.fromJson( |
| 977 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 849 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 978 if (json == null) { | 850 if (json == null) { |
| 979 json = {}; | 851 json = {}; |
| 980 } | 852 } |
| 981 if (json is Map) { | 853 if (json is Map) { |
| 982 List<HoverInformation> hovers; | 854 List<String> files; |
| 983 if (json.containsKey("hovers")) { | 855 if (json.containsKey("files")) { |
| 984 hovers = jsonDecoder.decodeList( | 856 files = jsonDecoder.decodeList( |
| 985 jsonPath + ".hovers", | 857 jsonPath + ".files", json["files"], jsonDecoder.decodeString); |
| 986 json["hovers"], | |
| 987 (String jsonPath, Object json) => | |
| 988 new HoverInformation.fromJson(jsonDecoder, jsonPath, json)); | |
| 989 } else { | 858 } else { |
| 990 throw jsonDecoder.missingKey(jsonPath, "hovers"); | 859 throw jsonDecoder.mismatch(jsonPath, "files"); |
| 991 } | 860 } |
| 992 return new AnalysisGetHoverResult(hovers); | 861 return new AnalysisFlushResultsParams(files); |
| 993 } else { | 862 } else { |
| 994 throw jsonDecoder.mismatch(jsonPath, "analysis.getHover result", json); | 863 throw jsonDecoder.mismatch( |
| 864 jsonPath, "analysis.flushResults params", json); |
| 995 } | 865 } |
| 996 } | 866 } |
| 997 | 867 |
| 998 factory AnalysisGetHoverResult.fromResponse(Response response) { | 868 factory AnalysisFlushResultsParams.fromNotification( |
| 999 return new AnalysisGetHoverResult.fromJson( | 869 Notification notification) { |
| 1000 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 870 return new AnalysisFlushResultsParams.fromJson( |
| 1001 "result", | 871 new ResponseDecoder(null), "params", notification.params); |
| 1002 response._result); | |
| 1003 } | 872 } |
| 1004 | 873 |
| 874 @override |
| 1005 Map<String, dynamic> toJson() { | 875 Map<String, dynamic> toJson() { |
| 1006 Map<String, dynamic> result = {}; | 876 Map<String, dynamic> result = {}; |
| 1007 result["hovers"] = | 877 result["files"] = files; |
| 1008 hovers.map((HoverInformation value) => value.toJson()).toList(); | |
| 1009 return result; | 878 return result; |
| 1010 } | 879 } |
| 1011 | 880 |
| 1012 Response toResponse(String id) { | 881 Notification toNotification() { |
| 1013 return new Response(id, result: toJson()); | 882 return new Notification("analysis.flushResults", toJson()); |
| 1014 } | 883 } |
| 1015 | 884 |
| 1016 @override | 885 @override |
| 1017 String toString() => JSON.encode(toJson()); | 886 String toString() => JSON.encode(toJson()); |
| 1018 | 887 |
| 1019 @override | 888 @override |
| 1020 bool operator ==(other) { | 889 bool operator ==(other) { |
| 1021 if (other is AnalysisGetHoverResult) { | 890 if (other is AnalysisFlushResultsParams) { |
| 1022 return listEqual(hovers, other.hovers, | 891 return listEqual(files, other.files, (String a, String b) => a == b); |
| 1023 (HoverInformation a, HoverInformation b) => a == b); | |
| 1024 } | 892 } |
| 1025 return false; | 893 return false; |
| 1026 } | 894 } |
| 1027 | 895 |
| 1028 @override | 896 @override |
| 1029 int get hashCode { | 897 int get hashCode { |
| 1030 int hash = 0; | 898 int hash = 0; |
| 1031 hash = JenkinsSmiHash.combine(hash, hovers.hashCode); | 899 hash = JenkinsSmiHash.combine(hash, files.hashCode); |
| 1032 return JenkinsSmiHash.finish(hash); | 900 return JenkinsSmiHash.finish(hash); |
| 1033 } | 901 } |
| 1034 } | 902 } |
| 1035 | 903 |
| 1036 /** | 904 /** |
| 1037 * analysis.getReachableSources params | 905 * analysis.folding params |
| 1038 * | 906 * |
| 1039 * { | 907 * { |
| 1040 * "file": FilePath | 908 * "file": FilePath |
| 909 * "regions": List<FoldingRegion> |
| 1041 * } | 910 * } |
| 1042 * | 911 * |
| 1043 * Clients may not extend, implement or mix-in this class. | 912 * Clients may not extend, implement or mix-in this class. |
| 1044 */ | 913 */ |
| 1045 class AnalysisGetReachableSourcesParams implements HasToJson { | 914 class AnalysisFoldingParams implements HasToJson { |
| 1046 String _file; | 915 String _file; |
| 1047 | 916 |
| 917 List<FoldingRegion> _regions; |
| 918 |
| 1048 /** | 919 /** |
| 1049 * The file for which reachable source information is being requested. | 920 * The file containing the folding regions. |
| 1050 */ | 921 */ |
| 1051 String get file => _file; | 922 String get file => _file; |
| 1052 | 923 |
| 1053 /** | 924 /** |
| 1054 * The file for which reachable source information is being requested. | 925 * The file containing the folding regions. |
| 1055 */ | 926 */ |
| 1056 void set file(String value) { | 927 void set file(String value) { |
| 1057 assert(value != null); | 928 assert(value != null); |
| 1058 this._file = value; | 929 this._file = value; |
| 1059 } | 930 } |
| 1060 | 931 |
| 1061 AnalysisGetReachableSourcesParams(String file) { | 932 /** |
| 1062 this.file = file; | 933 * The folding regions contained in the file. |
| 934 */ |
| 935 List<FoldingRegion> get regions => _regions; |
| 936 |
| 937 /** |
| 938 * The folding regions contained in the file. |
| 939 */ |
| 940 void set regions(List<FoldingRegion> value) { |
| 941 assert(value != null); |
| 942 this._regions = value; |
| 1063 } | 943 } |
| 1064 | 944 |
| 1065 factory AnalysisGetReachableSourcesParams.fromJson( | 945 AnalysisFoldingParams(String file, List<FoldingRegion> regions) { |
| 946 this.file = file; |
| 947 this.regions = regions; |
| 948 } |
| 949 |
| 950 factory AnalysisFoldingParams.fromJson( |
| 1066 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 951 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 1067 if (json == null) { | 952 if (json == null) { |
| 1068 json = {}; | 953 json = {}; |
| 1069 } | 954 } |
| 1070 if (json is Map) { | 955 if (json is Map) { |
| 1071 String file; | 956 String file; |
| 1072 if (json.containsKey("file")) { | 957 if (json.containsKey("file")) { |
| 1073 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 958 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 1074 } else { | 959 } else { |
| 1075 throw jsonDecoder.missingKey(jsonPath, "file"); | 960 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 1076 } | 961 } |
| 1077 return new AnalysisGetReachableSourcesParams(file); | 962 List<FoldingRegion> regions; |
| 963 if (json.containsKey("regions")) { |
| 964 regions = jsonDecoder.decodeList( |
| 965 jsonPath + ".regions", |
| 966 json["regions"], |
| 967 (String jsonPath, Object json) => |
| 968 new FoldingRegion.fromJson(jsonDecoder, jsonPath, json)); |
| 969 } else { |
| 970 throw jsonDecoder.mismatch(jsonPath, "regions"); |
| 971 } |
| 972 return new AnalysisFoldingParams(file, regions); |
| 1078 } else { | 973 } else { |
| 1079 throw jsonDecoder.mismatch( | 974 throw jsonDecoder.mismatch(jsonPath, "analysis.folding params", json); |
| 1080 jsonPath, "analysis.getReachableSources params", json); | |
| 1081 } | 975 } |
| 1082 } | 976 } |
| 1083 | 977 |
| 1084 factory AnalysisGetReachableSourcesParams.fromRequest(Request request) { | 978 factory AnalysisFoldingParams.fromNotification(Notification notification) { |
| 1085 return new AnalysisGetReachableSourcesParams.fromJson( | 979 return new AnalysisFoldingParams.fromJson( |
| 1086 new RequestDecoder(request), "params", request._params); | 980 new ResponseDecoder(null), "params", notification.params); |
| 1087 } | 981 } |
| 1088 | 982 |
| 983 @override |
| 1089 Map<String, dynamic> toJson() { | 984 Map<String, dynamic> toJson() { |
| 1090 Map<String, dynamic> result = {}; | 985 Map<String, dynamic> result = {}; |
| 1091 result["file"] = file; | 986 result["file"] = file; |
| 987 result["regions"] = |
| 988 regions.map((FoldingRegion value) => value.toJson()).toList(); |
| 1092 return result; | 989 return result; |
| 1093 } | 990 } |
| 1094 | 991 |
| 1095 Request toRequest(String id) { | 992 Notification toNotification() { |
| 1096 return new Request(id, "analysis.getReachableSources", toJson()); | 993 return new Notification("analysis.folding", toJson()); |
| 1097 } | 994 } |
| 1098 | 995 |
| 1099 @override | 996 @override |
| 1100 String toString() => JSON.encode(toJson()); | 997 String toString() => JSON.encode(toJson()); |
| 1101 | 998 |
| 1102 @override | 999 @override |
| 1103 bool operator ==(other) { | 1000 bool operator ==(other) { |
| 1104 if (other is AnalysisGetReachableSourcesParams) { | 1001 if (other is AnalysisFoldingParams) { |
| 1105 return file == other.file; | 1002 return file == other.file && |
| 1003 listEqual(regions, other.regions, |
| 1004 (FoldingRegion a, FoldingRegion b) => a == b); |
| 1106 } | 1005 } |
| 1107 return false; | 1006 return false; |
| 1108 } | 1007 } |
| 1109 | 1008 |
| 1110 @override | 1009 @override |
| 1111 int get hashCode { | 1010 int get hashCode { |
| 1112 int hash = 0; | 1011 int hash = 0; |
| 1113 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 1012 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 1013 hash = JenkinsSmiHash.combine(hash, regions.hashCode); |
| 1114 return JenkinsSmiHash.finish(hash); | 1014 return JenkinsSmiHash.finish(hash); |
| 1115 } | 1015 } |
| 1116 } | 1016 } |
| 1117 | 1017 |
| 1118 /** | 1018 /** |
| 1119 * analysis.getReachableSources result | 1019 * analysis.getErrors params |
| 1120 * | 1020 * |
| 1121 * { | 1021 * { |
| 1122 * "sources": Map<String, List<String>> | 1022 * "file": FilePath |
| 1123 * } | 1023 * } |
| 1124 * | 1024 * |
| 1125 * Clients may not extend, implement or mix-in this class. | 1025 * Clients may not extend, implement or mix-in this class. |
| 1126 */ | 1026 */ |
| 1127 class AnalysisGetReachableSourcesResult implements HasToJson { | 1027 class AnalysisGetErrorsParams implements RequestParams { |
| 1128 Map<String, List<String>> _sources; | 1028 String _file; |
| 1129 | 1029 |
| 1130 /** | 1030 /** |
| 1131 * A mapping from source URIs to directly reachable source URIs. For example, | 1031 * The file for which errors are being requested. |
| 1132 * a file "foo.dart" that imports "bar.dart" would have the corresponding | |
| 1133 * mapping { "file:///foo.dart" : ["file:///bar.dart"] }. If "bar.dart" has | |
| 1134 * further imports (or exports) there will be a mapping from the URI | |
| 1135 * "file:///bar.dart" to them. To check if a specific URI is reachable from a | |
| 1136 * given file, clients can check for its presence in the resulting key set. | |
| 1137 */ | 1032 */ |
| 1138 Map<String, List<String>> get sources => _sources; | 1033 String get file => _file; |
| 1139 | 1034 |
| 1140 /** | 1035 /** |
| 1141 * A mapping from source URIs to directly reachable source URIs. For example, | 1036 * The file for which errors are being requested. |
| 1142 * a file "foo.dart" that imports "bar.dart" would have the corresponding | |
| 1143 * mapping { "file:///foo.dart" : ["file:///bar.dart"] }. If "bar.dart" has | |
| 1144 * further imports (or exports) there will be a mapping from the URI | |
| 1145 * "file:///bar.dart" to them. To check if a specific URI is reachable from a | |
| 1146 * given file, clients can check for its presence in the resulting key set. | |
| 1147 */ | 1037 */ |
| 1148 void set sources(Map<String, List<String>> value) { | 1038 void set file(String value) { |
| 1149 assert(value != null); | 1039 assert(value != null); |
| 1150 this._sources = value; | 1040 this._file = value; |
| 1151 } | 1041 } |
| 1152 | 1042 |
| 1153 AnalysisGetReachableSourcesResult(Map<String, List<String>> sources) { | 1043 AnalysisGetErrorsParams(String file) { |
| 1154 this.sources = sources; | 1044 this.file = file; |
| 1155 } | 1045 } |
| 1156 | 1046 |
| 1157 factory AnalysisGetReachableSourcesResult.fromJson( | 1047 factory AnalysisGetErrorsParams.fromJson( |
| 1158 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 1048 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 1159 if (json == null) { | 1049 if (json == null) { |
| 1160 json = {}; | 1050 json = {}; |
| 1161 } | 1051 } |
| 1162 if (json is Map) { | 1052 if (json is Map) { |
| 1163 Map<String, List<String>> sources; | 1053 String file; |
| 1164 if (json.containsKey("sources")) { | 1054 if (json.containsKey("file")) { |
| 1165 sources = jsonDecoder.decodeMap(jsonPath + ".sources", json["sources"], | 1055 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 1166 valueDecoder: (String jsonPath, Object json) => jsonDecoder | |
| 1167 .decodeList(jsonPath, json, jsonDecoder.decodeString)); | |
| 1168 } else { | 1056 } else { |
| 1169 throw jsonDecoder.missingKey(jsonPath, "sources"); | 1057 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 1170 } | 1058 } |
| 1171 return new AnalysisGetReachableSourcesResult(sources); | 1059 return new AnalysisGetErrorsParams(file); |
| 1172 } else { | 1060 } else { |
| 1173 throw jsonDecoder.mismatch( | 1061 throw jsonDecoder.mismatch(jsonPath, "analysis.getErrors params", json); |
| 1174 jsonPath, "analysis.getReachableSources result", json); | |
| 1175 } | 1062 } |
| 1176 } | 1063 } |
| 1177 | 1064 |
| 1178 factory AnalysisGetReachableSourcesResult.fromResponse(Response response) { | 1065 factory AnalysisGetErrorsParams.fromRequest(Request request) { |
| 1179 return new AnalysisGetReachableSourcesResult.fromJson( | 1066 return new AnalysisGetErrorsParams.fromJson( |
| 1180 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 1067 new RequestDecoder(request), "params", request.params); |
| 1181 "result", | |
| 1182 response._result); | |
| 1183 } | 1068 } |
| 1184 | 1069 |
| 1070 @override |
| 1185 Map<String, dynamic> toJson() { | 1071 Map<String, dynamic> toJson() { |
| 1186 Map<String, dynamic> result = {}; | 1072 Map<String, dynamic> result = {}; |
| 1187 result["sources"] = sources; | 1073 result["file"] = file; |
| 1188 return result; | 1074 return result; |
| 1189 } | 1075 } |
| 1190 | 1076 |
| 1191 Response toResponse(String id) { | 1077 @override |
| 1192 return new Response(id, result: toJson()); | 1078 Request toRequest(String id) { |
| 1079 return new Request(id, "analysis.getErrors", toJson()); |
| 1193 } | 1080 } |
| 1194 | 1081 |
| 1195 @override | 1082 @override |
| 1196 String toString() => JSON.encode(toJson()); | 1083 String toString() => JSON.encode(toJson()); |
| 1197 | 1084 |
| 1198 @override | 1085 @override |
| 1199 bool operator ==(other) { | 1086 bool operator ==(other) { |
| 1200 if (other is AnalysisGetReachableSourcesResult) { | 1087 if (other is AnalysisGetErrorsParams) { |
| 1201 return mapEqual( | 1088 return file == other.file; |
| 1202 sources, | |
| 1203 other.sources, | |
| 1204 (List<String> a, List<String> b) => | |
| 1205 listEqual(a, b, (String a, String b) => a == b)); | |
| 1206 } | 1089 } |
| 1207 return false; | 1090 return false; |
| 1208 } | 1091 } |
| 1209 | 1092 |
| 1210 @override | 1093 @override |
| 1211 int get hashCode { | 1094 int get hashCode { |
| 1212 int hash = 0; | 1095 int hash = 0; |
| 1213 hash = JenkinsSmiHash.combine(hash, sources.hashCode); | 1096 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 1214 return JenkinsSmiHash.finish(hash); | 1097 return JenkinsSmiHash.finish(hash); |
| 1215 } | 1098 } |
| 1216 } | 1099 } |
| 1217 | 1100 |
| 1218 /** | 1101 /** |
| 1219 * analysis.getLibraryDependencies params | 1102 * analysis.getErrors result |
| 1220 * | |
| 1221 * Clients may not extend, implement or mix-in this class. | |
| 1222 */ | |
| 1223 class AnalysisGetLibraryDependenciesParams { | |
| 1224 Request toRequest(String id) { | |
| 1225 return new Request(id, "analysis.getLibraryDependencies", null); | |
| 1226 } | |
| 1227 | |
| 1228 @override | |
| 1229 bool operator ==(other) { | |
| 1230 if (other is AnalysisGetLibraryDependenciesParams) { | |
| 1231 return true; | |
| 1232 } | |
| 1233 return false; | |
| 1234 } | |
| 1235 | |
| 1236 @override | |
| 1237 int get hashCode { | |
| 1238 return 246577680; | |
| 1239 } | |
| 1240 } | |
| 1241 | |
| 1242 /** | |
| 1243 * analysis.getLibraryDependencies result | |
| 1244 * | 1103 * |
| 1245 * { | 1104 * { |
| 1246 * "libraries": List<FilePath> | 1105 * "errors": List<AnalysisError> |
| 1247 * "packageMap": Map<String, Map<String, List<FilePath>>> | |
| 1248 * } | 1106 * } |
| 1249 * | 1107 * |
| 1250 * Clients may not extend, implement or mix-in this class. | 1108 * Clients may not extend, implement or mix-in this class. |
| 1251 */ | 1109 */ |
| 1252 class AnalysisGetLibraryDependenciesResult implements HasToJson { | 1110 class AnalysisGetErrorsResult implements ResponseResult { |
| 1253 List<String> _libraries; | 1111 List<AnalysisError> _errors; |
| 1254 | |
| 1255 Map<String, Map<String, List<String>>> _packageMap; | |
| 1256 | 1112 |
| 1257 /** | 1113 /** |
| 1258 * A list of the paths of library elements referenced by files in existing | 1114 * The errors associated with the file. |
| 1259 * analysis roots. | |
| 1260 */ | 1115 */ |
| 1261 List<String> get libraries => _libraries; | 1116 List<AnalysisError> get errors => _errors; |
| 1262 | 1117 |
| 1263 /** | 1118 /** |
| 1264 * A list of the paths of library elements referenced by files in existing | 1119 * The errors associated with the file. |
| 1265 * analysis roots. | |
| 1266 */ | 1120 */ |
| 1267 void set libraries(List<String> value) { | 1121 void set errors(List<AnalysisError> value) { |
| 1268 assert(value != null); | 1122 assert(value != null); |
| 1269 this._libraries = value; | 1123 this._errors = value; |
| 1270 } | 1124 } |
| 1271 | 1125 |
| 1272 /** | 1126 AnalysisGetErrorsResult(List<AnalysisError> errors) { |
| 1273 * A mapping from context source roots to package maps which map package | 1127 this.errors = errors; |
| 1274 * names to source directories for use in client-side package URI resolution. | |
| 1275 */ | |
| 1276 Map<String, Map<String, List<String>>> get packageMap => _packageMap; | |
| 1277 | |
| 1278 /** | |
| 1279 * A mapping from context source roots to package maps which map package | |
| 1280 * names to source directories for use in client-side package URI resolution. | |
| 1281 */ | |
| 1282 void set packageMap(Map<String, Map<String, List<String>>> value) { | |
| 1283 assert(value != null); | |
| 1284 this._packageMap = value; | |
| 1285 } | 1128 } |
| 1286 | 1129 |
| 1287 AnalysisGetLibraryDependenciesResult(List<String> libraries, | 1130 factory AnalysisGetErrorsResult.fromJson( |
| 1288 Map<String, Map<String, List<String>>> packageMap) { | |
| 1289 this.libraries = libraries; | |
| 1290 this.packageMap = packageMap; | |
| 1291 } | |
| 1292 | |
| 1293 factory AnalysisGetLibraryDependenciesResult.fromJson( | |
| 1294 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 1131 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 1295 if (json == null) { | 1132 if (json == null) { |
| 1296 json = {}; | 1133 json = {}; |
| 1297 } | 1134 } |
| 1298 if (json is Map) { | 1135 if (json is Map) { |
| 1299 List<String> libraries; | 1136 List<AnalysisError> errors; |
| 1300 if (json.containsKey("libraries")) { | 1137 if (json.containsKey("errors")) { |
| 1301 libraries = jsonDecoder.decodeList(jsonPath + ".libraries", | 1138 errors = jsonDecoder.decodeList( |
| 1302 json["libraries"], jsonDecoder.decodeString); | 1139 jsonPath + ".errors", |
| 1140 json["errors"], |
| 1141 (String jsonPath, Object json) => |
| 1142 new AnalysisError.fromJson(jsonDecoder, jsonPath, json)); |
| 1303 } else { | 1143 } else { |
| 1304 throw jsonDecoder.missingKey(jsonPath, "libraries"); | 1144 throw jsonDecoder.mismatch(jsonPath, "errors"); |
| 1305 } | 1145 } |
| 1306 Map<String, Map<String, List<String>>> packageMap; | 1146 return new AnalysisGetErrorsResult(errors); |
| 1307 if (json.containsKey("packageMap")) { | |
| 1308 packageMap = jsonDecoder.decodeMap( | |
| 1309 jsonPath + ".packageMap", json["packageMap"], | |
| 1310 valueDecoder: (String jsonPath, Object json) => | |
| 1311 jsonDecoder.decodeMap(jsonPath, json, | |
| 1312 valueDecoder: (String jsonPath, Object json) => jsonDecoder | |
| 1313 .decodeList(jsonPath, json, jsonDecoder.decodeString))); | |
| 1314 } else { | |
| 1315 throw jsonDecoder.missingKey(jsonPath, "packageMap"); | |
| 1316 } | |
| 1317 return new AnalysisGetLibraryDependenciesResult(libraries, packageMap); | |
| 1318 } else { | 1147 } else { |
| 1319 throw jsonDecoder.mismatch( | 1148 throw jsonDecoder.mismatch(jsonPath, "analysis.getErrors result", json); |
| 1320 jsonPath, "analysis.getLibraryDependencies result", json); | |
| 1321 } | 1149 } |
| 1322 } | 1150 } |
| 1323 | 1151 |
| 1324 factory AnalysisGetLibraryDependenciesResult.fromResponse(Response response) { | 1152 factory AnalysisGetErrorsResult.fromResponse(Response response) { |
| 1325 return new AnalysisGetLibraryDependenciesResult.fromJson( | 1153 return new AnalysisGetErrorsResult.fromJson( |
| 1326 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 1154 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 1327 "result", | 1155 "result", |
| 1328 response._result); | 1156 response.result); |
| 1329 } | 1157 } |
| 1330 | 1158 |
| 1159 @override |
| 1331 Map<String, dynamic> toJson() { | 1160 Map<String, dynamic> toJson() { |
| 1332 Map<String, dynamic> result = {}; | 1161 Map<String, dynamic> result = {}; |
| 1333 result["libraries"] = libraries; | 1162 result["errors"] = |
| 1334 result["packageMap"] = packageMap; | 1163 errors.map((AnalysisError value) => value.toJson()).toList(); |
| 1335 return result; | 1164 return result; |
| 1336 } | 1165 } |
| 1337 | 1166 |
| 1167 @override |
| 1338 Response toResponse(String id) { | 1168 Response toResponse(String id) { |
| 1339 return new Response(id, result: toJson()); | 1169 return new Response(id, result: toJson()); |
| 1340 } | 1170 } |
| 1341 | 1171 |
| 1342 @override | 1172 @override |
| 1343 String toString() => JSON.encode(toJson()); | 1173 String toString() => JSON.encode(toJson()); |
| 1344 | 1174 |
| 1345 @override | 1175 @override |
| 1346 bool operator ==(other) { | 1176 bool operator ==(other) { |
| 1347 if (other is AnalysisGetLibraryDependenciesResult) { | 1177 if (other is AnalysisGetErrorsResult) { |
| 1348 return listEqual( | 1178 return listEqual( |
| 1349 libraries, other.libraries, (String a, String b) => a == b) && | 1179 errors, other.errors, (AnalysisError a, AnalysisError b) => a == b); |
| 1350 mapEqual( | |
| 1351 packageMap, | |
| 1352 other.packageMap, | |
| 1353 (Map<String, List<String>> a, Map<String, List<String>> b) => | |
| 1354 mapEqual( | |
| 1355 a, | |
| 1356 b, | |
| 1357 (List<String> a, List<String> b) => | |
| 1358 listEqual(a, b, (String a, String b) => a == b))); | |
| 1359 } | 1180 } |
| 1360 return false; | 1181 return false; |
| 1361 } | 1182 } |
| 1362 | 1183 |
| 1363 @override | 1184 @override |
| 1364 int get hashCode { | 1185 int get hashCode { |
| 1365 int hash = 0; | 1186 int hash = 0; |
| 1366 hash = JenkinsSmiHash.combine(hash, libraries.hashCode); | 1187 hash = JenkinsSmiHash.combine(hash, errors.hashCode); |
| 1367 hash = JenkinsSmiHash.combine(hash, packageMap.hashCode); | |
| 1368 return JenkinsSmiHash.finish(hash); | 1188 return JenkinsSmiHash.finish(hash); |
| 1369 } | 1189 } |
| 1370 } | 1190 } |
| 1371 | 1191 |
| 1372 /** | 1192 /** |
| 1373 * analysis.getNavigation params | 1193 * analysis.getHover params |
| 1374 * | 1194 * |
| 1375 * { | 1195 * { |
| 1376 * "file": FilePath | 1196 * "file": FilePath |
| 1377 * "offset": int | 1197 * "offset": int |
| 1378 * "length": int | |
| 1379 * } | 1198 * } |
| 1380 * | 1199 * |
| 1381 * Clients may not extend, implement or mix-in this class. | 1200 * Clients may not extend, implement or mix-in this class. |
| 1382 */ | 1201 */ |
| 1383 class AnalysisGetNavigationParams implements HasToJson { | 1202 class AnalysisGetHoverParams implements RequestParams { |
| 1384 String _file; | 1203 String _file; |
| 1385 | 1204 |
| 1386 int _offset; | 1205 int _offset; |
| 1387 | 1206 |
| 1388 int _length; | |
| 1389 | |
| 1390 /** | 1207 /** |
| 1391 * The file in which navigation information is being requested. | 1208 * The file in which hover information is being requested. |
| 1392 */ | 1209 */ |
| 1393 String get file => _file; | 1210 String get file => _file; |
| 1394 | 1211 |
| 1395 /** | 1212 /** |
| 1396 * The file in which navigation information is being requested. | 1213 * The file in which hover information is being requested. |
| 1397 */ | 1214 */ |
| 1398 void set file(String value) { | 1215 void set file(String value) { |
| 1399 assert(value != null); | 1216 assert(value != null); |
| 1400 this._file = value; | 1217 this._file = value; |
| 1401 } | 1218 } |
| 1402 | 1219 |
| 1403 /** | 1220 /** |
| 1404 * The offset of the region for which navigation information is being | 1221 * The offset for which hover information is being requested. |
| 1405 * requested. | |
| 1406 */ | 1222 */ |
| 1407 int get offset => _offset; | 1223 int get offset => _offset; |
| 1408 | 1224 |
| 1409 /** | 1225 /** |
| 1410 * The offset of the region for which navigation information is being | 1226 * The offset for which hover information is being requested. |
| 1411 * requested. | |
| 1412 */ | 1227 */ |
| 1413 void set offset(int value) { | 1228 void set offset(int value) { |
| 1414 assert(value != null); | 1229 assert(value != null); |
| 1415 this._offset = value; | 1230 this._offset = value; |
| 1416 } | 1231 } |
| 1417 | 1232 |
| 1418 /** | 1233 AnalysisGetHoverParams(String file, int offset) { |
| 1419 * The length of the region for which navigation information is being | 1234 this.file = file; |
| 1420 * requested. | 1235 this.offset = offset; |
| 1421 */ | |
| 1422 int get length => _length; | |
| 1423 | |
| 1424 /** | |
| 1425 * The length of the region for which navigation information is being | |
| 1426 * requested. | |
| 1427 */ | |
| 1428 void set length(int value) { | |
| 1429 assert(value != null); | |
| 1430 this._length = value; | |
| 1431 } | 1236 } |
| 1432 | 1237 |
| 1433 AnalysisGetNavigationParams(String file, int offset, int length) { | 1238 factory AnalysisGetHoverParams.fromJson( |
| 1434 this.file = file; | |
| 1435 this.offset = offset; | |
| 1436 this.length = length; | |
| 1437 } | |
| 1438 | |
| 1439 factory AnalysisGetNavigationParams.fromJson( | |
| 1440 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 1239 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 1441 if (json == null) { | 1240 if (json == null) { |
| 1442 json = {}; | 1241 json = {}; |
| 1443 } | 1242 } |
| 1444 if (json is Map) { | 1243 if (json is Map) { |
| 1445 String file; | 1244 String file; |
| 1446 if (json.containsKey("file")) { | 1245 if (json.containsKey("file")) { |
| 1447 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 1246 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 1448 } else { | 1247 } else { |
| 1449 throw jsonDecoder.missingKey(jsonPath, "file"); | 1248 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 1450 } | 1249 } |
| 1451 int offset; | 1250 int offset; |
| 1452 if (json.containsKey("offset")) { | 1251 if (json.containsKey("offset")) { |
| 1453 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 1252 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 1454 } else { | 1253 } else { |
| 1455 throw jsonDecoder.missingKey(jsonPath, "offset"); | 1254 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 1456 } | 1255 } |
| 1457 int length; | 1256 return new AnalysisGetHoverParams(file, offset); |
| 1458 if (json.containsKey("length")) { | |
| 1459 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
| 1460 } else { | |
| 1461 throw jsonDecoder.missingKey(jsonPath, "length"); | |
| 1462 } | |
| 1463 return new AnalysisGetNavigationParams(file, offset, length); | |
| 1464 } else { | 1257 } else { |
| 1465 throw jsonDecoder.mismatch( | 1258 throw jsonDecoder.mismatch(jsonPath, "analysis.getHover params", json); |
| 1466 jsonPath, "analysis.getNavigation params", json); | |
| 1467 } | 1259 } |
| 1468 } | 1260 } |
| 1469 | 1261 |
| 1470 factory AnalysisGetNavigationParams.fromRequest(Request request) { | 1262 factory AnalysisGetHoverParams.fromRequest(Request request) { |
| 1471 return new AnalysisGetNavigationParams.fromJson( | 1263 return new AnalysisGetHoverParams.fromJson( |
| 1472 new RequestDecoder(request), "params", request._params); | 1264 new RequestDecoder(request), "params", request.params); |
| 1473 } | 1265 } |
| 1474 | 1266 |
| 1267 @override |
| 1475 Map<String, dynamic> toJson() { | 1268 Map<String, dynamic> toJson() { |
| 1476 Map<String, dynamic> result = {}; | 1269 Map<String, dynamic> result = {}; |
| 1477 result["file"] = file; | 1270 result["file"] = file; |
| 1478 result["offset"] = offset; | 1271 result["offset"] = offset; |
| 1479 result["length"] = length; | |
| 1480 return result; | 1272 return result; |
| 1481 } | 1273 } |
| 1482 | 1274 |
| 1275 @override |
| 1483 Request toRequest(String id) { | 1276 Request toRequest(String id) { |
| 1484 return new Request(id, "analysis.getNavigation", toJson()); | 1277 return new Request(id, "analysis.getHover", toJson()); |
| 1485 } | 1278 } |
| 1486 | 1279 |
| 1487 @override | 1280 @override |
| 1488 String toString() => JSON.encode(toJson()); | 1281 String toString() => JSON.encode(toJson()); |
| 1489 | 1282 |
| 1490 @override | 1283 @override |
| 1491 bool operator ==(other) { | 1284 bool operator ==(other) { |
| 1492 if (other is AnalysisGetNavigationParams) { | 1285 if (other is AnalysisGetHoverParams) { |
| 1493 return file == other.file && | 1286 return file == other.file && offset == other.offset; |
| 1494 offset == other.offset && | |
| 1495 length == other.length; | |
| 1496 } | 1287 } |
| 1497 return false; | 1288 return false; |
| 1498 } | 1289 } |
| 1499 | 1290 |
| 1500 @override | 1291 @override |
| 1501 int get hashCode { | 1292 int get hashCode { |
| 1502 int hash = 0; | 1293 int hash = 0; |
| 1503 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 1294 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 1504 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 1295 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 1505 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
| 1506 return JenkinsSmiHash.finish(hash); | 1296 return JenkinsSmiHash.finish(hash); |
| 1507 } | 1297 } |
| 1508 } | 1298 } |
| 1509 | 1299 |
| 1510 /** | 1300 /** |
| 1511 * analysis.getNavigation result | 1301 * analysis.getHover result |
| 1512 * | 1302 * |
| 1513 * { | 1303 * { |
| 1514 * "files": List<FilePath> | 1304 * "hovers": List<HoverInformation> |
| 1515 * "targets": List<NavigationTarget> | |
| 1516 * "regions": List<NavigationRegion> | |
| 1517 * } | 1305 * } |
| 1518 * | 1306 * |
| 1519 * Clients may not extend, implement or mix-in this class. | 1307 * Clients may not extend, implement or mix-in this class. |
| 1520 */ | 1308 */ |
| 1521 class AnalysisGetNavigationResult implements HasToJson { | 1309 class AnalysisGetHoverResult implements ResponseResult { |
| 1522 List<String> _files; | 1310 List<HoverInformation> _hovers; |
| 1523 | |
| 1524 List<NavigationTarget> _targets; | |
| 1525 | |
| 1526 List<NavigationRegion> _regions; | |
| 1527 | 1311 |
| 1528 /** | 1312 /** |
| 1529 * A list of the paths of files that are referenced by the navigation | 1313 * The hover information associated with the location. The list will be empty |
| 1530 * targets. | 1314 * if no information could be determined for the location. The list can |
| 1315 * contain multiple items if the file is being analyzed in multiple contexts |
| 1316 * in conflicting ways (such as a part that is included in multiple |
| 1317 * libraries). |
| 1531 */ | 1318 */ |
| 1532 List<String> get files => _files; | 1319 List<HoverInformation> get hovers => _hovers; |
| 1533 | 1320 |
| 1534 /** | 1321 /** |
| 1535 * A list of the paths of files that are referenced by the navigation | 1322 * The hover information associated with the location. The list will be empty |
| 1536 * targets. | 1323 * if no information could be determined for the location. The list can |
| 1324 * contain multiple items if the file is being analyzed in multiple contexts |
| 1325 * in conflicting ways (such as a part that is included in multiple |
| 1326 * libraries). |
| 1537 */ | 1327 */ |
| 1538 void set files(List<String> value) { | 1328 void set hovers(List<HoverInformation> value) { |
| 1539 assert(value != null); | 1329 assert(value != null); |
| 1540 this._files = value; | 1330 this._hovers = value; |
| 1541 } | 1331 } |
| 1542 | 1332 |
| 1543 /** | 1333 AnalysisGetHoverResult(List<HoverInformation> hovers) { |
| 1544 * A list of the navigation targets that are referenced by the navigation | 1334 this.hovers = hovers; |
| 1545 * regions. | |
| 1546 */ | |
| 1547 List<NavigationTarget> get targets => _targets; | |
| 1548 | |
| 1549 /** | |
| 1550 * A list of the navigation targets that are referenced by the navigation | |
| 1551 * regions. | |
| 1552 */ | |
| 1553 void set targets(List<NavigationTarget> value) { | |
| 1554 assert(value != null); | |
| 1555 this._targets = value; | |
| 1556 } | 1335 } |
| 1557 | 1336 |
| 1558 /** | 1337 factory AnalysisGetHoverResult.fromJson( |
| 1559 * A list of the navigation regions within the requested region of the file. | |
| 1560 */ | |
| 1561 List<NavigationRegion> get regions => _regions; | |
| 1562 | |
| 1563 /** | |
| 1564 * A list of the navigation regions within the requested region of the file. | |
| 1565 */ | |
| 1566 void set regions(List<NavigationRegion> value) { | |
| 1567 assert(value != null); | |
| 1568 this._regions = value; | |
| 1569 } | |
| 1570 | |
| 1571 AnalysisGetNavigationResult(List<String> files, | |
| 1572 List<NavigationTarget> targets, List<NavigationRegion> regions) { | |
| 1573 this.files = files; | |
| 1574 this.targets = targets; | |
| 1575 this.regions = regions; | |
| 1576 } | |
| 1577 | |
| 1578 factory AnalysisGetNavigationResult.fromJson( | |
| 1579 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 1338 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 1580 if (json == null) { | 1339 if (json == null) { |
| 1581 json = {}; | 1340 json = {}; |
| 1582 } | 1341 } |
| 1583 if (json is Map) { | 1342 if (json is Map) { |
| 1584 List<String> files; | 1343 List<HoverInformation> hovers; |
| 1585 if (json.containsKey("files")) { | 1344 if (json.containsKey("hovers")) { |
| 1586 files = jsonDecoder.decodeList( | 1345 hovers = jsonDecoder.decodeList( |
| 1587 jsonPath + ".files", json["files"], jsonDecoder.decodeString); | 1346 jsonPath + ".hovers", |
| 1347 json["hovers"], |
| 1348 (String jsonPath, Object json) => |
| 1349 new HoverInformation.fromJson(jsonDecoder, jsonPath, json)); |
| 1588 } else { | 1350 } else { |
| 1589 throw jsonDecoder.missingKey(jsonPath, "files"); | 1351 throw jsonDecoder.mismatch(jsonPath, "hovers"); |
| 1590 } | 1352 } |
| 1591 List<NavigationTarget> targets; | 1353 return new AnalysisGetHoverResult(hovers); |
| 1592 if (json.containsKey("targets")) { | |
| 1593 targets = jsonDecoder.decodeList( | |
| 1594 jsonPath + ".targets", | |
| 1595 json["targets"], | |
| 1596 (String jsonPath, Object json) => | |
| 1597 new NavigationTarget.fromJson(jsonDecoder, jsonPath, json)); | |
| 1598 } else { | |
| 1599 throw jsonDecoder.missingKey(jsonPath, "targets"); | |
| 1600 } | |
| 1601 List<NavigationRegion> regions; | |
| 1602 if (json.containsKey("regions")) { | |
| 1603 regions = jsonDecoder.decodeList( | |
| 1604 jsonPath + ".regions", | |
| 1605 json["regions"], | |
| 1606 (String jsonPath, Object json) => | |
| 1607 new NavigationRegion.fromJson(jsonDecoder, jsonPath, json)); | |
| 1608 } else { | |
| 1609 throw jsonDecoder.missingKey(jsonPath, "regions"); | |
| 1610 } | |
| 1611 return new AnalysisGetNavigationResult(files, targets, regions); | |
| 1612 } else { | 1354 } else { |
| 1613 throw jsonDecoder.mismatch( | 1355 throw jsonDecoder.mismatch(jsonPath, "analysis.getHover result", json); |
| 1614 jsonPath, "analysis.getNavigation result", json); | |
| 1615 } | 1356 } |
| 1616 } | 1357 } |
| 1617 | 1358 |
| 1618 factory AnalysisGetNavigationResult.fromResponse(Response response) { | 1359 factory AnalysisGetHoverResult.fromResponse(Response response) { |
| 1619 return new AnalysisGetNavigationResult.fromJson( | 1360 return new AnalysisGetHoverResult.fromJson( |
| 1620 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 1361 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 1621 "result", | 1362 "result", |
| 1622 response._result); | 1363 response.result); |
| 1623 } | 1364 } |
| 1624 | 1365 |
| 1366 @override |
| 1625 Map<String, dynamic> toJson() { | 1367 Map<String, dynamic> toJson() { |
| 1626 Map<String, dynamic> result = {}; | 1368 Map<String, dynamic> result = {}; |
| 1627 result["files"] = files; | 1369 result["hovers"] = |
| 1628 result["targets"] = | 1370 hovers.map((HoverInformation value) => value.toJson()).toList(); |
| 1629 targets.map((NavigationTarget value) => value.toJson()).toList(); | |
| 1630 result["regions"] = | |
| 1631 regions.map((NavigationRegion value) => value.toJson()).toList(); | |
| 1632 return result; | 1371 return result; |
| 1633 } | 1372 } |
| 1634 | 1373 |
| 1374 @override |
| 1635 Response toResponse(String id) { | 1375 Response toResponse(String id) { |
| 1636 return new Response(id, result: toJson()); | 1376 return new Response(id, result: toJson()); |
| 1637 } | 1377 } |
| 1638 | 1378 |
| 1639 @override | 1379 @override |
| 1640 String toString() => JSON.encode(toJson()); | 1380 String toString() => JSON.encode(toJson()); |
| 1641 | 1381 |
| 1642 @override | 1382 @override |
| 1643 bool operator ==(other) { | 1383 bool operator ==(other) { |
| 1644 if (other is AnalysisGetNavigationResult) { | 1384 if (other is AnalysisGetHoverResult) { |
| 1645 return listEqual(files, other.files, (String a, String b) => a == b) && | 1385 return listEqual(hovers, other.hovers, |
| 1646 listEqual(targets, other.targets, | 1386 (HoverInformation a, HoverInformation b) => a == b); |
| 1647 (NavigationTarget a, NavigationTarget b) => a == b) && | |
| 1648 listEqual(regions, other.regions, | |
| 1649 (NavigationRegion a, NavigationRegion b) => a == b); | |
| 1650 } | 1387 } |
| 1651 return false; | 1388 return false; |
| 1652 } | 1389 } |
| 1653 | 1390 |
| 1654 @override | 1391 @override |
| 1655 int get hashCode { | 1392 int get hashCode { |
| 1656 int hash = 0; | 1393 int hash = 0; |
| 1657 hash = JenkinsSmiHash.combine(hash, files.hashCode); | 1394 hash = JenkinsSmiHash.combine(hash, hovers.hashCode); |
| 1658 hash = JenkinsSmiHash.combine(hash, targets.hashCode); | |
| 1659 hash = JenkinsSmiHash.combine(hash, regions.hashCode); | |
| 1660 return JenkinsSmiHash.finish(hash); | 1395 return JenkinsSmiHash.finish(hash); |
| 1661 } | 1396 } |
| 1662 } | 1397 } |
| 1663 | 1398 |
| 1664 /** | 1399 /** |
| 1665 * analysis.reanalyze params | 1400 * analysis.getLibraryDependencies params |
| 1666 * | |
| 1667 * { | |
| 1668 * "roots": optional List<FilePath> | |
| 1669 * } | |
| 1670 * | 1401 * |
| 1671 * Clients may not extend, implement or mix-in this class. | 1402 * Clients may not extend, implement or mix-in this class. |
| 1672 */ | 1403 */ |
| 1673 class AnalysisReanalyzeParams implements HasToJson { | 1404 class AnalysisGetLibraryDependenciesParams implements RequestParams { |
| 1674 List<String> _roots; | 1405 @override |
| 1675 | 1406 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 1676 /** | |
| 1677 * A list of the analysis roots that are to be re-analyzed. | |
| 1678 */ | |
| 1679 List<String> get roots => _roots; | |
| 1680 | |
| 1681 /** | |
| 1682 * A list of the analysis roots that are to be re-analyzed. | |
| 1683 */ | |
| 1684 void set roots(List<String> value) { | |
| 1685 this._roots = value; | |
| 1686 } | |
| 1687 | |
| 1688 AnalysisReanalyzeParams({List<String> roots}) { | |
| 1689 this.roots = roots; | |
| 1690 } | |
| 1691 | |
| 1692 factory AnalysisReanalyzeParams.fromJson( | |
| 1693 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 1694 if (json == null) { | |
| 1695 json = {}; | |
| 1696 } | |
| 1697 if (json is Map) { | |
| 1698 List<String> roots; | |
| 1699 if (json.containsKey("roots")) { | |
| 1700 roots = jsonDecoder.decodeList( | |
| 1701 jsonPath + ".roots", json["roots"], jsonDecoder.decodeString); | |
| 1702 } | |
| 1703 return new AnalysisReanalyzeParams(roots: roots); | |
| 1704 } else { | |
| 1705 throw jsonDecoder.mismatch(jsonPath, "analysis.reanalyze params", json); | |
| 1706 } | |
| 1707 } | |
| 1708 | |
| 1709 factory AnalysisReanalyzeParams.fromRequest(Request request) { | |
| 1710 return new AnalysisReanalyzeParams.fromJson( | |
| 1711 new RequestDecoder(request), "params", request._params); | |
| 1712 } | |
| 1713 | |
| 1714 Map<String, dynamic> toJson() { | |
| 1715 Map<String, dynamic> result = {}; | |
| 1716 if (roots != null) { | |
| 1717 result["roots"] = roots; | |
| 1718 } | |
| 1719 return result; | |
| 1720 } | |
| 1721 | |
| 1722 Request toRequest(String id) { | |
| 1723 return new Request(id, "analysis.reanalyze", toJson()); | |
| 1724 } | |
| 1725 | 1407 |
| 1726 @override | 1408 @override |
| 1727 String toString() => JSON.encode(toJson()); | 1409 Request toRequest(String id) { |
| 1728 | 1410 return new Request(id, "analysis.getLibraryDependencies", null); |
| 1729 @override | |
| 1730 bool operator ==(other) { | |
| 1731 if (other is AnalysisReanalyzeParams) { | |
| 1732 return listEqual(roots, other.roots, (String a, String b) => a == b); | |
| 1733 } | |
| 1734 return false; | |
| 1735 } | |
| 1736 | |
| 1737 @override | |
| 1738 int get hashCode { | |
| 1739 int hash = 0; | |
| 1740 hash = JenkinsSmiHash.combine(hash, roots.hashCode); | |
| 1741 return JenkinsSmiHash.finish(hash); | |
| 1742 } | |
| 1743 } | |
| 1744 | |
| 1745 /** | |
| 1746 * analysis.reanalyze result | |
| 1747 * | |
| 1748 * Clients may not extend, implement or mix-in this class. | |
| 1749 */ | |
| 1750 class AnalysisReanalyzeResult { | |
| 1751 Response toResponse(String id) { | |
| 1752 return new Response(id, result: null); | |
| 1753 } | 1411 } |
| 1754 | 1412 |
| 1755 @override | 1413 @override |
| 1756 bool operator ==(other) { | 1414 bool operator ==(other) { |
| 1757 if (other is AnalysisReanalyzeResult) { | 1415 if (other is AnalysisGetLibraryDependenciesParams) { |
| 1758 return true; | 1416 return true; |
| 1759 } | 1417 } |
| 1760 return false; | 1418 return false; |
| 1761 } | 1419 } |
| 1762 | 1420 |
| 1763 @override | 1421 @override |
| 1764 int get hashCode { | 1422 int get hashCode { |
| 1765 return 846803925; | 1423 return 246577680; |
| 1766 } | 1424 } |
| 1767 } | 1425 } |
| 1768 | 1426 |
| 1769 /** | 1427 /** |
| 1770 * analysis.setAnalysisRoots params | 1428 * analysis.getLibraryDependencies result |
| 1771 * | 1429 * |
| 1772 * { | 1430 * { |
| 1773 * "included": List<FilePath> | 1431 * "libraries": List<FilePath> |
| 1774 * "excluded": List<FilePath> | 1432 * "packageMap": Map<String, Map<String, List<FilePath>>> |
| 1775 * "packageRoots": optional Map<FilePath, FilePath> | |
| 1776 * } | 1433 * } |
| 1777 * | 1434 * |
| 1778 * Clients may not extend, implement or mix-in this class. | 1435 * Clients may not extend, implement or mix-in this class. |
| 1779 */ | 1436 */ |
| 1780 class AnalysisSetAnalysisRootsParams implements HasToJson { | 1437 class AnalysisGetLibraryDependenciesResult implements ResponseResult { |
| 1781 List<String> _included; | 1438 List<String> _libraries; |
| 1782 | 1439 |
| 1783 List<String> _excluded; | 1440 Map<String, Map<String, List<String>>> _packageMap; |
| 1784 | |
| 1785 Map<String, String> _packageRoots; | |
| 1786 | 1441 |
| 1787 /** | 1442 /** |
| 1788 * A list of the files and directories that should be analyzed. | 1443 * A list of the paths of library elements referenced by files in existing |
| 1444 * analysis roots. |
| 1789 */ | 1445 */ |
| 1790 List<String> get included => _included; | 1446 List<String> get libraries => _libraries; |
| 1791 | 1447 |
| 1792 /** | 1448 /** |
| 1793 * A list of the files and directories that should be analyzed. | 1449 * A list of the paths of library elements referenced by files in existing |
| 1450 * analysis roots. |
| 1794 */ | 1451 */ |
| 1795 void set included(List<String> value) { | 1452 void set libraries(List<String> value) { |
| 1796 assert(value != null); | 1453 assert(value != null); |
| 1797 this._included = value; | 1454 this._libraries = value; |
| 1798 } | 1455 } |
| 1799 | 1456 |
| 1800 /** | 1457 /** |
| 1801 * A list of the files and directories within the included directories that | 1458 * A mapping from context source roots to package maps which map package |
| 1802 * should not be analyzed. | 1459 * names to source directories for use in client-side package URI resolution. |
| 1803 */ | 1460 */ |
| 1804 List<String> get excluded => _excluded; | 1461 Map<String, Map<String, List<String>>> get packageMap => _packageMap; |
| 1805 | 1462 |
| 1806 /** | 1463 /** |
| 1807 * A list of the files and directories within the included directories that | 1464 * A mapping from context source roots to package maps which map package |
| 1808 * should not be analyzed. | 1465 * names to source directories for use in client-side package URI resolution. |
| 1809 */ | 1466 */ |
| 1810 void set excluded(List<String> value) { | 1467 void set packageMap(Map<String, Map<String, List<String>>> value) { |
| 1811 assert(value != null); | 1468 assert(value != null); |
| 1812 this._excluded = value; | 1469 this._packageMap = value; |
| 1813 } | 1470 } |
| 1814 | 1471 |
| 1815 /** | 1472 AnalysisGetLibraryDependenciesResult(List<String> libraries, |
| 1816 * A mapping from source directories to package roots that should override | 1473 Map<String, Map<String, List<String>>> packageMap) { |
| 1817 * the normal package: URI resolution mechanism. | 1474 this.libraries = libraries; |
| 1818 * | 1475 this.packageMap = packageMap; |
| 1819 * If a package root is a directory, then the analyzer will behave as though | |
| 1820 * the associated source directory in the map contains a special pubspec.yaml | |
| 1821 * file which resolves any package: URI to the corresponding path within that | |
| 1822 * package root directory. The effect is the same as specifying the package | |
| 1823 * root directory as a "--package_root" parameter to the Dart VM when | |
| 1824 * executing any Dart file inside the source directory. | |
| 1825 * | |
| 1826 * If a package root is a file, then the analyzer will behave as though that | |
| 1827 * file is a ".packages" file in the source directory. The effect is the same | |
| 1828 * as specifying the file as a "--packages" parameter to the Dart VM when | |
| 1829 * executing any Dart file inside the source directory. | |
| 1830 * | |
| 1831 * Files in any directories that are not overridden by this mapping have | |
| 1832 * their package: URI's resolved using the normal pubspec.yaml mechanism. If | |
| 1833 * this field is absent, or the empty map is specified, that indicates that | |
| 1834 * the normal pubspec.yaml mechanism should always be used. | |
| 1835 */ | |
| 1836 Map<String, String> get packageRoots => _packageRoots; | |
| 1837 | |
| 1838 /** | |
| 1839 * A mapping from source directories to package roots that should override | |
| 1840 * the normal package: URI resolution mechanism. | |
| 1841 * | |
| 1842 * If a package root is a directory, then the analyzer will behave as though | |
| 1843 * the associated source directory in the map contains a special pubspec.yaml | |
| 1844 * file which resolves any package: URI to the corresponding path within that | |
| 1845 * package root directory. The effect is the same as specifying the package | |
| 1846 * root directory as a "--package_root" parameter to the Dart VM when | |
| 1847 * executing any Dart file inside the source directory. | |
| 1848 * | |
| 1849 * If a package root is a file, then the analyzer will behave as though that | |
| 1850 * file is a ".packages" file in the source directory. The effect is the same | |
| 1851 * as specifying the file as a "--packages" parameter to the Dart VM when | |
| 1852 * executing any Dart file inside the source directory. | |
| 1853 * | |
| 1854 * Files in any directories that are not overridden by this mapping have | |
| 1855 * their package: URI's resolved using the normal pubspec.yaml mechanism. If | |
| 1856 * this field is absent, or the empty map is specified, that indicates that | |
| 1857 * the normal pubspec.yaml mechanism should always be used. | |
| 1858 */ | |
| 1859 void set packageRoots(Map<String, String> value) { | |
| 1860 this._packageRoots = value; | |
| 1861 } | 1476 } |
| 1862 | 1477 |
| 1863 AnalysisSetAnalysisRootsParams(List<String> included, List<String> excluded, | 1478 factory AnalysisGetLibraryDependenciesResult.fromJson( |
| 1864 {Map<String, String> packageRoots}) { | |
| 1865 this.included = included; | |
| 1866 this.excluded = excluded; | |
| 1867 this.packageRoots = packageRoots; | |
| 1868 } | |
| 1869 | |
| 1870 factory AnalysisSetAnalysisRootsParams.fromJson( | |
| 1871 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 1479 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 1872 if (json == null) { | 1480 if (json == null) { |
| 1873 json = {}; | 1481 json = {}; |
| 1874 } | 1482 } |
| 1875 if (json is Map) { | 1483 if (json is Map) { |
| 1876 List<String> included; | 1484 List<String> libraries; |
| 1877 if (json.containsKey("included")) { | 1485 if (json.containsKey("libraries")) { |
| 1878 included = jsonDecoder.decodeList( | 1486 libraries = jsonDecoder.decodeList(jsonPath + ".libraries", |
| 1879 jsonPath + ".included", json["included"], jsonDecoder.decodeString); | 1487 json["libraries"], jsonDecoder.decodeString); |
| 1880 } else { | 1488 } else { |
| 1881 throw jsonDecoder.missingKey(jsonPath, "included"); | 1489 throw jsonDecoder.mismatch(jsonPath, "libraries"); |
| 1882 } | 1490 } |
| 1883 List<String> excluded; | 1491 Map<String, Map<String, List<String>>> packageMap; |
| 1884 if (json.containsKey("excluded")) { | 1492 if (json.containsKey("packageMap")) { |
| 1885 excluded = jsonDecoder.decodeList( | 1493 packageMap = jsonDecoder.decodeMap( |
| 1886 jsonPath + ".excluded", json["excluded"], jsonDecoder.decodeString); | 1494 jsonPath + ".packageMap", json["packageMap"], |
| 1495 valueDecoder: (String jsonPath, Object json) => |
| 1496 jsonDecoder.decodeMap(jsonPath, json, |
| 1497 valueDecoder: (String jsonPath, Object json) => jsonDecoder |
| 1498 .decodeList(jsonPath, json, jsonDecoder.decodeString))); |
| 1887 } else { | 1499 } else { |
| 1888 throw jsonDecoder.missingKey(jsonPath, "excluded"); | 1500 throw jsonDecoder.mismatch(jsonPath, "packageMap"); |
| 1889 } | 1501 } |
| 1890 Map<String, String> packageRoots; | 1502 return new AnalysisGetLibraryDependenciesResult(libraries, packageMap); |
| 1891 if (json.containsKey("packageRoots")) { | |
| 1892 packageRoots = jsonDecoder.decodeMap( | |
| 1893 jsonPath + ".packageRoots", json["packageRoots"], | |
| 1894 valueDecoder: jsonDecoder.decodeString); | |
| 1895 } | |
| 1896 return new AnalysisSetAnalysisRootsParams(included, excluded, | |
| 1897 packageRoots: packageRoots); | |
| 1898 } else { | 1503 } else { |
| 1899 throw jsonDecoder.mismatch( | 1504 throw jsonDecoder.mismatch( |
| 1900 jsonPath, "analysis.setAnalysisRoots params", json); | 1505 jsonPath, "analysis.getLibraryDependencies result", json); |
| 1901 } | 1506 } |
| 1902 } | 1507 } |
| 1903 | 1508 |
| 1904 factory AnalysisSetAnalysisRootsParams.fromRequest(Request request) { | 1509 factory AnalysisGetLibraryDependenciesResult.fromResponse(Response response) { |
| 1905 return new AnalysisSetAnalysisRootsParams.fromJson( | 1510 return new AnalysisGetLibraryDependenciesResult.fromJson( |
| 1906 new RequestDecoder(request), "params", request._params); | 1511 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 1512 "result", |
| 1513 response.result); |
| 1907 } | 1514 } |
| 1908 | 1515 |
| 1516 @override |
| 1909 Map<String, dynamic> toJson() { | 1517 Map<String, dynamic> toJson() { |
| 1910 Map<String, dynamic> result = {}; | 1518 Map<String, dynamic> result = {}; |
| 1911 result["included"] = included; | 1519 result["libraries"] = libraries; |
| 1912 result["excluded"] = excluded; | 1520 result["packageMap"] = packageMap; |
| 1913 if (packageRoots != null) { | |
| 1914 result["packageRoots"] = packageRoots; | |
| 1915 } | |
| 1916 return result; | 1521 return result; |
| 1917 } | 1522 } |
| 1918 | 1523 |
| 1919 Request toRequest(String id) { | 1524 @override |
| 1920 return new Request(id, "analysis.setAnalysisRoots", toJson()); | 1525 Response toResponse(String id) { |
| 1526 return new Response(id, result: toJson()); |
| 1921 } | 1527 } |
| 1922 | 1528 |
| 1923 @override | 1529 @override |
| 1924 String toString() => JSON.encode(toJson()); | 1530 String toString() => JSON.encode(toJson()); |
| 1925 | 1531 |
| 1926 @override | 1532 @override |
| 1927 bool operator ==(other) { | 1533 bool operator ==(other) { |
| 1928 if (other is AnalysisSetAnalysisRootsParams) { | 1534 if (other is AnalysisGetLibraryDependenciesResult) { |
| 1929 return listEqual( | 1535 return listEqual( |
| 1930 included, other.included, (String a, String b) => a == b) && | 1536 libraries, other.libraries, (String a, String b) => a == b) && |
| 1931 listEqual(excluded, other.excluded, (String a, String b) => a == b) && | |
| 1932 mapEqual( | 1537 mapEqual( |
| 1933 packageRoots, other.packageRoots, (String a, String b) => a == b); | 1538 packageMap, |
| 1539 other.packageMap, |
| 1540 (Map<String, List<String>> a, Map<String, List<String>> b) => |
| 1541 mapEqual( |
| 1542 a, |
| 1543 b, |
| 1544 (List<String> a, List<String> b) => |
| 1545 listEqual(a, b, (String a, String b) => a == b))); |
| 1934 } | 1546 } |
| 1935 return false; | 1547 return false; |
| 1936 } | 1548 } |
| 1937 | 1549 |
| 1938 @override | 1550 @override |
| 1939 int get hashCode { | 1551 int get hashCode { |
| 1940 int hash = 0; | 1552 int hash = 0; |
| 1941 hash = JenkinsSmiHash.combine(hash, included.hashCode); | 1553 hash = JenkinsSmiHash.combine(hash, libraries.hashCode); |
| 1942 hash = JenkinsSmiHash.combine(hash, excluded.hashCode); | 1554 hash = JenkinsSmiHash.combine(hash, packageMap.hashCode); |
| 1943 hash = JenkinsSmiHash.combine(hash, packageRoots.hashCode); | |
| 1944 return JenkinsSmiHash.finish(hash); | 1555 return JenkinsSmiHash.finish(hash); |
| 1945 } | 1556 } |
| 1946 } | 1557 } |
| 1947 | 1558 |
| 1948 /** | 1559 /** |
| 1949 * analysis.setAnalysisRoots result | 1560 * analysis.getNavigation params |
| 1950 * | |
| 1951 * Clients may not extend, implement or mix-in this class. | |
| 1952 */ | |
| 1953 class AnalysisSetAnalysisRootsResult { | |
| 1954 Response toResponse(String id) { | |
| 1955 return new Response(id, result: null); | |
| 1956 } | |
| 1957 | |
| 1958 @override | |
| 1959 bool operator ==(other) { | |
| 1960 if (other is AnalysisSetAnalysisRootsResult) { | |
| 1961 return true; | |
| 1962 } | |
| 1963 return false; | |
| 1964 } | |
| 1965 | |
| 1966 @override | |
| 1967 int get hashCode { | |
| 1968 return 866004753; | |
| 1969 } | |
| 1970 } | |
| 1971 | |
| 1972 /** | |
| 1973 * analysis.setGeneralSubscriptions params | |
| 1974 * | 1561 * |
| 1975 * { | 1562 * { |
| 1976 * "subscriptions": List<GeneralAnalysisService> | 1563 * "file": FilePath |
| 1564 * "offset": int |
| 1565 * "length": int |
| 1977 * } | 1566 * } |
| 1978 * | 1567 * |
| 1979 * Clients may not extend, implement or mix-in this class. | 1568 * Clients may not extend, implement or mix-in this class. |
| 1980 */ | 1569 */ |
| 1981 class AnalysisSetGeneralSubscriptionsParams implements HasToJson { | 1570 class AnalysisGetNavigationParams implements RequestParams { |
| 1982 List<GeneralAnalysisService> _subscriptions; | 1571 String _file; |
| 1572 |
| 1573 int _offset; |
| 1574 |
| 1575 int _length; |
| 1983 | 1576 |
| 1984 /** | 1577 /** |
| 1985 * A list of the services being subscribed to. | 1578 * The file in which navigation information is being requested. |
| 1986 */ | 1579 */ |
| 1987 List<GeneralAnalysisService> get subscriptions => _subscriptions; | 1580 String get file => _file; |
| 1988 | 1581 |
| 1989 /** | 1582 /** |
| 1990 * A list of the services being subscribed to. | 1583 * The file in which navigation information is being requested. |
| 1991 */ | 1584 */ |
| 1992 void set subscriptions(List<GeneralAnalysisService> value) { | 1585 void set file(String value) { |
| 1993 assert(value != null); | 1586 assert(value != null); |
| 1994 this._subscriptions = value; | 1587 this._file = value; |
| 1995 } | 1588 } |
| 1996 | 1589 |
| 1997 AnalysisSetGeneralSubscriptionsParams( | 1590 /** |
| 1998 List<GeneralAnalysisService> subscriptions) { | 1591 * The offset of the region for which navigation information is being |
| 1999 this.subscriptions = subscriptions; | 1592 * requested. |
| 1593 */ |
| 1594 int get offset => _offset; |
| 1595 |
| 1596 /** |
| 1597 * The offset of the region for which navigation information is being |
| 1598 * requested. |
| 1599 */ |
| 1600 void set offset(int value) { |
| 1601 assert(value != null); |
| 1602 this._offset = value; |
| 2000 } | 1603 } |
| 2001 | 1604 |
| 2002 factory AnalysisSetGeneralSubscriptionsParams.fromJson( | 1605 /** |
| 1606 * The length of the region for which navigation information is being |
| 1607 * requested. |
| 1608 */ |
| 1609 int get length => _length; |
| 1610 |
| 1611 /** |
| 1612 * The length of the region for which navigation information is being |
| 1613 * requested. |
| 1614 */ |
| 1615 void set length(int value) { |
| 1616 assert(value != null); |
| 1617 this._length = value; |
| 1618 } |
| 1619 |
| 1620 AnalysisGetNavigationParams(String file, int offset, int length) { |
| 1621 this.file = file; |
| 1622 this.offset = offset; |
| 1623 this.length = length; |
| 1624 } |
| 1625 |
| 1626 factory AnalysisGetNavigationParams.fromJson( |
| 2003 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 1627 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 2004 if (json == null) { | 1628 if (json == null) { |
| 2005 json = {}; | 1629 json = {}; |
| 2006 } | 1630 } |
| 2007 if (json is Map) { | 1631 if (json is Map) { |
| 2008 List<GeneralAnalysisService> subscriptions; | 1632 String file; |
| 2009 if (json.containsKey("subscriptions")) { | 1633 if (json.containsKey("file")) { |
| 2010 subscriptions = jsonDecoder.decodeList( | 1634 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 2011 jsonPath + ".subscriptions", | |
| 2012 json["subscriptions"], | |
| 2013 (String jsonPath, Object json) => | |
| 2014 new GeneralAnalysisService.fromJson( | |
| 2015 jsonDecoder, jsonPath, json)); | |
| 2016 } else { | 1635 } else { |
| 2017 throw jsonDecoder.missingKey(jsonPath, "subscriptions"); | 1636 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 2018 } | 1637 } |
| 2019 return new AnalysisSetGeneralSubscriptionsParams(subscriptions); | 1638 int offset; |
| 1639 if (json.containsKey("offset")) { |
| 1640 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 1641 } else { |
| 1642 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 1643 } |
| 1644 int length; |
| 1645 if (json.containsKey("length")) { |
| 1646 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 1647 } else { |
| 1648 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 1649 } |
| 1650 return new AnalysisGetNavigationParams(file, offset, length); |
| 2020 } else { | 1651 } else { |
| 2021 throw jsonDecoder.mismatch( | 1652 throw jsonDecoder.mismatch( |
| 2022 jsonPath, "analysis.setGeneralSubscriptions params", json); | 1653 jsonPath, "analysis.getNavigation params", json); |
| 2023 } | 1654 } |
| 2024 } | 1655 } |
| 2025 | 1656 |
| 2026 factory AnalysisSetGeneralSubscriptionsParams.fromRequest(Request request) { | 1657 factory AnalysisGetNavigationParams.fromRequest(Request request) { |
| 2027 return new AnalysisSetGeneralSubscriptionsParams.fromJson( | 1658 return new AnalysisGetNavigationParams.fromJson( |
| 2028 new RequestDecoder(request), "params", request._params); | 1659 new RequestDecoder(request), "params", request.params); |
| 2029 } | 1660 } |
| 2030 | 1661 |
| 1662 @override |
| 2031 Map<String, dynamic> toJson() { | 1663 Map<String, dynamic> toJson() { |
| 2032 Map<String, dynamic> result = {}; | 1664 Map<String, dynamic> result = {}; |
| 2033 result["subscriptions"] = subscriptions | 1665 result["file"] = file; |
| 2034 .map((GeneralAnalysisService value) => value.toJson()) | 1666 result["offset"] = offset; |
| 2035 .toList(); | 1667 result["length"] = length; |
| 2036 return result; | 1668 return result; |
| 2037 } | 1669 } |
| 2038 | 1670 |
| 1671 @override |
| 2039 Request toRequest(String id) { | 1672 Request toRequest(String id) { |
| 2040 return new Request(id, "analysis.setGeneralSubscriptions", toJson()); | 1673 return new Request(id, "analysis.getNavigation", toJson()); |
| 2041 } | 1674 } |
| 2042 | 1675 |
| 2043 @override | 1676 @override |
| 2044 String toString() => JSON.encode(toJson()); | 1677 String toString() => JSON.encode(toJson()); |
| 2045 | 1678 |
| 2046 @override | 1679 @override |
| 2047 bool operator ==(other) { | 1680 bool operator ==(other) { |
| 2048 if (other is AnalysisSetGeneralSubscriptionsParams) { | 1681 if (other is AnalysisGetNavigationParams) { |
| 2049 return listEqual(subscriptions, other.subscriptions, | 1682 return file == other.file && |
| 2050 (GeneralAnalysisService a, GeneralAnalysisService b) => a == b); | 1683 offset == other.offset && |
| 1684 length == other.length; |
| 2051 } | 1685 } |
| 2052 return false; | 1686 return false; |
| 2053 } | 1687 } |
| 2054 | 1688 |
| 2055 @override | 1689 @override |
| 2056 int get hashCode { | 1690 int get hashCode { |
| 2057 int hash = 0; | 1691 int hash = 0; |
| 2058 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode); | 1692 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 1693 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 1694 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 2059 return JenkinsSmiHash.finish(hash); | 1695 return JenkinsSmiHash.finish(hash); |
| 2060 } | 1696 } |
| 2061 } | 1697 } |
| 2062 | 1698 |
| 2063 /** | 1699 /** |
| 2064 * analysis.setGeneralSubscriptions result | 1700 * analysis.getNavigation result |
| 2065 * | |
| 2066 * Clients may not extend, implement or mix-in this class. | |
| 2067 */ | |
| 2068 class AnalysisSetGeneralSubscriptionsResult { | |
| 2069 Response toResponse(String id) { | |
| 2070 return new Response(id, result: null); | |
| 2071 } | |
| 2072 | |
| 2073 @override | |
| 2074 bool operator ==(other) { | |
| 2075 if (other is AnalysisSetGeneralSubscriptionsResult) { | |
| 2076 return true; | |
| 2077 } | |
| 2078 return false; | |
| 2079 } | |
| 2080 | |
| 2081 @override | |
| 2082 int get hashCode { | |
| 2083 return 386759562; | |
| 2084 } | |
| 2085 } | |
| 2086 | |
| 2087 /** | |
| 2088 * analysis.setPriorityFiles params | |
| 2089 * | 1701 * |
| 2090 * { | 1702 * { |
| 2091 * "files": List<FilePath> | 1703 * "files": List<FilePath> |
| 1704 * "targets": List<NavigationTarget> |
| 1705 * "regions": List<NavigationRegion> |
| 2092 * } | 1706 * } |
| 2093 * | 1707 * |
| 2094 * Clients may not extend, implement or mix-in this class. | 1708 * Clients may not extend, implement or mix-in this class. |
| 2095 */ | 1709 */ |
| 2096 class AnalysisSetPriorityFilesParams implements HasToJson { | 1710 class AnalysisGetNavigationResult implements ResponseResult { |
| 2097 List<String> _files; | 1711 List<String> _files; |
| 2098 | 1712 |
| 1713 List<NavigationTarget> _targets; |
| 1714 |
| 1715 List<NavigationRegion> _regions; |
| 1716 |
| 2099 /** | 1717 /** |
| 2100 * The files that are to be a priority for analysis. | 1718 * A list of the paths of files that are referenced by the navigation |
| 1719 * targets. |
| 2101 */ | 1720 */ |
| 2102 List<String> get files => _files; | 1721 List<String> get files => _files; |
| 2103 | 1722 |
| 2104 /** | 1723 /** |
| 2105 * The files that are to be a priority for analysis. | 1724 * A list of the paths of files that are referenced by the navigation |
| 1725 * targets. |
| 2106 */ | 1726 */ |
| 2107 void set files(List<String> value) { | 1727 void set files(List<String> value) { |
| 2108 assert(value != null); | 1728 assert(value != null); |
| 2109 this._files = value; | 1729 this._files = value; |
| 2110 } | 1730 } |
| 2111 | 1731 |
| 2112 AnalysisSetPriorityFilesParams(List<String> files) { | 1732 /** |
| 2113 this.files = files; | 1733 * A list of the navigation targets that are referenced by the navigation |
| 1734 * regions. |
| 1735 */ |
| 1736 List<NavigationTarget> get targets => _targets; |
| 1737 |
| 1738 /** |
| 1739 * A list of the navigation targets that are referenced by the navigation |
| 1740 * regions. |
| 1741 */ |
| 1742 void set targets(List<NavigationTarget> value) { |
| 1743 assert(value != null); |
| 1744 this._targets = value; |
| 2114 } | 1745 } |
| 2115 | 1746 |
| 2116 factory AnalysisSetPriorityFilesParams.fromJson( | 1747 /** |
| 1748 * A list of the navigation regions within the requested region of the file. |
| 1749 */ |
| 1750 List<NavigationRegion> get regions => _regions; |
| 1751 |
| 1752 /** |
| 1753 * A list of the navigation regions within the requested region of the file. |
| 1754 */ |
| 1755 void set regions(List<NavigationRegion> value) { |
| 1756 assert(value != null); |
| 1757 this._regions = value; |
| 1758 } |
| 1759 |
| 1760 AnalysisGetNavigationResult(List<String> files, |
| 1761 List<NavigationTarget> targets, List<NavigationRegion> regions) { |
| 1762 this.files = files; |
| 1763 this.targets = targets; |
| 1764 this.regions = regions; |
| 1765 } |
| 1766 |
| 1767 factory AnalysisGetNavigationResult.fromJson( |
| 2117 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 1768 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 2118 if (json == null) { | 1769 if (json == null) { |
| 2119 json = {}; | 1770 json = {}; |
| 2120 } | 1771 } |
| 2121 if (json is Map) { | 1772 if (json is Map) { |
| 2122 List<String> files; | 1773 List<String> files; |
| 2123 if (json.containsKey("files")) { | 1774 if (json.containsKey("files")) { |
| 2124 files = jsonDecoder.decodeList( | 1775 files = jsonDecoder.decodeList( |
| 2125 jsonPath + ".files", json["files"], jsonDecoder.decodeString); | 1776 jsonPath + ".files", json["files"], jsonDecoder.decodeString); |
| 2126 } else { | 1777 } else { |
| 2127 throw jsonDecoder.missingKey(jsonPath, "files"); | 1778 throw jsonDecoder.mismatch(jsonPath, "files"); |
| 2128 } | 1779 } |
| 2129 return new AnalysisSetPriorityFilesParams(files); | 1780 List<NavigationTarget> targets; |
| 1781 if (json.containsKey("targets")) { |
| 1782 targets = jsonDecoder.decodeList( |
| 1783 jsonPath + ".targets", |
| 1784 json["targets"], |
| 1785 (String jsonPath, Object json) => |
| 1786 new NavigationTarget.fromJson(jsonDecoder, jsonPath, json)); |
| 1787 } else { |
| 1788 throw jsonDecoder.mismatch(jsonPath, "targets"); |
| 1789 } |
| 1790 List<NavigationRegion> regions; |
| 1791 if (json.containsKey("regions")) { |
| 1792 regions = jsonDecoder.decodeList( |
| 1793 jsonPath + ".regions", |
| 1794 json["regions"], |
| 1795 (String jsonPath, Object json) => |
| 1796 new NavigationRegion.fromJson(jsonDecoder, jsonPath, json)); |
| 1797 } else { |
| 1798 throw jsonDecoder.mismatch(jsonPath, "regions"); |
| 1799 } |
| 1800 return new AnalysisGetNavigationResult(files, targets, regions); |
| 2130 } else { | 1801 } else { |
| 2131 throw jsonDecoder.mismatch( | 1802 throw jsonDecoder.mismatch( |
| 2132 jsonPath, "analysis.setPriorityFiles params", json); | 1803 jsonPath, "analysis.getNavigation result", json); |
| 2133 } | 1804 } |
| 2134 } | 1805 } |
| 2135 | 1806 |
| 2136 factory AnalysisSetPriorityFilesParams.fromRequest(Request request) { | 1807 factory AnalysisGetNavigationResult.fromResponse(Response response) { |
| 2137 return new AnalysisSetPriorityFilesParams.fromJson( | 1808 return new AnalysisGetNavigationResult.fromJson( |
| 2138 new RequestDecoder(request), "params", request._params); | 1809 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 1810 "result", |
| 1811 response.result); |
| 2139 } | 1812 } |
| 2140 | 1813 |
| 1814 @override |
| 2141 Map<String, dynamic> toJson() { | 1815 Map<String, dynamic> toJson() { |
| 2142 Map<String, dynamic> result = {}; | 1816 Map<String, dynamic> result = {}; |
| 2143 result["files"] = files; | 1817 result["files"] = files; |
| 1818 result["targets"] = |
| 1819 targets.map((NavigationTarget value) => value.toJson()).toList(); |
| 1820 result["regions"] = |
| 1821 regions.map((NavigationRegion value) => value.toJson()).toList(); |
| 2144 return result; | 1822 return result; |
| 2145 } | 1823 } |
| 2146 | 1824 |
| 2147 Request toRequest(String id) { | 1825 @override |
| 2148 return new Request(id, "analysis.setPriorityFiles", toJson()); | 1826 Response toResponse(String id) { |
| 1827 return new Response(id, result: toJson()); |
| 2149 } | 1828 } |
| 2150 | 1829 |
| 2151 @override | 1830 @override |
| 2152 String toString() => JSON.encode(toJson()); | 1831 String toString() => JSON.encode(toJson()); |
| 2153 | 1832 |
| 2154 @override | 1833 @override |
| 2155 bool operator ==(other) { | 1834 bool operator ==(other) { |
| 2156 if (other is AnalysisSetPriorityFilesParams) { | 1835 if (other is AnalysisGetNavigationResult) { |
| 2157 return listEqual(files, other.files, (String a, String b) => a == b); | 1836 return listEqual(files, other.files, (String a, String b) => a == b) && |
| 1837 listEqual(targets, other.targets, |
| 1838 (NavigationTarget a, NavigationTarget b) => a == b) && |
| 1839 listEqual(regions, other.regions, |
| 1840 (NavigationRegion a, NavigationRegion b) => a == b); |
| 2158 } | 1841 } |
| 2159 return false; | 1842 return false; |
| 2160 } | 1843 } |
| 2161 | 1844 |
| 2162 @override | 1845 @override |
| 2163 int get hashCode { | 1846 int get hashCode { |
| 2164 int hash = 0; | 1847 int hash = 0; |
| 2165 hash = JenkinsSmiHash.combine(hash, files.hashCode); | 1848 hash = JenkinsSmiHash.combine(hash, files.hashCode); |
| 1849 hash = JenkinsSmiHash.combine(hash, targets.hashCode); |
| 1850 hash = JenkinsSmiHash.combine(hash, regions.hashCode); |
| 2166 return JenkinsSmiHash.finish(hash); | 1851 return JenkinsSmiHash.finish(hash); |
| 2167 } | 1852 } |
| 2168 } | 1853 } |
| 2169 | 1854 |
| 2170 /** | 1855 /** |
| 2171 * analysis.setPriorityFiles result | 1856 * analysis.getReachableSources params |
| 2172 * | |
| 2173 * Clients may not extend, implement or mix-in this class. | |
| 2174 */ | |
| 2175 class AnalysisSetPriorityFilesResult { | |
| 2176 Response toResponse(String id) { | |
| 2177 return new Response(id, result: null); | |
| 2178 } | |
| 2179 | |
| 2180 @override | |
| 2181 bool operator ==(other) { | |
| 2182 if (other is AnalysisSetPriorityFilesResult) { | |
| 2183 return true; | |
| 2184 } | |
| 2185 return false; | |
| 2186 } | |
| 2187 | |
| 2188 @override | |
| 2189 int get hashCode { | |
| 2190 return 330050055; | |
| 2191 } | |
| 2192 } | |
| 2193 | |
| 2194 /** | |
| 2195 * analysis.setSubscriptions params | |
| 2196 * | 1857 * |
| 2197 * { | 1858 * { |
| 2198 * "subscriptions": Map<AnalysisService, List<FilePath>> | 1859 * "file": FilePath |
| 2199 * } | 1860 * } |
| 2200 * | 1861 * |
| 2201 * Clients may not extend, implement or mix-in this class. | 1862 * Clients may not extend, implement or mix-in this class. |
| 2202 */ | 1863 */ |
| 2203 class AnalysisSetSubscriptionsParams implements HasToJson { | 1864 class AnalysisGetReachableSourcesParams implements RequestParams { |
| 2204 Map<AnalysisService, List<String>> _subscriptions; | 1865 String _file; |
| 2205 | 1866 |
| 2206 /** | 1867 /** |
| 2207 * A table mapping services to a list of the files being subscribed to the | 1868 * The file for which reachable source information is being requested. |
| 2208 * service. | |
| 2209 */ | 1869 */ |
| 2210 Map<AnalysisService, List<String>> get subscriptions => _subscriptions; | 1870 String get file => _file; |
| 2211 | 1871 |
| 2212 /** | 1872 /** |
| 2213 * A table mapping services to a list of the files being subscribed to the | 1873 * The file for which reachable source information is being requested. |
| 2214 * service. | |
| 2215 */ | 1874 */ |
| 2216 void set subscriptions(Map<AnalysisService, List<String>> value) { | 1875 void set file(String value) { |
| 2217 assert(value != null); | 1876 assert(value != null); |
| 2218 this._subscriptions = value; | 1877 this._file = value; |
| 2219 } | 1878 } |
| 2220 | 1879 |
| 2221 AnalysisSetSubscriptionsParams( | 1880 AnalysisGetReachableSourcesParams(String file) { |
| 2222 Map<AnalysisService, List<String>> subscriptions) { | 1881 this.file = file; |
| 2223 this.subscriptions = subscriptions; | |
| 2224 } | 1882 } |
| 2225 | 1883 |
| 2226 factory AnalysisSetSubscriptionsParams.fromJson( | 1884 factory AnalysisGetReachableSourcesParams.fromJson( |
| 2227 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 1885 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 2228 if (json == null) { | 1886 if (json == null) { |
| 2229 json = {}; | 1887 json = {}; |
| 2230 } | 1888 } |
| 2231 if (json is Map) { | 1889 if (json is Map) { |
| 2232 Map<AnalysisService, List<String>> subscriptions; | 1890 String file; |
| 2233 if (json.containsKey("subscriptions")) { | 1891 if (json.containsKey("file")) { |
| 2234 subscriptions = jsonDecoder.decodeMap( | 1892 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 2235 jsonPath + ".subscriptions", json["subscriptions"], | |
| 2236 keyDecoder: (String jsonPath, Object json) => | |
| 2237 new AnalysisService.fromJson(jsonDecoder, jsonPath, json), | |
| 2238 valueDecoder: (String jsonPath, Object json) => jsonDecoder | |
| 2239 .decodeList(jsonPath, json, jsonDecoder.decodeString)); | |
| 2240 } else { | 1893 } else { |
| 2241 throw jsonDecoder.missingKey(jsonPath, "subscriptions"); | 1894 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 2242 } | 1895 } |
| 2243 return new AnalysisSetSubscriptionsParams(subscriptions); | 1896 return new AnalysisGetReachableSourcesParams(file); |
| 2244 } else { | 1897 } else { |
| 2245 throw jsonDecoder.mismatch( | 1898 throw jsonDecoder.mismatch( |
| 2246 jsonPath, "analysis.setSubscriptions params", json); | 1899 jsonPath, "analysis.getReachableSources params", json); |
| 2247 } | 1900 } |
| 2248 } | 1901 } |
| 2249 | 1902 |
| 2250 factory AnalysisSetSubscriptionsParams.fromRequest(Request request) { | 1903 factory AnalysisGetReachableSourcesParams.fromRequest(Request request) { |
| 2251 return new AnalysisSetSubscriptionsParams.fromJson( | 1904 return new AnalysisGetReachableSourcesParams.fromJson( |
| 2252 new RequestDecoder(request), "params", request._params); | 1905 new RequestDecoder(request), "params", request.params); |
| 2253 } | 1906 } |
| 2254 | 1907 |
| 1908 @override |
| 2255 Map<String, dynamic> toJson() { | 1909 Map<String, dynamic> toJson() { |
| 2256 Map<String, dynamic> result = {}; | 1910 Map<String, dynamic> result = {}; |
| 2257 result["subscriptions"] = mapMap(subscriptions, | 1911 result["file"] = file; |
| 2258 keyCallback: (AnalysisService value) => value.toJson()); | |
| 2259 return result; | 1912 return result; |
| 2260 } | 1913 } |
| 2261 | 1914 |
| 1915 @override |
| 2262 Request toRequest(String id) { | 1916 Request toRequest(String id) { |
| 2263 return new Request(id, "analysis.setSubscriptions", toJson()); | 1917 return new Request(id, "analysis.getReachableSources", toJson()); |
| 2264 } | 1918 } |
| 2265 | 1919 |
| 2266 @override | 1920 @override |
| 2267 String toString() => JSON.encode(toJson()); | 1921 String toString() => JSON.encode(toJson()); |
| 2268 | 1922 |
| 2269 @override | 1923 @override |
| 2270 bool operator ==(other) { | 1924 bool operator ==(other) { |
| 2271 if (other is AnalysisSetSubscriptionsParams) { | 1925 if (other is AnalysisGetReachableSourcesParams) { |
| 2272 return mapEqual( | 1926 return file == other.file; |
| 2273 subscriptions, | |
| 2274 other.subscriptions, | |
| 2275 (List<String> a, List<String> b) => | |
| 2276 listEqual(a, b, (String a, String b) => a == b)); | |
| 2277 } | 1927 } |
| 2278 return false; | 1928 return false; |
| 2279 } | 1929 } |
| 2280 | 1930 |
| 2281 @override | 1931 @override |
| 2282 int get hashCode { | 1932 int get hashCode { |
| 2283 int hash = 0; | 1933 int hash = 0; |
| 2284 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode); | 1934 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 2285 return JenkinsSmiHash.finish(hash); | 1935 return JenkinsSmiHash.finish(hash); |
| 2286 } | 1936 } |
| 2287 } | 1937 } |
| 2288 | 1938 |
| 2289 /** | 1939 /** |
| 2290 * analysis.setSubscriptions result | 1940 * analysis.getReachableSources result |
| 2291 * | |
| 2292 * Clients may not extend, implement or mix-in this class. | |
| 2293 */ | |
| 2294 class AnalysisSetSubscriptionsResult { | |
| 2295 Response toResponse(String id) { | |
| 2296 return new Response(id, result: null); | |
| 2297 } | |
| 2298 | |
| 2299 @override | |
| 2300 bool operator ==(other) { | |
| 2301 if (other is AnalysisSetSubscriptionsResult) { | |
| 2302 return true; | |
| 2303 } | |
| 2304 return false; | |
| 2305 } | |
| 2306 | |
| 2307 @override | |
| 2308 int get hashCode { | |
| 2309 return 218088493; | |
| 2310 } | |
| 2311 } | |
| 2312 | |
| 2313 /** | |
| 2314 * analysis.updateContent params | |
| 2315 * | 1941 * |
| 2316 * { | 1942 * { |
| 2317 * "files": Map<FilePath, AddContentOverlay | ChangeContentOverlay | RemoveCon
tentOverlay> | 1943 * "sources": Map<String, List<String>> |
| 2318 * } | 1944 * } |
| 2319 * | 1945 * |
| 2320 * Clients may not extend, implement or mix-in this class. | 1946 * Clients may not extend, implement or mix-in this class. |
| 2321 */ | 1947 */ |
| 2322 class AnalysisUpdateContentParams implements HasToJson { | 1948 class AnalysisGetReachableSourcesResult implements ResponseResult { |
| 2323 Map<String, dynamic> _files; | 1949 Map<String, List<String>> _sources; |
| 2324 | 1950 |
| 2325 /** | 1951 /** |
| 2326 * A table mapping the files whose content has changed to a description of | 1952 * A mapping from source URIs to directly reachable source URIs. For example, |
| 2327 * the content change. | 1953 * a file "foo.dart" that imports "bar.dart" would have the corresponding |
| 1954 * mapping { "file:///foo.dart" : ["file:///bar.dart"] }. If "bar.dart" has |
| 1955 * further imports (or exports) there will be a mapping from the URI |
| 1956 * "file:///bar.dart" to them. To check if a specific URI is reachable from a |
| 1957 * given file, clients can check for its presence in the resulting key set. |
| 2328 */ | 1958 */ |
| 2329 Map<String, dynamic> get files => _files; | 1959 Map<String, List<String>> get sources => _sources; |
| 2330 | 1960 |
| 2331 /** | 1961 /** |
| 2332 * A table mapping the files whose content has changed to a description of | 1962 * A mapping from source URIs to directly reachable source URIs. For example, |
| 2333 * the content change. | 1963 * a file "foo.dart" that imports "bar.dart" would have the corresponding |
| 1964 * mapping { "file:///foo.dart" : ["file:///bar.dart"] }. If "bar.dart" has |
| 1965 * further imports (or exports) there will be a mapping from the URI |
| 1966 * "file:///bar.dart" to them. To check if a specific URI is reachable from a |
| 1967 * given file, clients can check for its presence in the resulting key set. |
| 2334 */ | 1968 */ |
| 2335 void set files(Map<String, dynamic> value) { | 1969 void set sources(Map<String, List<String>> value) { |
| 2336 assert(value != null); | 1970 assert(value != null); |
| 2337 this._files = value; | 1971 this._sources = value; |
| 2338 } | 1972 } |
| 2339 | 1973 |
| 2340 AnalysisUpdateContentParams(Map<String, dynamic> files) { | 1974 AnalysisGetReachableSourcesResult(Map<String, List<String>> sources) { |
| 2341 this.files = files; | 1975 this.sources = sources; |
| 2342 } | 1976 } |
| 2343 | 1977 |
| 2344 factory AnalysisUpdateContentParams.fromJson( | 1978 factory AnalysisGetReachableSourcesResult.fromJson( |
| 2345 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 1979 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 2346 if (json == null) { | 1980 if (json == null) { |
| 2347 json = {}; | 1981 json = {}; |
| 2348 } | 1982 } |
| 2349 if (json is Map) { | 1983 if (json is Map) { |
| 2350 Map<String, dynamic> files; | 1984 Map<String, List<String>> sources; |
| 2351 if (json.containsKey("files")) { | 1985 if (json.containsKey("sources")) { |
| 2352 files = jsonDecoder.decodeMap(jsonPath + ".files", json["files"], | 1986 sources = jsonDecoder.decodeMap(jsonPath + ".sources", json["sources"], |
| 2353 valueDecoder: (String jsonPath, Object json) => | 1987 valueDecoder: (String jsonPath, Object json) => jsonDecoder |
| 2354 jsonDecoder.decodeUnion(jsonPath, json, "type", { | 1988 .decodeList(jsonPath, json, jsonDecoder.decodeString)); |
| 2355 "add": (String jsonPath, Object json) => | |
| 2356 new AddContentOverlay.fromJson( | |
| 2357 jsonDecoder, jsonPath, json), | |
| 2358 "change": (String jsonPath, Object json) => | |
| 2359 new ChangeContentOverlay.fromJson( | |
| 2360 jsonDecoder, jsonPath, json), | |
| 2361 "remove": (String jsonPath, Object json) => | |
| 2362 new RemoveContentOverlay.fromJson( | |
| 2363 jsonDecoder, jsonPath, json) | |
| 2364 })); | |
| 2365 } else { | 1989 } else { |
| 2366 throw jsonDecoder.missingKey(jsonPath, "files"); | 1990 throw jsonDecoder.mismatch(jsonPath, "sources"); |
| 2367 } | 1991 } |
| 2368 return new AnalysisUpdateContentParams(files); | 1992 return new AnalysisGetReachableSourcesResult(sources); |
| 2369 } else { | 1993 } else { |
| 2370 throw jsonDecoder.mismatch( | 1994 throw jsonDecoder.mismatch( |
| 2371 jsonPath, "analysis.updateContent params", json); | 1995 jsonPath, "analysis.getReachableSources result", json); |
| 2372 } | 1996 } |
| 2373 } | 1997 } |
| 2374 | 1998 |
| 2375 factory AnalysisUpdateContentParams.fromRequest(Request request) { | 1999 factory AnalysisGetReachableSourcesResult.fromResponse(Response response) { |
| 2376 return new AnalysisUpdateContentParams.fromJson( | 2000 return new AnalysisGetReachableSourcesResult.fromJson( |
| 2377 new RequestDecoder(request), "params", request._params); | 2001 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 2002 "result", |
| 2003 response.result); |
| 2378 } | 2004 } |
| 2379 | 2005 |
| 2006 @override |
| 2380 Map<String, dynamic> toJson() { | 2007 Map<String, dynamic> toJson() { |
| 2381 Map<String, dynamic> result = {}; | 2008 Map<String, dynamic> result = {}; |
| 2382 result["files"] = | 2009 result["sources"] = sources; |
| 2383 mapMap(files, valueCallback: (dynamic value) => value.toJson()); | |
| 2384 return result; | 2010 return result; |
| 2385 } | 2011 } |
| 2386 | 2012 |
| 2387 Request toRequest(String id) { | |
| 2388 return new Request(id, "analysis.updateContent", toJson()); | |
| 2389 } | |
| 2390 | |
| 2391 @override | 2013 @override |
| 2392 String toString() => JSON.encode(toJson()); | |
| 2393 | |
| 2394 @override | |
| 2395 bool operator ==(other) { | |
| 2396 if (other is AnalysisUpdateContentParams) { | |
| 2397 return mapEqual(files, other.files, (dynamic a, dynamic b) => a == b); | |
| 2398 } | |
| 2399 return false; | |
| 2400 } | |
| 2401 | |
| 2402 @override | |
| 2403 int get hashCode { | |
| 2404 int hash = 0; | |
| 2405 hash = JenkinsSmiHash.combine(hash, files.hashCode); | |
| 2406 return JenkinsSmiHash.finish(hash); | |
| 2407 } | |
| 2408 } | |
| 2409 | |
| 2410 /** | |
| 2411 * analysis.updateContent result | |
| 2412 * | |
| 2413 * { | |
| 2414 * } | |
| 2415 * | |
| 2416 * Clients may not extend, implement or mix-in this class. | |
| 2417 */ | |
| 2418 class AnalysisUpdateContentResult implements HasToJson { | |
| 2419 AnalysisUpdateContentResult(); | |
| 2420 | |
| 2421 factory AnalysisUpdateContentResult.fromJson( | |
| 2422 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 2423 if (json == null) { | |
| 2424 json = {}; | |
| 2425 } | |
| 2426 if (json is Map) { | |
| 2427 return new AnalysisUpdateContentResult(); | |
| 2428 } else { | |
| 2429 throw jsonDecoder.mismatch( | |
| 2430 jsonPath, "analysis.updateContent result", json); | |
| 2431 } | |
| 2432 } | |
| 2433 | |
| 2434 factory AnalysisUpdateContentResult.fromResponse(Response response) { | |
| 2435 return new AnalysisUpdateContentResult.fromJson( | |
| 2436 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | |
| 2437 "result", | |
| 2438 response._result); | |
| 2439 } | |
| 2440 | |
| 2441 Map<String, dynamic> toJson() { | |
| 2442 Map<String, dynamic> result = {}; | |
| 2443 return result; | |
| 2444 } | |
| 2445 | |
| 2446 Response toResponse(String id) { | 2014 Response toResponse(String id) { |
| 2447 return new Response(id, result: toJson()); | 2015 return new Response(id, result: toJson()); |
| 2448 } | 2016 } |
| 2449 | 2017 |
| 2450 @override | 2018 @override |
| 2451 String toString() => JSON.encode(toJson()); | 2019 String toString() => JSON.encode(toJson()); |
| 2452 | 2020 |
| 2453 @override | 2021 @override |
| 2454 bool operator ==(other) { | 2022 bool operator ==(other) { |
| 2455 if (other is AnalysisUpdateContentResult) { | 2023 if (other is AnalysisGetReachableSourcesResult) { |
| 2456 return true; | 2024 return mapEqual( |
| 2025 sources, |
| 2026 other.sources, |
| 2027 (List<String> a, List<String> b) => |
| 2028 listEqual(a, b, (String a, String b) => a == b)); |
| 2457 } | 2029 } |
| 2458 return false; | 2030 return false; |
| 2459 } | 2031 } |
| 2460 | 2032 |
| 2461 @override | 2033 @override |
| 2462 int get hashCode { | 2034 int get hashCode { |
| 2463 int hash = 0; | 2035 int hash = 0; |
| 2036 hash = JenkinsSmiHash.combine(hash, sources.hashCode); |
| 2464 return JenkinsSmiHash.finish(hash); | 2037 return JenkinsSmiHash.finish(hash); |
| 2465 } | 2038 } |
| 2466 } | 2039 } |
| 2467 | 2040 |
| 2468 /** | 2041 /** |
| 2469 * analysis.updateOptions params | 2042 * analysis.highlights params |
| 2470 * | 2043 * |
| 2471 * { | 2044 * { |
| 2472 * "options": AnalysisOptions | 2045 * "file": FilePath |
| 2046 * "regions": List<HighlightRegion> |
| 2473 * } | 2047 * } |
| 2474 * | 2048 * |
| 2475 * Clients may not extend, implement or mix-in this class. | 2049 * Clients may not extend, implement or mix-in this class. |
| 2476 */ | 2050 */ |
| 2477 class AnalysisUpdateOptionsParams implements HasToJson { | 2051 class AnalysisHighlightsParams implements HasToJson { |
| 2478 AnalysisOptions _options; | 2052 String _file; |
| 2053 |
| 2054 List<HighlightRegion> _regions; |
| 2479 | 2055 |
| 2480 /** | 2056 /** |
| 2481 * The options that are to be used to control analysis. | 2057 * The file containing the highlight regions. |
| 2482 */ | 2058 */ |
| 2483 AnalysisOptions get options => _options; | 2059 String get file => _file; |
| 2484 | 2060 |
| 2485 /** | 2061 /** |
| 2486 * The options that are to be used to control analysis. | 2062 * The file containing the highlight regions. |
| 2487 */ | 2063 */ |
| 2488 void set options(AnalysisOptions value) { | 2064 void set file(String value) { |
| 2489 assert(value != null); | 2065 assert(value != null); |
| 2490 this._options = value; | 2066 this._file = value; |
| 2491 } | 2067 } |
| 2492 | 2068 |
| 2493 AnalysisUpdateOptionsParams(AnalysisOptions options) { | 2069 /** |
| 2494 this.options = options; | 2070 * The highlight regions contained in the file. Each highlight region |
| 2071 * represents a particular syntactic or semantic meaning associated with some |
| 2072 * range. Note that the highlight regions that are returned can overlap other |
| 2073 * highlight regions if there is more than one meaning associated with a |
| 2074 * particular region. |
| 2075 */ |
| 2076 List<HighlightRegion> get regions => _regions; |
| 2077 |
| 2078 /** |
| 2079 * The highlight regions contained in the file. Each highlight region |
| 2080 * represents a particular syntactic or semantic meaning associated with some |
| 2081 * range. Note that the highlight regions that are returned can overlap other |
| 2082 * highlight regions if there is more than one meaning associated with a |
| 2083 * particular region. |
| 2084 */ |
| 2085 void set regions(List<HighlightRegion> value) { |
| 2086 assert(value != null); |
| 2087 this._regions = value; |
| 2495 } | 2088 } |
| 2496 | 2089 |
| 2497 factory AnalysisUpdateOptionsParams.fromJson( | 2090 AnalysisHighlightsParams(String file, List<HighlightRegion> regions) { |
| 2091 this.file = file; |
| 2092 this.regions = regions; |
| 2093 } |
| 2094 |
| 2095 factory AnalysisHighlightsParams.fromJson( |
| 2498 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 2096 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 2499 if (json == null) { | 2097 if (json == null) { |
| 2500 json = {}; | 2098 json = {}; |
| 2501 } | 2099 } |
| 2502 if (json is Map) { | 2100 if (json is Map) { |
| 2503 AnalysisOptions options; | 2101 String file; |
| 2504 if (json.containsKey("options")) { | 2102 if (json.containsKey("file")) { |
| 2505 options = new AnalysisOptions.fromJson( | 2103 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 2506 jsonDecoder, jsonPath + ".options", json["options"]); | |
| 2507 } else { | 2104 } else { |
| 2508 throw jsonDecoder.missingKey(jsonPath, "options"); | 2105 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 2509 } | 2106 } |
| 2510 return new AnalysisUpdateOptionsParams(options); | 2107 List<HighlightRegion> regions; |
| 2108 if (json.containsKey("regions")) { |
| 2109 regions = jsonDecoder.decodeList( |
| 2110 jsonPath + ".regions", |
| 2111 json["regions"], |
| 2112 (String jsonPath, Object json) => |
| 2113 new HighlightRegion.fromJson(jsonDecoder, jsonPath, json)); |
| 2114 } else { |
| 2115 throw jsonDecoder.mismatch(jsonPath, "regions"); |
| 2116 } |
| 2117 return new AnalysisHighlightsParams(file, regions); |
| 2511 } else { | 2118 } else { |
| 2512 throw jsonDecoder.mismatch( | 2119 throw jsonDecoder.mismatch(jsonPath, "analysis.highlights params", json); |
| 2513 jsonPath, "analysis.updateOptions params", json); | |
| 2514 } | 2120 } |
| 2515 } | 2121 } |
| 2516 | 2122 |
| 2517 factory AnalysisUpdateOptionsParams.fromRequest(Request request) { | 2123 factory AnalysisHighlightsParams.fromNotification(Notification notification) { |
| 2518 return new AnalysisUpdateOptionsParams.fromJson( | 2124 return new AnalysisHighlightsParams.fromJson( |
| 2519 new RequestDecoder(request), "params", request._params); | 2125 new ResponseDecoder(null), "params", notification.params); |
| 2520 } | 2126 } |
| 2521 | 2127 |
| 2128 @override |
| 2522 Map<String, dynamic> toJson() { | 2129 Map<String, dynamic> toJson() { |
| 2523 Map<String, dynamic> result = {}; | 2130 Map<String, dynamic> result = {}; |
| 2524 result["options"] = options.toJson(); | 2131 result["file"] = file; |
| 2132 result["regions"] = |
| 2133 regions.map((HighlightRegion value) => value.toJson()).toList(); |
| 2525 return result; | 2134 return result; |
| 2526 } | 2135 } |
| 2527 | 2136 |
| 2528 Request toRequest(String id) { | 2137 Notification toNotification() { |
| 2529 return new Request(id, "analysis.updateOptions", toJson()); | 2138 return new Notification("analysis.highlights", toJson()); |
| 2530 } | 2139 } |
| 2531 | 2140 |
| 2532 @override | 2141 @override |
| 2533 String toString() => JSON.encode(toJson()); | 2142 String toString() => JSON.encode(toJson()); |
| 2534 | 2143 |
| 2535 @override | 2144 @override |
| 2536 bool operator ==(other) { | 2145 bool operator ==(other) { |
| 2537 if (other is AnalysisUpdateOptionsParams) { | 2146 if (other is AnalysisHighlightsParams) { |
| 2538 return options == other.options; | 2147 return file == other.file && |
| 2148 listEqual(regions, other.regions, |
| 2149 (HighlightRegion a, HighlightRegion b) => a == b); |
| 2539 } | 2150 } |
| 2540 return false; | 2151 return false; |
| 2541 } | 2152 } |
| 2542 | 2153 |
| 2543 @override | 2154 @override |
| 2544 int get hashCode { | 2155 int get hashCode { |
| 2545 int hash = 0; | 2156 int hash = 0; |
| 2546 hash = JenkinsSmiHash.combine(hash, options.hashCode); | 2157 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 2158 hash = JenkinsSmiHash.combine(hash, regions.hashCode); |
| 2547 return JenkinsSmiHash.finish(hash); | 2159 return JenkinsSmiHash.finish(hash); |
| 2548 } | 2160 } |
| 2549 } | 2161 } |
| 2550 | 2162 |
| 2551 /** | 2163 /** |
| 2552 * analysis.updateOptions result | 2164 * analysis.implemented params |
| 2553 * | |
| 2554 * Clients may not extend, implement or mix-in this class. | |
| 2555 */ | |
| 2556 class AnalysisUpdateOptionsResult { | |
| 2557 Response toResponse(String id) { | |
| 2558 return new Response(id, result: null); | |
| 2559 } | |
| 2560 | |
| 2561 @override | |
| 2562 bool operator ==(other) { | |
| 2563 if (other is AnalysisUpdateOptionsResult) { | |
| 2564 return true; | |
| 2565 } | |
| 2566 return false; | |
| 2567 } | |
| 2568 | |
| 2569 @override | |
| 2570 int get hashCode { | |
| 2571 return 179689467; | |
| 2572 } | |
| 2573 } | |
| 2574 | |
| 2575 /** | |
| 2576 * analysis.analyzedFiles params | |
| 2577 * | 2165 * |
| 2578 * { | 2166 * { |
| 2579 * "directories": List<FilePath> | 2167 * "file": FilePath |
| 2168 * "classes": List<ImplementedClass> |
| 2169 * "members": List<ImplementedMember> |
| 2580 * } | 2170 * } |
| 2581 * | 2171 * |
| 2582 * Clients may not extend, implement or mix-in this class. | 2172 * Clients may not extend, implement or mix-in this class. |
| 2583 */ | 2173 */ |
| 2584 class AnalysisAnalyzedFilesParams implements HasToJson { | 2174 class AnalysisImplementedParams implements HasToJson { |
| 2585 List<String> _directories; | 2175 String _file; |
| 2176 |
| 2177 List<ImplementedClass> _classes; |
| 2178 |
| 2179 List<ImplementedMember> _members; |
| 2586 | 2180 |
| 2587 /** | 2181 /** |
| 2588 * A list of the paths of the files that are being analyzed. | 2182 * The file with which the implementations are associated. |
| 2589 */ | 2183 */ |
| 2590 List<String> get directories => _directories; | 2184 String get file => _file; |
| 2591 | 2185 |
| 2592 /** | 2186 /** |
| 2593 * A list of the paths of the files that are being analyzed. | 2187 * The file with which the implementations are associated. |
| 2594 */ | 2188 */ |
| 2595 void set directories(List<String> value) { | 2189 void set file(String value) { |
| 2596 assert(value != null); | 2190 assert(value != null); |
| 2597 this._directories = value; | 2191 this._file = value; |
| 2598 } | 2192 } |
| 2599 | 2193 |
| 2600 AnalysisAnalyzedFilesParams(List<String> directories) { | 2194 /** |
| 2601 this.directories = directories; | 2195 * The classes defined in the file that are implemented or extended. |
| 2196 */ |
| 2197 List<ImplementedClass> get classes => _classes; |
| 2198 |
| 2199 /** |
| 2200 * The classes defined in the file that are implemented or extended. |
| 2201 */ |
| 2202 void set classes(List<ImplementedClass> value) { |
| 2203 assert(value != null); |
| 2204 this._classes = value; |
| 2602 } | 2205 } |
| 2603 | 2206 |
| 2604 factory AnalysisAnalyzedFilesParams.fromJson( | 2207 /** |
| 2208 * The member defined in the file that are implemented or overridden. |
| 2209 */ |
| 2210 List<ImplementedMember> get members => _members; |
| 2211 |
| 2212 /** |
| 2213 * The member defined in the file that are implemented or overridden. |
| 2214 */ |
| 2215 void set members(List<ImplementedMember> value) { |
| 2216 assert(value != null); |
| 2217 this._members = value; |
| 2218 } |
| 2219 |
| 2220 AnalysisImplementedParams(String file, List<ImplementedClass> classes, |
| 2221 List<ImplementedMember> members) { |
| 2222 this.file = file; |
| 2223 this.classes = classes; |
| 2224 this.members = members; |
| 2225 } |
| 2226 |
| 2227 factory AnalysisImplementedParams.fromJson( |
| 2605 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 2228 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 2606 if (json == null) { | 2229 if (json == null) { |
| 2607 json = {}; | 2230 json = {}; |
| 2608 } | 2231 } |
| 2609 if (json is Map) { | 2232 if (json is Map) { |
| 2610 List<String> directories; | 2233 String file; |
| 2611 if (json.containsKey("directories")) { | 2234 if (json.containsKey("file")) { |
| 2612 directories = jsonDecoder.decodeList(jsonPath + ".directories", | 2235 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 2613 json["directories"], jsonDecoder.decodeString); | |
| 2614 } else { | 2236 } else { |
| 2615 throw jsonDecoder.missingKey(jsonPath, "directories"); | 2237 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 2616 } | 2238 } |
| 2617 return new AnalysisAnalyzedFilesParams(directories); | 2239 List<ImplementedClass> classes; |
| 2240 if (json.containsKey("classes")) { |
| 2241 classes = jsonDecoder.decodeList( |
| 2242 jsonPath + ".classes", |
| 2243 json["classes"], |
| 2244 (String jsonPath, Object json) => |
| 2245 new ImplementedClass.fromJson(jsonDecoder, jsonPath, json)); |
| 2246 } else { |
| 2247 throw jsonDecoder.mismatch(jsonPath, "classes"); |
| 2248 } |
| 2249 List<ImplementedMember> members; |
| 2250 if (json.containsKey("members")) { |
| 2251 members = jsonDecoder.decodeList( |
| 2252 jsonPath + ".members", |
| 2253 json["members"], |
| 2254 (String jsonPath, Object json) => |
| 2255 new ImplementedMember.fromJson(jsonDecoder, jsonPath, json)); |
| 2256 } else { |
| 2257 throw jsonDecoder.mismatch(jsonPath, "members"); |
| 2258 } |
| 2259 return new AnalysisImplementedParams(file, classes, members); |
| 2618 } else { | 2260 } else { |
| 2619 throw jsonDecoder.mismatch( | 2261 throw jsonDecoder.mismatch(jsonPath, "analysis.implemented params", json); |
| 2620 jsonPath, "analysis.analyzedFiles params", json); | |
| 2621 } | 2262 } |
| 2622 } | 2263 } |
| 2623 | 2264 |
| 2624 factory AnalysisAnalyzedFilesParams.fromNotification( | 2265 factory AnalysisImplementedParams.fromNotification( |
| 2625 Notification notification) { | 2266 Notification notification) { |
| 2626 return new AnalysisAnalyzedFilesParams.fromJson( | 2267 return new AnalysisImplementedParams.fromJson( |
| 2627 new ResponseDecoder(null), "params", notification._params); | 2268 new ResponseDecoder(null), "params", notification.params); |
| 2628 } | 2269 } |
| 2629 | 2270 |
| 2271 @override |
| 2630 Map<String, dynamic> toJson() { | 2272 Map<String, dynamic> toJson() { |
| 2631 Map<String, dynamic> result = {}; | 2273 Map<String, dynamic> result = {}; |
| 2632 result["directories"] = directories; | 2274 result["file"] = file; |
| 2275 result["classes"] = |
| 2276 classes.map((ImplementedClass value) => value.toJson()).toList(); |
| 2277 result["members"] = |
| 2278 members.map((ImplementedMember value) => value.toJson()).toList(); |
| 2633 return result; | 2279 return result; |
| 2634 } | 2280 } |
| 2635 | 2281 |
| 2636 Notification toNotification() { | 2282 Notification toNotification() { |
| 2637 return new Notification("analysis.analyzedFiles", toJson()); | 2283 return new Notification("analysis.implemented", toJson()); |
| 2638 } | 2284 } |
| 2639 | 2285 |
| 2640 @override | 2286 @override |
| 2641 String toString() => JSON.encode(toJson()); | 2287 String toString() => JSON.encode(toJson()); |
| 2642 | 2288 |
| 2643 @override | 2289 @override |
| 2644 bool operator ==(other) { | 2290 bool operator ==(other) { |
| 2645 if (other is AnalysisAnalyzedFilesParams) { | 2291 if (other is AnalysisImplementedParams) { |
| 2646 return listEqual( | 2292 return file == other.file && |
| 2647 directories, other.directories, (String a, String b) => a == b); | 2293 listEqual(classes, other.classes, |
| 2294 (ImplementedClass a, ImplementedClass b) => a == b) && |
| 2295 listEqual(members, other.members, |
| 2296 (ImplementedMember a, ImplementedMember b) => a == b); |
| 2648 } | 2297 } |
| 2649 return false; | 2298 return false; |
| 2650 } | 2299 } |
| 2651 | 2300 |
| 2652 @override | 2301 @override |
| 2653 int get hashCode { | 2302 int get hashCode { |
| 2654 int hash = 0; | 2303 int hash = 0; |
| 2655 hash = JenkinsSmiHash.combine(hash, directories.hashCode); | 2304 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 2305 hash = JenkinsSmiHash.combine(hash, classes.hashCode); |
| 2306 hash = JenkinsSmiHash.combine(hash, members.hashCode); |
| 2656 return JenkinsSmiHash.finish(hash); | 2307 return JenkinsSmiHash.finish(hash); |
| 2657 } | 2308 } |
| 2658 } | 2309 } |
| 2659 | 2310 |
| 2660 /** | 2311 /** |
| 2661 * analysis.errors params | 2312 * analysis.invalidate params |
| 2662 * | 2313 * |
| 2663 * { | 2314 * { |
| 2664 * "file": FilePath | 2315 * "file": FilePath |
| 2665 * "errors": List<AnalysisError> | 2316 * "offset": int |
| 2317 * "length": int |
| 2318 * "delta": int |
| 2666 * } | 2319 * } |
| 2667 * | 2320 * |
| 2668 * Clients may not extend, implement or mix-in this class. | 2321 * Clients may not extend, implement or mix-in this class. |
| 2669 */ | 2322 */ |
| 2670 class AnalysisErrorsParams implements HasToJson { | 2323 class AnalysisInvalidateParams implements HasToJson { |
| 2671 String _file; | 2324 String _file; |
| 2672 | 2325 |
| 2673 List<AnalysisError> _errors; | 2326 int _offset; |
| 2327 |
| 2328 int _length; |
| 2329 |
| 2330 int _delta; |
| 2674 | 2331 |
| 2675 /** | 2332 /** |
| 2676 * The file containing the errors. | 2333 * The file whose information has been invalidated. |
| 2677 */ | 2334 */ |
| 2678 String get file => _file; | 2335 String get file => _file; |
| 2679 | 2336 |
| 2680 /** | 2337 /** |
| 2681 * The file containing the errors. | 2338 * The file whose information has been invalidated. |
| 2682 */ | 2339 */ |
| 2683 void set file(String value) { | 2340 void set file(String value) { |
| 2684 assert(value != null); | 2341 assert(value != null); |
| 2685 this._file = value; | 2342 this._file = value; |
| 2686 } | 2343 } |
| 2687 | 2344 |
| 2688 /** | 2345 /** |
| 2689 * The errors contained in the file. | 2346 * The offset of the invalidated region. |
| 2690 */ | 2347 */ |
| 2691 List<AnalysisError> get errors => _errors; | 2348 int get offset => _offset; |
| 2692 | 2349 |
| 2693 /** | 2350 /** |
| 2694 * The errors contained in the file. | 2351 * The offset of the invalidated region. |
| 2695 */ | 2352 */ |
| 2696 void set errors(List<AnalysisError> value) { | 2353 void set offset(int value) { |
| 2697 assert(value != null); | 2354 assert(value != null); |
| 2698 this._errors = value; | 2355 this._offset = value; |
| 2699 } | 2356 } |
| 2700 | 2357 |
| 2701 AnalysisErrorsParams(String file, List<AnalysisError> errors) { | 2358 /** |
| 2702 this.file = file; | 2359 * The length of the invalidated region. |
| 2703 this.errors = errors; | 2360 */ |
| 2361 int get length => _length; |
| 2362 |
| 2363 /** |
| 2364 * The length of the invalidated region. |
| 2365 */ |
| 2366 void set length(int value) { |
| 2367 assert(value != null); |
| 2368 this._length = value; |
| 2704 } | 2369 } |
| 2705 | 2370 |
| 2706 factory AnalysisErrorsParams.fromJson( | 2371 /** |
| 2372 * The delta to be applied to the offsets in information that follows the |
| 2373 * invalidated region in order to update it so that it doesn't need to be |
| 2374 * re-requested. |
| 2375 */ |
| 2376 int get delta => _delta; |
| 2377 |
| 2378 /** |
| 2379 * The delta to be applied to the offsets in information that follows the |
| 2380 * invalidated region in order to update it so that it doesn't need to be |
| 2381 * re-requested. |
| 2382 */ |
| 2383 void set delta(int value) { |
| 2384 assert(value != null); |
| 2385 this._delta = value; |
| 2386 } |
| 2387 |
| 2388 AnalysisInvalidateParams(String file, int offset, int length, int delta) { |
| 2389 this.file = file; |
| 2390 this.offset = offset; |
| 2391 this.length = length; |
| 2392 this.delta = delta; |
| 2393 } |
| 2394 |
| 2395 factory AnalysisInvalidateParams.fromJson( |
| 2707 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 2396 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 2708 if (json == null) { | 2397 if (json == null) { |
| 2709 json = {}; | 2398 json = {}; |
| 2710 } | 2399 } |
| 2711 if (json is Map) { | 2400 if (json is Map) { |
| 2712 String file; | 2401 String file; |
| 2713 if (json.containsKey("file")) { | 2402 if (json.containsKey("file")) { |
| 2714 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 2403 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 2715 } else { | 2404 } else { |
| 2716 throw jsonDecoder.missingKey(jsonPath, "file"); | 2405 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 2717 } | 2406 } |
| 2718 List<AnalysisError> errors; | 2407 int offset; |
| 2719 if (json.containsKey("errors")) { | 2408 if (json.containsKey("offset")) { |
| 2720 errors = jsonDecoder.decodeList( | 2409 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 2721 jsonPath + ".errors", | |
| 2722 json["errors"], | |
| 2723 (String jsonPath, Object json) => | |
| 2724 new AnalysisError.fromJson(jsonDecoder, jsonPath, json)); | |
| 2725 } else { | 2410 } else { |
| 2726 throw jsonDecoder.missingKey(jsonPath, "errors"); | 2411 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 2727 } | 2412 } |
| 2728 return new AnalysisErrorsParams(file, errors); | 2413 int length; |
| 2414 if (json.containsKey("length")) { |
| 2415 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 2416 } else { |
| 2417 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 2418 } |
| 2419 int delta; |
| 2420 if (json.containsKey("delta")) { |
| 2421 delta = jsonDecoder.decodeInt(jsonPath + ".delta", json["delta"]); |
| 2422 } else { |
| 2423 throw jsonDecoder.mismatch(jsonPath, "delta"); |
| 2424 } |
| 2425 return new AnalysisInvalidateParams(file, offset, length, delta); |
| 2729 } else { | 2426 } else { |
| 2730 throw jsonDecoder.mismatch(jsonPath, "analysis.errors params", json); | 2427 throw jsonDecoder.mismatch(jsonPath, "analysis.invalidate params", json); |
| 2731 } | 2428 } |
| 2732 } | 2429 } |
| 2733 | 2430 |
| 2734 factory AnalysisErrorsParams.fromNotification(Notification notification) { | 2431 factory AnalysisInvalidateParams.fromNotification(Notification notification) { |
| 2735 return new AnalysisErrorsParams.fromJson( | 2432 return new AnalysisInvalidateParams.fromJson( |
| 2736 new ResponseDecoder(null), "params", notification._params); | 2433 new ResponseDecoder(null), "params", notification.params); |
| 2737 } | 2434 } |
| 2738 | 2435 |
| 2436 @override |
| 2739 Map<String, dynamic> toJson() { | 2437 Map<String, dynamic> toJson() { |
| 2740 Map<String, dynamic> result = {}; | 2438 Map<String, dynamic> result = {}; |
| 2741 result["file"] = file; | 2439 result["file"] = file; |
| 2742 result["errors"] = | 2440 result["offset"] = offset; |
| 2743 errors.map((AnalysisError value) => value.toJson()).toList(); | 2441 result["length"] = length; |
| 2442 result["delta"] = delta; |
| 2744 return result; | 2443 return result; |
| 2745 } | 2444 } |
| 2746 | 2445 |
| 2747 Notification toNotification() { | 2446 Notification toNotification() { |
| 2748 return new Notification("analysis.errors", toJson()); | 2447 return new Notification("analysis.invalidate", toJson()); |
| 2749 } | 2448 } |
| 2750 | 2449 |
| 2751 @override | 2450 @override |
| 2752 String toString() => JSON.encode(toJson()); | 2451 String toString() => JSON.encode(toJson()); |
| 2753 | 2452 |
| 2754 @override | 2453 @override |
| 2755 bool operator ==(other) { | 2454 bool operator ==(other) { |
| 2756 if (other is AnalysisErrorsParams) { | 2455 if (other is AnalysisInvalidateParams) { |
| 2757 return file == other.file && | 2456 return file == other.file && |
| 2758 listEqual(errors, other.errors, | 2457 offset == other.offset && |
| 2759 (AnalysisError a, AnalysisError b) => a == b); | 2458 length == other.length && |
| 2459 delta == other.delta; |
| 2760 } | 2460 } |
| 2761 return false; | 2461 return false; |
| 2762 } | 2462 } |
| 2763 | 2463 |
| 2764 @override | 2464 @override |
| 2765 int get hashCode { | 2465 int get hashCode { |
| 2766 int hash = 0; | 2466 int hash = 0; |
| 2767 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 2467 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 2768 hash = JenkinsSmiHash.combine(hash, errors.hashCode); | 2468 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 2469 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 2470 hash = JenkinsSmiHash.combine(hash, delta.hashCode); |
| 2769 return JenkinsSmiHash.finish(hash); | 2471 return JenkinsSmiHash.finish(hash); |
| 2770 } | 2472 } |
| 2771 } | 2473 } |
| 2772 | 2474 |
| 2773 /** | 2475 /** |
| 2774 * analysis.flushResults params | 2476 * analysis.navigation params |
| 2775 * | 2477 * |
| 2776 * { | 2478 * { |
| 2479 * "file": FilePath |
| 2480 * "regions": List<NavigationRegion> |
| 2481 * "targets": List<NavigationTarget> |
| 2777 * "files": List<FilePath> | 2482 * "files": List<FilePath> |
| 2778 * } | 2483 * } |
| 2779 * | 2484 * |
| 2780 * Clients may not extend, implement or mix-in this class. | 2485 * Clients may not extend, implement or mix-in this class. |
| 2781 */ | 2486 */ |
| 2782 class AnalysisFlushResultsParams implements HasToJson { | 2487 class AnalysisNavigationParams implements HasToJson { |
| 2488 String _file; |
| 2489 |
| 2490 List<NavigationRegion> _regions; |
| 2491 |
| 2492 List<NavigationTarget> _targets; |
| 2493 |
| 2783 List<String> _files; | 2494 List<String> _files; |
| 2784 | 2495 |
| 2785 /** | 2496 /** |
| 2786 * The files that are no longer being analyzed. | 2497 * The file containing the navigation regions. |
| 2787 */ | |
| 2788 List<String> get files => _files; | |
| 2789 | |
| 2790 /** | |
| 2791 * The files that are no longer being analyzed. | |
| 2792 */ | |
| 2793 void set files(List<String> value) { | |
| 2794 assert(value != null); | |
| 2795 this._files = value; | |
| 2796 } | |
| 2797 | |
| 2798 AnalysisFlushResultsParams(List<String> files) { | |
| 2799 this.files = files; | |
| 2800 } | |
| 2801 | |
| 2802 factory AnalysisFlushResultsParams.fromJson( | |
| 2803 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 2804 if (json == null) { | |
| 2805 json = {}; | |
| 2806 } | |
| 2807 if (json is Map) { | |
| 2808 List<String> files; | |
| 2809 if (json.containsKey("files")) { | |
| 2810 files = jsonDecoder.decodeList( | |
| 2811 jsonPath + ".files", json["files"], jsonDecoder.decodeString); | |
| 2812 } else { | |
| 2813 throw jsonDecoder.missingKey(jsonPath, "files"); | |
| 2814 } | |
| 2815 return new AnalysisFlushResultsParams(files); | |
| 2816 } else { | |
| 2817 throw jsonDecoder.mismatch( | |
| 2818 jsonPath, "analysis.flushResults params", json); | |
| 2819 } | |
| 2820 } | |
| 2821 | |
| 2822 factory AnalysisFlushResultsParams.fromNotification( | |
| 2823 Notification notification) { | |
| 2824 return new AnalysisFlushResultsParams.fromJson( | |
| 2825 new ResponseDecoder(null), "params", notification._params); | |
| 2826 } | |
| 2827 | |
| 2828 Map<String, dynamic> toJson() { | |
| 2829 Map<String, dynamic> result = {}; | |
| 2830 result["files"] = files; | |
| 2831 return result; | |
| 2832 } | |
| 2833 | |
| 2834 Notification toNotification() { | |
| 2835 return new Notification("analysis.flushResults", toJson()); | |
| 2836 } | |
| 2837 | |
| 2838 @override | |
| 2839 String toString() => JSON.encode(toJson()); | |
| 2840 | |
| 2841 @override | |
| 2842 bool operator ==(other) { | |
| 2843 if (other is AnalysisFlushResultsParams) { | |
| 2844 return listEqual(files, other.files, (String a, String b) => a == b); | |
| 2845 } | |
| 2846 return false; | |
| 2847 } | |
| 2848 | |
| 2849 @override | |
| 2850 int get hashCode { | |
| 2851 int hash = 0; | |
| 2852 hash = JenkinsSmiHash.combine(hash, files.hashCode); | |
| 2853 return JenkinsSmiHash.finish(hash); | |
| 2854 } | |
| 2855 } | |
| 2856 | |
| 2857 /** | |
| 2858 * analysis.folding params | |
| 2859 * | |
| 2860 * { | |
| 2861 * "file": FilePath | |
| 2862 * "regions": List<FoldingRegion> | |
| 2863 * } | |
| 2864 * | |
| 2865 * Clients may not extend, implement or mix-in this class. | |
| 2866 */ | |
| 2867 class AnalysisFoldingParams implements HasToJson { | |
| 2868 String _file; | |
| 2869 | |
| 2870 List<FoldingRegion> _regions; | |
| 2871 | |
| 2872 /** | |
| 2873 * The file containing the folding regions. | |
| 2874 */ | 2498 */ |
| 2875 String get file => _file; | 2499 String get file => _file; |
| 2876 | 2500 |
| 2877 /** | 2501 /** |
| 2878 * The file containing the folding regions. | 2502 * The file containing the navigation regions. |
| 2879 */ | 2503 */ |
| 2880 void set file(String value) { | 2504 void set file(String value) { |
| 2881 assert(value != null); | 2505 assert(value != null); |
| 2882 this._file = value; | 2506 this._file = value; |
| 2883 } | 2507 } |
| 2884 | 2508 |
| 2885 /** | 2509 /** |
| 2886 * The folding regions contained in the file. | 2510 * The navigation regions contained in the file. The regions are sorted by |
| 2511 * their offsets. Each navigation region represents a list of targets |
| 2512 * associated with some range. The lists will usually contain a single |
| 2513 * target, but can contain more in the case of a part that is included in |
| 2514 * multiple libraries or in Dart code that is compiled against multiple |
| 2515 * versions of a package. Note that the navigation regions that are returned |
| 2516 * do not overlap other navigation regions. |
| 2887 */ | 2517 */ |
| 2888 List<FoldingRegion> get regions => _regions; | 2518 List<NavigationRegion> get regions => _regions; |
| 2889 | 2519 |
| 2890 /** | 2520 /** |
| 2891 * The folding regions contained in the file. | 2521 * The navigation regions contained in the file. The regions are sorted by |
| 2522 * their offsets. Each navigation region represents a list of targets |
| 2523 * associated with some range. The lists will usually contain a single |
| 2524 * target, but can contain more in the case of a part that is included in |
| 2525 * multiple libraries or in Dart code that is compiled against multiple |
| 2526 * versions of a package. Note that the navigation regions that are returned |
| 2527 * do not overlap other navigation regions. |
| 2892 */ | 2528 */ |
| 2893 void set regions(List<FoldingRegion> value) { | 2529 void set regions(List<NavigationRegion> value) { |
| 2894 assert(value != null); | 2530 assert(value != null); |
| 2895 this._regions = value; | 2531 this._regions = value; |
| 2896 } | 2532 } |
| 2897 | 2533 |
| 2898 AnalysisFoldingParams(String file, List<FoldingRegion> regions) { | 2534 /** |
| 2535 * The navigation targets referenced in the file. They are referenced by |
| 2536 * NavigationRegions by their index in this array. |
| 2537 */ |
| 2538 List<NavigationTarget> get targets => _targets; |
| 2539 |
| 2540 /** |
| 2541 * The navigation targets referenced in the file. They are referenced by |
| 2542 * NavigationRegions by their index in this array. |
| 2543 */ |
| 2544 void set targets(List<NavigationTarget> value) { |
| 2545 assert(value != null); |
| 2546 this._targets = value; |
| 2547 } |
| 2548 |
| 2549 /** |
| 2550 * The files containing navigation targets referenced in the file. They are |
| 2551 * referenced by NavigationTargets by their index in this array. |
| 2552 */ |
| 2553 List<String> get files => _files; |
| 2554 |
| 2555 /** |
| 2556 * The files containing navigation targets referenced in the file. They are |
| 2557 * referenced by NavigationTargets by their index in this array. |
| 2558 */ |
| 2559 void set files(List<String> value) { |
| 2560 assert(value != null); |
| 2561 this._files = value; |
| 2562 } |
| 2563 |
| 2564 AnalysisNavigationParams(String file, List<NavigationRegion> regions, |
| 2565 List<NavigationTarget> targets, List<String> files) { |
| 2899 this.file = file; | 2566 this.file = file; |
| 2900 this.regions = regions; | 2567 this.regions = regions; |
| 2568 this.targets = targets; |
| 2569 this.files = files; |
| 2901 } | 2570 } |
| 2902 | 2571 |
| 2903 factory AnalysisFoldingParams.fromJson( | 2572 factory AnalysisNavigationParams.fromJson( |
| 2904 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 2573 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 2905 if (json == null) { | 2574 if (json == null) { |
| 2906 json = {}; | 2575 json = {}; |
| 2907 } | 2576 } |
| 2908 if (json is Map) { | 2577 if (json is Map) { |
| 2909 String file; | 2578 String file; |
| 2910 if (json.containsKey("file")) { | 2579 if (json.containsKey("file")) { |
| 2911 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 2580 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 2912 } else { | 2581 } else { |
| 2913 throw jsonDecoder.missingKey(jsonPath, "file"); | 2582 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 2914 } | 2583 } |
| 2915 List<FoldingRegion> regions; | 2584 List<NavigationRegion> regions; |
| 2916 if (json.containsKey("regions")) { | 2585 if (json.containsKey("regions")) { |
| 2917 regions = jsonDecoder.decodeList( | 2586 regions = jsonDecoder.decodeList( |
| 2918 jsonPath + ".regions", | 2587 jsonPath + ".regions", |
| 2919 json["regions"], | 2588 json["regions"], |
| 2920 (String jsonPath, Object json) => | 2589 (String jsonPath, Object json) => |
| 2921 new FoldingRegion.fromJson(jsonDecoder, jsonPath, json)); | 2590 new NavigationRegion.fromJson(jsonDecoder, jsonPath, json)); |
| 2922 } else { | 2591 } else { |
| 2923 throw jsonDecoder.missingKey(jsonPath, "regions"); | 2592 throw jsonDecoder.mismatch(jsonPath, "regions"); |
| 2924 } | 2593 } |
| 2925 return new AnalysisFoldingParams(file, regions); | 2594 List<NavigationTarget> targets; |
| 2595 if (json.containsKey("targets")) { |
| 2596 targets = jsonDecoder.decodeList( |
| 2597 jsonPath + ".targets", |
| 2598 json["targets"], |
| 2599 (String jsonPath, Object json) => |
| 2600 new NavigationTarget.fromJson(jsonDecoder, jsonPath, json)); |
| 2601 } else { |
| 2602 throw jsonDecoder.mismatch(jsonPath, "targets"); |
| 2603 } |
| 2604 List<String> files; |
| 2605 if (json.containsKey("files")) { |
| 2606 files = jsonDecoder.decodeList( |
| 2607 jsonPath + ".files", json["files"], jsonDecoder.decodeString); |
| 2608 } else { |
| 2609 throw jsonDecoder.mismatch(jsonPath, "files"); |
| 2610 } |
| 2611 return new AnalysisNavigationParams(file, regions, targets, files); |
| 2926 } else { | 2612 } else { |
| 2927 throw jsonDecoder.mismatch(jsonPath, "analysis.folding params", json); | 2613 throw jsonDecoder.mismatch(jsonPath, "analysis.navigation params", json); |
| 2928 } | 2614 } |
| 2929 } | 2615 } |
| 2930 | 2616 |
| 2931 factory AnalysisFoldingParams.fromNotification(Notification notification) { | 2617 factory AnalysisNavigationParams.fromNotification(Notification notification) { |
| 2932 return new AnalysisFoldingParams.fromJson( | 2618 return new AnalysisNavigationParams.fromJson( |
| 2933 new ResponseDecoder(null), "params", notification._params); | 2619 new ResponseDecoder(null), "params", notification.params); |
| 2934 } | 2620 } |
| 2935 | 2621 |
| 2622 @override |
| 2936 Map<String, dynamic> toJson() { | 2623 Map<String, dynamic> toJson() { |
| 2937 Map<String, dynamic> result = {}; | 2624 Map<String, dynamic> result = {}; |
| 2938 result["file"] = file; | 2625 result["file"] = file; |
| 2939 result["regions"] = | 2626 result["regions"] = |
| 2940 regions.map((FoldingRegion value) => value.toJson()).toList(); | 2627 regions.map((NavigationRegion value) => value.toJson()).toList(); |
| 2628 result["targets"] = |
| 2629 targets.map((NavigationTarget value) => value.toJson()).toList(); |
| 2630 result["files"] = files; |
| 2941 return result; | 2631 return result; |
| 2942 } | 2632 } |
| 2943 | 2633 |
| 2944 Notification toNotification() { | 2634 Notification toNotification() { |
| 2945 return new Notification("analysis.folding", toJson()); | 2635 return new Notification("analysis.navigation", toJson()); |
| 2946 } | 2636 } |
| 2947 | 2637 |
| 2948 @override | 2638 @override |
| 2949 String toString() => JSON.encode(toJson()); | 2639 String toString() => JSON.encode(toJson()); |
| 2950 | 2640 |
| 2951 @override | 2641 @override |
| 2952 bool operator ==(other) { | 2642 bool operator ==(other) { |
| 2953 if (other is AnalysisFoldingParams) { | 2643 if (other is AnalysisNavigationParams) { |
| 2954 return file == other.file && | 2644 return file == other.file && |
| 2955 listEqual(regions, other.regions, | 2645 listEqual(regions, other.regions, |
| 2956 (FoldingRegion a, FoldingRegion b) => a == b); | 2646 (NavigationRegion a, NavigationRegion b) => a == b) && |
| 2647 listEqual(targets, other.targets, |
| 2648 (NavigationTarget a, NavigationTarget b) => a == b) && |
| 2649 listEqual(files, other.files, (String a, String b) => a == b); |
| 2957 } | 2650 } |
| 2958 return false; | 2651 return false; |
| 2959 } | 2652 } |
| 2960 | 2653 |
| 2961 @override | 2654 @override |
| 2962 int get hashCode { | 2655 int get hashCode { |
| 2963 int hash = 0; | 2656 int hash = 0; |
| 2964 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 2657 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 2965 hash = JenkinsSmiHash.combine(hash, regions.hashCode); | 2658 hash = JenkinsSmiHash.combine(hash, regions.hashCode); |
| 2659 hash = JenkinsSmiHash.combine(hash, targets.hashCode); |
| 2660 hash = JenkinsSmiHash.combine(hash, files.hashCode); |
| 2966 return JenkinsSmiHash.finish(hash); | 2661 return JenkinsSmiHash.finish(hash); |
| 2967 } | 2662 } |
| 2968 } | 2663 } |
| 2969 | 2664 |
| 2970 /** | 2665 /** |
| 2971 * analysis.highlights params | 2666 * analysis.occurrences params |
| 2972 * | 2667 * |
| 2973 * { | 2668 * { |
| 2974 * "file": FilePath | 2669 * "file": FilePath |
| 2975 * "regions": List<HighlightRegion> | 2670 * "occurrences": List<Occurrences> |
| 2976 * } | 2671 * } |
| 2977 * | 2672 * |
| 2978 * Clients may not extend, implement or mix-in this class. | 2673 * Clients may not extend, implement or mix-in this class. |
| 2979 */ | 2674 */ |
| 2980 class AnalysisHighlightsParams implements HasToJson { | 2675 class AnalysisOccurrencesParams implements HasToJson { |
| 2981 String _file; | 2676 String _file; |
| 2982 | 2677 |
| 2983 List<HighlightRegion> _regions; | 2678 List<Occurrences> _occurrences; |
| 2984 | 2679 |
| 2985 /** | 2680 /** |
| 2986 * The file containing the highlight regions. | 2681 * The file in which the references occur. |
| 2987 */ | 2682 */ |
| 2988 String get file => _file; | 2683 String get file => _file; |
| 2989 | 2684 |
| 2990 /** | 2685 /** |
| 2991 * The file containing the highlight regions. | 2686 * The file in which the references occur. |
| 2992 */ | 2687 */ |
| 2993 void set file(String value) { | 2688 void set file(String value) { |
| 2994 assert(value != null); | 2689 assert(value != null); |
| 2995 this._file = value; | 2690 this._file = value; |
| 2996 } | 2691 } |
| 2997 | 2692 |
| 2998 /** | 2693 /** |
| 2999 * The highlight regions contained in the file. Each highlight region | 2694 * The occurrences of references to elements within the file. |
| 3000 * represents a particular syntactic or semantic meaning associated with some | |
| 3001 * range. Note that the highlight regions that are returned can overlap other | |
| 3002 * highlight regions if there is more than one meaning associated with a | |
| 3003 * particular region. | |
| 3004 */ | 2695 */ |
| 3005 List<HighlightRegion> get regions => _regions; | 2696 List<Occurrences> get occurrences => _occurrences; |
| 3006 | 2697 |
| 3007 /** | 2698 /** |
| 3008 * The highlight regions contained in the file. Each highlight region | 2699 * The occurrences of references to elements within the file. |
| 3009 * represents a particular syntactic or semantic meaning associated with some | |
| 3010 * range. Note that the highlight regions that are returned can overlap other | |
| 3011 * highlight regions if there is more than one meaning associated with a | |
| 3012 * particular region. | |
| 3013 */ | 2700 */ |
| 3014 void set regions(List<HighlightRegion> value) { | 2701 void set occurrences(List<Occurrences> value) { |
| 3015 assert(value != null); | 2702 assert(value != null); |
| 3016 this._regions = value; | 2703 this._occurrences = value; |
| 3017 } | 2704 } |
| 3018 | 2705 |
| 3019 AnalysisHighlightsParams(String file, List<HighlightRegion> regions) { | 2706 AnalysisOccurrencesParams(String file, List<Occurrences> occurrences) { |
| 3020 this.file = file; | 2707 this.file = file; |
| 3021 this.regions = regions; | 2708 this.occurrences = occurrences; |
| 3022 } | 2709 } |
| 3023 | 2710 |
| 3024 factory AnalysisHighlightsParams.fromJson( | 2711 factory AnalysisOccurrencesParams.fromJson( |
| 3025 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 2712 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 3026 if (json == null) { | 2713 if (json == null) { |
| 3027 json = {}; | 2714 json = {}; |
| 3028 } | 2715 } |
| 3029 if (json is Map) { | 2716 if (json is Map) { |
| 3030 String file; | 2717 String file; |
| 3031 if (json.containsKey("file")) { | 2718 if (json.containsKey("file")) { |
| 3032 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 2719 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 3033 } else { | 2720 } else { |
| 3034 throw jsonDecoder.missingKey(jsonPath, "file"); | 2721 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 3035 } | 2722 } |
| 3036 List<HighlightRegion> regions; | 2723 List<Occurrences> occurrences; |
| 3037 if (json.containsKey("regions")) { | 2724 if (json.containsKey("occurrences")) { |
| 3038 regions = jsonDecoder.decodeList( | 2725 occurrences = jsonDecoder.decodeList( |
| 3039 jsonPath + ".regions", | 2726 jsonPath + ".occurrences", |
| 3040 json["regions"], | 2727 json["occurrences"], |
| 3041 (String jsonPath, Object json) => | 2728 (String jsonPath, Object json) => |
| 3042 new HighlightRegion.fromJson(jsonDecoder, jsonPath, json)); | 2729 new Occurrences.fromJson(jsonDecoder, jsonPath, json)); |
| 3043 } else { | 2730 } else { |
| 3044 throw jsonDecoder.missingKey(jsonPath, "regions"); | 2731 throw jsonDecoder.mismatch(jsonPath, "occurrences"); |
| 3045 } | 2732 } |
| 3046 return new AnalysisHighlightsParams(file, regions); | 2733 return new AnalysisOccurrencesParams(file, occurrences); |
| 3047 } else { | 2734 } else { |
| 3048 throw jsonDecoder.mismatch(jsonPath, "analysis.highlights params", json); | 2735 throw jsonDecoder.mismatch(jsonPath, "analysis.occurrences params", json); |
| 3049 } | 2736 } |
| 3050 } | 2737 } |
| 3051 | 2738 |
| 3052 factory AnalysisHighlightsParams.fromNotification(Notification notification) { | 2739 factory AnalysisOccurrencesParams.fromNotification( |
| 3053 return new AnalysisHighlightsParams.fromJson( | 2740 Notification notification) { |
| 3054 new ResponseDecoder(null), "params", notification._params); | 2741 return new AnalysisOccurrencesParams.fromJson( |
| 2742 new ResponseDecoder(null), "params", notification.params); |
| 3055 } | 2743 } |
| 3056 | 2744 |
| 2745 @override |
| 3057 Map<String, dynamic> toJson() { | 2746 Map<String, dynamic> toJson() { |
| 3058 Map<String, dynamic> result = {}; | 2747 Map<String, dynamic> result = {}; |
| 3059 result["file"] = file; | 2748 result["file"] = file; |
| 3060 result["regions"] = | 2749 result["occurrences"] = |
| 3061 regions.map((HighlightRegion value) => value.toJson()).toList(); | 2750 occurrences.map((Occurrences value) => value.toJson()).toList(); |
| 3062 return result; | 2751 return result; |
| 3063 } | 2752 } |
| 3064 | 2753 |
| 3065 Notification toNotification() { | 2754 Notification toNotification() { |
| 3066 return new Notification("analysis.highlights", toJson()); | 2755 return new Notification("analysis.occurrences", toJson()); |
| 3067 } | 2756 } |
| 3068 | 2757 |
| 3069 @override | 2758 @override |
| 3070 String toString() => JSON.encode(toJson()); | 2759 String toString() => JSON.encode(toJson()); |
| 3071 | 2760 |
| 3072 @override | 2761 @override |
| 3073 bool operator ==(other) { | 2762 bool operator ==(other) { |
| 3074 if (other is AnalysisHighlightsParams) { | 2763 if (other is AnalysisOccurrencesParams) { |
| 3075 return file == other.file && | 2764 return file == other.file && |
| 3076 listEqual(regions, other.regions, | 2765 listEqual(occurrences, other.occurrences, |
| 3077 (HighlightRegion a, HighlightRegion b) => a == b); | 2766 (Occurrences a, Occurrences b) => a == b); |
| 3078 } | 2767 } |
| 3079 return false; | 2768 return false; |
| 3080 } | 2769 } |
| 3081 | 2770 |
| 3082 @override | 2771 @override |
| 3083 int get hashCode { | 2772 int get hashCode { |
| 3084 int hash = 0; | 2773 int hash = 0; |
| 3085 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 2774 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 3086 hash = JenkinsSmiHash.combine(hash, regions.hashCode); | 2775 hash = JenkinsSmiHash.combine(hash, occurrences.hashCode); |
| 3087 return JenkinsSmiHash.finish(hash); | 2776 return JenkinsSmiHash.finish(hash); |
| 3088 } | 2777 } |
| 3089 } | 2778 } |
| 3090 | 2779 |
| 3091 /** | 2780 /** |
| 3092 * analysis.implemented params | 2781 * AnalysisOptions |
| 3093 * | 2782 * |
| 3094 * { | 2783 * { |
| 3095 * "file": FilePath | 2784 * "enableAsync": optional bool |
| 3096 * "classes": List<ImplementedClass> | 2785 * "enableDeferredLoading": optional bool |
| 3097 * "members": List<ImplementedMember> | 2786 * "enableEnums": optional bool |
| 2787 * "enableNullAwareOperators": optional bool |
| 2788 * "enableSuperMixins": optional bool |
| 2789 * "generateDart2jsHints": optional bool |
| 2790 * "generateHints": optional bool |
| 2791 * "generateLints": optional bool |
| 3098 * } | 2792 * } |
| 3099 * | 2793 * |
| 3100 * Clients may not extend, implement or mix-in this class. | 2794 * Clients may not extend, implement or mix-in this class. |
| 3101 */ | 2795 */ |
| 3102 class AnalysisImplementedParams implements HasToJson { | 2796 class AnalysisOptions implements HasToJson { |
| 3103 String _file; | 2797 bool _enableAsync; |
| 3104 | 2798 |
| 3105 List<ImplementedClass> _classes; | 2799 bool _enableDeferredLoading; |
| 3106 | 2800 |
| 3107 List<ImplementedMember> _members; | 2801 bool _enableEnums; |
| 3108 | 2802 |
| 3109 /** | 2803 bool _enableNullAwareOperators; |
| 3110 * The file with which the implementations are associated. | 2804 |
| 3111 */ | 2805 bool _enableSuperMixins; |
| 3112 String get file => _file; | 2806 |
| 3113 | 2807 bool _generateDart2jsHints; |
| 3114 /** | 2808 |
| 3115 * The file with which the implementations are associated. | 2809 bool _generateHints; |
| 3116 */ | 2810 |
| 3117 void set file(String value) { | 2811 bool _generateLints; |
| 3118 assert(value != null); | 2812 |
| 3119 this._file = value; | 2813 /** |
| 3120 } | 2814 * Deprecated: this feature is always enabled. |
| 3121 | 2815 * |
| 3122 /** | 2816 * True if the client wants to enable support for the proposed async feature. |
| 3123 * The classes defined in the file that are implemented or extended. | 2817 */ |
| 3124 */ | 2818 bool get enableAsync => _enableAsync; |
| 3125 List<ImplementedClass> get classes => _classes; | 2819 |
| 3126 | 2820 /** |
| 3127 /** | 2821 * Deprecated: this feature is always enabled. |
| 3128 * The classes defined in the file that are implemented or extended. | 2822 * |
| 3129 */ | 2823 * True if the client wants to enable support for the proposed async feature. |
| 3130 void set classes(List<ImplementedClass> value) { | 2824 */ |
| 3131 assert(value != null); | 2825 void set enableAsync(bool value) { |
| 3132 this._classes = value; | 2826 this._enableAsync = value; |
| 3133 } | 2827 } |
| 3134 | 2828 |
| 3135 /** | 2829 /** |
| 3136 * The member defined in the file that are implemented or overridden. | 2830 * Deprecated: this feature is always enabled. |
| 3137 */ | 2831 * |
| 3138 List<ImplementedMember> get members => _members; | 2832 * True if the client wants to enable support for the proposed deferred |
| 3139 | 2833 * loading feature. |
| 3140 /** | 2834 */ |
| 3141 * The member defined in the file that are implemented or overridden. | 2835 bool get enableDeferredLoading => _enableDeferredLoading; |
| 3142 */ | 2836 |
| 3143 void set members(List<ImplementedMember> value) { | 2837 /** |
| 3144 assert(value != null); | 2838 * Deprecated: this feature is always enabled. |
| 3145 this._members = value; | 2839 * |
| 3146 } | 2840 * True if the client wants to enable support for the proposed deferred |
| 3147 | 2841 * loading feature. |
| 3148 AnalysisImplementedParams(String file, List<ImplementedClass> classes, | 2842 */ |
| 3149 List<ImplementedMember> members) { | 2843 void set enableDeferredLoading(bool value) { |
| 3150 this.file = file; | 2844 this._enableDeferredLoading = value; |
| 3151 this.classes = classes; | 2845 } |
| 3152 this.members = members; | 2846 |
| 3153 } | 2847 /** |
| 3154 | 2848 * Deprecated: this feature is always enabled. |
| 3155 factory AnalysisImplementedParams.fromJson( | 2849 * |
| 2850 * True if the client wants to enable support for the proposed enum feature. |
| 2851 */ |
| 2852 bool get enableEnums => _enableEnums; |
| 2853 |
| 2854 /** |
| 2855 * Deprecated: this feature is always enabled. |
| 2856 * |
| 2857 * True if the client wants to enable support for the proposed enum feature. |
| 2858 */ |
| 2859 void set enableEnums(bool value) { |
| 2860 this._enableEnums = value; |
| 2861 } |
| 2862 |
| 2863 /** |
| 2864 * Deprecated: this feature is always enabled. |
| 2865 * |
| 2866 * True if the client wants to enable support for the proposed "null aware |
| 2867 * operators" feature. |
| 2868 */ |
| 2869 bool get enableNullAwareOperators => _enableNullAwareOperators; |
| 2870 |
| 2871 /** |
| 2872 * Deprecated: this feature is always enabled. |
| 2873 * |
| 2874 * True if the client wants to enable support for the proposed "null aware |
| 2875 * operators" feature. |
| 2876 */ |
| 2877 void set enableNullAwareOperators(bool value) { |
| 2878 this._enableNullAwareOperators = value; |
| 2879 } |
| 2880 |
| 2881 /** |
| 2882 * True if the client wants to enable support for the proposed "less |
| 2883 * restricted mixins" proposal (DEP 34). |
| 2884 */ |
| 2885 bool get enableSuperMixins => _enableSuperMixins; |
| 2886 |
| 2887 /** |
| 2888 * True if the client wants to enable support for the proposed "less |
| 2889 * restricted mixins" proposal (DEP 34). |
| 2890 */ |
| 2891 void set enableSuperMixins(bool value) { |
| 2892 this._enableSuperMixins = value; |
| 2893 } |
| 2894 |
| 2895 /** |
| 2896 * True if hints that are specific to dart2js should be generated. This |
| 2897 * option is ignored if generateHints is false. |
| 2898 */ |
| 2899 bool get generateDart2jsHints => _generateDart2jsHints; |
| 2900 |
| 2901 /** |
| 2902 * True if hints that are specific to dart2js should be generated. This |
| 2903 * option is ignored if generateHints is false. |
| 2904 */ |
| 2905 void set generateDart2jsHints(bool value) { |
| 2906 this._generateDart2jsHints = value; |
| 2907 } |
| 2908 |
| 2909 /** |
| 2910 * True if hints should be generated as part of generating errors and |
| 2911 * warnings. |
| 2912 */ |
| 2913 bool get generateHints => _generateHints; |
| 2914 |
| 2915 /** |
| 2916 * True if hints should be generated as part of generating errors and |
| 2917 * warnings. |
| 2918 */ |
| 2919 void set generateHints(bool value) { |
| 2920 this._generateHints = value; |
| 2921 } |
| 2922 |
| 2923 /** |
| 2924 * True if lints should be generated as part of generating errors and |
| 2925 * warnings. |
| 2926 */ |
| 2927 bool get generateLints => _generateLints; |
| 2928 |
| 2929 /** |
| 2930 * True if lints should be generated as part of generating errors and |
| 2931 * warnings. |
| 2932 */ |
| 2933 void set generateLints(bool value) { |
| 2934 this._generateLints = value; |
| 2935 } |
| 2936 |
| 2937 AnalysisOptions( |
| 2938 {bool enableAsync, |
| 2939 bool enableDeferredLoading, |
| 2940 bool enableEnums, |
| 2941 bool enableNullAwareOperators, |
| 2942 bool enableSuperMixins, |
| 2943 bool generateDart2jsHints, |
| 2944 bool generateHints, |
| 2945 bool generateLints}) { |
| 2946 this.enableAsync = enableAsync; |
| 2947 this.enableDeferredLoading = enableDeferredLoading; |
| 2948 this.enableEnums = enableEnums; |
| 2949 this.enableNullAwareOperators = enableNullAwareOperators; |
| 2950 this.enableSuperMixins = enableSuperMixins; |
| 2951 this.generateDart2jsHints = generateDart2jsHints; |
| 2952 this.generateHints = generateHints; |
| 2953 this.generateLints = generateLints; |
| 2954 } |
| 2955 |
| 2956 factory AnalysisOptions.fromJson( |
| 3156 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 2957 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 3157 if (json == null) { | 2958 if (json == null) { |
| 3158 json = {}; | 2959 json = {}; |
| 3159 } | 2960 } |
| 3160 if (json is Map) { | 2961 if (json is Map) { |
| 3161 String file; | 2962 bool enableAsync; |
| 3162 if (json.containsKey("file")) { | 2963 if (json.containsKey("enableAsync")) { |
| 3163 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 2964 enableAsync = jsonDecoder.decodeBool( |
| 3164 } else { | 2965 jsonPath + ".enableAsync", json["enableAsync"]); |
| 3165 throw jsonDecoder.missingKey(jsonPath, "file"); | 2966 } |
| 3166 } | 2967 bool enableDeferredLoading; |
| 3167 List<ImplementedClass> classes; | 2968 if (json.containsKey("enableDeferredLoading")) { |
| 3168 if (json.containsKey("classes")) { | 2969 enableDeferredLoading = jsonDecoder.decodeBool( |
| 3169 classes = jsonDecoder.decodeList( | 2970 jsonPath + ".enableDeferredLoading", json["enableDeferredLoading"]); |
| 3170 jsonPath + ".classes", | 2971 } |
| 3171 json["classes"], | 2972 bool enableEnums; |
| 3172 (String jsonPath, Object json) => | 2973 if (json.containsKey("enableEnums")) { |
| 3173 new ImplementedClass.fromJson(jsonDecoder, jsonPath, json)); | 2974 enableEnums = jsonDecoder.decodeBool( |
| 3174 } else { | 2975 jsonPath + ".enableEnums", json["enableEnums"]); |
| 3175 throw jsonDecoder.missingKey(jsonPath, "classes"); | 2976 } |
| 3176 } | 2977 bool enableNullAwareOperators; |
| 3177 List<ImplementedMember> members; | 2978 if (json.containsKey("enableNullAwareOperators")) { |
| 3178 if (json.containsKey("members")) { | 2979 enableNullAwareOperators = jsonDecoder.decodeBool( |
| 3179 members = jsonDecoder.decodeList( | 2980 jsonPath + ".enableNullAwareOperators", |
| 3180 jsonPath + ".members", | 2981 json["enableNullAwareOperators"]); |
| 3181 json["members"], | 2982 } |
| 3182 (String jsonPath, Object json) => | 2983 bool enableSuperMixins; |
| 3183 new ImplementedMember.fromJson(jsonDecoder, jsonPath, json)); | 2984 if (json.containsKey("enableSuperMixins")) { |
| 3184 } else { | 2985 enableSuperMixins = jsonDecoder.decodeBool( |
| 3185 throw jsonDecoder.missingKey(jsonPath, "members"); | 2986 jsonPath + ".enableSuperMixins", json["enableSuperMixins"]); |
| 3186 } | 2987 } |
| 3187 return new AnalysisImplementedParams(file, classes, members); | 2988 bool generateDart2jsHints; |
| 2989 if (json.containsKey("generateDart2jsHints")) { |
| 2990 generateDart2jsHints = jsonDecoder.decodeBool( |
| 2991 jsonPath + ".generateDart2jsHints", json["generateDart2jsHints"]); |
| 2992 } |
| 2993 bool generateHints; |
| 2994 if (json.containsKey("generateHints")) { |
| 2995 generateHints = jsonDecoder.decodeBool( |
| 2996 jsonPath + ".generateHints", json["generateHints"]); |
| 2997 } |
| 2998 bool generateLints; |
| 2999 if (json.containsKey("generateLints")) { |
| 3000 generateLints = jsonDecoder.decodeBool( |
| 3001 jsonPath + ".generateLints", json["generateLints"]); |
| 3002 } |
| 3003 return new AnalysisOptions( |
| 3004 enableAsync: enableAsync, |
| 3005 enableDeferredLoading: enableDeferredLoading, |
| 3006 enableEnums: enableEnums, |
| 3007 enableNullAwareOperators: enableNullAwareOperators, |
| 3008 enableSuperMixins: enableSuperMixins, |
| 3009 generateDart2jsHints: generateDart2jsHints, |
| 3010 generateHints: generateHints, |
| 3011 generateLints: generateLints); |
| 3188 } else { | 3012 } else { |
| 3189 throw jsonDecoder.mismatch(jsonPath, "analysis.implemented params", json); | 3013 throw jsonDecoder.mismatch(jsonPath, "AnalysisOptions", json); |
| 3190 } | 3014 } |
| 3191 } | 3015 } |
| 3192 | 3016 |
| 3193 factory AnalysisImplementedParams.fromNotification( | 3017 @override |
| 3194 Notification notification) { | |
| 3195 return new AnalysisImplementedParams.fromJson( | |
| 3196 new ResponseDecoder(null), "params", notification._params); | |
| 3197 } | |
| 3198 | |
| 3199 Map<String, dynamic> toJson() { | 3018 Map<String, dynamic> toJson() { |
| 3200 Map<String, dynamic> result = {}; | 3019 Map<String, dynamic> result = {}; |
| 3201 result["file"] = file; | 3020 if (enableAsync != null) { |
| 3202 result["classes"] = | 3021 result["enableAsync"] = enableAsync; |
| 3203 classes.map((ImplementedClass value) => value.toJson()).toList(); | 3022 } |
| 3204 result["members"] = | 3023 if (enableDeferredLoading != null) { |
| 3205 members.map((ImplementedMember value) => value.toJson()).toList(); | 3024 result["enableDeferredLoading"] = enableDeferredLoading; |
| 3025 } |
| 3026 if (enableEnums != null) { |
| 3027 result["enableEnums"] = enableEnums; |
| 3028 } |
| 3029 if (enableNullAwareOperators != null) { |
| 3030 result["enableNullAwareOperators"] = enableNullAwareOperators; |
| 3031 } |
| 3032 if (enableSuperMixins != null) { |
| 3033 result["enableSuperMixins"] = enableSuperMixins; |
| 3034 } |
| 3035 if (generateDart2jsHints != null) { |
| 3036 result["generateDart2jsHints"] = generateDart2jsHints; |
| 3037 } |
| 3038 if (generateHints != null) { |
| 3039 result["generateHints"] = generateHints; |
| 3040 } |
| 3041 if (generateLints != null) { |
| 3042 result["generateLints"] = generateLints; |
| 3043 } |
| 3206 return result; | 3044 return result; |
| 3207 } | 3045 } |
| 3208 | 3046 |
| 3209 Notification toNotification() { | |
| 3210 return new Notification("analysis.implemented", toJson()); | |
| 3211 } | |
| 3212 | |
| 3213 @override | 3047 @override |
| 3214 String toString() => JSON.encode(toJson()); | 3048 String toString() => JSON.encode(toJson()); |
| 3215 | 3049 |
| 3216 @override | 3050 @override |
| 3217 bool operator ==(other) { | 3051 bool operator ==(other) { |
| 3218 if (other is AnalysisImplementedParams) { | 3052 if (other is AnalysisOptions) { |
| 3219 return file == other.file && | 3053 return enableAsync == other.enableAsync && |
| 3220 listEqual(classes, other.classes, | 3054 enableDeferredLoading == other.enableDeferredLoading && |
| 3221 (ImplementedClass a, ImplementedClass b) => a == b) && | 3055 enableEnums == other.enableEnums && |
| 3222 listEqual(members, other.members, | 3056 enableNullAwareOperators == other.enableNullAwareOperators && |
| 3223 (ImplementedMember a, ImplementedMember b) => a == b); | 3057 enableSuperMixins == other.enableSuperMixins && |
| 3058 generateDart2jsHints == other.generateDart2jsHints && |
| 3059 generateHints == other.generateHints && |
| 3060 generateLints == other.generateLints; |
| 3224 } | 3061 } |
| 3225 return false; | 3062 return false; |
| 3226 } | 3063 } |
| 3227 | |
| 3228 @override | |
| 3229 int get hashCode { | |
| 3230 int hash = 0; | |
| 3231 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
| 3232 hash = JenkinsSmiHash.combine(hash, classes.hashCode); | |
| 3233 hash = JenkinsSmiHash.combine(hash, members.hashCode); | |
| 3234 return JenkinsSmiHash.finish(hash); | |
| 3235 } | |
| 3236 } | |
| 3237 | |
| 3238 /** | |
| 3239 * analysis.invalidate params | |
| 3240 * | |
| 3241 * { | |
| 3242 * "file": FilePath | |
| 3243 * "offset": int | |
| 3244 * "length": int | |
| 3245 * "delta": int | |
| 3246 * } | |
| 3247 * | |
| 3248 * Clients may not extend, implement or mix-in this class. | |
| 3249 */ | |
| 3250 class AnalysisInvalidateParams implements HasToJson { | |
| 3251 String _file; | |
| 3252 | |
| 3253 int _offset; | |
| 3254 | |
| 3255 int _length; | |
| 3256 | |
| 3257 int _delta; | |
| 3258 | |
| 3259 /** | |
| 3260 * The file whose information has been invalidated. | |
| 3261 */ | |
| 3262 String get file => _file; | |
| 3263 | |
| 3264 /** | |
| 3265 * The file whose information has been invalidated. | |
| 3266 */ | |
| 3267 void set file(String value) { | |
| 3268 assert(value != null); | |
| 3269 this._file = value; | |
| 3270 } | |
| 3271 | |
| 3272 /** | |
| 3273 * The offset of the invalidated region. | |
| 3274 */ | |
| 3275 int get offset => _offset; | |
| 3276 | |
| 3277 /** | |
| 3278 * The offset of the invalidated region. | |
| 3279 */ | |
| 3280 void set offset(int value) { | |
| 3281 assert(value != null); | |
| 3282 this._offset = value; | |
| 3283 } | |
| 3284 | |
| 3285 /** | |
| 3286 * The length of the invalidated region. | |
| 3287 */ | |
| 3288 int get length => _length; | |
| 3289 | |
| 3290 /** | |
| 3291 * The length of the invalidated region. | |
| 3292 */ | |
| 3293 void set length(int value) { | |
| 3294 assert(value != null); | |
| 3295 this._length = value; | |
| 3296 } | |
| 3297 | |
| 3298 /** | |
| 3299 * The delta to be applied to the offsets in information that follows the | |
| 3300 * invalidated region in order to update it so that it doesn't need to be | |
| 3301 * re-requested. | |
| 3302 */ | |
| 3303 int get delta => _delta; | |
| 3304 | |
| 3305 /** | |
| 3306 * The delta to be applied to the offsets in information that follows the | |
| 3307 * invalidated region in order to update it so that it doesn't need to be | |
| 3308 * re-requested. | |
| 3309 */ | |
| 3310 void set delta(int value) { | |
| 3311 assert(value != null); | |
| 3312 this._delta = value; | |
| 3313 } | |
| 3314 | |
| 3315 AnalysisInvalidateParams(String file, int offset, int length, int delta) { | |
| 3316 this.file = file; | |
| 3317 this.offset = offset; | |
| 3318 this.length = length; | |
| 3319 this.delta = delta; | |
| 3320 } | |
| 3321 | |
| 3322 factory AnalysisInvalidateParams.fromJson( | |
| 3323 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 3324 if (json == null) { | |
| 3325 json = {}; | |
| 3326 } | |
| 3327 if (json is Map) { | |
| 3328 String file; | |
| 3329 if (json.containsKey("file")) { | |
| 3330 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
| 3331 } else { | |
| 3332 throw jsonDecoder.missingKey(jsonPath, "file"); | |
| 3333 } | |
| 3334 int offset; | |
| 3335 if (json.containsKey("offset")) { | |
| 3336 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
| 3337 } else { | |
| 3338 throw jsonDecoder.missingKey(jsonPath, "offset"); | |
| 3339 } | |
| 3340 int length; | |
| 3341 if (json.containsKey("length")) { | |
| 3342 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
| 3343 } else { | |
| 3344 throw jsonDecoder.missingKey(jsonPath, "length"); | |
| 3345 } | |
| 3346 int delta; | |
| 3347 if (json.containsKey("delta")) { | |
| 3348 delta = jsonDecoder.decodeInt(jsonPath + ".delta", json["delta"]); | |
| 3349 } else { | |
| 3350 throw jsonDecoder.missingKey(jsonPath, "delta"); | |
| 3351 } | |
| 3352 return new AnalysisInvalidateParams(file, offset, length, delta); | |
| 3353 } else { | |
| 3354 throw jsonDecoder.mismatch(jsonPath, "analysis.invalidate params", json); | |
| 3355 } | |
| 3356 } | |
| 3357 | |
| 3358 factory AnalysisInvalidateParams.fromNotification(Notification notification) { | |
| 3359 return new AnalysisInvalidateParams.fromJson( | |
| 3360 new ResponseDecoder(null), "params", notification._params); | |
| 3361 } | |
| 3362 | |
| 3363 Map<String, dynamic> toJson() { | |
| 3364 Map<String, dynamic> result = {}; | |
| 3365 result["file"] = file; | |
| 3366 result["offset"] = offset; | |
| 3367 result["length"] = length; | |
| 3368 result["delta"] = delta; | |
| 3369 return result; | |
| 3370 } | |
| 3371 | |
| 3372 Notification toNotification() { | |
| 3373 return new Notification("analysis.invalidate", toJson()); | |
| 3374 } | |
| 3375 | |
| 3376 @override | |
| 3377 String toString() => JSON.encode(toJson()); | |
| 3378 | |
| 3379 @override | |
| 3380 bool operator ==(other) { | |
| 3381 if (other is AnalysisInvalidateParams) { | |
| 3382 return file == other.file && | |
| 3383 offset == other.offset && | |
| 3384 length == other.length && | |
| 3385 delta == other.delta; | |
| 3386 } | |
| 3387 return false; | |
| 3388 } | |
| 3389 | 3064 |
| 3390 @override | 3065 @override |
| 3391 int get hashCode { | 3066 int get hashCode { |
| 3392 int hash = 0; | 3067 int hash = 0; |
| 3393 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 3068 hash = JenkinsSmiHash.combine(hash, enableAsync.hashCode); |
| 3394 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 3069 hash = JenkinsSmiHash.combine(hash, enableDeferredLoading.hashCode); |
| 3395 hash = JenkinsSmiHash.combine(hash, length.hashCode); | 3070 hash = JenkinsSmiHash.combine(hash, enableEnums.hashCode); |
| 3396 hash = JenkinsSmiHash.combine(hash, delta.hashCode); | 3071 hash = JenkinsSmiHash.combine(hash, enableNullAwareOperators.hashCode); |
| 3072 hash = JenkinsSmiHash.combine(hash, enableSuperMixins.hashCode); |
| 3073 hash = JenkinsSmiHash.combine(hash, generateDart2jsHints.hashCode); |
| 3074 hash = JenkinsSmiHash.combine(hash, generateHints.hashCode); |
| 3075 hash = JenkinsSmiHash.combine(hash, generateLints.hashCode); |
| 3397 return JenkinsSmiHash.finish(hash); | 3076 return JenkinsSmiHash.finish(hash); |
| 3398 } | 3077 } |
| 3399 } | 3078 } |
| 3400 | 3079 |
| 3401 /** | 3080 /** |
| 3402 * analysis.navigation params | 3081 * analysis.outline params |
| 3403 * | 3082 * |
| 3404 * { | 3083 * { |
| 3405 * "file": FilePath | 3084 * "file": FilePath |
| 3406 * "regions": List<NavigationRegion> | 3085 * "kind": FileKind |
| 3407 * "targets": List<NavigationTarget> | 3086 * "libraryName": optional String |
| 3408 * "files": List<FilePath> | 3087 * "outline": Outline |
| 3409 * } | 3088 * } |
| 3410 * | 3089 * |
| 3411 * Clients may not extend, implement or mix-in this class. | 3090 * Clients may not extend, implement or mix-in this class. |
| 3412 */ | 3091 */ |
| 3413 class AnalysisNavigationParams implements HasToJson { | 3092 class AnalysisOutlineParams implements HasToJson { |
| 3414 String _file; | 3093 String _file; |
| 3415 | 3094 |
| 3416 List<NavigationRegion> _regions; | 3095 FileKind _kind; |
| 3417 | 3096 |
| 3418 List<NavigationTarget> _targets; | 3097 String _libraryName; |
| 3419 | 3098 |
| 3420 List<String> _files; | 3099 Outline _outline; |
| 3421 | 3100 |
| 3422 /** | 3101 /** |
| 3423 * The file containing the navigation regions. | 3102 * The file with which the outline is associated. |
| 3424 */ | 3103 */ |
| 3425 String get file => _file; | 3104 String get file => _file; |
| 3426 | 3105 |
| 3427 /** | 3106 /** |
| 3428 * The file containing the navigation regions. | 3107 * The file with which the outline is associated. |
| 3429 */ | 3108 */ |
| 3430 void set file(String value) { | 3109 void set file(String value) { |
| 3431 assert(value != null); | 3110 assert(value != null); |
| 3432 this._file = value; | 3111 this._file = value; |
| 3433 } | 3112 } |
| 3434 | 3113 |
| 3435 /** | 3114 /** |
| 3436 * The navigation regions contained in the file. The regions are sorted by | 3115 * The kind of the file. |
| 3437 * their offsets. Each navigation region represents a list of targets | |
| 3438 * associated with some range. The lists will usually contain a single | |
| 3439 * target, but can contain more in the case of a part that is included in | |
| 3440 * multiple libraries or in Dart code that is compiled against multiple | |
| 3441 * versions of a package. Note that the navigation regions that are returned | |
| 3442 * do not overlap other navigation regions. | |
| 3443 */ | 3116 */ |
| 3444 List<NavigationRegion> get regions => _regions; | 3117 FileKind get kind => _kind; |
| 3445 | 3118 |
| 3446 /** | 3119 /** |
| 3447 * The navigation regions contained in the file. The regions are sorted by | 3120 * The kind of the file. |
| 3448 * their offsets. Each navigation region represents a list of targets | |
| 3449 * associated with some range. The lists will usually contain a single | |
| 3450 * target, but can contain more in the case of a part that is included in | |
| 3451 * multiple libraries or in Dart code that is compiled against multiple | |
| 3452 * versions of a package. Note that the navigation regions that are returned | |
| 3453 * do not overlap other navigation regions. | |
| 3454 */ | 3121 */ |
| 3455 void set regions(List<NavigationRegion> value) { | 3122 void set kind(FileKind value) { |
| 3456 assert(value != null); | 3123 assert(value != null); |
| 3457 this._regions = value; | 3124 this._kind = value; |
| 3458 } | 3125 } |
| 3459 | 3126 |
| 3460 /** | 3127 /** |
| 3461 * The navigation targets referenced in the file. They are referenced by | 3128 * The name of the library defined by the file using a "library" directive, |
| 3462 * NavigationRegions by their index in this array. | 3129 * or referenced by a "part of" directive. If both "library" and "part of" |
| 3130 * directives are present, then the "library" directive takes precedence. |
| 3131 * This field will be omitted if the file has neither "library" nor "part of" |
| 3132 * directives. |
| 3463 */ | 3133 */ |
| 3464 List<NavigationTarget> get targets => _targets; | 3134 String get libraryName => _libraryName; |
| 3465 | 3135 |
| 3466 /** | 3136 /** |
| 3467 * The navigation targets referenced in the file. They are referenced by | 3137 * The name of the library defined by the file using a "library" directive, |
| 3468 * NavigationRegions by their index in this array. | 3138 * or referenced by a "part of" directive. If both "library" and "part of" |
| 3139 * directives are present, then the "library" directive takes precedence. |
| 3140 * This field will be omitted if the file has neither "library" nor "part of" |
| 3141 * directives. |
| 3469 */ | 3142 */ |
| 3470 void set targets(List<NavigationTarget> value) { | 3143 void set libraryName(String value) { |
| 3471 assert(value != null); | 3144 this._libraryName = value; |
| 3472 this._targets = value; | |
| 3473 } | 3145 } |
| 3474 | 3146 |
| 3475 /** | 3147 /** |
| 3476 * The files containing navigation targets referenced in the file. They are | 3148 * The outline associated with the file. |
| 3477 * referenced by NavigationTargets by their index in this array. | |
| 3478 */ | 3149 */ |
| 3479 List<String> get files => _files; | 3150 Outline get outline => _outline; |
| 3480 | 3151 |
| 3481 /** | 3152 /** |
| 3482 * The files containing navigation targets referenced in the file. They are | 3153 * The outline associated with the file. |
| 3483 * referenced by NavigationTargets by their index in this array. | |
| 3484 */ | 3154 */ |
| 3485 void set files(List<String> value) { | 3155 void set outline(Outline value) { |
| 3486 assert(value != null); | 3156 assert(value != null); |
| 3487 this._files = value; | 3157 this._outline = value; |
| 3488 } | 3158 } |
| 3489 | 3159 |
| 3490 AnalysisNavigationParams(String file, List<NavigationRegion> regions, | 3160 AnalysisOutlineParams(String file, FileKind kind, Outline outline, |
| 3491 List<NavigationTarget> targets, List<String> files) { | 3161 {String libraryName}) { |
| 3492 this.file = file; | 3162 this.file = file; |
| 3493 this.regions = regions; | 3163 this.kind = kind; |
| 3494 this.targets = targets; | 3164 this.libraryName = libraryName; |
| 3495 this.files = files; | 3165 this.outline = outline; |
| 3496 } | 3166 } |
| 3497 | 3167 |
| 3498 factory AnalysisNavigationParams.fromJson( | 3168 factory AnalysisOutlineParams.fromJson( |
| 3499 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 3169 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 3500 if (json == null) { | 3170 if (json == null) { |
| 3501 json = {}; | 3171 json = {}; |
| 3502 } | 3172 } |
| 3503 if (json is Map) { | 3173 if (json is Map) { |
| 3504 String file; | 3174 String file; |
| 3505 if (json.containsKey("file")) { | 3175 if (json.containsKey("file")) { |
| 3506 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 3176 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 3507 } else { | 3177 } else { |
| 3508 throw jsonDecoder.missingKey(jsonPath, "file"); | 3178 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 3509 } | 3179 } |
| 3510 List<NavigationRegion> regions; | 3180 FileKind kind; |
| 3511 if (json.containsKey("regions")) { | 3181 if (json.containsKey("kind")) { |
| 3512 regions = jsonDecoder.decodeList( | 3182 kind = new FileKind.fromJson( |
| 3513 jsonPath + ".regions", | 3183 jsonDecoder, jsonPath + ".kind", json["kind"]); |
| 3514 json["regions"], | |
| 3515 (String jsonPath, Object json) => | |
| 3516 new NavigationRegion.fromJson(jsonDecoder, jsonPath, json)); | |
| 3517 } else { | 3184 } else { |
| 3518 throw jsonDecoder.missingKey(jsonPath, "regions"); | 3185 throw jsonDecoder.mismatch(jsonPath, "kind"); |
| 3519 } | 3186 } |
| 3520 List<NavigationTarget> targets; | 3187 String libraryName; |
| 3521 if (json.containsKey("targets")) { | 3188 if (json.containsKey("libraryName")) { |
| 3522 targets = jsonDecoder.decodeList( | 3189 libraryName = jsonDecoder.decodeString( |
| 3523 jsonPath + ".targets", | 3190 jsonPath + ".libraryName", json["libraryName"]); |
| 3524 json["targets"], | 3191 } |
| 3525 (String jsonPath, Object json) => | 3192 Outline outline; |
| 3526 new NavigationTarget.fromJson(jsonDecoder, jsonPath, json)); | 3193 if (json.containsKey("outline")) { |
| 3194 outline = new Outline.fromJson( |
| 3195 jsonDecoder, jsonPath + ".outline", json["outline"]); |
| 3527 } else { | 3196 } else { |
| 3528 throw jsonDecoder.missingKey(jsonPath, "targets"); | 3197 throw jsonDecoder.mismatch(jsonPath, "outline"); |
| 3529 } | 3198 } |
| 3530 List<String> files; | 3199 return new AnalysisOutlineParams(file, kind, outline, |
| 3531 if (json.containsKey("files")) { | 3200 libraryName: libraryName); |
| 3532 files = jsonDecoder.decodeList( | |
| 3533 jsonPath + ".files", json["files"], jsonDecoder.decodeString); | |
| 3534 } else { | |
| 3535 throw jsonDecoder.missingKey(jsonPath, "files"); | |
| 3536 } | |
| 3537 return new AnalysisNavigationParams(file, regions, targets, files); | |
| 3538 } else { | 3201 } else { |
| 3539 throw jsonDecoder.mismatch(jsonPath, "analysis.navigation params", json); | 3202 throw jsonDecoder.mismatch(jsonPath, "analysis.outline params", json); |
| 3540 } | 3203 } |
| 3541 } | 3204 } |
| 3542 | 3205 |
| 3543 factory AnalysisNavigationParams.fromNotification(Notification notification) { | 3206 factory AnalysisOutlineParams.fromNotification(Notification notification) { |
| 3544 return new AnalysisNavigationParams.fromJson( | 3207 return new AnalysisOutlineParams.fromJson( |
| 3545 new ResponseDecoder(null), "params", notification._params); | 3208 new ResponseDecoder(null), "params", notification.params); |
| 3546 } | 3209 } |
| 3547 | 3210 |
| 3211 @override |
| 3548 Map<String, dynamic> toJson() { | 3212 Map<String, dynamic> toJson() { |
| 3549 Map<String, dynamic> result = {}; | 3213 Map<String, dynamic> result = {}; |
| 3550 result["file"] = file; | 3214 result["file"] = file; |
| 3551 result["regions"] = | 3215 result["kind"] = kind.toJson(); |
| 3552 regions.map((NavigationRegion value) => value.toJson()).toList(); | 3216 if (libraryName != null) { |
| 3553 result["targets"] = | 3217 result["libraryName"] = libraryName; |
| 3554 targets.map((NavigationTarget value) => value.toJson()).toList(); | 3218 } |
| 3555 result["files"] = files; | 3219 result["outline"] = outline.toJson(); |
| 3556 return result; | 3220 return result; |
| 3557 } | 3221 } |
| 3558 | 3222 |
| 3559 Notification toNotification() { | 3223 Notification toNotification() { |
| 3560 return new Notification("analysis.navigation", toJson()); | 3224 return new Notification("analysis.outline", toJson()); |
| 3561 } | 3225 } |
| 3562 | 3226 |
| 3563 @override | 3227 @override |
| 3564 String toString() => JSON.encode(toJson()); | 3228 String toString() => JSON.encode(toJson()); |
| 3565 | 3229 |
| 3566 @override | 3230 @override |
| 3567 bool operator ==(other) { | 3231 bool operator ==(other) { |
| 3568 if (other is AnalysisNavigationParams) { | 3232 if (other is AnalysisOutlineParams) { |
| 3569 return file == other.file && | 3233 return file == other.file && |
| 3570 listEqual(regions, other.regions, | 3234 kind == other.kind && |
| 3571 (NavigationRegion a, NavigationRegion b) => a == b) && | 3235 libraryName == other.libraryName && |
| 3572 listEqual(targets, other.targets, | 3236 outline == other.outline; |
| 3573 (NavigationTarget a, NavigationTarget b) => a == b) && | |
| 3574 listEqual(files, other.files, (String a, String b) => a == b); | |
| 3575 } | 3237 } |
| 3576 return false; | 3238 return false; |
| 3577 } | 3239 } |
| 3578 | 3240 |
| 3579 @override | 3241 @override |
| 3580 int get hashCode { | 3242 int get hashCode { |
| 3581 int hash = 0; | 3243 int hash = 0; |
| 3582 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 3244 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 3583 hash = JenkinsSmiHash.combine(hash, regions.hashCode); | 3245 hash = JenkinsSmiHash.combine(hash, kind.hashCode); |
| 3584 hash = JenkinsSmiHash.combine(hash, targets.hashCode); | 3246 hash = JenkinsSmiHash.combine(hash, libraryName.hashCode); |
| 3585 hash = JenkinsSmiHash.combine(hash, files.hashCode); | 3247 hash = JenkinsSmiHash.combine(hash, outline.hashCode); |
| 3586 return JenkinsSmiHash.finish(hash); | 3248 return JenkinsSmiHash.finish(hash); |
| 3587 } | 3249 } |
| 3588 } | 3250 } |
| 3589 | 3251 |
| 3590 /** | 3252 /** |
| 3591 * analysis.occurrences params | 3253 * analysis.overrides params |
| 3592 * | 3254 * |
| 3593 * { | 3255 * { |
| 3594 * "file": FilePath | 3256 * "file": FilePath |
| 3595 * "occurrences": List<Occurrences> | 3257 * "overrides": List<Override> |
| 3596 * } | 3258 * } |
| 3597 * | 3259 * |
| 3598 * Clients may not extend, implement or mix-in this class. | 3260 * Clients may not extend, implement or mix-in this class. |
| 3599 */ | 3261 */ |
| 3600 class AnalysisOccurrencesParams implements HasToJson { | 3262 class AnalysisOverridesParams implements HasToJson { |
| 3601 String _file; | 3263 String _file; |
| 3602 | 3264 |
| 3603 List<Occurrences> _occurrences; | 3265 List<Override> _overrides; |
| 3604 | 3266 |
| 3605 /** | 3267 /** |
| 3606 * The file in which the references occur. | 3268 * The file with which the overrides are associated. |
| 3607 */ | 3269 */ |
| 3608 String get file => _file; | 3270 String get file => _file; |
| 3609 | 3271 |
| 3610 /** | 3272 /** |
| 3611 * The file in which the references occur. | 3273 * The file with which the overrides are associated. |
| 3612 */ | 3274 */ |
| 3613 void set file(String value) { | 3275 void set file(String value) { |
| 3614 assert(value != null); | 3276 assert(value != null); |
| 3615 this._file = value; | 3277 this._file = value; |
| 3616 } | 3278 } |
| 3617 | 3279 |
| 3618 /** | 3280 /** |
| 3619 * The occurrences of references to elements within the file. | 3281 * The overrides associated with the file. |
| 3620 */ | 3282 */ |
| 3621 List<Occurrences> get occurrences => _occurrences; | 3283 List<Override> get overrides => _overrides; |
| 3622 | 3284 |
| 3623 /** | 3285 /** |
| 3624 * The occurrences of references to elements within the file. | 3286 * The overrides associated with the file. |
| 3625 */ | 3287 */ |
| 3626 void set occurrences(List<Occurrences> value) { | 3288 void set overrides(List<Override> value) { |
| 3627 assert(value != null); | 3289 assert(value != null); |
| 3628 this._occurrences = value; | 3290 this._overrides = value; |
| 3629 } | 3291 } |
| 3630 | 3292 |
| 3631 AnalysisOccurrencesParams(String file, List<Occurrences> occurrences) { | 3293 AnalysisOverridesParams(String file, List<Override> overrides) { |
| 3632 this.file = file; | 3294 this.file = file; |
| 3633 this.occurrences = occurrences; | 3295 this.overrides = overrides; |
| 3634 } | 3296 } |
| 3635 | 3297 |
| 3636 factory AnalysisOccurrencesParams.fromJson( | 3298 factory AnalysisOverridesParams.fromJson( |
| 3637 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 3299 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 3638 if (json == null) { | 3300 if (json == null) { |
| 3639 json = {}; | 3301 json = {}; |
| 3640 } | 3302 } |
| 3641 if (json is Map) { | 3303 if (json is Map) { |
| 3642 String file; | 3304 String file; |
| 3643 if (json.containsKey("file")) { | 3305 if (json.containsKey("file")) { |
| 3644 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 3306 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 3645 } else { | 3307 } else { |
| 3646 throw jsonDecoder.missingKey(jsonPath, "file"); | 3308 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 3647 } | 3309 } |
| 3648 List<Occurrences> occurrences; | 3310 List<Override> overrides; |
| 3649 if (json.containsKey("occurrences")) { | 3311 if (json.containsKey("overrides")) { |
| 3650 occurrences = jsonDecoder.decodeList( | 3312 overrides = jsonDecoder.decodeList( |
| 3651 jsonPath + ".occurrences", | 3313 jsonPath + ".overrides", |
| 3652 json["occurrences"], | 3314 json["overrides"], |
| 3653 (String jsonPath, Object json) => | 3315 (String jsonPath, Object json) => |
| 3654 new Occurrences.fromJson(jsonDecoder, jsonPath, json)); | 3316 new Override.fromJson(jsonDecoder, jsonPath, json)); |
| 3655 } else { | 3317 } else { |
| 3656 throw jsonDecoder.missingKey(jsonPath, "occurrences"); | 3318 throw jsonDecoder.mismatch(jsonPath, "overrides"); |
| 3657 } | 3319 } |
| 3658 return new AnalysisOccurrencesParams(file, occurrences); | 3320 return new AnalysisOverridesParams(file, overrides); |
| 3659 } else { | 3321 } else { |
| 3660 throw jsonDecoder.mismatch(jsonPath, "analysis.occurrences params", json); | 3322 throw jsonDecoder.mismatch(jsonPath, "analysis.overrides params", json); |
| 3661 } | 3323 } |
| 3662 } | 3324 } |
| 3663 | 3325 |
| 3664 factory AnalysisOccurrencesParams.fromNotification( | 3326 factory AnalysisOverridesParams.fromNotification(Notification notification) { |
| 3665 Notification notification) { | 3327 return new AnalysisOverridesParams.fromJson( |
| 3666 return new AnalysisOccurrencesParams.fromJson( | 3328 new ResponseDecoder(null), "params", notification.params); |
| 3667 new ResponseDecoder(null), "params", notification._params); | |
| 3668 } | 3329 } |
| 3669 | 3330 |
| 3331 @override |
| 3670 Map<String, dynamic> toJson() { | 3332 Map<String, dynamic> toJson() { |
| 3671 Map<String, dynamic> result = {}; | 3333 Map<String, dynamic> result = {}; |
| 3672 result["file"] = file; | 3334 result["file"] = file; |
| 3673 result["occurrences"] = | 3335 result["overrides"] = |
| 3674 occurrences.map((Occurrences value) => value.toJson()).toList(); | 3336 overrides.map((Override value) => value.toJson()).toList(); |
| 3675 return result; | 3337 return result; |
| 3676 } | 3338 } |
| 3677 | 3339 |
| 3678 Notification toNotification() { | 3340 Notification toNotification() { |
| 3679 return new Notification("analysis.occurrences", toJson()); | 3341 return new Notification("analysis.overrides", toJson()); |
| 3680 } | 3342 } |
| 3681 | 3343 |
| 3682 @override | 3344 @override |
| 3683 String toString() => JSON.encode(toJson()); | 3345 String toString() => JSON.encode(toJson()); |
| 3684 | 3346 |
| 3685 @override | 3347 @override |
| 3686 bool operator ==(other) { | 3348 bool operator ==(other) { |
| 3687 if (other is AnalysisOccurrencesParams) { | 3349 if (other is AnalysisOverridesParams) { |
| 3688 return file == other.file && | 3350 return file == other.file && |
| 3689 listEqual(occurrences, other.occurrences, | 3351 listEqual( |
| 3690 (Occurrences a, Occurrences b) => a == b); | 3352 overrides, other.overrides, (Override a, Override b) => a == b); |
| 3691 } | 3353 } |
| 3692 return false; | 3354 return false; |
| 3693 } | 3355 } |
| 3694 | 3356 |
| 3695 @override | 3357 @override |
| 3696 int get hashCode { | 3358 int get hashCode { |
| 3697 int hash = 0; | 3359 int hash = 0; |
| 3698 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 3360 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 3699 hash = JenkinsSmiHash.combine(hash, occurrences.hashCode); | 3361 hash = JenkinsSmiHash.combine(hash, overrides.hashCode); |
| 3700 return JenkinsSmiHash.finish(hash); | 3362 return JenkinsSmiHash.finish(hash); |
| 3701 } | 3363 } |
| 3702 } | 3364 } |
| 3703 | 3365 |
| 3704 /** | 3366 /** |
| 3705 * analysis.outline params | 3367 * analysis.reanalyze params |
| 3706 * | 3368 * |
| 3707 * { | 3369 * { |
| 3708 * "file": FilePath | 3370 * "roots": optional List<FilePath> |
| 3709 * "kind": FileKind | |
| 3710 * "libraryName": optional String | |
| 3711 * "outline": Outline | |
| 3712 * } | 3371 * } |
| 3713 * | 3372 * |
| 3714 * Clients may not extend, implement or mix-in this class. | 3373 * Clients may not extend, implement or mix-in this class. |
| 3715 */ | 3374 */ |
| 3716 class AnalysisOutlineParams implements HasToJson { | 3375 class AnalysisReanalyzeParams implements RequestParams { |
| 3717 String _file; | 3376 List<String> _roots; |
| 3718 | |
| 3719 FileKind _kind; | |
| 3720 | |
| 3721 String _libraryName; | |
| 3722 | |
| 3723 Outline _outline; | |
| 3724 | 3377 |
| 3725 /** | 3378 /** |
| 3726 * The file with which the outline is associated. | 3379 * A list of the analysis roots that are to be re-analyzed. |
| 3727 */ | 3380 */ |
| 3728 String get file => _file; | 3381 List<String> get roots => _roots; |
| 3729 | 3382 |
| 3730 /** | 3383 /** |
| 3731 * The file with which the outline is associated. | 3384 * A list of the analysis roots that are to be re-analyzed. |
| 3732 */ | 3385 */ |
| 3733 void set file(String value) { | 3386 void set roots(List<String> value) { |
| 3734 assert(value != null); | 3387 this._roots = value; |
| 3735 this._file = value; | |
| 3736 } | 3388 } |
| 3737 | 3389 |
| 3738 /** | 3390 AnalysisReanalyzeParams({List<String> roots}) { |
| 3739 * The kind of the file. | 3391 this.roots = roots; |
| 3740 */ | |
| 3741 FileKind get kind => _kind; | |
| 3742 | |
| 3743 /** | |
| 3744 * The kind of the file. | |
| 3745 */ | |
| 3746 void set kind(FileKind value) { | |
| 3747 assert(value != null); | |
| 3748 this._kind = value; | |
| 3749 } | 3392 } |
| 3750 | 3393 |
| 3751 /** | 3394 factory AnalysisReanalyzeParams.fromJson( |
| 3752 * The name of the library defined by the file using a "library" directive, | |
| 3753 * or referenced by a "part of" directive. If both "library" and "part of" | |
| 3754 * directives are present, then the "library" directive takes precedence. | |
| 3755 * This field will be omitted if the file has neither "library" nor "part of" | |
| 3756 * directives. | |
| 3757 */ | |
| 3758 String get libraryName => _libraryName; | |
| 3759 | |
| 3760 /** | |
| 3761 * The name of the library defined by the file using a "library" directive, | |
| 3762 * or referenced by a "part of" directive. If both "library" and "part of" | |
| 3763 * directives are present, then the "library" directive takes precedence. | |
| 3764 * This field will be omitted if the file has neither "library" nor "part of" | |
| 3765 * directives. | |
| 3766 */ | |
| 3767 void set libraryName(String value) { | |
| 3768 this._libraryName = value; | |
| 3769 } | |
| 3770 | |
| 3771 /** | |
| 3772 * The outline associated with the file. | |
| 3773 */ | |
| 3774 Outline get outline => _outline; | |
| 3775 | |
| 3776 /** | |
| 3777 * The outline associated with the file. | |
| 3778 */ | |
| 3779 void set outline(Outline value) { | |
| 3780 assert(value != null); | |
| 3781 this._outline = value; | |
| 3782 } | |
| 3783 | |
| 3784 AnalysisOutlineParams(String file, FileKind kind, Outline outline, | |
| 3785 {String libraryName}) { | |
| 3786 this.file = file; | |
| 3787 this.kind = kind; | |
| 3788 this.libraryName = libraryName; | |
| 3789 this.outline = outline; | |
| 3790 } | |
| 3791 | |
| 3792 factory AnalysisOutlineParams.fromJson( | |
| 3793 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 3395 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 3794 if (json == null) { | 3396 if (json == null) { |
| 3795 json = {}; | 3397 json = {}; |
| 3796 } | 3398 } |
| 3797 if (json is Map) { | 3399 if (json is Map) { |
| 3798 String file; | 3400 List<String> roots; |
| 3799 if (json.containsKey("file")) { | 3401 if (json.containsKey("roots")) { |
| 3800 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 3402 roots = jsonDecoder.decodeList( |
| 3801 } else { | 3403 jsonPath + ".roots", json["roots"], jsonDecoder.decodeString); |
| 3802 throw jsonDecoder.missingKey(jsonPath, "file"); | |
| 3803 } | 3404 } |
| 3804 FileKind kind; | 3405 return new AnalysisReanalyzeParams(roots: roots); |
| 3805 if (json.containsKey("kind")) { | |
| 3806 kind = new FileKind.fromJson( | |
| 3807 jsonDecoder, jsonPath + ".kind", json["kind"]); | |
| 3808 } else { | |
| 3809 throw jsonDecoder.missingKey(jsonPath, "kind"); | |
| 3810 } | |
| 3811 String libraryName; | |
| 3812 if (json.containsKey("libraryName")) { | |
| 3813 libraryName = jsonDecoder.decodeString( | |
| 3814 jsonPath + ".libraryName", json["libraryName"]); | |
| 3815 } | |
| 3816 Outline outline; | |
| 3817 if (json.containsKey("outline")) { | |
| 3818 outline = new Outline.fromJson( | |
| 3819 jsonDecoder, jsonPath + ".outline", json["outline"]); | |
| 3820 } else { | |
| 3821 throw jsonDecoder.missingKey(jsonPath, "outline"); | |
| 3822 } | |
| 3823 return new AnalysisOutlineParams(file, kind, outline, | |
| 3824 libraryName: libraryName); | |
| 3825 } else { | 3406 } else { |
| 3826 throw jsonDecoder.mismatch(jsonPath, "analysis.outline params", json); | 3407 throw jsonDecoder.mismatch(jsonPath, "analysis.reanalyze params", json); |
| 3827 } | 3408 } |
| 3828 } | 3409 } |
| 3829 | 3410 |
| 3830 factory AnalysisOutlineParams.fromNotification(Notification notification) { | 3411 factory AnalysisReanalyzeParams.fromRequest(Request request) { |
| 3831 return new AnalysisOutlineParams.fromJson( | 3412 return new AnalysisReanalyzeParams.fromJson( |
| 3832 new ResponseDecoder(null), "params", notification._params); | 3413 new RequestDecoder(request), "params", request.params); |
| 3833 } | 3414 } |
| 3834 | 3415 |
| 3416 @override |
| 3835 Map<String, dynamic> toJson() { | 3417 Map<String, dynamic> toJson() { |
| 3836 Map<String, dynamic> result = {}; | 3418 Map<String, dynamic> result = {}; |
| 3837 result["file"] = file; | 3419 if (roots != null) { |
| 3838 result["kind"] = kind.toJson(); | 3420 result["roots"] = roots; |
| 3839 if (libraryName != null) { | |
| 3840 result["libraryName"] = libraryName; | |
| 3841 } | 3421 } |
| 3842 result["outline"] = outline.toJson(); | |
| 3843 return result; | 3422 return result; |
| 3844 } | 3423 } |
| 3845 | 3424 |
| 3846 Notification toNotification() { | 3425 @override |
| 3847 return new Notification("analysis.outline", toJson()); | 3426 Request toRequest(String id) { |
| 3427 return new Request(id, "analysis.reanalyze", toJson()); |
| 3848 } | 3428 } |
| 3849 | 3429 |
| 3850 @override | 3430 @override |
| 3851 String toString() => JSON.encode(toJson()); | 3431 String toString() => JSON.encode(toJson()); |
| 3852 | 3432 |
| 3853 @override | 3433 @override |
| 3854 bool operator ==(other) { | 3434 bool operator ==(other) { |
| 3855 if (other is AnalysisOutlineParams) { | 3435 if (other is AnalysisReanalyzeParams) { |
| 3856 return file == other.file && | 3436 return listEqual(roots, other.roots, (String a, String b) => a == b); |
| 3857 kind == other.kind && | |
| 3858 libraryName == other.libraryName && | |
| 3859 outline == other.outline; | |
| 3860 } | 3437 } |
| 3861 return false; | 3438 return false; |
| 3862 } | 3439 } |
| 3863 | 3440 |
| 3864 @override | 3441 @override |
| 3865 int get hashCode { | 3442 int get hashCode { |
| 3866 int hash = 0; | 3443 int hash = 0; |
| 3867 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 3444 hash = JenkinsSmiHash.combine(hash, roots.hashCode); |
| 3868 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | |
| 3869 hash = JenkinsSmiHash.combine(hash, libraryName.hashCode); | |
| 3870 hash = JenkinsSmiHash.combine(hash, outline.hashCode); | |
| 3871 return JenkinsSmiHash.finish(hash); | 3445 return JenkinsSmiHash.finish(hash); |
| 3872 } | 3446 } |
| 3873 } | 3447 } |
| 3874 | 3448 |
| 3875 /** | 3449 /** |
| 3876 * analysis.overrides params | 3450 * analysis.reanalyze result |
| 3877 * | |
| 3878 * { | |
| 3879 * "file": FilePath | |
| 3880 * "overrides": List<Override> | |
| 3881 * } | |
| 3882 * | 3451 * |
| 3883 * Clients may not extend, implement or mix-in this class. | 3452 * Clients may not extend, implement or mix-in this class. |
| 3884 */ | 3453 */ |
| 3885 class AnalysisOverridesParams implements HasToJson { | 3454 class AnalysisReanalyzeResult implements ResponseResult { |
| 3886 String _file; | 3455 @override |
| 3887 | 3456 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 3888 List<Override> _overrides; | 3457 |
| 3889 | 3458 @override |
| 3890 /** | 3459 Response toResponse(String id) { |
| 3891 * The file with which the overrides are associated. | 3460 return new Response(id, result: null); |
| 3892 */ | 3461 } |
| 3893 String get file => _file; | 3462 |
| 3894 | 3463 @override |
| 3895 /** | 3464 bool operator ==(other) { |
| 3896 * The file with which the overrides are associated. | 3465 if (other is AnalysisReanalyzeResult) { |
| 3897 */ | 3466 return true; |
| 3898 void set file(String value) { | 3467 } |
| 3468 return false; |
| 3469 } |
| 3470 |
| 3471 @override |
| 3472 int get hashCode { |
| 3473 return 846803925; |
| 3474 } |
| 3475 } |
| 3476 |
| 3477 /** |
| 3478 * AnalysisService |
| 3479 * |
| 3480 * enum { |
| 3481 * FOLDING |
| 3482 * HIGHLIGHTS |
| 3483 * IMPLEMENTED |
| 3484 * INVALIDATE |
| 3485 * NAVIGATION |
| 3486 * OCCURRENCES |
| 3487 * OUTLINE |
| 3488 * OVERRIDES |
| 3489 * } |
| 3490 * |
| 3491 * Clients may not extend, implement or mix-in this class. |
| 3492 */ |
| 3493 class AnalysisService implements Enum { |
| 3494 static const AnalysisService FOLDING = const AnalysisService._("FOLDING"); |
| 3495 |
| 3496 static const AnalysisService HIGHLIGHTS = |
| 3497 const AnalysisService._("HIGHLIGHTS"); |
| 3498 |
| 3499 static const AnalysisService IMPLEMENTED = |
| 3500 const AnalysisService._("IMPLEMENTED"); |
| 3501 |
| 3502 /** |
| 3503 * This service is not currently implemented and will become a |
| 3504 * GeneralAnalysisService in a future release. |
| 3505 */ |
| 3506 static const AnalysisService INVALIDATE = |
| 3507 const AnalysisService._("INVALIDATE"); |
| 3508 |
| 3509 static const AnalysisService NAVIGATION = |
| 3510 const AnalysisService._("NAVIGATION"); |
| 3511 |
| 3512 static const AnalysisService OCCURRENCES = |
| 3513 const AnalysisService._("OCCURRENCES"); |
| 3514 |
| 3515 static const AnalysisService OUTLINE = const AnalysisService._("OUTLINE"); |
| 3516 |
| 3517 static const AnalysisService OVERRIDES = const AnalysisService._("OVERRIDES"); |
| 3518 |
| 3519 /** |
| 3520 * A list containing all of the enum values that are defined. |
| 3521 */ |
| 3522 static const List<AnalysisService> VALUES = const <AnalysisService>[ |
| 3523 FOLDING, |
| 3524 HIGHLIGHTS, |
| 3525 IMPLEMENTED, |
| 3526 INVALIDATE, |
| 3527 NAVIGATION, |
| 3528 OCCURRENCES, |
| 3529 OUTLINE, |
| 3530 OVERRIDES |
| 3531 ]; |
| 3532 |
| 3533 @override |
| 3534 final String name; |
| 3535 |
| 3536 const AnalysisService._(this.name); |
| 3537 |
| 3538 factory AnalysisService(String name) { |
| 3539 switch (name) { |
| 3540 case "FOLDING": |
| 3541 return FOLDING; |
| 3542 case "HIGHLIGHTS": |
| 3543 return HIGHLIGHTS; |
| 3544 case "IMPLEMENTED": |
| 3545 return IMPLEMENTED; |
| 3546 case "INVALIDATE": |
| 3547 return INVALIDATE; |
| 3548 case "NAVIGATION": |
| 3549 return NAVIGATION; |
| 3550 case "OCCURRENCES": |
| 3551 return OCCURRENCES; |
| 3552 case "OUTLINE": |
| 3553 return OUTLINE; |
| 3554 case "OVERRIDES": |
| 3555 return OVERRIDES; |
| 3556 } |
| 3557 throw new Exception('Illegal enum value: $name'); |
| 3558 } |
| 3559 |
| 3560 factory AnalysisService.fromJson( |
| 3561 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 3562 if (json is String) { |
| 3563 try { |
| 3564 return new AnalysisService(json); |
| 3565 } catch (_) { |
| 3566 // Fall through |
| 3567 } |
| 3568 } |
| 3569 throw jsonDecoder.mismatch(jsonPath, "AnalysisService", json); |
| 3570 } |
| 3571 |
| 3572 @override |
| 3573 String toString() => "AnalysisService.$name"; |
| 3574 |
| 3575 String toJson() => name; |
| 3576 } |
| 3577 |
| 3578 /** |
| 3579 * analysis.setAnalysisRoots params |
| 3580 * |
| 3581 * { |
| 3582 * "included": List<FilePath> |
| 3583 * "excluded": List<FilePath> |
| 3584 * "packageRoots": optional Map<FilePath, FilePath> |
| 3585 * } |
| 3586 * |
| 3587 * Clients may not extend, implement or mix-in this class. |
| 3588 */ |
| 3589 class AnalysisSetAnalysisRootsParams implements RequestParams { |
| 3590 List<String> _included; |
| 3591 |
| 3592 List<String> _excluded; |
| 3593 |
| 3594 Map<String, String> _packageRoots; |
| 3595 |
| 3596 /** |
| 3597 * A list of the files and directories that should be analyzed. |
| 3598 */ |
| 3599 List<String> get included => _included; |
| 3600 |
| 3601 /** |
| 3602 * A list of the files and directories that should be analyzed. |
| 3603 */ |
| 3604 void set included(List<String> value) { |
| 3899 assert(value != null); | 3605 assert(value != null); |
| 3900 this._file = value; | 3606 this._included = value; |
| 3901 } | 3607 } |
| 3902 | 3608 |
| 3903 /** | 3609 /** |
| 3904 * The overrides associated with the file. | 3610 * A list of the files and directories within the included directories that |
| 3905 */ | 3611 * should not be analyzed. |
| 3906 List<Override> get overrides => _overrides; | 3612 */ |
| 3907 | 3613 List<String> get excluded => _excluded; |
| 3908 /** | 3614 |
| 3909 * The overrides associated with the file. | 3615 /** |
| 3910 */ | 3616 * A list of the files and directories within the included directories that |
| 3911 void set overrides(List<Override> value) { | 3617 * should not be analyzed. |
| 3618 */ |
| 3619 void set excluded(List<String> value) { |
| 3912 assert(value != null); | 3620 assert(value != null); |
| 3913 this._overrides = value; | 3621 this._excluded = value; |
| 3914 } | 3622 } |
| 3915 | 3623 |
| 3916 AnalysisOverridesParams(String file, List<Override> overrides) { | 3624 /** |
| 3917 this.file = file; | 3625 * A mapping from source directories to package roots that should override |
| 3918 this.overrides = overrides; | 3626 * the normal package: URI resolution mechanism. |
| 3919 } | 3627 * |
| 3920 | 3628 * If a package root is a directory, then the analyzer will behave as though |
| 3921 factory AnalysisOverridesParams.fromJson( | 3629 * the associated source directory in the map contains a special pubspec.yaml |
| 3630 * file which resolves any package: URI to the corresponding path within that |
| 3631 * package root directory. The effect is the same as specifying the package |
| 3632 * root directory as a "--package_root" parameter to the Dart VM when |
| 3633 * executing any Dart file inside the source directory. |
| 3634 * |
| 3635 * If a package root is a file, then the analyzer will behave as though that |
| 3636 * file is a ".packages" file in the source directory. The effect is the same |
| 3637 * as specifying the file as a "--packages" parameter to the Dart VM when |
| 3638 * executing any Dart file inside the source directory. |
| 3639 * |
| 3640 * Files in any directories that are not overridden by this mapping have |
| 3641 * their package: URI's resolved using the normal pubspec.yaml mechanism. If |
| 3642 * this field is absent, or the empty map is specified, that indicates that |
| 3643 * the normal pubspec.yaml mechanism should always be used. |
| 3644 */ |
| 3645 Map<String, String> get packageRoots => _packageRoots; |
| 3646 |
| 3647 /** |
| 3648 * A mapping from source directories to package roots that should override |
| 3649 * the normal package: URI resolution mechanism. |
| 3650 * |
| 3651 * If a package root is a directory, then the analyzer will behave as though |
| 3652 * the associated source directory in the map contains a special pubspec.yaml |
| 3653 * file which resolves any package: URI to the corresponding path within that |
| 3654 * package root directory. The effect is the same as specifying the package |
| 3655 * root directory as a "--package_root" parameter to the Dart VM when |
| 3656 * executing any Dart file inside the source directory. |
| 3657 * |
| 3658 * If a package root is a file, then the analyzer will behave as though that |
| 3659 * file is a ".packages" file in the source directory. The effect is the same |
| 3660 * as specifying the file as a "--packages" parameter to the Dart VM when |
| 3661 * executing any Dart file inside the source directory. |
| 3662 * |
| 3663 * Files in any directories that are not overridden by this mapping have |
| 3664 * their package: URI's resolved using the normal pubspec.yaml mechanism. If |
| 3665 * this field is absent, or the empty map is specified, that indicates that |
| 3666 * the normal pubspec.yaml mechanism should always be used. |
| 3667 */ |
| 3668 void set packageRoots(Map<String, String> value) { |
| 3669 this._packageRoots = value; |
| 3670 } |
| 3671 |
| 3672 AnalysisSetAnalysisRootsParams(List<String> included, List<String> excluded, |
| 3673 {Map<String, String> packageRoots}) { |
| 3674 this.included = included; |
| 3675 this.excluded = excluded; |
| 3676 this.packageRoots = packageRoots; |
| 3677 } |
| 3678 |
| 3679 factory AnalysisSetAnalysisRootsParams.fromJson( |
| 3922 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 3680 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 3923 if (json == null) { | 3681 if (json == null) { |
| 3924 json = {}; | 3682 json = {}; |
| 3925 } | 3683 } |
| 3926 if (json is Map) { | 3684 if (json is Map) { |
| 3927 String file; | 3685 List<String> included; |
| 3928 if (json.containsKey("file")) { | 3686 if (json.containsKey("included")) { |
| 3929 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 3687 included = jsonDecoder.decodeList( |
| 3688 jsonPath + ".included", json["included"], jsonDecoder.decodeString); |
| 3930 } else { | 3689 } else { |
| 3931 throw jsonDecoder.missingKey(jsonPath, "file"); | 3690 throw jsonDecoder.mismatch(jsonPath, "included"); |
| 3932 } | 3691 } |
| 3933 List<Override> overrides; | 3692 List<String> excluded; |
| 3934 if (json.containsKey("overrides")) { | 3693 if (json.containsKey("excluded")) { |
| 3935 overrides = jsonDecoder.decodeList( | 3694 excluded = jsonDecoder.decodeList( |
| 3936 jsonPath + ".overrides", | 3695 jsonPath + ".excluded", json["excluded"], jsonDecoder.decodeString); |
| 3937 json["overrides"], | |
| 3938 (String jsonPath, Object json) => | |
| 3939 new Override.fromJson(jsonDecoder, jsonPath, json)); | |
| 3940 } else { | 3696 } else { |
| 3941 throw jsonDecoder.missingKey(jsonPath, "overrides"); | 3697 throw jsonDecoder.mismatch(jsonPath, "excluded"); |
| 3942 } | 3698 } |
| 3943 return new AnalysisOverridesParams(file, overrides); | 3699 Map<String, String> packageRoots; |
| 3700 if (json.containsKey("packageRoots")) { |
| 3701 packageRoots = jsonDecoder.decodeMap( |
| 3702 jsonPath + ".packageRoots", json["packageRoots"], |
| 3703 valueDecoder: jsonDecoder.decodeString); |
| 3704 } |
| 3705 return new AnalysisSetAnalysisRootsParams(included, excluded, |
| 3706 packageRoots: packageRoots); |
| 3944 } else { | 3707 } else { |
| 3945 throw jsonDecoder.mismatch(jsonPath, "analysis.overrides params", json); | 3708 throw jsonDecoder.mismatch( |
| 3946 } | 3709 jsonPath, "analysis.setAnalysisRoots params", json); |
| 3947 } | 3710 } |
| 3948 | 3711 } |
| 3949 factory AnalysisOverridesParams.fromNotification(Notification notification) { | 3712 |
| 3950 return new AnalysisOverridesParams.fromJson( | 3713 factory AnalysisSetAnalysisRootsParams.fromRequest(Request request) { |
| 3951 new ResponseDecoder(null), "params", notification._params); | 3714 return new AnalysisSetAnalysisRootsParams.fromJson( |
| 3952 } | 3715 new RequestDecoder(request), "params", request.params); |
| 3953 | 3716 } |
| 3717 |
| 3718 @override |
| 3954 Map<String, dynamic> toJson() { | 3719 Map<String, dynamic> toJson() { |
| 3955 Map<String, dynamic> result = {}; | 3720 Map<String, dynamic> result = {}; |
| 3956 result["file"] = file; | 3721 result["included"] = included; |
| 3957 result["overrides"] = | 3722 result["excluded"] = excluded; |
| 3958 overrides.map((Override value) => value.toJson()).toList(); | 3723 if (packageRoots != null) { |
| 3724 result["packageRoots"] = packageRoots; |
| 3725 } |
| 3959 return result; | 3726 return result; |
| 3960 } | 3727 } |
| 3961 | 3728 |
| 3962 Notification toNotification() { | 3729 @override |
| 3963 return new Notification("analysis.overrides", toJson()); | |
| 3964 } | |
| 3965 | |
| 3966 @override | |
| 3967 String toString() => JSON.encode(toJson()); | |
| 3968 | |
| 3969 @override | |
| 3970 bool operator ==(other) { | |
| 3971 if (other is AnalysisOverridesParams) { | |
| 3972 return file == other.file && | |
| 3973 listEqual( | |
| 3974 overrides, other.overrides, (Override a, Override b) => a == b); | |
| 3975 } | |
| 3976 return false; | |
| 3977 } | |
| 3978 | |
| 3979 @override | |
| 3980 int get hashCode { | |
| 3981 int hash = 0; | |
| 3982 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
| 3983 hash = JenkinsSmiHash.combine(hash, overrides.hashCode); | |
| 3984 return JenkinsSmiHash.finish(hash); | |
| 3985 } | |
| 3986 } | |
| 3987 | |
| 3988 /** | |
| 3989 * completion.getSuggestions params | |
| 3990 * | |
| 3991 * { | |
| 3992 * "file": FilePath | |
| 3993 * "offset": int | |
| 3994 * } | |
| 3995 * | |
| 3996 * Clients may not extend, implement or mix-in this class. | |
| 3997 */ | |
| 3998 class CompletionGetSuggestionsParams implements HasToJson { | |
| 3999 String _file; | |
| 4000 | |
| 4001 int _offset; | |
| 4002 | |
| 4003 /** | |
| 4004 * The file containing the point at which suggestions are to be made. | |
| 4005 */ | |
| 4006 String get file => _file; | |
| 4007 | |
| 4008 /** | |
| 4009 * The file containing the point at which suggestions are to be made. | |
| 4010 */ | |
| 4011 void set file(String value) { | |
| 4012 assert(value != null); | |
| 4013 this._file = value; | |
| 4014 } | |
| 4015 | |
| 4016 /** | |
| 4017 * The offset within the file at which suggestions are to be made. | |
| 4018 */ | |
| 4019 int get offset => _offset; | |
| 4020 | |
| 4021 /** | |
| 4022 * The offset within the file at which suggestions are to be made. | |
| 4023 */ | |
| 4024 void set offset(int value) { | |
| 4025 assert(value != null); | |
| 4026 this._offset = value; | |
| 4027 } | |
| 4028 | |
| 4029 CompletionGetSuggestionsParams(String file, int offset) { | |
| 4030 this.file = file; | |
| 4031 this.offset = offset; | |
| 4032 } | |
| 4033 | |
| 4034 factory CompletionGetSuggestionsParams.fromJson( | |
| 4035 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 4036 if (json == null) { | |
| 4037 json = {}; | |
| 4038 } | |
| 4039 if (json is Map) { | |
| 4040 String file; | |
| 4041 if (json.containsKey("file")) { | |
| 4042 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
| 4043 } else { | |
| 4044 throw jsonDecoder.missingKey(jsonPath, "file"); | |
| 4045 } | |
| 4046 int offset; | |
| 4047 if (json.containsKey("offset")) { | |
| 4048 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
| 4049 } else { | |
| 4050 throw jsonDecoder.missingKey(jsonPath, "offset"); | |
| 4051 } | |
| 4052 return new CompletionGetSuggestionsParams(file, offset); | |
| 4053 } else { | |
| 4054 throw jsonDecoder.mismatch( | |
| 4055 jsonPath, "completion.getSuggestions params", json); | |
| 4056 } | |
| 4057 } | |
| 4058 | |
| 4059 factory CompletionGetSuggestionsParams.fromRequest(Request request) { | |
| 4060 return new CompletionGetSuggestionsParams.fromJson( | |
| 4061 new RequestDecoder(request), "params", request._params); | |
| 4062 } | |
| 4063 | |
| 4064 Map<String, dynamic> toJson() { | |
| 4065 Map<String, dynamic> result = {}; | |
| 4066 result["file"] = file; | |
| 4067 result["offset"] = offset; | |
| 4068 return result; | |
| 4069 } | |
| 4070 | |
| 4071 Request toRequest(String id) { | 3730 Request toRequest(String id) { |
| 4072 return new Request(id, "completion.getSuggestions", toJson()); | 3731 return new Request(id, "analysis.setAnalysisRoots", toJson()); |
| 4073 } | 3732 } |
| 4074 | 3733 |
| 4075 @override | 3734 @override |
| 4076 String toString() => JSON.encode(toJson()); | 3735 String toString() => JSON.encode(toJson()); |
| 4077 | 3736 |
| 4078 @override | 3737 @override |
| 4079 bool operator ==(other) { | 3738 bool operator ==(other) { |
| 4080 if (other is CompletionGetSuggestionsParams) { | 3739 if (other is AnalysisSetAnalysisRootsParams) { |
| 4081 return file == other.file && offset == other.offset; | 3740 return listEqual( |
| 3741 included, other.included, (String a, String b) => a == b) && |
| 3742 listEqual(excluded, other.excluded, (String a, String b) => a == b) && |
| 3743 mapEqual( |
| 3744 packageRoots, other.packageRoots, (String a, String b) => a == b); |
| 4082 } | 3745 } |
| 4083 return false; | 3746 return false; |
| 4084 } | 3747 } |
| 4085 | 3748 |
| 4086 @override | 3749 @override |
| 4087 int get hashCode { | 3750 int get hashCode { |
| 4088 int hash = 0; | 3751 int hash = 0; |
| 4089 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 3752 hash = JenkinsSmiHash.combine(hash, included.hashCode); |
| 4090 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 3753 hash = JenkinsSmiHash.combine(hash, excluded.hashCode); |
| 3754 hash = JenkinsSmiHash.combine(hash, packageRoots.hashCode); |
| 4091 return JenkinsSmiHash.finish(hash); | 3755 return JenkinsSmiHash.finish(hash); |
| 4092 } | 3756 } |
| 4093 } | 3757 } |
| 4094 | 3758 |
| 4095 /** | 3759 /** |
| 4096 * completion.getSuggestions result | 3760 * analysis.setAnalysisRoots result |
| 3761 * |
| 3762 * Clients may not extend, implement or mix-in this class. |
| 3763 */ |
| 3764 class AnalysisSetAnalysisRootsResult implements ResponseResult { |
| 3765 @override |
| 3766 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 3767 |
| 3768 @override |
| 3769 Response toResponse(String id) { |
| 3770 return new Response(id, result: null); |
| 3771 } |
| 3772 |
| 3773 @override |
| 3774 bool operator ==(other) { |
| 3775 if (other is AnalysisSetAnalysisRootsResult) { |
| 3776 return true; |
| 3777 } |
| 3778 return false; |
| 3779 } |
| 3780 |
| 3781 @override |
| 3782 int get hashCode { |
| 3783 return 866004753; |
| 3784 } |
| 3785 } |
| 3786 |
| 3787 /** |
| 3788 * analysis.setGeneralSubscriptions params |
| 4097 * | 3789 * |
| 4098 * { | 3790 * { |
| 4099 * "id": CompletionId | 3791 * "subscriptions": List<GeneralAnalysisService> |
| 4100 * } | 3792 * } |
| 4101 * | 3793 * |
| 4102 * Clients may not extend, implement or mix-in this class. | 3794 * Clients may not extend, implement or mix-in this class. |
| 4103 */ | 3795 */ |
| 4104 class CompletionGetSuggestionsResult implements HasToJson { | 3796 class AnalysisSetGeneralSubscriptionsParams implements RequestParams { |
| 4105 String _id; | 3797 List<GeneralAnalysisService> _subscriptions; |
| 4106 | 3798 |
| 4107 /** | 3799 /** |
| 4108 * The identifier used to associate results with this completion request. | 3800 * A list of the services being subscribed to. |
| 4109 */ | 3801 */ |
| 4110 String get id => _id; | 3802 List<GeneralAnalysisService> get subscriptions => _subscriptions; |
| 4111 | 3803 |
| 4112 /** | 3804 /** |
| 4113 * The identifier used to associate results with this completion request. | 3805 * A list of the services being subscribed to. |
| 4114 */ | 3806 */ |
| 4115 void set id(String value) { | 3807 void set subscriptions(List<GeneralAnalysisService> value) { |
| 4116 assert(value != null); | 3808 assert(value != null); |
| 4117 this._id = value; | 3809 this._subscriptions = value; |
| 4118 } | 3810 } |
| 4119 | 3811 |
| 4120 CompletionGetSuggestionsResult(String id) { | 3812 AnalysisSetGeneralSubscriptionsParams( |
| 4121 this.id = id; | 3813 List<GeneralAnalysisService> subscriptions) { |
| 3814 this.subscriptions = subscriptions; |
| 4122 } | 3815 } |
| 4123 | 3816 |
| 4124 factory CompletionGetSuggestionsResult.fromJson( | 3817 factory AnalysisSetGeneralSubscriptionsParams.fromJson( |
| 4125 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 3818 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 4126 if (json == null) { | 3819 if (json == null) { |
| 4127 json = {}; | 3820 json = {}; |
| 4128 } | 3821 } |
| 4129 if (json is Map) { | 3822 if (json is Map) { |
| 4130 String id; | 3823 List<GeneralAnalysisService> subscriptions; |
| 4131 if (json.containsKey("id")) { | 3824 if (json.containsKey("subscriptions")) { |
| 4132 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | 3825 subscriptions = jsonDecoder.decodeList( |
| 3826 jsonPath + ".subscriptions", |
| 3827 json["subscriptions"], |
| 3828 (String jsonPath, Object json) => |
| 3829 new GeneralAnalysisService.fromJson( |
| 3830 jsonDecoder, jsonPath, json)); |
| 4133 } else { | 3831 } else { |
| 4134 throw jsonDecoder.missingKey(jsonPath, "id"); | 3832 throw jsonDecoder.mismatch(jsonPath, "subscriptions"); |
| 4135 } | 3833 } |
| 4136 return new CompletionGetSuggestionsResult(id); | 3834 return new AnalysisSetGeneralSubscriptionsParams(subscriptions); |
| 4137 } else { | 3835 } else { |
| 4138 throw jsonDecoder.mismatch( | 3836 throw jsonDecoder.mismatch( |
| 4139 jsonPath, "completion.getSuggestions result", json); | 3837 jsonPath, "analysis.setGeneralSubscriptions params", json); |
| 4140 } | 3838 } |
| 4141 } | 3839 } |
| 4142 | 3840 |
| 4143 factory CompletionGetSuggestionsResult.fromResponse(Response response) { | 3841 factory AnalysisSetGeneralSubscriptionsParams.fromRequest(Request request) { |
| 4144 return new CompletionGetSuggestionsResult.fromJson( | 3842 return new AnalysisSetGeneralSubscriptionsParams.fromJson( |
| 4145 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 3843 new RequestDecoder(request), "params", request.params); |
| 4146 "result", | |
| 4147 response._result); | |
| 4148 } | 3844 } |
| 4149 | 3845 |
| 3846 @override |
| 4150 Map<String, dynamic> toJson() { | 3847 Map<String, dynamic> toJson() { |
| 4151 Map<String, dynamic> result = {}; | 3848 Map<String, dynamic> result = {}; |
| 4152 result["id"] = id; | 3849 result["subscriptions"] = subscriptions |
| 3850 .map((GeneralAnalysisService value) => value.toJson()) |
| 3851 .toList(); |
| 4153 return result; | 3852 return result; |
| 4154 } | 3853 } |
| 4155 | 3854 |
| 4156 Response toResponse(String id) { | 3855 @override |
| 4157 return new Response(id, result: toJson()); | 3856 Request toRequest(String id) { |
| 3857 return new Request(id, "analysis.setGeneralSubscriptions", toJson()); |
| 4158 } | 3858 } |
| 4159 | 3859 |
| 4160 @override | 3860 @override |
| 4161 String toString() => JSON.encode(toJson()); | 3861 String toString() => JSON.encode(toJson()); |
| 4162 | 3862 |
| 4163 @override | 3863 @override |
| 4164 bool operator ==(other) { | 3864 bool operator ==(other) { |
| 4165 if (other is CompletionGetSuggestionsResult) { | 3865 if (other is AnalysisSetGeneralSubscriptionsParams) { |
| 4166 return id == other.id; | 3866 return listEqual(subscriptions, other.subscriptions, |
| 3867 (GeneralAnalysisService a, GeneralAnalysisService b) => a == b); |
| 4167 } | 3868 } |
| 4168 return false; | 3869 return false; |
| 4169 } | 3870 } |
| 4170 | 3871 |
| 4171 @override | 3872 @override |
| 4172 int get hashCode { | 3873 int get hashCode { |
| 4173 int hash = 0; | 3874 int hash = 0; |
| 4174 hash = JenkinsSmiHash.combine(hash, id.hashCode); | 3875 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode); |
| 4175 return JenkinsSmiHash.finish(hash); | 3876 return JenkinsSmiHash.finish(hash); |
| 4176 } | 3877 } |
| 4177 } | 3878 } |
| 4178 | 3879 |
| 4179 /** | 3880 /** |
| 4180 * completion.results params | 3881 * analysis.setGeneralSubscriptions result |
| 3882 * |
| 3883 * Clients may not extend, implement or mix-in this class. |
| 3884 */ |
| 3885 class AnalysisSetGeneralSubscriptionsResult implements ResponseResult { |
| 3886 @override |
| 3887 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 3888 |
| 3889 @override |
| 3890 Response toResponse(String id) { |
| 3891 return new Response(id, result: null); |
| 3892 } |
| 3893 |
| 3894 @override |
| 3895 bool operator ==(other) { |
| 3896 if (other is AnalysisSetGeneralSubscriptionsResult) { |
| 3897 return true; |
| 3898 } |
| 3899 return false; |
| 3900 } |
| 3901 |
| 3902 @override |
| 3903 int get hashCode { |
| 3904 return 386759562; |
| 3905 } |
| 3906 } |
| 3907 |
| 3908 /** |
| 3909 * analysis.setPriorityFiles params |
| 4181 * | 3910 * |
| 4182 * { | 3911 * { |
| 4183 * "id": CompletionId | 3912 * "files": List<FilePath> |
| 4184 * "replacementOffset": int | |
| 4185 * "replacementLength": int | |
| 4186 * "results": List<CompletionSuggestion> | |
| 4187 * "isLast": bool | |
| 4188 * } | 3913 * } |
| 4189 * | 3914 * |
| 4190 * Clients may not extend, implement or mix-in this class. | 3915 * Clients may not extend, implement or mix-in this class. |
| 4191 */ | 3916 */ |
| 4192 class CompletionResultsParams implements HasToJson { | 3917 class AnalysisSetPriorityFilesParams implements RequestParams { |
| 4193 String _id; | 3918 List<String> _files; |
| 4194 | |
| 4195 int _replacementOffset; | |
| 4196 | |
| 4197 int _replacementLength; | |
| 4198 | |
| 4199 List<CompletionSuggestion> _results; | |
| 4200 | |
| 4201 bool _isLast; | |
| 4202 | 3919 |
| 4203 /** | 3920 /** |
| 4204 * The id associated with the completion. | 3921 * The files that are to be a priority for analysis. |
| 4205 */ | 3922 */ |
| 4206 String get id => _id; | 3923 List<String> get files => _files; |
| 4207 | 3924 |
| 4208 /** | 3925 /** |
| 4209 * The id associated with the completion. | 3926 * The files that are to be a priority for analysis. |
| 4210 */ | 3927 */ |
| 4211 void set id(String value) { | 3928 void set files(List<String> value) { |
| 4212 assert(value != null); | 3929 assert(value != null); |
| 4213 this._id = value; | 3930 this._files = value; |
| 4214 } | 3931 } |
| 4215 | 3932 |
| 4216 /** | 3933 AnalysisSetPriorityFilesParams(List<String> files) { |
| 4217 * The offset of the start of the text to be replaced. This will be different | 3934 this.files = files; |
| 4218 * than the offset used to request the completion suggestions if there was a | |
| 4219 * portion of an identifier before the original offset. In particular, the | |
| 4220 * replacementOffset will be the offset of the beginning of said identifier. | |
| 4221 */ | |
| 4222 int get replacementOffset => _replacementOffset; | |
| 4223 | |
| 4224 /** | |
| 4225 * The offset of the start of the text to be replaced. This will be different | |
| 4226 * than the offset used to request the completion suggestions if there was a | |
| 4227 * portion of an identifier before the original offset. In particular, the | |
| 4228 * replacementOffset will be the offset of the beginning of said identifier. | |
| 4229 */ | |
| 4230 void set replacementOffset(int value) { | |
| 4231 assert(value != null); | |
| 4232 this._replacementOffset = value; | |
| 4233 } | 3935 } |
| 4234 | 3936 |
| 4235 /** | 3937 factory AnalysisSetPriorityFilesParams.fromJson( |
| 4236 * The length of the text to be replaced if the remainder of the identifier | |
| 4237 * containing the cursor is to be replaced when the suggestion is applied | |
| 4238 * (that is, the number of characters in the existing identifier). | |
| 4239 */ | |
| 4240 int get replacementLength => _replacementLength; | |
| 4241 | |
| 4242 /** | |
| 4243 * The length of the text to be replaced if the remainder of the identifier | |
| 4244 * containing the cursor is to be replaced when the suggestion is applied | |
| 4245 * (that is, the number of characters in the existing identifier). | |
| 4246 */ | |
| 4247 void set replacementLength(int value) { | |
| 4248 assert(value != null); | |
| 4249 this._replacementLength = value; | |
| 4250 } | |
| 4251 | |
| 4252 /** | |
| 4253 * The completion suggestions being reported. The notification contains all | |
| 4254 * possible completions at the requested cursor position, even those that do | |
| 4255 * not match the characters the user has already typed. This allows the | |
| 4256 * client to respond to further keystrokes from the user without having to | |
| 4257 * make additional requests. | |
| 4258 */ | |
| 4259 List<CompletionSuggestion> get results => _results; | |
| 4260 | |
| 4261 /** | |
| 4262 * The completion suggestions being reported. The notification contains all | |
| 4263 * possible completions at the requested cursor position, even those that do | |
| 4264 * not match the characters the user has already typed. This allows the | |
| 4265 * client to respond to further keystrokes from the user without having to | |
| 4266 * make additional requests. | |
| 4267 */ | |
| 4268 void set results(List<CompletionSuggestion> value) { | |
| 4269 assert(value != null); | |
| 4270 this._results = value; | |
| 4271 } | |
| 4272 | |
| 4273 /** | |
| 4274 * True if this is that last set of results that will be returned for the | |
| 4275 * indicated completion. | |
| 4276 */ | |
| 4277 bool get isLast => _isLast; | |
| 4278 | |
| 4279 /** | |
| 4280 * True if this is that last set of results that will be returned for the | |
| 4281 * indicated completion. | |
| 4282 */ | |
| 4283 void set isLast(bool value) { | |
| 4284 assert(value != null); | |
| 4285 this._isLast = value; | |
| 4286 } | |
| 4287 | |
| 4288 CompletionResultsParams(String id, int replacementOffset, | |
| 4289 int replacementLength, List<CompletionSuggestion> results, bool isLast) { | |
| 4290 this.id = id; | |
| 4291 this.replacementOffset = replacementOffset; | |
| 4292 this.replacementLength = replacementLength; | |
| 4293 this.results = results; | |
| 4294 this.isLast = isLast; | |
| 4295 } | |
| 4296 | |
| 4297 factory CompletionResultsParams.fromJson( | |
| 4298 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 3938 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 4299 if (json == null) { | 3939 if (json == null) { |
| 4300 json = {}; | 3940 json = {}; |
| 4301 } | 3941 } |
| 4302 if (json is Map) { | 3942 if (json is Map) { |
| 4303 String id; | 3943 List<String> files; |
| 4304 if (json.containsKey("id")) { | 3944 if (json.containsKey("files")) { |
| 4305 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | 3945 files = jsonDecoder.decodeList( |
| 3946 jsonPath + ".files", json["files"], jsonDecoder.decodeString); |
| 4306 } else { | 3947 } else { |
| 4307 throw jsonDecoder.missingKey(jsonPath, "id"); | 3948 throw jsonDecoder.mismatch(jsonPath, "files"); |
| 4308 } | 3949 } |
| 4309 int replacementOffset; | 3950 return new AnalysisSetPriorityFilesParams(files); |
| 4310 if (json.containsKey("replacementOffset")) { | |
| 4311 replacementOffset = jsonDecoder.decodeInt( | |
| 4312 jsonPath + ".replacementOffset", json["replacementOffset"]); | |
| 4313 } else { | |
| 4314 throw jsonDecoder.missingKey(jsonPath, "replacementOffset"); | |
| 4315 } | |
| 4316 int replacementLength; | |
| 4317 if (json.containsKey("replacementLength")) { | |
| 4318 replacementLength = jsonDecoder.decodeInt( | |
| 4319 jsonPath + ".replacementLength", json["replacementLength"]); | |
| 4320 } else { | |
| 4321 throw jsonDecoder.missingKey(jsonPath, "replacementLength"); | |
| 4322 } | |
| 4323 List<CompletionSuggestion> results; | |
| 4324 if (json.containsKey("results")) { | |
| 4325 results = jsonDecoder.decodeList( | |
| 4326 jsonPath + ".results", | |
| 4327 json["results"], | |
| 4328 (String jsonPath, Object json) => | |
| 4329 new CompletionSuggestion.fromJson(jsonDecoder, jsonPath, json)); | |
| 4330 } else { | |
| 4331 throw jsonDecoder.missingKey(jsonPath, "results"); | |
| 4332 } | |
| 4333 bool isLast; | |
| 4334 if (json.containsKey("isLast")) { | |
| 4335 isLast = jsonDecoder.decodeBool(jsonPath + ".isLast", json["isLast"]); | |
| 4336 } else { | |
| 4337 throw jsonDecoder.missingKey(jsonPath, "isLast"); | |
| 4338 } | |
| 4339 return new CompletionResultsParams( | |
| 4340 id, replacementOffset, replacementLength, results, isLast); | |
| 4341 } else { | 3951 } else { |
| 4342 throw jsonDecoder.mismatch(jsonPath, "completion.results params", json); | 3952 throw jsonDecoder.mismatch( |
| 3953 jsonPath, "analysis.setPriorityFiles params", json); |
| 4343 } | 3954 } |
| 4344 } | 3955 } |
| 4345 | 3956 |
| 4346 factory CompletionResultsParams.fromNotification(Notification notification) { | 3957 factory AnalysisSetPriorityFilesParams.fromRequest(Request request) { |
| 4347 return new CompletionResultsParams.fromJson( | 3958 return new AnalysisSetPriorityFilesParams.fromJson( |
| 4348 new ResponseDecoder(null), "params", notification._params); | 3959 new RequestDecoder(request), "params", request.params); |
| 4349 } | 3960 } |
| 4350 | 3961 |
| 3962 @override |
| 4351 Map<String, dynamic> toJson() { | 3963 Map<String, dynamic> toJson() { |
| 4352 Map<String, dynamic> result = {}; | 3964 Map<String, dynamic> result = {}; |
| 4353 result["id"] = id; | 3965 result["files"] = files; |
| 4354 result["replacementOffset"] = replacementOffset; | |
| 4355 result["replacementLength"] = replacementLength; | |
| 4356 result["results"] = | |
| 4357 results.map((CompletionSuggestion value) => value.toJson()).toList(); | |
| 4358 result["isLast"] = isLast; | |
| 4359 return result; | 3966 return result; |
| 4360 } | 3967 } |
| 4361 | 3968 |
| 4362 Notification toNotification() { | 3969 @override |
| 4363 return new Notification("completion.results", toJson()); | 3970 Request toRequest(String id) { |
| 3971 return new Request(id, "analysis.setPriorityFiles", toJson()); |
| 4364 } | 3972 } |
| 4365 | 3973 |
| 4366 @override | 3974 @override |
| 4367 String toString() => JSON.encode(toJson()); | 3975 String toString() => JSON.encode(toJson()); |
| 4368 | 3976 |
| 4369 @override | 3977 @override |
| 4370 bool operator ==(other) { | 3978 bool operator ==(other) { |
| 4371 if (other is CompletionResultsParams) { | 3979 if (other is AnalysisSetPriorityFilesParams) { |
| 4372 return id == other.id && | 3980 return listEqual(files, other.files, (String a, String b) => a == b); |
| 4373 replacementOffset == other.replacementOffset && | |
| 4374 replacementLength == other.replacementLength && | |
| 4375 listEqual(results, other.results, | |
| 4376 (CompletionSuggestion a, CompletionSuggestion b) => a == b) && | |
| 4377 isLast == other.isLast; | |
| 4378 } | 3981 } |
| 4379 return false; | 3982 return false; |
| 4380 } | 3983 } |
| 4381 | 3984 |
| 4382 @override | 3985 @override |
| 4383 int get hashCode { | 3986 int get hashCode { |
| 4384 int hash = 0; | 3987 int hash = 0; |
| 4385 hash = JenkinsSmiHash.combine(hash, id.hashCode); | 3988 hash = JenkinsSmiHash.combine(hash, files.hashCode); |
| 4386 hash = JenkinsSmiHash.combine(hash, replacementOffset.hashCode); | |
| 4387 hash = JenkinsSmiHash.combine(hash, replacementLength.hashCode); | |
| 4388 hash = JenkinsSmiHash.combine(hash, results.hashCode); | |
| 4389 hash = JenkinsSmiHash.combine(hash, isLast.hashCode); | |
| 4390 return JenkinsSmiHash.finish(hash); | 3989 return JenkinsSmiHash.finish(hash); |
| 4391 } | 3990 } |
| 4392 } | 3991 } |
| 4393 | 3992 |
| 4394 /** | 3993 /** |
| 4395 * search.findElementReferences params | 3994 * analysis.setPriorityFiles result |
| 3995 * |
| 3996 * Clients may not extend, implement or mix-in this class. |
| 3997 */ |
| 3998 class AnalysisSetPriorityFilesResult implements ResponseResult { |
| 3999 @override |
| 4000 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 4001 |
| 4002 @override |
| 4003 Response toResponse(String id) { |
| 4004 return new Response(id, result: null); |
| 4005 } |
| 4006 |
| 4007 @override |
| 4008 bool operator ==(other) { |
| 4009 if (other is AnalysisSetPriorityFilesResult) { |
| 4010 return true; |
| 4011 } |
| 4012 return false; |
| 4013 } |
| 4014 |
| 4015 @override |
| 4016 int get hashCode { |
| 4017 return 330050055; |
| 4018 } |
| 4019 } |
| 4020 |
| 4021 /** |
| 4022 * analysis.setSubscriptions params |
| 4396 * | 4023 * |
| 4397 * { | 4024 * { |
| 4398 * "file": FilePath | 4025 * "subscriptions": Map<AnalysisService, List<FilePath>> |
| 4399 * "offset": int | |
| 4400 * "includePotential": bool | |
| 4401 * } | 4026 * } |
| 4402 * | 4027 * |
| 4403 * Clients may not extend, implement or mix-in this class. | 4028 * Clients may not extend, implement or mix-in this class. |
| 4404 */ | 4029 */ |
| 4405 class SearchFindElementReferencesParams implements HasToJson { | 4030 class AnalysisSetSubscriptionsParams implements RequestParams { |
| 4406 String _file; | 4031 Map<AnalysisService, List<String>> _subscriptions; |
| 4407 | |
| 4408 int _offset; | |
| 4409 | |
| 4410 bool _includePotential; | |
| 4411 | 4032 |
| 4412 /** | 4033 /** |
| 4413 * The file containing the declaration of or reference to the element used to | 4034 * A table mapping services to a list of the files being subscribed to the |
| 4414 * define the search. | 4035 * service. |
| 4415 */ | 4036 */ |
| 4416 String get file => _file; | 4037 Map<AnalysisService, List<String>> get subscriptions => _subscriptions; |
| 4417 | 4038 |
| 4418 /** | 4039 /** |
| 4419 * The file containing the declaration of or reference to the element used to | 4040 * A table mapping services to a list of the files being subscribed to the |
| 4420 * define the search. | 4041 * service. |
| 4421 */ | 4042 */ |
| 4422 void set file(String value) { | 4043 void set subscriptions(Map<AnalysisService, List<String>> value) { |
| 4423 assert(value != null); | 4044 assert(value != null); |
| 4424 this._file = value; | 4045 this._subscriptions = value; |
| 4425 } | 4046 } |
| 4426 | 4047 |
| 4427 /** | 4048 AnalysisSetSubscriptionsParams( |
| 4428 * The offset within the file of the declaration of or reference to the | 4049 Map<AnalysisService, List<String>> subscriptions) { |
| 4429 * element. | 4050 this.subscriptions = subscriptions; |
| 4430 */ | |
| 4431 int get offset => _offset; | |
| 4432 | |
| 4433 /** | |
| 4434 * The offset within the file of the declaration of or reference to the | |
| 4435 * element. | |
| 4436 */ | |
| 4437 void set offset(int value) { | |
| 4438 assert(value != null); | |
| 4439 this._offset = value; | |
| 4440 } | 4051 } |
| 4441 | 4052 |
| 4442 /** | 4053 factory AnalysisSetSubscriptionsParams.fromJson( |
| 4443 * True if potential matches are to be included in the results. | |
| 4444 */ | |
| 4445 bool get includePotential => _includePotential; | |
| 4446 | |
| 4447 /** | |
| 4448 * True if potential matches are to be included in the results. | |
| 4449 */ | |
| 4450 void set includePotential(bool value) { | |
| 4451 assert(value != null); | |
| 4452 this._includePotential = value; | |
| 4453 } | |
| 4454 | |
| 4455 SearchFindElementReferencesParams( | |
| 4456 String file, int offset, bool includePotential) { | |
| 4457 this.file = file; | |
| 4458 this.offset = offset; | |
| 4459 this.includePotential = includePotential; | |
| 4460 } | |
| 4461 | |
| 4462 factory SearchFindElementReferencesParams.fromJson( | |
| 4463 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 4054 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 4464 if (json == null) { | 4055 if (json == null) { |
| 4465 json = {}; | 4056 json = {}; |
| 4466 } | 4057 } |
| 4467 if (json is Map) { | 4058 if (json is Map) { |
| 4468 String file; | 4059 Map<AnalysisService, List<String>> subscriptions; |
| 4469 if (json.containsKey("file")) { | 4060 if (json.containsKey("subscriptions")) { |
| 4470 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 4061 subscriptions = jsonDecoder.decodeMap( |
| 4062 jsonPath + ".subscriptions", json["subscriptions"], |
| 4063 keyDecoder: (String jsonPath, Object json) => |
| 4064 new AnalysisService.fromJson(jsonDecoder, jsonPath, json), |
| 4065 valueDecoder: (String jsonPath, Object json) => jsonDecoder |
| 4066 .decodeList(jsonPath, json, jsonDecoder.decodeString)); |
| 4471 } else { | 4067 } else { |
| 4472 throw jsonDecoder.missingKey(jsonPath, "file"); | 4068 throw jsonDecoder.mismatch(jsonPath, "subscriptions"); |
| 4473 } | 4069 } |
| 4474 int offset; | 4070 return new AnalysisSetSubscriptionsParams(subscriptions); |
| 4475 if (json.containsKey("offset")) { | |
| 4476 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
| 4477 } else { | |
| 4478 throw jsonDecoder.missingKey(jsonPath, "offset"); | |
| 4479 } | |
| 4480 bool includePotential; | |
| 4481 if (json.containsKey("includePotential")) { | |
| 4482 includePotential = jsonDecoder.decodeBool( | |
| 4483 jsonPath + ".includePotential", json["includePotential"]); | |
| 4484 } else { | |
| 4485 throw jsonDecoder.missingKey(jsonPath, "includePotential"); | |
| 4486 } | |
| 4487 return new SearchFindElementReferencesParams( | |
| 4488 file, offset, includePotential); | |
| 4489 } else { | 4071 } else { |
| 4490 throw jsonDecoder.mismatch( | 4072 throw jsonDecoder.mismatch( |
| 4491 jsonPath, "search.findElementReferences params", json); | 4073 jsonPath, "analysis.setSubscriptions params", json); |
| 4492 } | 4074 } |
| 4493 } | 4075 } |
| 4494 | 4076 |
| 4495 factory SearchFindElementReferencesParams.fromRequest(Request request) { | 4077 factory AnalysisSetSubscriptionsParams.fromRequest(Request request) { |
| 4496 return new SearchFindElementReferencesParams.fromJson( | 4078 return new AnalysisSetSubscriptionsParams.fromJson( |
| 4497 new RequestDecoder(request), "params", request._params); | 4079 new RequestDecoder(request), "params", request.params); |
| 4498 } | 4080 } |
| 4499 | 4081 |
| 4082 @override |
| 4500 Map<String, dynamic> toJson() { | 4083 Map<String, dynamic> toJson() { |
| 4501 Map<String, dynamic> result = {}; | 4084 Map<String, dynamic> result = {}; |
| 4502 result["file"] = file; | 4085 result["subscriptions"] = mapMap(subscriptions, |
| 4503 result["offset"] = offset; | 4086 keyCallback: (AnalysisService value) => value.toJson()); |
| 4504 result["includePotential"] = includePotential; | |
| 4505 return result; | 4087 return result; |
| 4506 } | 4088 } |
| 4507 | 4089 |
| 4090 @override |
| 4508 Request toRequest(String id) { | 4091 Request toRequest(String id) { |
| 4509 return new Request(id, "search.findElementReferences", toJson()); | 4092 return new Request(id, "analysis.setSubscriptions", toJson()); |
| 4510 } | 4093 } |
| 4511 | 4094 |
| 4512 @override | 4095 @override |
| 4513 String toString() => JSON.encode(toJson()); | 4096 String toString() => JSON.encode(toJson()); |
| 4514 | 4097 |
| 4515 @override | 4098 @override |
| 4516 bool operator ==(other) { | 4099 bool operator ==(other) { |
| 4517 if (other is SearchFindElementReferencesParams) { | 4100 if (other is AnalysisSetSubscriptionsParams) { |
| 4518 return file == other.file && | 4101 return mapEqual( |
| 4519 offset == other.offset && | 4102 subscriptions, |
| 4520 includePotential == other.includePotential; | 4103 other.subscriptions, |
| 4104 (List<String> a, List<String> b) => |
| 4105 listEqual(a, b, (String a, String b) => a == b)); |
| 4521 } | 4106 } |
| 4522 return false; | 4107 return false; |
| 4523 } | 4108 } |
| 4524 | 4109 |
| 4525 @override | 4110 @override |
| 4526 int get hashCode { | 4111 int get hashCode { |
| 4527 int hash = 0; | 4112 int hash = 0; |
| 4528 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 4113 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode); |
| 4529 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
| 4530 hash = JenkinsSmiHash.combine(hash, includePotential.hashCode); | |
| 4531 return JenkinsSmiHash.finish(hash); | 4114 return JenkinsSmiHash.finish(hash); |
| 4532 } | 4115 } |
| 4533 } | 4116 } |
| 4534 | 4117 |
| 4535 /** | 4118 /** |
| 4536 * search.findElementReferences result | 4119 * analysis.setSubscriptions result |
| 4120 * |
| 4121 * Clients may not extend, implement or mix-in this class. |
| 4122 */ |
| 4123 class AnalysisSetSubscriptionsResult implements ResponseResult { |
| 4124 @override |
| 4125 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 4126 |
| 4127 @override |
| 4128 Response toResponse(String id) { |
| 4129 return new Response(id, result: null); |
| 4130 } |
| 4131 |
| 4132 @override |
| 4133 bool operator ==(other) { |
| 4134 if (other is AnalysisSetSubscriptionsResult) { |
| 4135 return true; |
| 4136 } |
| 4137 return false; |
| 4138 } |
| 4139 |
| 4140 @override |
| 4141 int get hashCode { |
| 4142 return 218088493; |
| 4143 } |
| 4144 } |
| 4145 |
| 4146 /** |
| 4147 * AnalysisStatus |
| 4537 * | 4148 * |
| 4538 * { | 4149 * { |
| 4539 * "id": optional SearchId | 4150 * "isAnalyzing": bool |
| 4540 * "element": optional Element | 4151 * "analysisTarget": optional String |
| 4541 * } | 4152 * } |
| 4542 * | 4153 * |
| 4543 * Clients may not extend, implement or mix-in this class. | 4154 * Clients may not extend, implement or mix-in this class. |
| 4544 */ | 4155 */ |
| 4545 class SearchFindElementReferencesResult implements HasToJson { | 4156 class AnalysisStatus implements HasToJson { |
| 4546 String _id; | 4157 bool _isAnalyzing; |
| 4547 | 4158 |
| 4548 Element _element; | 4159 String _analysisTarget; |
| 4549 | 4160 |
| 4550 /** | 4161 /** |
| 4551 * The identifier used to associate results with this search request. | 4162 * True if analysis is currently being performed. |
| 4552 * | |
| 4553 * If no element was found at the given location, this field will be absent, | |
| 4554 * and no results will be reported via the search.results notification. | |
| 4555 */ | 4163 */ |
| 4556 String get id => _id; | 4164 bool get isAnalyzing => _isAnalyzing; |
| 4557 | 4165 |
| 4558 /** | 4166 /** |
| 4559 * The identifier used to associate results with this search request. | 4167 * True if analysis is currently being performed. |
| 4560 * | |
| 4561 * If no element was found at the given location, this field will be absent, | |
| 4562 * and no results will be reported via the search.results notification. | |
| 4563 */ | 4168 */ |
| 4564 void set id(String value) { | 4169 void set isAnalyzing(bool value) { |
| 4565 this._id = value; | 4170 assert(value != null); |
| 4171 this._isAnalyzing = value; |
| 4566 } | 4172 } |
| 4567 | 4173 |
| 4568 /** | 4174 /** |
| 4569 * The element referenced or defined at the given offset and whose references | 4175 * The name of the current target of analysis. This field is omitted if |
| 4570 * will be returned in the search results. | 4176 * analyzing is false. |
| 4571 * | |
| 4572 * If no element was found at the given location, this field will be absent. | |
| 4573 */ | 4177 */ |
| 4574 Element get element => _element; | 4178 String get analysisTarget => _analysisTarget; |
| 4575 | 4179 |
| 4576 /** | 4180 /** |
| 4577 * The element referenced or defined at the given offset and whose references | 4181 * The name of the current target of analysis. This field is omitted if |
| 4578 * will be returned in the search results. | 4182 * analyzing is false. |
| 4579 * | |
| 4580 * If no element was found at the given location, this field will be absent. | |
| 4581 */ | 4183 */ |
| 4582 void set element(Element value) { | 4184 void set analysisTarget(String value) { |
| 4583 this._element = value; | 4185 this._analysisTarget = value; |
| 4584 } | 4186 } |
| 4585 | 4187 |
| 4586 SearchFindElementReferencesResult({String id, Element element}) { | 4188 AnalysisStatus(bool isAnalyzing, {String analysisTarget}) { |
| 4587 this.id = id; | 4189 this.isAnalyzing = isAnalyzing; |
| 4588 this.element = element; | 4190 this.analysisTarget = analysisTarget; |
| 4589 } | 4191 } |
| 4590 | 4192 |
| 4591 factory SearchFindElementReferencesResult.fromJson( | 4193 factory AnalysisStatus.fromJson( |
| 4592 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 4194 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 4593 if (json == null) { | 4195 if (json == null) { |
| 4594 json = {}; | 4196 json = {}; |
| 4595 } | 4197 } |
| 4596 if (json is Map) { | 4198 if (json is Map) { |
| 4597 String id; | 4199 bool isAnalyzing; |
| 4598 if (json.containsKey("id")) { | 4200 if (json.containsKey("isAnalyzing")) { |
| 4599 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | 4201 isAnalyzing = jsonDecoder.decodeBool( |
| 4202 jsonPath + ".isAnalyzing", json["isAnalyzing"]); |
| 4203 } else { |
| 4204 throw jsonDecoder.mismatch(jsonPath, "isAnalyzing"); |
| 4600 } | 4205 } |
| 4601 Element element; | 4206 String analysisTarget; |
| 4602 if (json.containsKey("element")) { | 4207 if (json.containsKey("analysisTarget")) { |
| 4603 element = new Element.fromJson( | 4208 analysisTarget = jsonDecoder.decodeString( |
| 4604 jsonDecoder, jsonPath + ".element", json["element"]); | 4209 jsonPath + ".analysisTarget", json["analysisTarget"]); |
| 4605 } | 4210 } |
| 4606 return new SearchFindElementReferencesResult(id: id, element: element); | 4211 return new AnalysisStatus(isAnalyzing, analysisTarget: analysisTarget); |
| 4607 } else { | 4212 } else { |
| 4608 throw jsonDecoder.mismatch( | 4213 throw jsonDecoder.mismatch(jsonPath, "AnalysisStatus", json); |
| 4609 jsonPath, "search.findElementReferences result", json); | |
| 4610 } | 4214 } |
| 4611 } | 4215 } |
| 4612 | 4216 |
| 4613 factory SearchFindElementReferencesResult.fromResponse(Response response) { | 4217 @override |
| 4614 return new SearchFindElementReferencesResult.fromJson( | |
| 4615 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | |
| 4616 "result", | |
| 4617 response._result); | |
| 4618 } | |
| 4619 | |
| 4620 Map<String, dynamic> toJson() { | 4218 Map<String, dynamic> toJson() { |
| 4621 Map<String, dynamic> result = {}; | 4219 Map<String, dynamic> result = {}; |
| 4622 if (id != null) { | 4220 result["isAnalyzing"] = isAnalyzing; |
| 4623 result["id"] = id; | 4221 if (analysisTarget != null) { |
| 4624 } | 4222 result["analysisTarget"] = analysisTarget; |
| 4625 if (element != null) { | |
| 4626 result["element"] = element.toJson(); | |
| 4627 } | 4223 } |
| 4628 return result; | 4224 return result; |
| 4629 } | 4225 } |
| 4630 | 4226 |
| 4631 Response toResponse(String id) { | |
| 4632 return new Response(id, result: toJson()); | |
| 4633 } | |
| 4634 | |
| 4635 @override | 4227 @override |
| 4636 String toString() => JSON.encode(toJson()); | 4228 String toString() => JSON.encode(toJson()); |
| 4637 | 4229 |
| 4638 @override | 4230 @override |
| 4639 bool operator ==(other) { | 4231 bool operator ==(other) { |
| 4640 if (other is SearchFindElementReferencesResult) { | 4232 if (other is AnalysisStatus) { |
| 4641 return id == other.id && element == other.element; | 4233 return isAnalyzing == other.isAnalyzing && |
| 4234 analysisTarget == other.analysisTarget; |
| 4642 } | 4235 } |
| 4643 return false; | 4236 return false; |
| 4644 } | 4237 } |
| 4645 | 4238 |
| 4646 @override | 4239 @override |
| 4647 int get hashCode { | 4240 int get hashCode { |
| 4648 int hash = 0; | 4241 int hash = 0; |
| 4649 hash = JenkinsSmiHash.combine(hash, id.hashCode); | 4242 hash = JenkinsSmiHash.combine(hash, isAnalyzing.hashCode); |
| 4650 hash = JenkinsSmiHash.combine(hash, element.hashCode); | 4243 hash = JenkinsSmiHash.combine(hash, analysisTarget.hashCode); |
| 4651 return JenkinsSmiHash.finish(hash); | 4244 return JenkinsSmiHash.finish(hash); |
| 4652 } | 4245 } |
| 4653 } | 4246 } |
| 4654 | 4247 |
| 4655 /** | 4248 /** |
| 4656 * search.findMemberDeclarations params | 4249 * analysis.updateContent params |
| 4657 * | 4250 * |
| 4658 * { | 4251 * { |
| 4659 * "name": String | 4252 * "files": Map<FilePath, AddContentOverlay | ChangeContentOverlay | RemoveCon
tentOverlay> |
| 4660 * } | 4253 * } |
| 4661 * | 4254 * |
| 4662 * Clients may not extend, implement or mix-in this class. | 4255 * Clients may not extend, implement or mix-in this class. |
| 4663 */ | 4256 */ |
| 4664 class SearchFindMemberDeclarationsParams implements HasToJson { | 4257 class AnalysisUpdateContentParams implements RequestParams { |
| 4665 String _name; | 4258 Map<String, dynamic> _files; |
| 4666 | 4259 |
| 4667 /** | 4260 /** |
| 4668 * The name of the declarations to be found. | 4261 * A table mapping the files whose content has changed to a description of |
| 4262 * the content change. |
| 4669 */ | 4263 */ |
| 4670 String get name => _name; | 4264 Map<String, dynamic> get files => _files; |
| 4671 | 4265 |
| 4672 /** | 4266 /** |
| 4673 * The name of the declarations to be found. | 4267 * A table mapping the files whose content has changed to a description of |
| 4268 * the content change. |
| 4674 */ | 4269 */ |
| 4675 void set name(String value) { | 4270 void set files(Map<String, dynamic> value) { |
| 4676 assert(value != null); | 4271 assert(value != null); |
| 4677 this._name = value; | 4272 this._files = value; |
| 4678 } | 4273 } |
| 4679 | 4274 |
| 4680 SearchFindMemberDeclarationsParams(String name) { | 4275 AnalysisUpdateContentParams(Map<String, dynamic> files) { |
| 4681 this.name = name; | 4276 this.files = files; |
| 4682 } | 4277 } |
| 4683 | 4278 |
| 4684 factory SearchFindMemberDeclarationsParams.fromJson( | 4279 factory AnalysisUpdateContentParams.fromJson( |
| 4685 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 4280 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 4686 if (json == null) { | 4281 if (json == null) { |
| 4687 json = {}; | 4282 json = {}; |
| 4688 } | 4283 } |
| 4689 if (json is Map) { | 4284 if (json is Map) { |
| 4690 String name; | 4285 Map<String, dynamic> files; |
| 4691 if (json.containsKey("name")) { | 4286 if (json.containsKey("files")) { |
| 4692 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | 4287 files = jsonDecoder.decodeMap(jsonPath + ".files", json["files"], |
| 4288 valueDecoder: (String jsonPath, Object json) => |
| 4289 jsonDecoder.decodeUnion(jsonPath, json, "type", { |
| 4290 "add": (String jsonPath, Object json) => |
| 4291 new AddContentOverlay.fromJson( |
| 4292 jsonDecoder, jsonPath, json), |
| 4293 "change": (String jsonPath, Object json) => |
| 4294 new ChangeContentOverlay.fromJson( |
| 4295 jsonDecoder, jsonPath, json), |
| 4296 "remove": (String jsonPath, Object json) => |
| 4297 new RemoveContentOverlay.fromJson( |
| 4298 jsonDecoder, jsonPath, json) |
| 4299 })); |
| 4693 } else { | 4300 } else { |
| 4694 throw jsonDecoder.missingKey(jsonPath, "name"); | 4301 throw jsonDecoder.mismatch(jsonPath, "files"); |
| 4695 } | 4302 } |
| 4696 return new SearchFindMemberDeclarationsParams(name); | 4303 return new AnalysisUpdateContentParams(files); |
| 4697 } else { | 4304 } else { |
| 4698 throw jsonDecoder.mismatch( | 4305 throw jsonDecoder.mismatch( |
| 4699 jsonPath, "search.findMemberDeclarations params", json); | 4306 jsonPath, "analysis.updateContent params", json); |
| 4700 } | 4307 } |
| 4701 } | 4308 } |
| 4702 | 4309 |
| 4703 factory SearchFindMemberDeclarationsParams.fromRequest(Request request) { | 4310 factory AnalysisUpdateContentParams.fromRequest(Request request) { |
| 4704 return new SearchFindMemberDeclarationsParams.fromJson( | 4311 return new AnalysisUpdateContentParams.fromJson( |
| 4705 new RequestDecoder(request), "params", request._params); | 4312 new RequestDecoder(request), "params", request.params); |
| 4706 } | 4313 } |
| 4707 | 4314 |
| 4315 @override |
| 4708 Map<String, dynamic> toJson() { | 4316 Map<String, dynamic> toJson() { |
| 4709 Map<String, dynamic> result = {}; | 4317 Map<String, dynamic> result = {}; |
| 4710 result["name"] = name; | 4318 result["files"] = |
| 4319 mapMap(files, valueCallback: (dynamic value) => value.toJson()); |
| 4711 return result; | 4320 return result; |
| 4712 } | 4321 } |
| 4713 | 4322 |
| 4323 @override |
| 4714 Request toRequest(String id) { | 4324 Request toRequest(String id) { |
| 4715 return new Request(id, "search.findMemberDeclarations", toJson()); | 4325 return new Request(id, "analysis.updateContent", toJson()); |
| 4716 } | 4326 } |
| 4717 | 4327 |
| 4718 @override | 4328 @override |
| 4719 String toString() => JSON.encode(toJson()); | 4329 String toString() => JSON.encode(toJson()); |
| 4720 | 4330 |
| 4721 @override | 4331 @override |
| 4722 bool operator ==(other) { | 4332 bool operator ==(other) { |
| 4723 if (other is SearchFindMemberDeclarationsParams) { | 4333 if (other is AnalysisUpdateContentParams) { |
| 4724 return name == other.name; | 4334 return mapEqual(files, other.files, (dynamic a, dynamic b) => a == b); |
| 4725 } | 4335 } |
| 4726 return false; | 4336 return false; |
| 4727 } | 4337 } |
| 4728 | 4338 |
| 4729 @override | 4339 @override |
| 4730 int get hashCode { | 4340 int get hashCode { |
| 4731 int hash = 0; | 4341 int hash = 0; |
| 4732 hash = JenkinsSmiHash.combine(hash, name.hashCode); | 4342 hash = JenkinsSmiHash.combine(hash, files.hashCode); |
| 4733 return JenkinsSmiHash.finish(hash); | 4343 return JenkinsSmiHash.finish(hash); |
| 4734 } | 4344 } |
| 4735 } | 4345 } |
| 4736 | 4346 |
| 4737 /** | 4347 /** |
| 4738 * search.findMemberDeclarations result | 4348 * analysis.updateContent result |
| 4739 * | 4349 * |
| 4740 * { | 4350 * { |
| 4741 * "id": SearchId | |
| 4742 * } | 4351 * } |
| 4743 * | 4352 * |
| 4744 * Clients may not extend, implement or mix-in this class. | 4353 * Clients may not extend, implement or mix-in this class. |
| 4745 */ | 4354 */ |
| 4746 class SearchFindMemberDeclarationsResult implements HasToJson { | 4355 class AnalysisUpdateContentResult implements ResponseResult { |
| 4747 String _id; | 4356 AnalysisUpdateContentResult(); |
| 4748 | 4357 |
| 4749 /** | 4358 factory AnalysisUpdateContentResult.fromJson( |
| 4750 * The identifier used to associate results with this search request. | |
| 4751 */ | |
| 4752 String get id => _id; | |
| 4753 | |
| 4754 /** | |
| 4755 * The identifier used to associate results with this search request. | |
| 4756 */ | |
| 4757 void set id(String value) { | |
| 4758 assert(value != null); | |
| 4759 this._id = value; | |
| 4760 } | |
| 4761 | |
| 4762 SearchFindMemberDeclarationsResult(String id) { | |
| 4763 this.id = id; | |
| 4764 } | |
| 4765 | |
| 4766 factory SearchFindMemberDeclarationsResult.fromJson( | |
| 4767 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 4359 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 4768 if (json == null) { | 4360 if (json == null) { |
| 4769 json = {}; | 4361 json = {}; |
| 4770 } | 4362 } |
| 4771 if (json is Map) { | 4363 if (json is Map) { |
| 4772 String id; | 4364 return new AnalysisUpdateContentResult(); |
| 4773 if (json.containsKey("id")) { | |
| 4774 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | |
| 4775 } else { | |
| 4776 throw jsonDecoder.missingKey(jsonPath, "id"); | |
| 4777 } | |
| 4778 return new SearchFindMemberDeclarationsResult(id); | |
| 4779 } else { | 4365 } else { |
| 4780 throw jsonDecoder.mismatch( | 4366 throw jsonDecoder.mismatch( |
| 4781 jsonPath, "search.findMemberDeclarations result", json); | 4367 jsonPath, "analysis.updateContent result", json); |
| 4782 } | 4368 } |
| 4783 } | 4369 } |
| 4784 | 4370 |
| 4785 factory SearchFindMemberDeclarationsResult.fromResponse(Response response) { | 4371 factory AnalysisUpdateContentResult.fromResponse(Response response) { |
| 4786 return new SearchFindMemberDeclarationsResult.fromJson( | 4372 return new AnalysisUpdateContentResult.fromJson( |
| 4787 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 4373 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 4788 "result", | 4374 "result", |
| 4789 response._result); | 4375 response.result); |
| 4790 } | 4376 } |
| 4791 | 4377 |
| 4378 @override |
| 4792 Map<String, dynamic> toJson() { | 4379 Map<String, dynamic> toJson() { |
| 4793 Map<String, dynamic> result = {}; | 4380 Map<String, dynamic> result = {}; |
| 4794 result["id"] = id; | |
| 4795 return result; | 4381 return result; |
| 4796 } | 4382 } |
| 4797 | 4383 |
| 4384 @override |
| 4798 Response toResponse(String id) { | 4385 Response toResponse(String id) { |
| 4799 return new Response(id, result: toJson()); | 4386 return new Response(id, result: toJson()); |
| 4800 } | 4387 } |
| 4801 | 4388 |
| 4802 @override | 4389 @override |
| 4803 String toString() => JSON.encode(toJson()); | 4390 String toString() => JSON.encode(toJson()); |
| 4804 | 4391 |
| 4805 @override | 4392 @override |
| 4806 bool operator ==(other) { | 4393 bool operator ==(other) { |
| 4807 if (other is SearchFindMemberDeclarationsResult) { | 4394 if (other is AnalysisUpdateContentResult) { |
| 4808 return id == other.id; | 4395 return true; |
| 4809 } | 4396 } |
| 4810 return false; | 4397 return false; |
| 4811 } | 4398 } |
| 4812 | 4399 |
| 4813 @override | 4400 @override |
| 4814 int get hashCode { | 4401 int get hashCode { |
| 4815 int hash = 0; | 4402 int hash = 0; |
| 4816 hash = JenkinsSmiHash.combine(hash, id.hashCode); | |
| 4817 return JenkinsSmiHash.finish(hash); | 4403 return JenkinsSmiHash.finish(hash); |
| 4818 } | 4404 } |
| 4819 } | 4405 } |
| 4820 | 4406 |
| 4821 /** | 4407 /** |
| 4822 * search.findMemberReferences params | 4408 * analysis.updateOptions params |
| 4823 * | 4409 * |
| 4824 * { | 4410 * { |
| 4825 * "name": String | 4411 * "options": AnalysisOptions |
| 4826 * } | 4412 * } |
| 4827 * | 4413 * |
| 4828 * Clients may not extend, implement or mix-in this class. | 4414 * Clients may not extend, implement or mix-in this class. |
| 4829 */ | 4415 */ |
| 4830 class SearchFindMemberReferencesParams implements HasToJson { | 4416 class AnalysisUpdateOptionsParams implements RequestParams { |
| 4831 String _name; | 4417 AnalysisOptions _options; |
| 4832 | 4418 |
| 4833 /** | 4419 /** |
| 4834 * The name of the references to be found. | 4420 * The options that are to be used to control analysis. |
| 4835 */ | 4421 */ |
| 4836 String get name => _name; | 4422 AnalysisOptions get options => _options; |
| 4837 | 4423 |
| 4838 /** | 4424 /** |
| 4839 * The name of the references to be found. | 4425 * The options that are to be used to control analysis. |
| 4840 */ | 4426 */ |
| 4841 void set name(String value) { | 4427 void set options(AnalysisOptions value) { |
| 4842 assert(value != null); | 4428 assert(value != null); |
| 4843 this._name = value; | 4429 this._options = value; |
| 4844 } | 4430 } |
| 4845 | 4431 |
| 4846 SearchFindMemberReferencesParams(String name) { | 4432 AnalysisUpdateOptionsParams(AnalysisOptions options) { |
| 4847 this.name = name; | 4433 this.options = options; |
| 4848 } | 4434 } |
| 4849 | 4435 |
| 4850 factory SearchFindMemberReferencesParams.fromJson( | 4436 factory AnalysisUpdateOptionsParams.fromJson( |
| 4851 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 4437 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 4852 if (json == null) { | 4438 if (json == null) { |
| 4853 json = {}; | 4439 json = {}; |
| 4854 } | 4440 } |
| 4855 if (json is Map) { | 4441 if (json is Map) { |
| 4856 String name; | 4442 AnalysisOptions options; |
| 4857 if (json.containsKey("name")) { | 4443 if (json.containsKey("options")) { |
| 4858 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | 4444 options = new AnalysisOptions.fromJson( |
| 4445 jsonDecoder, jsonPath + ".options", json["options"]); |
| 4859 } else { | 4446 } else { |
| 4860 throw jsonDecoder.missingKey(jsonPath, "name"); | 4447 throw jsonDecoder.mismatch(jsonPath, "options"); |
| 4861 } | 4448 } |
| 4862 return new SearchFindMemberReferencesParams(name); | 4449 return new AnalysisUpdateOptionsParams(options); |
| 4863 } else { | 4450 } else { |
| 4864 throw jsonDecoder.mismatch( | 4451 throw jsonDecoder.mismatch( |
| 4865 jsonPath, "search.findMemberReferences params", json); | 4452 jsonPath, "analysis.updateOptions params", json); |
| 4866 } | 4453 } |
| 4867 } | 4454 } |
| 4868 | 4455 |
| 4869 factory SearchFindMemberReferencesParams.fromRequest(Request request) { | 4456 factory AnalysisUpdateOptionsParams.fromRequest(Request request) { |
| 4870 return new SearchFindMemberReferencesParams.fromJson( | 4457 return new AnalysisUpdateOptionsParams.fromJson( |
| 4871 new RequestDecoder(request), "params", request._params); | 4458 new RequestDecoder(request), "params", request.params); |
| 4872 } | 4459 } |
| 4873 | 4460 |
| 4461 @override |
| 4874 Map<String, dynamic> toJson() { | 4462 Map<String, dynamic> toJson() { |
| 4875 Map<String, dynamic> result = {}; | 4463 Map<String, dynamic> result = {}; |
| 4876 result["name"] = name; | 4464 result["options"] = options.toJson(); |
| 4877 return result; | 4465 return result; |
| 4878 } | 4466 } |
| 4879 | 4467 |
| 4468 @override |
| 4880 Request toRequest(String id) { | 4469 Request toRequest(String id) { |
| 4881 return new Request(id, "search.findMemberReferences", toJson()); | 4470 return new Request(id, "analysis.updateOptions", toJson()); |
| 4882 } | 4471 } |
| 4883 | 4472 |
| 4884 @override | 4473 @override |
| 4885 String toString() => JSON.encode(toJson()); | 4474 String toString() => JSON.encode(toJson()); |
| 4886 | 4475 |
| 4887 @override | 4476 @override |
| 4888 bool operator ==(other) { | 4477 bool operator ==(other) { |
| 4889 if (other is SearchFindMemberReferencesParams) { | 4478 if (other is AnalysisUpdateOptionsParams) { |
| 4890 return name == other.name; | 4479 return options == other.options; |
| 4891 } | 4480 } |
| 4892 return false; | 4481 return false; |
| 4893 } | 4482 } |
| 4894 | 4483 |
| 4895 @override | 4484 @override |
| 4896 int get hashCode { | 4485 int get hashCode { |
| 4897 int hash = 0; | 4486 int hash = 0; |
| 4898 hash = JenkinsSmiHash.combine(hash, name.hashCode); | 4487 hash = JenkinsSmiHash.combine(hash, options.hashCode); |
| 4899 return JenkinsSmiHash.finish(hash); | 4488 return JenkinsSmiHash.finish(hash); |
| 4900 } | 4489 } |
| 4901 } | 4490 } |
| 4902 | 4491 |
| 4903 /** | 4492 /** |
| 4904 * search.findMemberReferences result | 4493 * analysis.updateOptions result |
| 4494 * |
| 4495 * Clients may not extend, implement or mix-in this class. |
| 4496 */ |
| 4497 class AnalysisUpdateOptionsResult implements ResponseResult { |
| 4498 @override |
| 4499 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 4500 |
| 4501 @override |
| 4502 Response toResponse(String id) { |
| 4503 return new Response(id, result: null); |
| 4504 } |
| 4505 |
| 4506 @override |
| 4507 bool operator ==(other) { |
| 4508 if (other is AnalysisUpdateOptionsResult) { |
| 4509 return true; |
| 4510 } |
| 4511 return false; |
| 4512 } |
| 4513 |
| 4514 @override |
| 4515 int get hashCode { |
| 4516 return 179689467; |
| 4517 } |
| 4518 } |
| 4519 |
| 4520 /** |
| 4521 * ChangeContentOverlay |
| 4905 * | 4522 * |
| 4906 * { | 4523 * { |
| 4907 * "id": SearchId | 4524 * "type": "change" |
| 4525 * "edits": List<SourceEdit> |
| 4908 * } | 4526 * } |
| 4909 * | 4527 * |
| 4910 * Clients may not extend, implement or mix-in this class. | 4528 * Clients may not extend, implement or mix-in this class. |
| 4911 */ | 4529 */ |
| 4912 class SearchFindMemberReferencesResult implements HasToJson { | 4530 class ChangeContentOverlay implements HasToJson { |
| 4913 String _id; | 4531 List<SourceEdit> _edits; |
| 4914 | 4532 |
| 4915 /** | 4533 /** |
| 4916 * The identifier used to associate results with this search request. | 4534 * The edits to be applied to the file. |
| 4917 */ | 4535 */ |
| 4918 String get id => _id; | 4536 List<SourceEdit> get edits => _edits; |
| 4919 | 4537 |
| 4920 /** | 4538 /** |
| 4921 * The identifier used to associate results with this search request. | 4539 * The edits to be applied to the file. |
| 4922 */ | 4540 */ |
| 4923 void set id(String value) { | 4541 void set edits(List<SourceEdit> value) { |
| 4924 assert(value != null); | 4542 assert(value != null); |
| 4925 this._id = value; | 4543 this._edits = value; |
| 4926 } | 4544 } |
| 4927 | 4545 |
| 4928 SearchFindMemberReferencesResult(String id) { | 4546 ChangeContentOverlay(List<SourceEdit> edits) { |
| 4929 this.id = id; | 4547 this.edits = edits; |
| 4930 } | 4548 } |
| 4931 | 4549 |
| 4932 factory SearchFindMemberReferencesResult.fromJson( | 4550 factory ChangeContentOverlay.fromJson( |
| 4933 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 4551 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 4934 if (json == null) { | 4552 if (json == null) { |
| 4935 json = {}; | 4553 json = {}; |
| 4936 } | 4554 } |
| 4937 if (json is Map) { | 4555 if (json is Map) { |
| 4938 String id; | 4556 if (json["type"] != "change") { |
| 4939 if (json.containsKey("id")) { | 4557 throw jsonDecoder.mismatch(jsonPath, "equal " + "change", json); |
| 4940 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | 4558 } |
| 4559 List<SourceEdit> edits; |
| 4560 if (json.containsKey("edits")) { |
| 4561 edits = jsonDecoder.decodeList( |
| 4562 jsonPath + ".edits", |
| 4563 json["edits"], |
| 4564 (String jsonPath, Object json) => |
| 4565 new SourceEdit.fromJson(jsonDecoder, jsonPath, json)); |
| 4941 } else { | 4566 } else { |
| 4942 throw jsonDecoder.missingKey(jsonPath, "id"); | 4567 throw jsonDecoder.mismatch(jsonPath, "edits"); |
| 4943 } | 4568 } |
| 4944 return new SearchFindMemberReferencesResult(id); | 4569 return new ChangeContentOverlay(edits); |
| 4945 } else { | 4570 } else { |
| 4946 throw jsonDecoder.mismatch( | 4571 throw jsonDecoder.mismatch(jsonPath, "ChangeContentOverlay", json); |
| 4947 jsonPath, "search.findMemberReferences result", json); | |
| 4948 } | 4572 } |
| 4949 } | 4573 } |
| 4950 | 4574 |
| 4951 factory SearchFindMemberReferencesResult.fromResponse(Response response) { | 4575 @override |
| 4952 return new SearchFindMemberReferencesResult.fromJson( | |
| 4953 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | |
| 4954 "result", | |
| 4955 response._result); | |
| 4956 } | |
| 4957 | |
| 4958 Map<String, dynamic> toJson() { | 4576 Map<String, dynamic> toJson() { |
| 4959 Map<String, dynamic> result = {}; | 4577 Map<String, dynamic> result = {}; |
| 4960 result["id"] = id; | 4578 result["type"] = "change"; |
| 4579 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList(); |
| 4961 return result; | 4580 return result; |
| 4962 } | 4581 } |
| 4963 | 4582 |
| 4964 Response toResponse(String id) { | |
| 4965 return new Response(id, result: toJson()); | |
| 4966 } | |
| 4967 | |
| 4968 @override | 4583 @override |
| 4969 String toString() => JSON.encode(toJson()); | 4584 String toString() => JSON.encode(toJson()); |
| 4970 | 4585 |
| 4971 @override | 4586 @override |
| 4972 bool operator ==(other) { | 4587 bool operator ==(other) { |
| 4973 if (other is SearchFindMemberReferencesResult) { | 4588 if (other is ChangeContentOverlay) { |
| 4974 return id == other.id; | 4589 return listEqual( |
| 4590 edits, other.edits, (SourceEdit a, SourceEdit b) => a == b); |
| 4975 } | 4591 } |
| 4976 return false; | 4592 return false; |
| 4977 } | 4593 } |
| 4978 | 4594 |
| 4979 @override | 4595 @override |
| 4980 int get hashCode { | 4596 int get hashCode { |
| 4981 int hash = 0; | 4597 int hash = 0; |
| 4982 hash = JenkinsSmiHash.combine(hash, id.hashCode); | 4598 hash = JenkinsSmiHash.combine(hash, 873118866); |
| 4599 hash = JenkinsSmiHash.combine(hash, edits.hashCode); |
| 4983 return JenkinsSmiHash.finish(hash); | 4600 return JenkinsSmiHash.finish(hash); |
| 4984 } | 4601 } |
| 4985 } | 4602 } |
| 4986 | 4603 |
| 4987 /** | 4604 /** |
| 4988 * search.findTopLevelDeclarations params | 4605 * completion.getSuggestions params |
| 4989 * | 4606 * |
| 4990 * { | 4607 * { |
| 4991 * "pattern": String | 4608 * "file": FilePath |
| 4609 * "offset": int |
| 4992 * } | 4610 * } |
| 4993 * | 4611 * |
| 4994 * Clients may not extend, implement or mix-in this class. | 4612 * Clients may not extend, implement or mix-in this class. |
| 4995 */ | 4613 */ |
| 4996 class SearchFindTopLevelDeclarationsParams implements HasToJson { | 4614 class CompletionGetSuggestionsParams implements RequestParams { |
| 4997 String _pattern; | 4615 String _file; |
| 4616 |
| 4617 int _offset; |
| 4998 | 4618 |
| 4999 /** | 4619 /** |
| 5000 * The regular expression used to match the names of the declarations to be | 4620 * The file containing the point at which suggestions are to be made. |
| 5001 * found. | |
| 5002 */ | 4621 */ |
| 5003 String get pattern => _pattern; | 4622 String get file => _file; |
| 5004 | 4623 |
| 5005 /** | 4624 /** |
| 5006 * The regular expression used to match the names of the declarations to be | 4625 * The file containing the point at which suggestions are to be made. |
| 5007 * found. | |
| 5008 */ | 4626 */ |
| 5009 void set pattern(String value) { | 4627 void set file(String value) { |
| 5010 assert(value != null); | 4628 assert(value != null); |
| 5011 this._pattern = value; | 4629 this._file = value; |
| 5012 } | 4630 } |
| 5013 | 4631 |
| 5014 SearchFindTopLevelDeclarationsParams(String pattern) { | 4632 /** |
| 5015 this.pattern = pattern; | 4633 * The offset within the file at which suggestions are to be made. |
| 4634 */ |
| 4635 int get offset => _offset; |
| 4636 |
| 4637 /** |
| 4638 * The offset within the file at which suggestions are to be made. |
| 4639 */ |
| 4640 void set offset(int value) { |
| 4641 assert(value != null); |
| 4642 this._offset = value; |
| 5016 } | 4643 } |
| 5017 | 4644 |
| 5018 factory SearchFindTopLevelDeclarationsParams.fromJson( | 4645 CompletionGetSuggestionsParams(String file, int offset) { |
| 4646 this.file = file; |
| 4647 this.offset = offset; |
| 4648 } |
| 4649 |
| 4650 factory CompletionGetSuggestionsParams.fromJson( |
| 5019 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 4651 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 5020 if (json == null) { | 4652 if (json == null) { |
| 5021 json = {}; | 4653 json = {}; |
| 5022 } | 4654 } |
| 5023 if (json is Map) { | 4655 if (json is Map) { |
| 5024 String pattern; | 4656 String file; |
| 5025 if (json.containsKey("pattern")) { | 4657 if (json.containsKey("file")) { |
| 5026 pattern = | 4658 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 5027 jsonDecoder.decodeString(jsonPath + ".pattern", json["pattern"]); | |
| 5028 } else { | 4659 } else { |
| 5029 throw jsonDecoder.missingKey(jsonPath, "pattern"); | 4660 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 5030 } | 4661 } |
| 5031 return new SearchFindTopLevelDeclarationsParams(pattern); | 4662 int offset; |
| 4663 if (json.containsKey("offset")) { |
| 4664 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 4665 } else { |
| 4666 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 4667 } |
| 4668 return new CompletionGetSuggestionsParams(file, offset); |
| 5032 } else { | 4669 } else { |
| 5033 throw jsonDecoder.mismatch( | 4670 throw jsonDecoder.mismatch( |
| 5034 jsonPath, "search.findTopLevelDeclarations params", json); | 4671 jsonPath, "completion.getSuggestions params", json); |
| 5035 } | 4672 } |
| 5036 } | 4673 } |
| 5037 | 4674 |
| 5038 factory SearchFindTopLevelDeclarationsParams.fromRequest(Request request) { | 4675 factory CompletionGetSuggestionsParams.fromRequest(Request request) { |
| 5039 return new SearchFindTopLevelDeclarationsParams.fromJson( | 4676 return new CompletionGetSuggestionsParams.fromJson( |
| 5040 new RequestDecoder(request), "params", request._params); | 4677 new RequestDecoder(request), "params", request.params); |
| 5041 } | 4678 } |
| 5042 | 4679 |
| 4680 @override |
| 5043 Map<String, dynamic> toJson() { | 4681 Map<String, dynamic> toJson() { |
| 5044 Map<String, dynamic> result = {}; | 4682 Map<String, dynamic> result = {}; |
| 5045 result["pattern"] = pattern; | 4683 result["file"] = file; |
| 4684 result["offset"] = offset; |
| 5046 return result; | 4685 return result; |
| 5047 } | 4686 } |
| 5048 | 4687 |
| 4688 @override |
| 5049 Request toRequest(String id) { | 4689 Request toRequest(String id) { |
| 5050 return new Request(id, "search.findTopLevelDeclarations", toJson()); | 4690 return new Request(id, "completion.getSuggestions", toJson()); |
| 5051 } | 4691 } |
| 5052 | 4692 |
| 5053 @override | 4693 @override |
| 5054 String toString() => JSON.encode(toJson()); | 4694 String toString() => JSON.encode(toJson()); |
| 5055 | 4695 |
| 5056 @override | 4696 @override |
| 5057 bool operator ==(other) { | 4697 bool operator ==(other) { |
| 5058 if (other is SearchFindTopLevelDeclarationsParams) { | 4698 if (other is CompletionGetSuggestionsParams) { |
| 5059 return pattern == other.pattern; | 4699 return file == other.file && offset == other.offset; |
| 5060 } | 4700 } |
| 5061 return false; | 4701 return false; |
| 5062 } | 4702 } |
| 5063 | 4703 |
| 5064 @override | 4704 @override |
| 5065 int get hashCode { | 4705 int get hashCode { |
| 5066 int hash = 0; | 4706 int hash = 0; |
| 5067 hash = JenkinsSmiHash.combine(hash, pattern.hashCode); | 4707 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 4708 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 5068 return JenkinsSmiHash.finish(hash); | 4709 return JenkinsSmiHash.finish(hash); |
| 5069 } | 4710 } |
| 5070 } | 4711 } |
| 5071 | 4712 |
| 5072 /** | 4713 /** |
| 5073 * search.findTopLevelDeclarations result | 4714 * completion.getSuggestions result |
| 5074 * | 4715 * |
| 5075 * { | 4716 * { |
| 5076 * "id": SearchId | 4717 * "id": CompletionId |
| 5077 * } | 4718 * } |
| 5078 * | 4719 * |
| 5079 * Clients may not extend, implement or mix-in this class. | 4720 * Clients may not extend, implement or mix-in this class. |
| 5080 */ | 4721 */ |
| 5081 class SearchFindTopLevelDeclarationsResult implements HasToJson { | 4722 class CompletionGetSuggestionsResult implements ResponseResult { |
| 5082 String _id; | 4723 String _id; |
| 5083 | 4724 |
| 5084 /** | 4725 /** |
| 5085 * The identifier used to associate results with this search request. | 4726 * The identifier used to associate results with this completion request. |
| 5086 */ | 4727 */ |
| 5087 String get id => _id; | 4728 String get id => _id; |
| 5088 | 4729 |
| 5089 /** | 4730 /** |
| 5090 * The identifier used to associate results with this search request. | 4731 * The identifier used to associate results with this completion request. |
| 5091 */ | 4732 */ |
| 5092 void set id(String value) { | 4733 void set id(String value) { |
| 5093 assert(value != null); | 4734 assert(value != null); |
| 5094 this._id = value; | 4735 this._id = value; |
| 5095 } | 4736 } |
| 5096 | 4737 |
| 5097 SearchFindTopLevelDeclarationsResult(String id) { | 4738 CompletionGetSuggestionsResult(String id) { |
| 5098 this.id = id; | 4739 this.id = id; |
| 5099 } | 4740 } |
| 5100 | 4741 |
| 5101 factory SearchFindTopLevelDeclarationsResult.fromJson( | 4742 factory CompletionGetSuggestionsResult.fromJson( |
| 5102 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 4743 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 5103 if (json == null) { | 4744 if (json == null) { |
| 5104 json = {}; | 4745 json = {}; |
| 5105 } | 4746 } |
| 5106 if (json is Map) { | 4747 if (json is Map) { |
| 5107 String id; | 4748 String id; |
| 5108 if (json.containsKey("id")) { | 4749 if (json.containsKey("id")) { |
| 5109 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | 4750 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); |
| 5110 } else { | 4751 } else { |
| 5111 throw jsonDecoder.missingKey(jsonPath, "id"); | 4752 throw jsonDecoder.mismatch(jsonPath, "id"); |
| 5112 } | 4753 } |
| 5113 return new SearchFindTopLevelDeclarationsResult(id); | 4754 return new CompletionGetSuggestionsResult(id); |
| 5114 } else { | 4755 } else { |
| 5115 throw jsonDecoder.mismatch( | 4756 throw jsonDecoder.mismatch( |
| 5116 jsonPath, "search.findTopLevelDeclarations result", json); | 4757 jsonPath, "completion.getSuggestions result", json); |
| 5117 } | 4758 } |
| 5118 } | 4759 } |
| 5119 | 4760 |
| 5120 factory SearchFindTopLevelDeclarationsResult.fromResponse(Response response) { | 4761 factory CompletionGetSuggestionsResult.fromResponse(Response response) { |
| 5121 return new SearchFindTopLevelDeclarationsResult.fromJson( | 4762 return new CompletionGetSuggestionsResult.fromJson( |
| 5122 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 4763 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 5123 "result", | 4764 "result", |
| 5124 response._result); | 4765 response.result); |
| 5125 } | 4766 } |
| 5126 | 4767 |
| 4768 @override |
| 5127 Map<String, dynamic> toJson() { | 4769 Map<String, dynamic> toJson() { |
| 5128 Map<String, dynamic> result = {}; | 4770 Map<String, dynamic> result = {}; |
| 5129 result["id"] = id; | 4771 result["id"] = id; |
| 5130 return result; | 4772 return result; |
| 5131 } | 4773 } |
| 5132 | 4774 |
| 4775 @override |
| 5133 Response toResponse(String id) { | 4776 Response toResponse(String id) { |
| 5134 return new Response(id, result: toJson()); | 4777 return new Response(id, result: toJson()); |
| 5135 } | 4778 } |
| 5136 | 4779 |
| 5137 @override | 4780 @override |
| 5138 String toString() => JSON.encode(toJson()); | 4781 String toString() => JSON.encode(toJson()); |
| 5139 | 4782 |
| 5140 @override | 4783 @override |
| 5141 bool operator ==(other) { | 4784 bool operator ==(other) { |
| 5142 if (other is SearchFindTopLevelDeclarationsResult) { | 4785 if (other is CompletionGetSuggestionsResult) { |
| 5143 return id == other.id; | 4786 return id == other.id; |
| 5144 } | 4787 } |
| 5145 return false; | 4788 return false; |
| 5146 } | 4789 } |
| 5147 | 4790 |
| 5148 @override | 4791 @override |
| 5149 int get hashCode { | 4792 int get hashCode { |
| 5150 int hash = 0; | 4793 int hash = 0; |
| 5151 hash = JenkinsSmiHash.combine(hash, id.hashCode); | 4794 hash = JenkinsSmiHash.combine(hash, id.hashCode); |
| 5152 return JenkinsSmiHash.finish(hash); | 4795 return JenkinsSmiHash.finish(hash); |
| 5153 } | 4796 } |
| 5154 } | 4797 } |
| 5155 | 4798 |
| 5156 /** | 4799 /** |
| 5157 * search.getTypeHierarchy params | 4800 * completion.results params |
| 5158 * | 4801 * |
| 5159 * { | 4802 * { |
| 5160 * "file": FilePath | 4803 * "id": CompletionId |
| 5161 * "offset": int | 4804 * "replacementOffset": int |
| 5162 * "superOnly": optional bool | 4805 * "replacementLength": int |
| 4806 * "results": List<CompletionSuggestion> |
| 4807 * "isLast": bool |
| 5163 * } | 4808 * } |
| 5164 * | 4809 * |
| 5165 * Clients may not extend, implement or mix-in this class. | 4810 * Clients may not extend, implement or mix-in this class. |
| 5166 */ | 4811 */ |
| 5167 class SearchGetTypeHierarchyParams implements HasToJson { | 4812 class CompletionResultsParams implements HasToJson { |
| 5168 String _file; | 4813 String _id; |
| 5169 | 4814 |
| 5170 int _offset; | 4815 int _replacementOffset; |
| 5171 | 4816 |
| 5172 bool _superOnly; | 4817 int _replacementLength; |
| 4818 |
| 4819 List<CompletionSuggestion> _results; |
| 4820 |
| 4821 bool _isLast; |
| 5173 | 4822 |
| 5174 /** | 4823 /** |
| 5175 * The file containing the declaration or reference to the type for which a | 4824 * The id associated with the completion. |
| 5176 * hierarchy is being requested. | |
| 5177 */ | 4825 */ |
| 5178 String get file => _file; | 4826 String get id => _id; |
| 5179 | 4827 |
| 5180 /** | 4828 /** |
| 5181 * The file containing the declaration or reference to the type for which a | 4829 * The id associated with the completion. |
| 5182 * hierarchy is being requested. | |
| 5183 */ | 4830 */ |
| 5184 void set file(String value) { | 4831 void set id(String value) { |
| 5185 assert(value != null); | 4832 assert(value != null); |
| 5186 this._file = value; | 4833 this._id = value; |
| 5187 } | 4834 } |
| 5188 | 4835 |
| 5189 /** | 4836 /** |
| 5190 * The offset of the name of the type within the file. | 4837 * The offset of the start of the text to be replaced. This will be different |
| 4838 * than the offset used to request the completion suggestions if there was a |
| 4839 * portion of an identifier before the original offset. In particular, the |
| 4840 * replacementOffset will be the offset of the beginning of said identifier. |
| 5191 */ | 4841 */ |
| 5192 int get offset => _offset; | 4842 int get replacementOffset => _replacementOffset; |
| 5193 | 4843 |
| 5194 /** | 4844 /** |
| 5195 * The offset of the name of the type within the file. | 4845 * The offset of the start of the text to be replaced. This will be different |
| 4846 * than the offset used to request the completion suggestions if there was a |
| 4847 * portion of an identifier before the original offset. In particular, the |
| 4848 * replacementOffset will be the offset of the beginning of said identifier. |
| 5196 */ | 4849 */ |
| 5197 void set offset(int value) { | 4850 void set replacementOffset(int value) { |
| 5198 assert(value != null); | 4851 assert(value != null); |
| 5199 this._offset = value; | 4852 this._replacementOffset = value; |
| 5200 } | 4853 } |
| 5201 | 4854 |
| 5202 /** | 4855 /** |
| 5203 * True if the client is only requesting superclasses and interfaces | 4856 * The length of the text to be replaced if the remainder of the identifier |
| 5204 * hierarchy. | 4857 * containing the cursor is to be replaced when the suggestion is applied |
| 4858 * (that is, the number of characters in the existing identifier). |
| 5205 */ | 4859 */ |
| 5206 bool get superOnly => _superOnly; | 4860 int get replacementLength => _replacementLength; |
| 5207 | 4861 |
| 5208 /** | 4862 /** |
| 5209 * True if the client is only requesting superclasses and interfaces | 4863 * The length of the text to be replaced if the remainder of the identifier |
| 5210 * hierarchy. | 4864 * containing the cursor is to be replaced when the suggestion is applied |
| 4865 * (that is, the number of characters in the existing identifier). |
| 5211 */ | 4866 */ |
| 5212 void set superOnly(bool value) { | 4867 void set replacementLength(int value) { |
| 5213 this._superOnly = value; | 4868 assert(value != null); |
| 4869 this._replacementLength = value; |
| 5214 } | 4870 } |
| 5215 | 4871 |
| 5216 SearchGetTypeHierarchyParams(String file, int offset, {bool superOnly}) { | 4872 /** |
| 5217 this.file = file; | 4873 * The completion suggestions being reported. The notification contains all |
| 5218 this.offset = offset; | 4874 * possible completions at the requested cursor position, even those that do |
| 5219 this.superOnly = superOnly; | 4875 * not match the characters the user has already typed. This allows the |
| 4876 * client to respond to further keystrokes from the user without having to |
| 4877 * make additional requests. |
| 4878 */ |
| 4879 List<CompletionSuggestion> get results => _results; |
| 4880 |
| 4881 /** |
| 4882 * The completion suggestions being reported. The notification contains all |
| 4883 * possible completions at the requested cursor position, even those that do |
| 4884 * not match the characters the user has already typed. This allows the |
| 4885 * client to respond to further keystrokes from the user without having to |
| 4886 * make additional requests. |
| 4887 */ |
| 4888 void set results(List<CompletionSuggestion> value) { |
| 4889 assert(value != null); |
| 4890 this._results = value; |
| 5220 } | 4891 } |
| 5221 | 4892 |
| 5222 factory SearchGetTypeHierarchyParams.fromJson( | 4893 /** |
| 4894 * True if this is that last set of results that will be returned for the |
| 4895 * indicated completion. |
| 4896 */ |
| 4897 bool get isLast => _isLast; |
| 4898 |
| 4899 /** |
| 4900 * True if this is that last set of results that will be returned for the |
| 4901 * indicated completion. |
| 4902 */ |
| 4903 void set isLast(bool value) { |
| 4904 assert(value != null); |
| 4905 this._isLast = value; |
| 4906 } |
| 4907 |
| 4908 CompletionResultsParams(String id, int replacementOffset, |
| 4909 int replacementLength, List<CompletionSuggestion> results, bool isLast) { |
| 4910 this.id = id; |
| 4911 this.replacementOffset = replacementOffset; |
| 4912 this.replacementLength = replacementLength; |
| 4913 this.results = results; |
| 4914 this.isLast = isLast; |
| 4915 } |
| 4916 |
| 4917 factory CompletionResultsParams.fromJson( |
| 5223 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 4918 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 5224 if (json == null) { | 4919 if (json == null) { |
| 5225 json = {}; | 4920 json = {}; |
| 5226 } | 4921 } |
| 5227 if (json is Map) { | 4922 if (json is Map) { |
| 5228 String file; | 4923 String id; |
| 5229 if (json.containsKey("file")) { | 4924 if (json.containsKey("id")) { |
| 5230 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 4925 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); |
| 5231 } else { | 4926 } else { |
| 5232 throw jsonDecoder.missingKey(jsonPath, "file"); | 4927 throw jsonDecoder.mismatch(jsonPath, "id"); |
| 5233 } | 4928 } |
| 5234 int offset; | 4929 int replacementOffset; |
| 5235 if (json.containsKey("offset")) { | 4930 if (json.containsKey("replacementOffset")) { |
| 5236 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 4931 replacementOffset = jsonDecoder.decodeInt( |
| 4932 jsonPath + ".replacementOffset", json["replacementOffset"]); |
| 5237 } else { | 4933 } else { |
| 5238 throw jsonDecoder.missingKey(jsonPath, "offset"); | 4934 throw jsonDecoder.mismatch(jsonPath, "replacementOffset"); |
| 5239 } | 4935 } |
| 5240 bool superOnly; | 4936 int replacementLength; |
| 5241 if (json.containsKey("superOnly")) { | 4937 if (json.containsKey("replacementLength")) { |
| 5242 superOnly = | 4938 replacementLength = jsonDecoder.decodeInt( |
| 5243 jsonDecoder.decodeBool(jsonPath + ".superOnly", json["superOnly"]); | 4939 jsonPath + ".replacementLength", json["replacementLength"]); |
| 4940 } else { |
| 4941 throw jsonDecoder.mismatch(jsonPath, "replacementLength"); |
| 5244 } | 4942 } |
| 5245 return new SearchGetTypeHierarchyParams(file, offset, | 4943 List<CompletionSuggestion> results; |
| 5246 superOnly: superOnly); | 4944 if (json.containsKey("results")) { |
| 4945 results = jsonDecoder.decodeList( |
| 4946 jsonPath + ".results", |
| 4947 json["results"], |
| 4948 (String jsonPath, Object json) => |
| 4949 new CompletionSuggestion.fromJson(jsonDecoder, jsonPath, json)); |
| 4950 } else { |
| 4951 throw jsonDecoder.mismatch(jsonPath, "results"); |
| 4952 } |
| 4953 bool isLast; |
| 4954 if (json.containsKey("isLast")) { |
| 4955 isLast = jsonDecoder.decodeBool(jsonPath + ".isLast", json["isLast"]); |
| 4956 } else { |
| 4957 throw jsonDecoder.mismatch(jsonPath, "isLast"); |
| 4958 } |
| 4959 return new CompletionResultsParams( |
| 4960 id, replacementOffset, replacementLength, results, isLast); |
| 5247 } else { | 4961 } else { |
| 5248 throw jsonDecoder.mismatch( | 4962 throw jsonDecoder.mismatch(jsonPath, "completion.results params", json); |
| 5249 jsonPath, "search.getTypeHierarchy params", json); | |
| 5250 } | 4963 } |
| 5251 } | 4964 } |
| 5252 | 4965 |
| 5253 factory SearchGetTypeHierarchyParams.fromRequest(Request request) { | 4966 factory CompletionResultsParams.fromNotification(Notification notification) { |
| 5254 return new SearchGetTypeHierarchyParams.fromJson( | 4967 return new CompletionResultsParams.fromJson( |
| 5255 new RequestDecoder(request), "params", request._params); | 4968 new ResponseDecoder(null), "params", notification.params); |
| 5256 } | 4969 } |
| 5257 | 4970 |
| 4971 @override |
| 5258 Map<String, dynamic> toJson() { | 4972 Map<String, dynamic> toJson() { |
| 5259 Map<String, dynamic> result = {}; | 4973 Map<String, dynamic> result = {}; |
| 5260 result["file"] = file; | 4974 result["id"] = id; |
| 5261 result["offset"] = offset; | 4975 result["replacementOffset"] = replacementOffset; |
| 5262 if (superOnly != null) { | 4976 result["replacementLength"] = replacementLength; |
| 5263 result["superOnly"] = superOnly; | 4977 result["results"] = |
| 5264 } | 4978 results.map((CompletionSuggestion value) => value.toJson()).toList(); |
| 4979 result["isLast"] = isLast; |
| 5265 return result; | 4980 return result; |
| 5266 } | 4981 } |
| 5267 | 4982 |
| 5268 Request toRequest(String id) { | 4983 Notification toNotification() { |
| 5269 return new Request(id, "search.getTypeHierarchy", toJson()); | 4984 return new Notification("completion.results", toJson()); |
| 5270 } | 4985 } |
| 5271 | 4986 |
| 5272 @override | 4987 @override |
| 5273 String toString() => JSON.encode(toJson()); | 4988 String toString() => JSON.encode(toJson()); |
| 5274 | 4989 |
| 5275 @override | 4990 @override |
| 5276 bool operator ==(other) { | 4991 bool operator ==(other) { |
| 5277 if (other is SearchGetTypeHierarchyParams) { | 4992 if (other is CompletionResultsParams) { |
| 5278 return file == other.file && | 4993 return id == other.id && |
| 5279 offset == other.offset && | 4994 replacementOffset == other.replacementOffset && |
| 5280 superOnly == other.superOnly; | 4995 replacementLength == other.replacementLength && |
| 4996 listEqual(results, other.results, |
| 4997 (CompletionSuggestion a, CompletionSuggestion b) => a == b) && |
| 4998 isLast == other.isLast; |
| 5281 } | 4999 } |
| 5282 return false; | 5000 return false; |
| 5283 } | 5001 } |
| 5284 | 5002 |
| 5285 @override | 5003 @override |
| 5286 int get hashCode { | 5004 int get hashCode { |
| 5287 int hash = 0; | 5005 int hash = 0; |
| 5288 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 5006 hash = JenkinsSmiHash.combine(hash, id.hashCode); |
| 5289 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 5007 hash = JenkinsSmiHash.combine(hash, replacementOffset.hashCode); |
| 5290 hash = JenkinsSmiHash.combine(hash, superOnly.hashCode); | 5008 hash = JenkinsSmiHash.combine(hash, replacementLength.hashCode); |
| 5009 hash = JenkinsSmiHash.combine(hash, results.hashCode); |
| 5010 hash = JenkinsSmiHash.combine(hash, isLast.hashCode); |
| 5291 return JenkinsSmiHash.finish(hash); | 5011 return JenkinsSmiHash.finish(hash); |
| 5292 } | 5012 } |
| 5293 } | 5013 } |
| 5294 | 5014 |
| 5295 /** | 5015 /** |
| 5296 * search.getTypeHierarchy result | 5016 * CompletionSuggestion |
| 5297 * | 5017 * |
| 5298 * { | 5018 * { |
| 5299 * "hierarchyItems": optional List<TypeHierarchyItem> | 5019 * "kind": CompletionSuggestionKind |
| 5020 * "relevance": int |
| 5021 * "completion": String |
| 5022 * "selectionOffset": int |
| 5023 * "selectionLength": int |
| 5024 * "isDeprecated": bool |
| 5025 * "isPotential": bool |
| 5026 * "docSummary": optional String |
| 5027 * "docComplete": optional String |
| 5028 * "declaringType": optional String |
| 5029 * "defaultArgumentListString": optional String |
| 5030 * "defaultArgumentListTextRanges": optional List<int> |
| 5031 * "element": optional Element |
| 5032 * "returnType": optional String |
| 5033 * "parameterNames": optional List<String> |
| 5034 * "parameterTypes": optional List<String> |
| 5035 * "requiredParameterCount": optional int |
| 5036 * "hasNamedParameters": optional bool |
| 5037 * "parameterName": optional String |
| 5038 * "parameterType": optional String |
| 5039 * "importUri": optional String |
| 5300 * } | 5040 * } |
| 5301 * | 5041 * |
| 5302 * Clients may not extend, implement or mix-in this class. | 5042 * Clients may not extend, implement or mix-in this class. |
| 5303 */ | 5043 */ |
| 5304 class SearchGetTypeHierarchyResult implements HasToJson { | 5044 class CompletionSuggestion implements HasToJson { |
| 5305 List<TypeHierarchyItem> _hierarchyItems; | 5045 CompletionSuggestionKind _kind; |
| 5306 | 5046 |
| 5307 /** | 5047 int _relevance; |
| 5308 * A list of the types in the requested hierarchy. The first element of the | 5048 |
| 5309 * list is the item representing the type for which the hierarchy was | 5049 String _completion; |
| 5310 * requested. The index of other elements of the list is unspecified, but | 5050 |
| 5311 * correspond to the integers used to reference supertype and subtype items | 5051 int _selectionOffset; |
| 5312 * within the items. | 5052 |
| 5313 * | 5053 int _selectionLength; |
| 5314 * This field will be absent if the code at the given file and offset does | 5054 |
| 5315 * not represent a type, or if the file has not been sufficiently analyzed to | 5055 bool _isDeprecated; |
| 5316 * allow a type hierarchy to be produced. | 5056 |
| 5317 */ | 5057 bool _isPotential; |
| 5318 List<TypeHierarchyItem> get hierarchyItems => _hierarchyItems; | 5058 |
| 5319 | 5059 String _docSummary; |
| 5320 /** | 5060 |
| 5321 * A list of the types in the requested hierarchy. The first element of the | 5061 String _docComplete; |
| 5322 * list is the item representing the type for which the hierarchy was | 5062 |
| 5323 * requested. The index of other elements of the list is unspecified, but | 5063 String _declaringType; |
| 5324 * correspond to the integers used to reference supertype and subtype items | 5064 |
| 5325 * within the items. | 5065 String _defaultArgumentListString; |
| 5326 * | 5066 |
| 5327 * This field will be absent if the code at the given file and offset does | 5067 List<int> _defaultArgumentListTextRanges; |
| 5328 * not represent a type, or if the file has not been sufficiently analyzed to | 5068 |
| 5329 * allow a type hierarchy to be produced. | 5069 Element _element; |
| 5330 */ | 5070 |
| 5331 void set hierarchyItems(List<TypeHierarchyItem> value) { | 5071 String _returnType; |
| 5332 this._hierarchyItems = value; | 5072 |
| 5333 } | 5073 List<String> _parameterNames; |
| 5334 | 5074 |
| 5335 SearchGetTypeHierarchyResult({List<TypeHierarchyItem> hierarchyItems}) { | 5075 List<String> _parameterTypes; |
| 5336 this.hierarchyItems = hierarchyItems; | 5076 |
| 5337 } | 5077 int _requiredParameterCount; |
| 5338 | 5078 |
| 5339 factory SearchGetTypeHierarchyResult.fromJson( | 5079 bool _hasNamedParameters; |
| 5080 |
| 5081 String _parameterName; |
| 5082 |
| 5083 String _parameterType; |
| 5084 |
| 5085 String _importUri; |
| 5086 |
| 5087 /** |
| 5088 * The kind of element being suggested. |
| 5089 */ |
| 5090 CompletionSuggestionKind get kind => _kind; |
| 5091 |
| 5092 /** |
| 5093 * The kind of element being suggested. |
| 5094 */ |
| 5095 void set kind(CompletionSuggestionKind value) { |
| 5096 assert(value != null); |
| 5097 this._kind = value; |
| 5098 } |
| 5099 |
| 5100 /** |
| 5101 * The relevance of this completion suggestion where a higher number |
| 5102 * indicates a higher relevance. |
| 5103 */ |
| 5104 int get relevance => _relevance; |
| 5105 |
| 5106 /** |
| 5107 * The relevance of this completion suggestion where a higher number |
| 5108 * indicates a higher relevance. |
| 5109 */ |
| 5110 void set relevance(int value) { |
| 5111 assert(value != null); |
| 5112 this._relevance = value; |
| 5113 } |
| 5114 |
| 5115 /** |
| 5116 * The identifier to be inserted if the suggestion is selected. If the |
| 5117 * suggestion is for a method or function, the client might want to |
| 5118 * additionally insert a template for the parameters. The information |
| 5119 * required in order to do so is contained in other fields. |
| 5120 */ |
| 5121 String get completion => _completion; |
| 5122 |
| 5123 /** |
| 5124 * The identifier to be inserted if the suggestion is selected. If the |
| 5125 * suggestion is for a method or function, the client might want to |
| 5126 * additionally insert a template for the parameters. The information |
| 5127 * required in order to do so is contained in other fields. |
| 5128 */ |
| 5129 void set completion(String value) { |
| 5130 assert(value != null); |
| 5131 this._completion = value; |
| 5132 } |
| 5133 |
| 5134 /** |
| 5135 * The offset, relative to the beginning of the completion, of where the |
| 5136 * selection should be placed after insertion. |
| 5137 */ |
| 5138 int get selectionOffset => _selectionOffset; |
| 5139 |
| 5140 /** |
| 5141 * The offset, relative to the beginning of the completion, of where the |
| 5142 * selection should be placed after insertion. |
| 5143 */ |
| 5144 void set selectionOffset(int value) { |
| 5145 assert(value != null); |
| 5146 this._selectionOffset = value; |
| 5147 } |
| 5148 |
| 5149 /** |
| 5150 * The number of characters that should be selected after insertion. |
| 5151 */ |
| 5152 int get selectionLength => _selectionLength; |
| 5153 |
| 5154 /** |
| 5155 * The number of characters that should be selected after insertion. |
| 5156 */ |
| 5157 void set selectionLength(int value) { |
| 5158 assert(value != null); |
| 5159 this._selectionLength = value; |
| 5160 } |
| 5161 |
| 5162 /** |
| 5163 * True if the suggested element is deprecated. |
| 5164 */ |
| 5165 bool get isDeprecated => _isDeprecated; |
| 5166 |
| 5167 /** |
| 5168 * True if the suggested element is deprecated. |
| 5169 */ |
| 5170 void set isDeprecated(bool value) { |
| 5171 assert(value != null); |
| 5172 this._isDeprecated = value; |
| 5173 } |
| 5174 |
| 5175 /** |
| 5176 * True if the element is not known to be valid for the target. This happens |
| 5177 * if the type of the target is dynamic. |
| 5178 */ |
| 5179 bool get isPotential => _isPotential; |
| 5180 |
| 5181 /** |
| 5182 * True if the element is not known to be valid for the target. This happens |
| 5183 * if the type of the target is dynamic. |
| 5184 */ |
| 5185 void set isPotential(bool value) { |
| 5186 assert(value != null); |
| 5187 this._isPotential = value; |
| 5188 } |
| 5189 |
| 5190 /** |
| 5191 * An abbreviated version of the Dartdoc associated with the element being |
| 5192 * suggested, This field is omitted if there is no Dartdoc associated with |
| 5193 * the element. |
| 5194 */ |
| 5195 String get docSummary => _docSummary; |
| 5196 |
| 5197 /** |
| 5198 * An abbreviated version of the Dartdoc associated with the element being |
| 5199 * suggested, This field is omitted if there is no Dartdoc associated with |
| 5200 * the element. |
| 5201 */ |
| 5202 void set docSummary(String value) { |
| 5203 this._docSummary = value; |
| 5204 } |
| 5205 |
| 5206 /** |
| 5207 * The Dartdoc associated with the element being suggested, This field is |
| 5208 * omitted if there is no Dartdoc associated with the element. |
| 5209 */ |
| 5210 String get docComplete => _docComplete; |
| 5211 |
| 5212 /** |
| 5213 * The Dartdoc associated with the element being suggested, This field is |
| 5214 * omitted if there is no Dartdoc associated with the element. |
| 5215 */ |
| 5216 void set docComplete(String value) { |
| 5217 this._docComplete = value; |
| 5218 } |
| 5219 |
| 5220 /** |
| 5221 * The class that declares the element being suggested. This field is omitted |
| 5222 * if the suggested element is not a member of a class. |
| 5223 */ |
| 5224 String get declaringType => _declaringType; |
| 5225 |
| 5226 /** |
| 5227 * The class that declares the element being suggested. This field is omitted |
| 5228 * if the suggested element is not a member of a class. |
| 5229 */ |
| 5230 void set declaringType(String value) { |
| 5231 this._declaringType = value; |
| 5232 } |
| 5233 |
| 5234 /** |
| 5235 * A default String for use in generating argument list source contents on |
| 5236 * the client side. |
| 5237 */ |
| 5238 String get defaultArgumentListString => _defaultArgumentListString; |
| 5239 |
| 5240 /** |
| 5241 * A default String for use in generating argument list source contents on |
| 5242 * the client side. |
| 5243 */ |
| 5244 void set defaultArgumentListString(String value) { |
| 5245 this._defaultArgumentListString = value; |
| 5246 } |
| 5247 |
| 5248 /** |
| 5249 * Pairs of offsets and lengths describing 'defaultArgumentListString' text |
| 5250 * ranges suitable for use by clients to set up linked edits of default |
| 5251 * argument source contents. For example, given an argument list string 'x, |
| 5252 * y', the corresponding text range [0, 1, 3, 1], indicates two text ranges |
| 5253 * of length 1, starting at offsets 0 and 3. Clients can use these ranges to |
| 5254 * treat the 'x' and 'y' values specially for linked edits. |
| 5255 */ |
| 5256 List<int> get defaultArgumentListTextRanges => _defaultArgumentListTextRanges; |
| 5257 |
| 5258 /** |
| 5259 * Pairs of offsets and lengths describing 'defaultArgumentListString' text |
| 5260 * ranges suitable for use by clients to set up linked edits of default |
| 5261 * argument source contents. For example, given an argument list string 'x, |
| 5262 * y', the corresponding text range [0, 1, 3, 1], indicates two text ranges |
| 5263 * of length 1, starting at offsets 0 and 3. Clients can use these ranges to |
| 5264 * treat the 'x' and 'y' values specially for linked edits. |
| 5265 */ |
| 5266 void set defaultArgumentListTextRanges(List<int> value) { |
| 5267 this._defaultArgumentListTextRanges = value; |
| 5268 } |
| 5269 |
| 5270 /** |
| 5271 * Information about the element reference being suggested. |
| 5272 */ |
| 5273 Element get element => _element; |
| 5274 |
| 5275 /** |
| 5276 * Information about the element reference being suggested. |
| 5277 */ |
| 5278 void set element(Element value) { |
| 5279 this._element = value; |
| 5280 } |
| 5281 |
| 5282 /** |
| 5283 * The return type of the getter, function or method or the type of the field |
| 5284 * being suggested. This field is omitted if the suggested element is not a |
| 5285 * getter, function or method. |
| 5286 */ |
| 5287 String get returnType => _returnType; |
| 5288 |
| 5289 /** |
| 5290 * The return type of the getter, function or method or the type of the field |
| 5291 * being suggested. This field is omitted if the suggested element is not a |
| 5292 * getter, function or method. |
| 5293 */ |
| 5294 void set returnType(String value) { |
| 5295 this._returnType = value; |
| 5296 } |
| 5297 |
| 5298 /** |
| 5299 * The names of the parameters of the function or method being suggested. |
| 5300 * This field is omitted if the suggested element is not a setter, function |
| 5301 * or method. |
| 5302 */ |
| 5303 List<String> get parameterNames => _parameterNames; |
| 5304 |
| 5305 /** |
| 5306 * The names of the parameters of the function or method being suggested. |
| 5307 * This field is omitted if the suggested element is not a setter, function |
| 5308 * or method. |
| 5309 */ |
| 5310 void set parameterNames(List<String> value) { |
| 5311 this._parameterNames = value; |
| 5312 } |
| 5313 |
| 5314 /** |
| 5315 * The types of the parameters of the function or method being suggested. |
| 5316 * This field is omitted if the parameterNames field is omitted. |
| 5317 */ |
| 5318 List<String> get parameterTypes => _parameterTypes; |
| 5319 |
| 5320 /** |
| 5321 * The types of the parameters of the function or method being suggested. |
| 5322 * This field is omitted if the parameterNames field is omitted. |
| 5323 */ |
| 5324 void set parameterTypes(List<String> value) { |
| 5325 this._parameterTypes = value; |
| 5326 } |
| 5327 |
| 5328 /** |
| 5329 * The number of required parameters for the function or method being |
| 5330 * suggested. This field is omitted if the parameterNames field is omitted. |
| 5331 */ |
| 5332 int get requiredParameterCount => _requiredParameterCount; |
| 5333 |
| 5334 /** |
| 5335 * The number of required parameters for the function or method being |
| 5336 * suggested. This field is omitted if the parameterNames field is omitted. |
| 5337 */ |
| 5338 void set requiredParameterCount(int value) { |
| 5339 this._requiredParameterCount = value; |
| 5340 } |
| 5341 |
| 5342 /** |
| 5343 * True if the function or method being suggested has at least one named |
| 5344 * parameter. This field is omitted if the parameterNames field is omitted. |
| 5345 */ |
| 5346 bool get hasNamedParameters => _hasNamedParameters; |
| 5347 |
| 5348 /** |
| 5349 * True if the function or method being suggested has at least one named |
| 5350 * parameter. This field is omitted if the parameterNames field is omitted. |
| 5351 */ |
| 5352 void set hasNamedParameters(bool value) { |
| 5353 this._hasNamedParameters = value; |
| 5354 } |
| 5355 |
| 5356 /** |
| 5357 * The name of the optional parameter being suggested. This field is omitted |
| 5358 * if the suggestion is not the addition of an optional argument within an |
| 5359 * argument list. |
| 5360 */ |
| 5361 String get parameterName => _parameterName; |
| 5362 |
| 5363 /** |
| 5364 * The name of the optional parameter being suggested. This field is omitted |
| 5365 * if the suggestion is not the addition of an optional argument within an |
| 5366 * argument list. |
| 5367 */ |
| 5368 void set parameterName(String value) { |
| 5369 this._parameterName = value; |
| 5370 } |
| 5371 |
| 5372 /** |
| 5373 * The type of the options parameter being suggested. This field is omitted |
| 5374 * if the parameterName field is omitted. |
| 5375 */ |
| 5376 String get parameterType => _parameterType; |
| 5377 |
| 5378 /** |
| 5379 * The type of the options parameter being suggested. This field is omitted |
| 5380 * if the parameterName field is omitted. |
| 5381 */ |
| 5382 void set parameterType(String value) { |
| 5383 this._parameterType = value; |
| 5384 } |
| 5385 |
| 5386 /** |
| 5387 * The import to be added if the suggestion is out of scope and needs an |
| 5388 * import to be added to be in scope. |
| 5389 */ |
| 5390 String get importUri => _importUri; |
| 5391 |
| 5392 /** |
| 5393 * The import to be added if the suggestion is out of scope and needs an |
| 5394 * import to be added to be in scope. |
| 5395 */ |
| 5396 void set importUri(String value) { |
| 5397 this._importUri = value; |
| 5398 } |
| 5399 |
| 5400 CompletionSuggestion( |
| 5401 CompletionSuggestionKind kind, |
| 5402 int relevance, |
| 5403 String completion, |
| 5404 int selectionOffset, |
| 5405 int selectionLength, |
| 5406 bool isDeprecated, |
| 5407 bool isPotential, |
| 5408 {String docSummary, |
| 5409 String docComplete, |
| 5410 String declaringType, |
| 5411 String defaultArgumentListString, |
| 5412 List<int> defaultArgumentListTextRanges, |
| 5413 Element element, |
| 5414 String returnType, |
| 5415 List<String> parameterNames, |
| 5416 List<String> parameterTypes, |
| 5417 int requiredParameterCount, |
| 5418 bool hasNamedParameters, |
| 5419 String parameterName, |
| 5420 String parameterType, |
| 5421 String importUri}) { |
| 5422 this.kind = kind; |
| 5423 this.relevance = relevance; |
| 5424 this.completion = completion; |
| 5425 this.selectionOffset = selectionOffset; |
| 5426 this.selectionLength = selectionLength; |
| 5427 this.isDeprecated = isDeprecated; |
| 5428 this.isPotential = isPotential; |
| 5429 this.docSummary = docSummary; |
| 5430 this.docComplete = docComplete; |
| 5431 this.declaringType = declaringType; |
| 5432 this.defaultArgumentListString = defaultArgumentListString; |
| 5433 this.defaultArgumentListTextRanges = defaultArgumentListTextRanges; |
| 5434 this.element = element; |
| 5435 this.returnType = returnType; |
| 5436 this.parameterNames = parameterNames; |
| 5437 this.parameterTypes = parameterTypes; |
| 5438 this.requiredParameterCount = requiredParameterCount; |
| 5439 this.hasNamedParameters = hasNamedParameters; |
| 5440 this.parameterName = parameterName; |
| 5441 this.parameterType = parameterType; |
| 5442 this.importUri = importUri; |
| 5443 } |
| 5444 |
| 5445 factory CompletionSuggestion.fromJson( |
| 5340 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 5446 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 5341 if (json == null) { | 5447 if (json == null) { |
| 5342 json = {}; | 5448 json = {}; |
| 5343 } | 5449 } |
| 5344 if (json is Map) { | 5450 if (json is Map) { |
| 5345 List<TypeHierarchyItem> hierarchyItems; | 5451 CompletionSuggestionKind kind; |
| 5346 if (json.containsKey("hierarchyItems")) { | 5452 if (json.containsKey("kind")) { |
| 5347 hierarchyItems = jsonDecoder.decodeList( | 5453 kind = new CompletionSuggestionKind.fromJson( |
| 5348 jsonPath + ".hierarchyItems", | 5454 jsonDecoder, jsonPath + ".kind", json["kind"]); |
| 5349 json["hierarchyItems"], | |
| 5350 (String jsonPath, Object json) => | |
| 5351 new TypeHierarchyItem.fromJson(jsonDecoder, jsonPath, json)); | |
| 5352 } | |
| 5353 return new SearchGetTypeHierarchyResult(hierarchyItems: hierarchyItems); | |
| 5354 } else { | |
| 5355 throw jsonDecoder.mismatch( | |
| 5356 jsonPath, "search.getTypeHierarchy result", json); | |
| 5357 } | |
| 5358 } | |
| 5359 | |
| 5360 factory SearchGetTypeHierarchyResult.fromResponse(Response response) { | |
| 5361 return new SearchGetTypeHierarchyResult.fromJson( | |
| 5362 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | |
| 5363 "result", | |
| 5364 response._result); | |
| 5365 } | |
| 5366 | |
| 5367 Map<String, dynamic> toJson() { | |
| 5368 Map<String, dynamic> result = {}; | |
| 5369 if (hierarchyItems != null) { | |
| 5370 result["hierarchyItems"] = hierarchyItems | |
| 5371 .map((TypeHierarchyItem value) => value.toJson()) | |
| 5372 .toList(); | |
| 5373 } | |
| 5374 return result; | |
| 5375 } | |
| 5376 | |
| 5377 Response toResponse(String id) { | |
| 5378 return new Response(id, result: toJson()); | |
| 5379 } | |
| 5380 | |
| 5381 @override | |
| 5382 String toString() => JSON.encode(toJson()); | |
| 5383 | |
| 5384 @override | |
| 5385 bool operator ==(other) { | |
| 5386 if (other is SearchGetTypeHierarchyResult) { | |
| 5387 return listEqual(hierarchyItems, other.hierarchyItems, | |
| 5388 (TypeHierarchyItem a, TypeHierarchyItem b) => a == b); | |
| 5389 } | |
| 5390 return false; | |
| 5391 } | |
| 5392 | |
| 5393 @override | |
| 5394 int get hashCode { | |
| 5395 int hash = 0; | |
| 5396 hash = JenkinsSmiHash.combine(hash, hierarchyItems.hashCode); | |
| 5397 return JenkinsSmiHash.finish(hash); | |
| 5398 } | |
| 5399 } | |
| 5400 | |
| 5401 /** | |
| 5402 * search.results params | |
| 5403 * | |
| 5404 * { | |
| 5405 * "id": SearchId | |
| 5406 * "results": List<SearchResult> | |
| 5407 * "isLast": bool | |
| 5408 * } | |
| 5409 * | |
| 5410 * Clients may not extend, implement or mix-in this class. | |
| 5411 */ | |
| 5412 class SearchResultsParams implements HasToJson { | |
| 5413 String _id; | |
| 5414 | |
| 5415 List<SearchResult> _results; | |
| 5416 | |
| 5417 bool _isLast; | |
| 5418 | |
| 5419 /** | |
| 5420 * The id associated with the search. | |
| 5421 */ | |
| 5422 String get id => _id; | |
| 5423 | |
| 5424 /** | |
| 5425 * The id associated with the search. | |
| 5426 */ | |
| 5427 void set id(String value) { | |
| 5428 assert(value != null); | |
| 5429 this._id = value; | |
| 5430 } | |
| 5431 | |
| 5432 /** | |
| 5433 * The search results being reported. | |
| 5434 */ | |
| 5435 List<SearchResult> get results => _results; | |
| 5436 | |
| 5437 /** | |
| 5438 * The search results being reported. | |
| 5439 */ | |
| 5440 void set results(List<SearchResult> value) { | |
| 5441 assert(value != null); | |
| 5442 this._results = value; | |
| 5443 } | |
| 5444 | |
| 5445 /** | |
| 5446 * True if this is that last set of results that will be returned for the | |
| 5447 * indicated search. | |
| 5448 */ | |
| 5449 bool get isLast => _isLast; | |
| 5450 | |
| 5451 /** | |
| 5452 * True if this is that last set of results that will be returned for the | |
| 5453 * indicated search. | |
| 5454 */ | |
| 5455 void set isLast(bool value) { | |
| 5456 assert(value != null); | |
| 5457 this._isLast = value; | |
| 5458 } | |
| 5459 | |
| 5460 SearchResultsParams(String id, List<SearchResult> results, bool isLast) { | |
| 5461 this.id = id; | |
| 5462 this.results = results; | |
| 5463 this.isLast = isLast; | |
| 5464 } | |
| 5465 | |
| 5466 factory SearchResultsParams.fromJson( | |
| 5467 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 5468 if (json == null) { | |
| 5469 json = {}; | |
| 5470 } | |
| 5471 if (json is Map) { | |
| 5472 String id; | |
| 5473 if (json.containsKey("id")) { | |
| 5474 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | |
| 5475 } else { | 5455 } else { |
| 5476 throw jsonDecoder.missingKey(jsonPath, "id"); | 5456 throw jsonDecoder.mismatch(jsonPath, "kind"); |
| 5477 } | 5457 } |
| 5478 List<SearchResult> results; | 5458 int relevance; |
| 5479 if (json.containsKey("results")) { | 5459 if (json.containsKey("relevance")) { |
| 5480 results = jsonDecoder.decodeList( | 5460 relevance = |
| 5481 jsonPath + ".results", | 5461 jsonDecoder.decodeInt(jsonPath + ".relevance", json["relevance"]); |
| 5482 json["results"], | |
| 5483 (String jsonPath, Object json) => | |
| 5484 new SearchResult.fromJson(jsonDecoder, jsonPath, json)); | |
| 5485 } else { | 5462 } else { |
| 5486 throw jsonDecoder.missingKey(jsonPath, "results"); | 5463 throw jsonDecoder.mismatch(jsonPath, "relevance"); |
| 5487 } | 5464 } |
| 5488 bool isLast; | 5465 String completion; |
| 5489 if (json.containsKey("isLast")) { | 5466 if (json.containsKey("completion")) { |
| 5490 isLast = jsonDecoder.decodeBool(jsonPath + ".isLast", json["isLast"]); | 5467 completion = jsonDecoder.decodeString( |
| 5468 jsonPath + ".completion", json["completion"]); |
| 5491 } else { | 5469 } else { |
| 5492 throw jsonDecoder.missingKey(jsonPath, "isLast"); | 5470 throw jsonDecoder.mismatch(jsonPath, "completion"); |
| 5493 } | |
| 5494 return new SearchResultsParams(id, results, isLast); | |
| 5495 } else { | |
| 5496 throw jsonDecoder.mismatch(jsonPath, "search.results params", json); | |
| 5497 } | |
| 5498 } | |
| 5499 | |
| 5500 factory SearchResultsParams.fromNotification(Notification notification) { | |
| 5501 return new SearchResultsParams.fromJson( | |
| 5502 new ResponseDecoder(null), "params", notification._params); | |
| 5503 } | |
| 5504 | |
| 5505 Map<String, dynamic> toJson() { | |
| 5506 Map<String, dynamic> result = {}; | |
| 5507 result["id"] = id; | |
| 5508 result["results"] = | |
| 5509 results.map((SearchResult value) => value.toJson()).toList(); | |
| 5510 result["isLast"] = isLast; | |
| 5511 return result; | |
| 5512 } | |
| 5513 | |
| 5514 Notification toNotification() { | |
| 5515 return new Notification("search.results", toJson()); | |
| 5516 } | |
| 5517 | |
| 5518 @override | |
| 5519 String toString() => JSON.encode(toJson()); | |
| 5520 | |
| 5521 @override | |
| 5522 bool operator ==(other) { | |
| 5523 if (other is SearchResultsParams) { | |
| 5524 return id == other.id && | |
| 5525 listEqual(results, other.results, | |
| 5526 (SearchResult a, SearchResult b) => a == b) && | |
| 5527 isLast == other.isLast; | |
| 5528 } | |
| 5529 return false; | |
| 5530 } | |
| 5531 | |
| 5532 @override | |
| 5533 int get hashCode { | |
| 5534 int hash = 0; | |
| 5535 hash = JenkinsSmiHash.combine(hash, id.hashCode); | |
| 5536 hash = JenkinsSmiHash.combine(hash, results.hashCode); | |
| 5537 hash = JenkinsSmiHash.combine(hash, isLast.hashCode); | |
| 5538 return JenkinsSmiHash.finish(hash); | |
| 5539 } | |
| 5540 } | |
| 5541 | |
| 5542 /** | |
| 5543 * edit.format params | |
| 5544 * | |
| 5545 * { | |
| 5546 * "file": FilePath | |
| 5547 * "selectionOffset": int | |
| 5548 * "selectionLength": int | |
| 5549 * "lineLength": optional int | |
| 5550 * } | |
| 5551 * | |
| 5552 * Clients may not extend, implement or mix-in this class. | |
| 5553 */ | |
| 5554 class EditFormatParams implements HasToJson { | |
| 5555 String _file; | |
| 5556 | |
| 5557 int _selectionOffset; | |
| 5558 | |
| 5559 int _selectionLength; | |
| 5560 | |
| 5561 int _lineLength; | |
| 5562 | |
| 5563 /** | |
| 5564 * The file containing the code to be formatted. | |
| 5565 */ | |
| 5566 String get file => _file; | |
| 5567 | |
| 5568 /** | |
| 5569 * The file containing the code to be formatted. | |
| 5570 */ | |
| 5571 void set file(String value) { | |
| 5572 assert(value != null); | |
| 5573 this._file = value; | |
| 5574 } | |
| 5575 | |
| 5576 /** | |
| 5577 * The offset of the current selection in the file. | |
| 5578 */ | |
| 5579 int get selectionOffset => _selectionOffset; | |
| 5580 | |
| 5581 /** | |
| 5582 * The offset of the current selection in the file. | |
| 5583 */ | |
| 5584 void set selectionOffset(int value) { | |
| 5585 assert(value != null); | |
| 5586 this._selectionOffset = value; | |
| 5587 } | |
| 5588 | |
| 5589 /** | |
| 5590 * The length of the current selection in the file. | |
| 5591 */ | |
| 5592 int get selectionLength => _selectionLength; | |
| 5593 | |
| 5594 /** | |
| 5595 * The length of the current selection in the file. | |
| 5596 */ | |
| 5597 void set selectionLength(int value) { | |
| 5598 assert(value != null); | |
| 5599 this._selectionLength = value; | |
| 5600 } | |
| 5601 | |
| 5602 /** | |
| 5603 * The line length to be used by the formatter. | |
| 5604 */ | |
| 5605 int get lineLength => _lineLength; | |
| 5606 | |
| 5607 /** | |
| 5608 * The line length to be used by the formatter. | |
| 5609 */ | |
| 5610 void set lineLength(int value) { | |
| 5611 this._lineLength = value; | |
| 5612 } | |
| 5613 | |
| 5614 EditFormatParams(String file, int selectionOffset, int selectionLength, | |
| 5615 {int lineLength}) { | |
| 5616 this.file = file; | |
| 5617 this.selectionOffset = selectionOffset; | |
| 5618 this.selectionLength = selectionLength; | |
| 5619 this.lineLength = lineLength; | |
| 5620 } | |
| 5621 | |
| 5622 factory EditFormatParams.fromJson( | |
| 5623 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 5624 if (json == null) { | |
| 5625 json = {}; | |
| 5626 } | |
| 5627 if (json is Map) { | |
| 5628 String file; | |
| 5629 if (json.containsKey("file")) { | |
| 5630 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
| 5631 } else { | |
| 5632 throw jsonDecoder.missingKey(jsonPath, "file"); | |
| 5633 } | 5471 } |
| 5634 int selectionOffset; | 5472 int selectionOffset; |
| 5635 if (json.containsKey("selectionOffset")) { | 5473 if (json.containsKey("selectionOffset")) { |
| 5636 selectionOffset = jsonDecoder.decodeInt( | 5474 selectionOffset = jsonDecoder.decodeInt( |
| 5637 jsonPath + ".selectionOffset", json["selectionOffset"]); | 5475 jsonPath + ".selectionOffset", json["selectionOffset"]); |
| 5638 } else { | 5476 } else { |
| 5639 throw jsonDecoder.missingKey(jsonPath, "selectionOffset"); | 5477 throw jsonDecoder.mismatch(jsonPath, "selectionOffset"); |
| 5640 } | 5478 } |
| 5641 int selectionLength; | 5479 int selectionLength; |
| 5642 if (json.containsKey("selectionLength")) { | 5480 if (json.containsKey("selectionLength")) { |
| 5643 selectionLength = jsonDecoder.decodeInt( | 5481 selectionLength = jsonDecoder.decodeInt( |
| 5644 jsonPath + ".selectionLength", json["selectionLength"]); | 5482 jsonPath + ".selectionLength", json["selectionLength"]); |
| 5645 } else { | 5483 } else { |
| 5646 throw jsonDecoder.missingKey(jsonPath, "selectionLength"); | 5484 throw jsonDecoder.mismatch(jsonPath, "selectionLength"); |
| 5647 } | 5485 } |
| 5648 int lineLength; | 5486 bool isDeprecated; |
| 5649 if (json.containsKey("lineLength")) { | 5487 if (json.containsKey("isDeprecated")) { |
| 5650 lineLength = | 5488 isDeprecated = jsonDecoder.decodeBool( |
| 5651 jsonDecoder.decodeInt(jsonPath + ".lineLength", json["lineLength"]); | 5489 jsonPath + ".isDeprecated", json["isDeprecated"]); |
| 5652 } | 5490 } else { |
| 5653 return new EditFormatParams(file, selectionOffset, selectionLength, | 5491 throw jsonDecoder.mismatch(jsonPath, "isDeprecated"); |
| 5654 lineLength: lineLength); | 5492 } |
| 5493 bool isPotential; |
| 5494 if (json.containsKey("isPotential")) { |
| 5495 isPotential = jsonDecoder.decodeBool( |
| 5496 jsonPath + ".isPotential", json["isPotential"]); |
| 5497 } else { |
| 5498 throw jsonDecoder.mismatch(jsonPath, "isPotential"); |
| 5499 } |
| 5500 String docSummary; |
| 5501 if (json.containsKey("docSummary")) { |
| 5502 docSummary = jsonDecoder.decodeString( |
| 5503 jsonPath + ".docSummary", json["docSummary"]); |
| 5504 } |
| 5505 String docComplete; |
| 5506 if (json.containsKey("docComplete")) { |
| 5507 docComplete = jsonDecoder.decodeString( |
| 5508 jsonPath + ".docComplete", json["docComplete"]); |
| 5509 } |
| 5510 String declaringType; |
| 5511 if (json.containsKey("declaringType")) { |
| 5512 declaringType = jsonDecoder.decodeString( |
| 5513 jsonPath + ".declaringType", json["declaringType"]); |
| 5514 } |
| 5515 String defaultArgumentListString; |
| 5516 if (json.containsKey("defaultArgumentListString")) { |
| 5517 defaultArgumentListString = jsonDecoder.decodeString( |
| 5518 jsonPath + ".defaultArgumentListString", |
| 5519 json["defaultArgumentListString"]); |
| 5520 } |
| 5521 List<int> defaultArgumentListTextRanges; |
| 5522 if (json.containsKey("defaultArgumentListTextRanges")) { |
| 5523 defaultArgumentListTextRanges = jsonDecoder.decodeList( |
| 5524 jsonPath + ".defaultArgumentListTextRanges", |
| 5525 json["defaultArgumentListTextRanges"], |
| 5526 jsonDecoder.decodeInt); |
| 5527 } |
| 5528 Element element; |
| 5529 if (json.containsKey("element")) { |
| 5530 element = new Element.fromJson( |
| 5531 jsonDecoder, jsonPath + ".element", json["element"]); |
| 5532 } |
| 5533 String returnType; |
| 5534 if (json.containsKey("returnType")) { |
| 5535 returnType = jsonDecoder.decodeString( |
| 5536 jsonPath + ".returnType", json["returnType"]); |
| 5537 } |
| 5538 List<String> parameterNames; |
| 5539 if (json.containsKey("parameterNames")) { |
| 5540 parameterNames = jsonDecoder.decodeList(jsonPath + ".parameterNames", |
| 5541 json["parameterNames"], jsonDecoder.decodeString); |
| 5542 } |
| 5543 List<String> parameterTypes; |
| 5544 if (json.containsKey("parameterTypes")) { |
| 5545 parameterTypes = jsonDecoder.decodeList(jsonPath + ".parameterTypes", |
| 5546 json["parameterTypes"], jsonDecoder.decodeString); |
| 5547 } |
| 5548 int requiredParameterCount; |
| 5549 if (json.containsKey("requiredParameterCount")) { |
| 5550 requiredParameterCount = jsonDecoder.decodeInt( |
| 5551 jsonPath + ".requiredParameterCount", |
| 5552 json["requiredParameterCount"]); |
| 5553 } |
| 5554 bool hasNamedParameters; |
| 5555 if (json.containsKey("hasNamedParameters")) { |
| 5556 hasNamedParameters = jsonDecoder.decodeBool( |
| 5557 jsonPath + ".hasNamedParameters", json["hasNamedParameters"]); |
| 5558 } |
| 5559 String parameterName; |
| 5560 if (json.containsKey("parameterName")) { |
| 5561 parameterName = jsonDecoder.decodeString( |
| 5562 jsonPath + ".parameterName", json["parameterName"]); |
| 5563 } |
| 5564 String parameterType; |
| 5565 if (json.containsKey("parameterType")) { |
| 5566 parameterType = jsonDecoder.decodeString( |
| 5567 jsonPath + ".parameterType", json["parameterType"]); |
| 5568 } |
| 5569 String importUri; |
| 5570 if (json.containsKey("importUri")) { |
| 5571 importUri = jsonDecoder.decodeString( |
| 5572 jsonPath + ".importUri", json["importUri"]); |
| 5573 } |
| 5574 return new CompletionSuggestion(kind, relevance, completion, |
| 5575 selectionOffset, selectionLength, isDeprecated, isPotential, |
| 5576 docSummary: docSummary, |
| 5577 docComplete: docComplete, |
| 5578 declaringType: declaringType, |
| 5579 defaultArgumentListString: defaultArgumentListString, |
| 5580 defaultArgumentListTextRanges: defaultArgumentListTextRanges, |
| 5581 element: element, |
| 5582 returnType: returnType, |
| 5583 parameterNames: parameterNames, |
| 5584 parameterTypes: parameterTypes, |
| 5585 requiredParameterCount: requiredParameterCount, |
| 5586 hasNamedParameters: hasNamedParameters, |
| 5587 parameterName: parameterName, |
| 5588 parameterType: parameterType, |
| 5589 importUri: importUri); |
| 5655 } else { | 5590 } else { |
| 5656 throw jsonDecoder.mismatch(jsonPath, "edit.format params", json); | 5591 throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestion", json); |
| 5657 } | 5592 } |
| 5658 } | 5593 } |
| 5659 | 5594 |
| 5660 factory EditFormatParams.fromRequest(Request request) { | 5595 @override |
| 5661 return new EditFormatParams.fromJson( | |
| 5662 new RequestDecoder(request), "params", request._params); | |
| 5663 } | |
| 5664 | |
| 5665 Map<String, dynamic> toJson() { | 5596 Map<String, dynamic> toJson() { |
| 5666 Map<String, dynamic> result = {}; | 5597 Map<String, dynamic> result = {}; |
| 5667 result["file"] = file; | 5598 result["kind"] = kind.toJson(); |
| 5599 result["relevance"] = relevance; |
| 5600 result["completion"] = completion; |
| 5668 result["selectionOffset"] = selectionOffset; | 5601 result["selectionOffset"] = selectionOffset; |
| 5669 result["selectionLength"] = selectionLength; | 5602 result["selectionLength"] = selectionLength; |
| 5670 if (lineLength != null) { | 5603 result["isDeprecated"] = isDeprecated; |
| 5671 result["lineLength"] = lineLength; | 5604 result["isPotential"] = isPotential; |
| 5605 if (docSummary != null) { |
| 5606 result["docSummary"] = docSummary; |
| 5607 } |
| 5608 if (docComplete != null) { |
| 5609 result["docComplete"] = docComplete; |
| 5610 } |
| 5611 if (declaringType != null) { |
| 5612 result["declaringType"] = declaringType; |
| 5613 } |
| 5614 if (defaultArgumentListString != null) { |
| 5615 result["defaultArgumentListString"] = defaultArgumentListString; |
| 5616 } |
| 5617 if (defaultArgumentListTextRanges != null) { |
| 5618 result["defaultArgumentListTextRanges"] = defaultArgumentListTextRanges; |
| 5619 } |
| 5620 if (element != null) { |
| 5621 result["element"] = element.toJson(); |
| 5622 } |
| 5623 if (returnType != null) { |
| 5624 result["returnType"] = returnType; |
| 5625 } |
| 5626 if (parameterNames != null) { |
| 5627 result["parameterNames"] = parameterNames; |
| 5628 } |
| 5629 if (parameterTypes != null) { |
| 5630 result["parameterTypes"] = parameterTypes; |
| 5631 } |
| 5632 if (requiredParameterCount != null) { |
| 5633 result["requiredParameterCount"] = requiredParameterCount; |
| 5634 } |
| 5635 if (hasNamedParameters != null) { |
| 5636 result["hasNamedParameters"] = hasNamedParameters; |
| 5637 } |
| 5638 if (parameterName != null) { |
| 5639 result["parameterName"] = parameterName; |
| 5640 } |
| 5641 if (parameterType != null) { |
| 5642 result["parameterType"] = parameterType; |
| 5643 } |
| 5644 if (importUri != null) { |
| 5645 result["importUri"] = importUri; |
| 5672 } | 5646 } |
| 5673 return result; | 5647 return result; |
| 5674 } | 5648 } |
| 5675 | 5649 |
| 5676 Request toRequest(String id) { | |
| 5677 return new Request(id, "edit.format", toJson()); | |
| 5678 } | |
| 5679 | |
| 5680 @override | 5650 @override |
| 5681 String toString() => JSON.encode(toJson()); | |
| 5682 | |
| 5683 @override | |
| 5684 bool operator ==(other) { | |
| 5685 if (other is EditFormatParams) { | |
| 5686 return file == other.file && | |
| 5687 selectionOffset == other.selectionOffset && | |
| 5688 selectionLength == other.selectionLength && | |
| 5689 lineLength == other.lineLength; | |
| 5690 } | |
| 5691 return false; | |
| 5692 } | |
| 5693 | |
| 5694 @override | |
| 5695 int get hashCode { | |
| 5696 int hash = 0; | |
| 5697 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
| 5698 hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode); | |
| 5699 hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode); | |
| 5700 hash = JenkinsSmiHash.combine(hash, lineLength.hashCode); | |
| 5701 return JenkinsSmiHash.finish(hash); | |
| 5702 } | |
| 5703 } | |
| 5704 | |
| 5705 /** | |
| 5706 * edit.format result | |
| 5707 * | |
| 5708 * { | |
| 5709 * "edits": List<SourceEdit> | |
| 5710 * "selectionOffset": int | |
| 5711 * "selectionLength": int | |
| 5712 * } | |
| 5713 * | |
| 5714 * Clients may not extend, implement or mix-in this class. | |
| 5715 */ | |
| 5716 class EditFormatResult implements HasToJson { | |
| 5717 List<SourceEdit> _edits; | |
| 5718 | |
| 5719 int _selectionOffset; | |
| 5720 | |
| 5721 int _selectionLength; | |
| 5722 | |
| 5723 /** | |
| 5724 * The edit(s) to be applied in order to format the code. The list will be | |
| 5725 * empty if the code was already formatted (there are no changes). | |
| 5726 */ | |
| 5727 List<SourceEdit> get edits => _edits; | |
| 5728 | |
| 5729 /** | |
| 5730 * The edit(s) to be applied in order to format the code. The list will be | |
| 5731 * empty if the code was already formatted (there are no changes). | |
| 5732 */ | |
| 5733 void set edits(List<SourceEdit> value) { | |
| 5734 assert(value != null); | |
| 5735 this._edits = value; | |
| 5736 } | |
| 5737 | |
| 5738 /** | |
| 5739 * The offset of the selection after formatting the code. | |
| 5740 */ | |
| 5741 int get selectionOffset => _selectionOffset; | |
| 5742 | |
| 5743 /** | |
| 5744 * The offset of the selection after formatting the code. | |
| 5745 */ | |
| 5746 void set selectionOffset(int value) { | |
| 5747 assert(value != null); | |
| 5748 this._selectionOffset = value; | |
| 5749 } | |
| 5750 | |
| 5751 /** | |
| 5752 * The length of the selection after formatting the code. | |
| 5753 */ | |
| 5754 int get selectionLength => _selectionLength; | |
| 5755 | |
| 5756 /** | |
| 5757 * The length of the selection after formatting the code. | |
| 5758 */ | |
| 5759 void set selectionLength(int value) { | |
| 5760 assert(value != null); | |
| 5761 this._selectionLength = value; | |
| 5762 } | |
| 5763 | |
| 5764 EditFormatResult( | |
| 5765 List<SourceEdit> edits, int selectionOffset, int selectionLength) { | |
| 5766 this.edits = edits; | |
| 5767 this.selectionOffset = selectionOffset; | |
| 5768 this.selectionLength = selectionLength; | |
| 5769 } | |
| 5770 | |
| 5771 factory EditFormatResult.fromJson( | |
| 5772 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 5773 if (json == null) { | |
| 5774 json = {}; | |
| 5775 } | |
| 5776 if (json is Map) { | |
| 5777 List<SourceEdit> edits; | |
| 5778 if (json.containsKey("edits")) { | |
| 5779 edits = jsonDecoder.decodeList( | |
| 5780 jsonPath + ".edits", | |
| 5781 json["edits"], | |
| 5782 (String jsonPath, Object json) => | |
| 5783 new SourceEdit.fromJson(jsonDecoder, jsonPath, json)); | |
| 5784 } else { | |
| 5785 throw jsonDecoder.missingKey(jsonPath, "edits"); | |
| 5786 } | |
| 5787 int selectionOffset; | |
| 5788 if (json.containsKey("selectionOffset")) { | |
| 5789 selectionOffset = jsonDecoder.decodeInt( | |
| 5790 jsonPath + ".selectionOffset", json["selectionOffset"]); | |
| 5791 } else { | |
| 5792 throw jsonDecoder.missingKey(jsonPath, "selectionOffset"); | |
| 5793 } | |
| 5794 int selectionLength; | |
| 5795 if (json.containsKey("selectionLength")) { | |
| 5796 selectionLength = jsonDecoder.decodeInt( | |
| 5797 jsonPath + ".selectionLength", json["selectionLength"]); | |
| 5798 } else { | |
| 5799 throw jsonDecoder.missingKey(jsonPath, "selectionLength"); | |
| 5800 } | |
| 5801 return new EditFormatResult(edits, selectionOffset, selectionLength); | |
| 5802 } else { | |
| 5803 throw jsonDecoder.mismatch(jsonPath, "edit.format result", json); | |
| 5804 } | |
| 5805 } | |
| 5806 | |
| 5807 factory EditFormatResult.fromResponse(Response response) { | |
| 5808 return new EditFormatResult.fromJson( | |
| 5809 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | |
| 5810 "result", | |
| 5811 response._result); | |
| 5812 } | |
| 5813 | |
| 5814 Map<String, dynamic> toJson() { | |
| 5815 Map<String, dynamic> result = {}; | |
| 5816 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList(); | |
| 5817 result["selectionOffset"] = selectionOffset; | |
| 5818 result["selectionLength"] = selectionLength; | |
| 5819 return result; | |
| 5820 } | |
| 5821 | |
| 5822 Response toResponse(String id) { | |
| 5823 return new Response(id, result: toJson()); | |
| 5824 } | |
| 5825 | |
| 5826 @override | |
| 5827 String toString() => JSON.encode(toJson()); | |
| 5828 | |
| 5829 @override | |
| 5830 bool operator ==(other) { | |
| 5831 if (other is EditFormatResult) { | |
| 5832 return listEqual( | |
| 5833 edits, other.edits, (SourceEdit a, SourceEdit b) => a == b) && | |
| 5834 selectionOffset == other.selectionOffset && | |
| 5835 selectionLength == other.selectionLength; | |
| 5836 } | |
| 5837 return false; | |
| 5838 } | |
| 5839 | |
| 5840 @override | |
| 5841 int get hashCode { | |
| 5842 int hash = 0; | |
| 5843 hash = JenkinsSmiHash.combine(hash, edits.hashCode); | |
| 5844 hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode); | |
| 5845 hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode); | |
| 5846 return JenkinsSmiHash.finish(hash); | |
| 5847 } | |
| 5848 } | |
| 5849 | |
| 5850 /** | |
| 5851 * edit.getAssists params | |
| 5852 * | |
| 5853 * { | |
| 5854 * "file": FilePath | |
| 5855 * "offset": int | |
| 5856 * "length": int | |
| 5857 * } | |
| 5858 * | |
| 5859 * Clients may not extend, implement or mix-in this class. | |
| 5860 */ | |
| 5861 class EditGetAssistsParams implements HasToJson { | |
| 5862 String _file; | |
| 5863 | |
| 5864 int _offset; | |
| 5865 | |
| 5866 int _length; | |
| 5867 | |
| 5868 /** | |
| 5869 * The file containing the code for which assists are being requested. | |
| 5870 */ | |
| 5871 String get file => _file; | |
| 5872 | |
| 5873 /** | |
| 5874 * The file containing the code for which assists are being requested. | |
| 5875 */ | |
| 5876 void set file(String value) { | |
| 5877 assert(value != null); | |
| 5878 this._file = value; | |
| 5879 } | |
| 5880 | |
| 5881 /** | |
| 5882 * The offset of the code for which assists are being requested. | |
| 5883 */ | |
| 5884 int get offset => _offset; | |
| 5885 | |
| 5886 /** | |
| 5887 * The offset of the code for which assists are being requested. | |
| 5888 */ | |
| 5889 void set offset(int value) { | |
| 5890 assert(value != null); | |
| 5891 this._offset = value; | |
| 5892 } | |
| 5893 | |
| 5894 /** | |
| 5895 * The length of the code for which assists are being requested. | |
| 5896 */ | |
| 5897 int get length => _length; | |
| 5898 | |
| 5899 /** | |
| 5900 * The length of the code for which assists are being requested. | |
| 5901 */ | |
| 5902 void set length(int value) { | |
| 5903 assert(value != null); | |
| 5904 this._length = value; | |
| 5905 } | |
| 5906 | |
| 5907 EditGetAssistsParams(String file, int offset, int length) { | |
| 5908 this.file = file; | |
| 5909 this.offset = offset; | |
| 5910 this.length = length; | |
| 5911 } | |
| 5912 | |
| 5913 factory EditGetAssistsParams.fromJson( | |
| 5914 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 5915 if (json == null) { | |
| 5916 json = {}; | |
| 5917 } | |
| 5918 if (json is Map) { | |
| 5919 String file; | |
| 5920 if (json.containsKey("file")) { | |
| 5921 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
| 5922 } else { | |
| 5923 throw jsonDecoder.missingKey(jsonPath, "file"); | |
| 5924 } | |
| 5925 int offset; | |
| 5926 if (json.containsKey("offset")) { | |
| 5927 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
| 5928 } else { | |
| 5929 throw jsonDecoder.missingKey(jsonPath, "offset"); | |
| 5930 } | |
| 5931 int length; | |
| 5932 if (json.containsKey("length")) { | |
| 5933 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
| 5934 } else { | |
| 5935 throw jsonDecoder.missingKey(jsonPath, "length"); | |
| 5936 } | |
| 5937 return new EditGetAssistsParams(file, offset, length); | |
| 5938 } else { | |
| 5939 throw jsonDecoder.mismatch(jsonPath, "edit.getAssists params", json); | |
| 5940 } | |
| 5941 } | |
| 5942 | |
| 5943 factory EditGetAssistsParams.fromRequest(Request request) { | |
| 5944 return new EditGetAssistsParams.fromJson( | |
| 5945 new RequestDecoder(request), "params", request._params); | |
| 5946 } | |
| 5947 | |
| 5948 Map<String, dynamic> toJson() { | |
| 5949 Map<String, dynamic> result = {}; | |
| 5950 result["file"] = file; | |
| 5951 result["offset"] = offset; | |
| 5952 result["length"] = length; | |
| 5953 return result; | |
| 5954 } | |
| 5955 | |
| 5956 Request toRequest(String id) { | |
| 5957 return new Request(id, "edit.getAssists", toJson()); | |
| 5958 } | |
| 5959 | |
| 5960 @override | |
| 5961 String toString() => JSON.encode(toJson()); | |
| 5962 | |
| 5963 @override | |
| 5964 bool operator ==(other) { | |
| 5965 if (other is EditGetAssistsParams) { | |
| 5966 return file == other.file && | |
| 5967 offset == other.offset && | |
| 5968 length == other.length; | |
| 5969 } | |
| 5970 return false; | |
| 5971 } | |
| 5972 | |
| 5973 @override | |
| 5974 int get hashCode { | |
| 5975 int hash = 0; | |
| 5976 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
| 5977 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
| 5978 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
| 5979 return JenkinsSmiHash.finish(hash); | |
| 5980 } | |
| 5981 } | |
| 5982 | |
| 5983 /** | |
| 5984 * edit.getAssists result | |
| 5985 * | |
| 5986 * { | |
| 5987 * "assists": List<SourceChange> | |
| 5988 * } | |
| 5989 * | |
| 5990 * Clients may not extend, implement or mix-in this class. | |
| 5991 */ | |
| 5992 class EditGetAssistsResult implements HasToJson { | |
| 5993 List<SourceChange> _assists; | |
| 5994 | |
| 5995 /** | |
| 5996 * The assists that are available at the given location. | |
| 5997 */ | |
| 5998 List<SourceChange> get assists => _assists; | |
| 5999 | |
| 6000 /** | |
| 6001 * The assists that are available at the given location. | |
| 6002 */ | |
| 6003 void set assists(List<SourceChange> value) { | |
| 6004 assert(value != null); | |
| 6005 this._assists = value; | |
| 6006 } | |
| 6007 | |
| 6008 EditGetAssistsResult(List<SourceChange> assists) { | |
| 6009 this.assists = assists; | |
| 6010 } | |
| 6011 | |
| 6012 factory EditGetAssistsResult.fromJson( | |
| 6013 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 6014 if (json == null) { | |
| 6015 json = {}; | |
| 6016 } | |
| 6017 if (json is Map) { | |
| 6018 List<SourceChange> assists; | |
| 6019 if (json.containsKey("assists")) { | |
| 6020 assists = jsonDecoder.decodeList( | |
| 6021 jsonPath + ".assists", | |
| 6022 json["assists"], | |
| 6023 (String jsonPath, Object json) => | |
| 6024 new SourceChange.fromJson(jsonDecoder, jsonPath, json)); | |
| 6025 } else { | |
| 6026 throw jsonDecoder.missingKey(jsonPath, "assists"); | |
| 6027 } | |
| 6028 return new EditGetAssistsResult(assists); | |
| 6029 } else { | |
| 6030 throw jsonDecoder.mismatch(jsonPath, "edit.getAssists result", json); | |
| 6031 } | |
| 6032 } | |
| 6033 | |
| 6034 factory EditGetAssistsResult.fromResponse(Response response) { | |
| 6035 return new EditGetAssistsResult.fromJson( | |
| 6036 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | |
| 6037 "result", | |
| 6038 response._result); | |
| 6039 } | |
| 6040 | |
| 6041 Map<String, dynamic> toJson() { | |
| 6042 Map<String, dynamic> result = {}; | |
| 6043 result["assists"] = | |
| 6044 assists.map((SourceChange value) => value.toJson()).toList(); | |
| 6045 return result; | |
| 6046 } | |
| 6047 | |
| 6048 Response toResponse(String id) { | |
| 6049 return new Response(id, result: toJson()); | |
| 6050 } | |
| 6051 | |
| 6052 @override | |
| 6053 String toString() => JSON.encode(toJson()); | 5651 String toString() => JSON.encode(toJson()); |
| 6054 | 5652 |
| 6055 @override | 5653 @override |
| 6056 bool operator ==(other) { | 5654 bool operator ==(other) { |
| 6057 if (other is EditGetAssistsResult) { | 5655 if (other is CompletionSuggestion) { |
| 6058 return listEqual( | 5656 return kind == other.kind && |
| 6059 assists, other.assists, (SourceChange a, SourceChange b) => a == b); | 5657 relevance == other.relevance && |
| 5658 completion == other.completion && |
| 5659 selectionOffset == other.selectionOffset && |
| 5660 selectionLength == other.selectionLength && |
| 5661 isDeprecated == other.isDeprecated && |
| 5662 isPotential == other.isPotential && |
| 5663 docSummary == other.docSummary && |
| 5664 docComplete == other.docComplete && |
| 5665 declaringType == other.declaringType && |
| 5666 defaultArgumentListString == other.defaultArgumentListString && |
| 5667 listEqual(defaultArgumentListTextRanges, |
| 5668 other.defaultArgumentListTextRanges, (int a, int b) => a == b) && |
| 5669 element == other.element && |
| 5670 returnType == other.returnType && |
| 5671 listEqual(parameterNames, other.parameterNames, |
| 5672 (String a, String b) => a == b) && |
| 5673 listEqual(parameterTypes, other.parameterTypes, |
| 5674 (String a, String b) => a == b) && |
| 5675 requiredParameterCount == other.requiredParameterCount && |
| 5676 hasNamedParameters == other.hasNamedParameters && |
| 5677 parameterName == other.parameterName && |
| 5678 parameterType == other.parameterType && |
| 5679 importUri == other.importUri; |
| 6060 } | 5680 } |
| 6061 return false; | 5681 return false; |
| 6062 } | 5682 } |
| 6063 | 5683 |
| 6064 @override | 5684 @override |
| 6065 int get hashCode { | 5685 int get hashCode { |
| 6066 int hash = 0; | 5686 int hash = 0; |
| 6067 hash = JenkinsSmiHash.combine(hash, assists.hashCode); | 5687 hash = JenkinsSmiHash.combine(hash, kind.hashCode); |
| 5688 hash = JenkinsSmiHash.combine(hash, relevance.hashCode); |
| 5689 hash = JenkinsSmiHash.combine(hash, completion.hashCode); |
| 5690 hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode); |
| 5691 hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode); |
| 5692 hash = JenkinsSmiHash.combine(hash, isDeprecated.hashCode); |
| 5693 hash = JenkinsSmiHash.combine(hash, isPotential.hashCode); |
| 5694 hash = JenkinsSmiHash.combine(hash, docSummary.hashCode); |
| 5695 hash = JenkinsSmiHash.combine(hash, docComplete.hashCode); |
| 5696 hash = JenkinsSmiHash.combine(hash, declaringType.hashCode); |
| 5697 hash = JenkinsSmiHash.combine(hash, defaultArgumentListString.hashCode); |
| 5698 hash = JenkinsSmiHash.combine(hash, defaultArgumentListTextRanges.hashCode); |
| 5699 hash = JenkinsSmiHash.combine(hash, element.hashCode); |
| 5700 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); |
| 5701 hash = JenkinsSmiHash.combine(hash, parameterNames.hashCode); |
| 5702 hash = JenkinsSmiHash.combine(hash, parameterTypes.hashCode); |
| 5703 hash = JenkinsSmiHash.combine(hash, requiredParameterCount.hashCode); |
| 5704 hash = JenkinsSmiHash.combine(hash, hasNamedParameters.hashCode); |
| 5705 hash = JenkinsSmiHash.combine(hash, parameterName.hashCode); |
| 5706 hash = JenkinsSmiHash.combine(hash, parameterType.hashCode); |
| 5707 hash = JenkinsSmiHash.combine(hash, importUri.hashCode); |
| 6068 return JenkinsSmiHash.finish(hash); | 5708 return JenkinsSmiHash.finish(hash); |
| 6069 } | 5709 } |
| 6070 } | 5710 } |
| 6071 | 5711 |
| 6072 /** | 5712 /** |
| 6073 * edit.getAvailableRefactorings params | 5713 * CompletionSuggestionKind |
| 6074 * | 5714 * |
| 6075 * { | 5715 * enum { |
| 6076 * "file": FilePath | 5716 * ARGUMENT_LIST |
| 6077 * "offset": int | 5717 * IMPORT |
| 6078 * "length": int | 5718 * IDENTIFIER |
| 5719 * INVOCATION |
| 5720 * KEYWORD |
| 5721 * NAMED_ARGUMENT |
| 5722 * OPTIONAL_ARGUMENT |
| 5723 * PARAMETER |
| 6079 * } | 5724 * } |
| 6080 * | 5725 * |
| 6081 * Clients may not extend, implement or mix-in this class. | 5726 * Clients may not extend, implement or mix-in this class. |
| 6082 */ | 5727 */ |
| 6083 class EditGetAvailableRefactoringsParams implements HasToJson { | 5728 class CompletionSuggestionKind implements Enum { |
| 6084 String _file; | 5729 /** |
| 6085 | 5730 * A list of arguments for the method or function that is being invoked. For |
| 6086 int _offset; | 5731 * this suggestion kind, the completion field is a textual representation of |
| 6087 | 5732 * the invocation and the parameterNames, parameterTypes, and |
| 6088 int _length; | 5733 * requiredParameterCount attributes are defined. |
| 6089 | 5734 */ |
| 6090 /** | 5735 static const CompletionSuggestionKind ARGUMENT_LIST = |
| 6091 * The file containing the code on which the refactoring would be based. | 5736 const CompletionSuggestionKind._("ARGUMENT_LIST"); |
| 6092 */ | 5737 |
| 6093 String get file => _file; | 5738 static const CompletionSuggestionKind IMPORT = |
| 6094 | 5739 const CompletionSuggestionKind._("IMPORT"); |
| 6095 /** | 5740 |
| 6096 * The file containing the code on which the refactoring would be based. | 5741 /** |
| 6097 */ | 5742 * The element identifier should be inserted at the completion location. For |
| 6098 void set file(String value) { | 5743 * example "someMethod" in import 'myLib.dart' show someMethod; . For |
| 6099 assert(value != null); | 5744 * suggestions of this kind, the element attribute is defined and the |
| 6100 this._file = value; | 5745 * completion field is the element's identifier. |
| 6101 } | 5746 */ |
| 6102 | 5747 static const CompletionSuggestionKind IDENTIFIER = |
| 6103 /** | 5748 const CompletionSuggestionKind._("IDENTIFIER"); |
| 6104 * The offset of the code on which the refactoring would be based. | 5749 |
| 6105 */ | 5750 /** |
| 6106 int get offset => _offset; | 5751 * The element is being invoked at the completion location. For example, |
| 6107 | 5752 * "someMethod" in x.someMethod(); . For suggestions of this kind, the |
| 6108 /** | 5753 * element attribute is defined and the completion field is the element's |
| 6109 * The offset of the code on which the refactoring would be based. | 5754 * identifier. |
| 6110 */ | 5755 */ |
| 6111 void set offset(int value) { | 5756 static const CompletionSuggestionKind INVOCATION = |
| 6112 assert(value != null); | 5757 const CompletionSuggestionKind._("INVOCATION"); |
| 6113 this._offset = value; | 5758 |
| 6114 } | 5759 /** |
| 6115 | 5760 * A keyword is being suggested. For suggestions of this kind, the completion |
| 6116 /** | 5761 * is the keyword. |
| 6117 * The length of the code on which the refactoring would be based. | 5762 */ |
| 6118 */ | 5763 static const CompletionSuggestionKind KEYWORD = |
| 6119 int get length => _length; | 5764 const CompletionSuggestionKind._("KEYWORD"); |
| 6120 | 5765 |
| 6121 /** | 5766 /** |
| 6122 * The length of the code on which the refactoring would be based. | 5767 * A named argument for the current callsite is being suggested. For |
| 6123 */ | 5768 * suggestions of this kind, the completion is the named argument identifier |
| 6124 void set length(int value) { | 5769 * including a trailing ':' and space. |
| 6125 assert(value != null); | 5770 */ |
| 6126 this._length = value; | 5771 static const CompletionSuggestionKind NAMED_ARGUMENT = |
| 6127 } | 5772 const CompletionSuggestionKind._("NAMED_ARGUMENT"); |
| 6128 | 5773 |
| 6129 EditGetAvailableRefactoringsParams(String file, int offset, int length) { | 5774 static const CompletionSuggestionKind OPTIONAL_ARGUMENT = |
| 6130 this.file = file; | 5775 const CompletionSuggestionKind._("OPTIONAL_ARGUMENT"); |
| 6131 this.offset = offset; | 5776 |
| 6132 this.length = length; | 5777 static const CompletionSuggestionKind PARAMETER = |
| 6133 } | 5778 const CompletionSuggestionKind._("PARAMETER"); |
| 6134 | 5779 |
| 6135 factory EditGetAvailableRefactoringsParams.fromJson( | 5780 /** |
| 5781 * A list containing all of the enum values that are defined. |
| 5782 */ |
| 5783 static const List<CompletionSuggestionKind> VALUES = |
| 5784 const <CompletionSuggestionKind>[ |
| 5785 ARGUMENT_LIST, |
| 5786 IMPORT, |
| 5787 IDENTIFIER, |
| 5788 INVOCATION, |
| 5789 KEYWORD, |
| 5790 NAMED_ARGUMENT, |
| 5791 OPTIONAL_ARGUMENT, |
| 5792 PARAMETER |
| 5793 ]; |
| 5794 |
| 5795 @override |
| 5796 final String name; |
| 5797 |
| 5798 const CompletionSuggestionKind._(this.name); |
| 5799 |
| 5800 factory CompletionSuggestionKind(String name) { |
| 5801 switch (name) { |
| 5802 case "ARGUMENT_LIST": |
| 5803 return ARGUMENT_LIST; |
| 5804 case "IMPORT": |
| 5805 return IMPORT; |
| 5806 case "IDENTIFIER": |
| 5807 return IDENTIFIER; |
| 5808 case "INVOCATION": |
| 5809 return INVOCATION; |
| 5810 case "KEYWORD": |
| 5811 return KEYWORD; |
| 5812 case "NAMED_ARGUMENT": |
| 5813 return NAMED_ARGUMENT; |
| 5814 case "OPTIONAL_ARGUMENT": |
| 5815 return OPTIONAL_ARGUMENT; |
| 5816 case "PARAMETER": |
| 5817 return PARAMETER; |
| 5818 } |
| 5819 throw new Exception('Illegal enum value: $name'); |
| 5820 } |
| 5821 |
| 5822 factory CompletionSuggestionKind.fromJson( |
| 5823 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 5824 if (json is String) { |
| 5825 try { |
| 5826 return new CompletionSuggestionKind(json); |
| 5827 } catch (_) { |
| 5828 // Fall through |
| 5829 } |
| 5830 } |
| 5831 throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestionKind", json); |
| 5832 } |
| 5833 |
| 5834 @override |
| 5835 String toString() => "CompletionSuggestionKind.$name"; |
| 5836 |
| 5837 String toJson() => name; |
| 5838 } |
| 5839 |
| 5840 /** |
| 5841 * ContextData |
| 5842 * |
| 5843 * { |
| 5844 * "name": String |
| 5845 * "explicitFileCount": int |
| 5846 * "implicitFileCount": int |
| 5847 * "workItemQueueLength": int |
| 5848 * "cacheEntryExceptions": List<String> |
| 5849 * } |
| 5850 * |
| 5851 * Clients may not extend, implement or mix-in this class. |
| 5852 */ |
| 5853 class ContextData implements HasToJson { |
| 5854 String _name; |
| 5855 |
| 5856 int _explicitFileCount; |
| 5857 |
| 5858 int _implicitFileCount; |
| 5859 |
| 5860 int _workItemQueueLength; |
| 5861 |
| 5862 List<String> _cacheEntryExceptions; |
| 5863 |
| 5864 /** |
| 5865 * The name of the context. |
| 5866 */ |
| 5867 String get name => _name; |
| 5868 |
| 5869 /** |
| 5870 * The name of the context. |
| 5871 */ |
| 5872 void set name(String value) { |
| 5873 assert(value != null); |
| 5874 this._name = value; |
| 5875 } |
| 5876 |
| 5877 /** |
| 5878 * Explicitly analyzed files. |
| 5879 */ |
| 5880 int get explicitFileCount => _explicitFileCount; |
| 5881 |
| 5882 /** |
| 5883 * Explicitly analyzed files. |
| 5884 */ |
| 5885 void set explicitFileCount(int value) { |
| 5886 assert(value != null); |
| 5887 this._explicitFileCount = value; |
| 5888 } |
| 5889 |
| 5890 /** |
| 5891 * Implicitly analyzed files. |
| 5892 */ |
| 5893 int get implicitFileCount => _implicitFileCount; |
| 5894 |
| 5895 /** |
| 5896 * Implicitly analyzed files. |
| 5897 */ |
| 5898 void set implicitFileCount(int value) { |
| 5899 assert(value != null); |
| 5900 this._implicitFileCount = value; |
| 5901 } |
| 5902 |
| 5903 /** |
| 5904 * The number of work items in the queue. |
| 5905 */ |
| 5906 int get workItemQueueLength => _workItemQueueLength; |
| 5907 |
| 5908 /** |
| 5909 * The number of work items in the queue. |
| 5910 */ |
| 5911 void set workItemQueueLength(int value) { |
| 5912 assert(value != null); |
| 5913 this._workItemQueueLength = value; |
| 5914 } |
| 5915 |
| 5916 /** |
| 5917 * Exceptions associated with cache entries. |
| 5918 */ |
| 5919 List<String> get cacheEntryExceptions => _cacheEntryExceptions; |
| 5920 |
| 5921 /** |
| 5922 * Exceptions associated with cache entries. |
| 5923 */ |
| 5924 void set cacheEntryExceptions(List<String> value) { |
| 5925 assert(value != null); |
| 5926 this._cacheEntryExceptions = value; |
| 5927 } |
| 5928 |
| 5929 ContextData(String name, int explicitFileCount, int implicitFileCount, |
| 5930 int workItemQueueLength, List<String> cacheEntryExceptions) { |
| 5931 this.name = name; |
| 5932 this.explicitFileCount = explicitFileCount; |
| 5933 this.implicitFileCount = implicitFileCount; |
| 5934 this.workItemQueueLength = workItemQueueLength; |
| 5935 this.cacheEntryExceptions = cacheEntryExceptions; |
| 5936 } |
| 5937 |
| 5938 factory ContextData.fromJson( |
| 6136 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 5939 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 6137 if (json == null) { | 5940 if (json == null) { |
| 6138 json = {}; | 5941 json = {}; |
| 6139 } | 5942 } |
| 6140 if (json is Map) { | 5943 if (json is Map) { |
| 6141 String file; | 5944 String name; |
| 6142 if (json.containsKey("file")) { | 5945 if (json.containsKey("name")) { |
| 6143 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 5946 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); |
| 6144 } else { | 5947 } else { |
| 6145 throw jsonDecoder.missingKey(jsonPath, "file"); | 5948 throw jsonDecoder.mismatch(jsonPath, "name"); |
| 6146 } | 5949 } |
| 6147 int offset; | 5950 int explicitFileCount; |
| 6148 if (json.containsKey("offset")) { | 5951 if (json.containsKey("explicitFileCount")) { |
| 6149 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 5952 explicitFileCount = jsonDecoder.decodeInt( |
| 6150 } else { | 5953 jsonPath + ".explicitFileCount", json["explicitFileCount"]); |
| 6151 throw jsonDecoder.missingKey(jsonPath, "offset"); | 5954 } else { |
| 6152 } | 5955 throw jsonDecoder.mismatch(jsonPath, "explicitFileCount"); |
| 6153 int length; | 5956 } |
| 6154 if (json.containsKey("length")) { | 5957 int implicitFileCount; |
| 6155 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 5958 if (json.containsKey("implicitFileCount")) { |
| 6156 } else { | 5959 implicitFileCount = jsonDecoder.decodeInt( |
| 6157 throw jsonDecoder.missingKey(jsonPath, "length"); | 5960 jsonPath + ".implicitFileCount", json["implicitFileCount"]); |
| 6158 } | 5961 } else { |
| 6159 return new EditGetAvailableRefactoringsParams(file, offset, length); | 5962 throw jsonDecoder.mismatch(jsonPath, "implicitFileCount"); |
| 5963 } |
| 5964 int workItemQueueLength; |
| 5965 if (json.containsKey("workItemQueueLength")) { |
| 5966 workItemQueueLength = jsonDecoder.decodeInt( |
| 5967 jsonPath + ".workItemQueueLength", json["workItemQueueLength"]); |
| 5968 } else { |
| 5969 throw jsonDecoder.mismatch(jsonPath, "workItemQueueLength"); |
| 5970 } |
| 5971 List<String> cacheEntryExceptions; |
| 5972 if (json.containsKey("cacheEntryExceptions")) { |
| 5973 cacheEntryExceptions = jsonDecoder.decodeList( |
| 5974 jsonPath + ".cacheEntryExceptions", |
| 5975 json["cacheEntryExceptions"], |
| 5976 jsonDecoder.decodeString); |
| 5977 } else { |
| 5978 throw jsonDecoder.mismatch(jsonPath, "cacheEntryExceptions"); |
| 5979 } |
| 5980 return new ContextData(name, explicitFileCount, implicitFileCount, |
| 5981 workItemQueueLength, cacheEntryExceptions); |
| 6160 } else { | 5982 } else { |
| 6161 throw jsonDecoder.mismatch( | 5983 throw jsonDecoder.mismatch(jsonPath, "ContextData", json); |
| 6162 jsonPath, "edit.getAvailableRefactorings params", json); | 5984 } |
| 6163 } | 5985 } |
| 6164 } | 5986 |
| 6165 | 5987 @override |
| 6166 factory EditGetAvailableRefactoringsParams.fromRequest(Request request) { | |
| 6167 return new EditGetAvailableRefactoringsParams.fromJson( | |
| 6168 new RequestDecoder(request), "params", request._params); | |
| 6169 } | |
| 6170 | |
| 6171 Map<String, dynamic> toJson() { | 5988 Map<String, dynamic> toJson() { |
| 6172 Map<String, dynamic> result = {}; | 5989 Map<String, dynamic> result = {}; |
| 6173 result["file"] = file; | 5990 result["name"] = name; |
| 6174 result["offset"] = offset; | 5991 result["explicitFileCount"] = explicitFileCount; |
| 6175 result["length"] = length; | 5992 result["implicitFileCount"] = implicitFileCount; |
| 5993 result["workItemQueueLength"] = workItemQueueLength; |
| 5994 result["cacheEntryExceptions"] = cacheEntryExceptions; |
| 6176 return result; | 5995 return result; |
| 6177 } | 5996 } |
| 6178 | 5997 |
| 6179 Request toRequest(String id) { | |
| 6180 return new Request(id, "edit.getAvailableRefactorings", toJson()); | |
| 6181 } | |
| 6182 | |
| 6183 @override | 5998 @override |
| 6184 String toString() => JSON.encode(toJson()); | 5999 String toString() => JSON.encode(toJson()); |
| 6185 | 6000 |
| 6186 @override | 6001 @override |
| 6187 bool operator ==(other) { | 6002 bool operator ==(other) { |
| 6188 if (other is EditGetAvailableRefactoringsParams) { | 6003 if (other is ContextData) { |
| 6189 return file == other.file && | 6004 return name == other.name && |
| 6190 offset == other.offset && | 6005 explicitFileCount == other.explicitFileCount && |
| 6191 length == other.length; | 6006 implicitFileCount == other.implicitFileCount && |
| 6007 workItemQueueLength == other.workItemQueueLength && |
| 6008 listEqual(cacheEntryExceptions, other.cacheEntryExceptions, |
| 6009 (String a, String b) => a == b); |
| 6192 } | 6010 } |
| 6193 return false; | 6011 return false; |
| 6194 } | 6012 } |
| 6195 | 6013 |
| 6196 @override | 6014 @override |
| 6197 int get hashCode { | 6015 int get hashCode { |
| 6198 int hash = 0; | 6016 int hash = 0; |
| 6199 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 6017 hash = JenkinsSmiHash.combine(hash, name.hashCode); |
| 6200 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 6018 hash = JenkinsSmiHash.combine(hash, explicitFileCount.hashCode); |
| 6201 hash = JenkinsSmiHash.combine(hash, length.hashCode); | 6019 hash = JenkinsSmiHash.combine(hash, implicitFileCount.hashCode); |
| 6020 hash = JenkinsSmiHash.combine(hash, workItemQueueLength.hashCode); |
| 6021 hash = JenkinsSmiHash.combine(hash, cacheEntryExceptions.hashCode); |
| 6202 return JenkinsSmiHash.finish(hash); | 6022 return JenkinsSmiHash.finish(hash); |
| 6203 } | 6023 } |
| 6204 } | 6024 } |
| 6205 | 6025 |
| 6206 /** | 6026 /** |
| 6207 * edit.getAvailableRefactorings result | 6027 * convertGetterToMethod feedback |
| 6028 * |
| 6029 * Clients may not extend, implement or mix-in this class. |
| 6030 */ |
| 6031 class ConvertGetterToMethodFeedback extends RefactoringFeedback |
| 6032 implements HasToJson { |
| 6033 @override |
| 6034 bool operator ==(other) { |
| 6035 if (other is ConvertGetterToMethodFeedback) { |
| 6036 return true; |
| 6037 } |
| 6038 return false; |
| 6039 } |
| 6040 |
| 6041 @override |
| 6042 int get hashCode { |
| 6043 return 616032599; |
| 6044 } |
| 6045 } |
| 6046 |
| 6047 /** |
| 6048 * convertGetterToMethod options |
| 6049 * |
| 6050 * Clients may not extend, implement or mix-in this class. |
| 6051 */ |
| 6052 class ConvertGetterToMethodOptions extends RefactoringOptions |
| 6053 implements HasToJson { |
| 6054 @override |
| 6055 bool operator ==(other) { |
| 6056 if (other is ConvertGetterToMethodOptions) { |
| 6057 return true; |
| 6058 } |
| 6059 return false; |
| 6060 } |
| 6061 |
| 6062 @override |
| 6063 int get hashCode { |
| 6064 return 488848400; |
| 6065 } |
| 6066 } |
| 6067 |
| 6068 /** |
| 6069 * convertMethodToGetter feedback |
| 6070 * |
| 6071 * Clients may not extend, implement or mix-in this class. |
| 6072 */ |
| 6073 class ConvertMethodToGetterFeedback extends RefactoringFeedback |
| 6074 implements HasToJson { |
| 6075 @override |
| 6076 bool operator ==(other) { |
| 6077 if (other is ConvertMethodToGetterFeedback) { |
| 6078 return true; |
| 6079 } |
| 6080 return false; |
| 6081 } |
| 6082 |
| 6083 @override |
| 6084 int get hashCode { |
| 6085 return 165291526; |
| 6086 } |
| 6087 } |
| 6088 |
| 6089 /** |
| 6090 * convertMethodToGetter options |
| 6091 * |
| 6092 * Clients may not extend, implement or mix-in this class. |
| 6093 */ |
| 6094 class ConvertMethodToGetterOptions extends RefactoringOptions |
| 6095 implements HasToJson { |
| 6096 @override |
| 6097 bool operator ==(other) { |
| 6098 if (other is ConvertMethodToGetterOptions) { |
| 6099 return true; |
| 6100 } |
| 6101 return false; |
| 6102 } |
| 6103 |
| 6104 @override |
| 6105 int get hashCode { |
| 6106 return 27952290; |
| 6107 } |
| 6108 } |
| 6109 |
| 6110 /** |
| 6111 * diagnostic.getDiagnostics params |
| 6112 * |
| 6113 * Clients may not extend, implement or mix-in this class. |
| 6114 */ |
| 6115 class DiagnosticGetDiagnosticsParams implements RequestParams { |
| 6116 @override |
| 6117 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 6118 |
| 6119 @override |
| 6120 Request toRequest(String id) { |
| 6121 return new Request(id, "diagnostic.getDiagnostics", null); |
| 6122 } |
| 6123 |
| 6124 @override |
| 6125 bool operator ==(other) { |
| 6126 if (other is DiagnosticGetDiagnosticsParams) { |
| 6127 return true; |
| 6128 } |
| 6129 return false; |
| 6130 } |
| 6131 |
| 6132 @override |
| 6133 int get hashCode { |
| 6134 return 587526202; |
| 6135 } |
| 6136 } |
| 6137 |
| 6138 /** |
| 6139 * diagnostic.getDiagnostics result |
| 6208 * | 6140 * |
| 6209 * { | 6141 * { |
| 6210 * "kinds": List<RefactoringKind> | 6142 * "contexts": List<ContextData> |
| 6211 * } | 6143 * } |
| 6212 * | 6144 * |
| 6213 * Clients may not extend, implement or mix-in this class. | 6145 * Clients may not extend, implement or mix-in this class. |
| 6214 */ | 6146 */ |
| 6215 class EditGetAvailableRefactoringsResult implements HasToJson { | 6147 class DiagnosticGetDiagnosticsResult implements ResponseResult { |
| 6216 List<RefactoringKind> _kinds; | 6148 List<ContextData> _contexts; |
| 6217 | 6149 |
| 6218 /** | 6150 /** |
| 6219 * The kinds of refactorings that are valid for the given selection. | 6151 * The list of analysis contexts. |
| 6220 */ | 6152 */ |
| 6221 List<RefactoringKind> get kinds => _kinds; | 6153 List<ContextData> get contexts => _contexts; |
| 6222 | 6154 |
| 6223 /** | 6155 /** |
| 6224 * The kinds of refactorings that are valid for the given selection. | 6156 * The list of analysis contexts. |
| 6225 */ | 6157 */ |
| 6226 void set kinds(List<RefactoringKind> value) { | 6158 void set contexts(List<ContextData> value) { |
| 6227 assert(value != null); | 6159 assert(value != null); |
| 6228 this._kinds = value; | 6160 this._contexts = value; |
| 6229 } | 6161 } |
| 6230 | 6162 |
| 6231 EditGetAvailableRefactoringsResult(List<RefactoringKind> kinds) { | 6163 DiagnosticGetDiagnosticsResult(List<ContextData> contexts) { |
| 6232 this.kinds = kinds; | 6164 this.contexts = contexts; |
| 6233 } | 6165 } |
| 6234 | 6166 |
| 6235 factory EditGetAvailableRefactoringsResult.fromJson( | 6167 factory DiagnosticGetDiagnosticsResult.fromJson( |
| 6236 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 6168 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 6237 if (json == null) { | 6169 if (json == null) { |
| 6238 json = {}; | 6170 json = {}; |
| 6239 } | 6171 } |
| 6240 if (json is Map) { | 6172 if (json is Map) { |
| 6241 List<RefactoringKind> kinds; | 6173 List<ContextData> contexts; |
| 6242 if (json.containsKey("kinds")) { | 6174 if (json.containsKey("contexts")) { |
| 6243 kinds = jsonDecoder.decodeList( | 6175 contexts = jsonDecoder.decodeList( |
| 6244 jsonPath + ".kinds", | 6176 jsonPath + ".contexts", |
| 6245 json["kinds"], | 6177 json["contexts"], |
| 6246 (String jsonPath, Object json) => | 6178 (String jsonPath, Object json) => |
| 6247 new RefactoringKind.fromJson(jsonDecoder, jsonPath, json)); | 6179 new ContextData.fromJson(jsonDecoder, jsonPath, json)); |
| 6248 } else { | 6180 } else { |
| 6249 throw jsonDecoder.missingKey(jsonPath, "kinds"); | 6181 throw jsonDecoder.mismatch(jsonPath, "contexts"); |
| 6250 } | 6182 } |
| 6251 return new EditGetAvailableRefactoringsResult(kinds); | 6183 return new DiagnosticGetDiagnosticsResult(contexts); |
| 6252 } else { | 6184 } else { |
| 6253 throw jsonDecoder.mismatch( | 6185 throw jsonDecoder.mismatch( |
| 6254 jsonPath, "edit.getAvailableRefactorings result", json); | 6186 jsonPath, "diagnostic.getDiagnostics result", json); |
| 6255 } | 6187 } |
| 6256 } | 6188 } |
| 6257 | 6189 |
| 6258 factory EditGetAvailableRefactoringsResult.fromResponse(Response response) { | 6190 factory DiagnosticGetDiagnosticsResult.fromResponse(Response response) { |
| 6259 return new EditGetAvailableRefactoringsResult.fromJson( | 6191 return new DiagnosticGetDiagnosticsResult.fromJson( |
| 6260 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 6192 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 6261 "result", | 6193 "result", |
| 6262 response._result); | 6194 response.result); |
| 6263 } | 6195 } |
| 6264 | 6196 |
| 6197 @override |
| 6265 Map<String, dynamic> toJson() { | 6198 Map<String, dynamic> toJson() { |
| 6266 Map<String, dynamic> result = {}; | 6199 Map<String, dynamic> result = {}; |
| 6267 result["kinds"] = | 6200 result["contexts"] = |
| 6268 kinds.map((RefactoringKind value) => value.toJson()).toList(); | 6201 contexts.map((ContextData value) => value.toJson()).toList(); |
| 6269 return result; | 6202 return result; |
| 6270 } | 6203 } |
| 6271 | 6204 |
| 6205 @override |
| 6272 Response toResponse(String id) { | 6206 Response toResponse(String id) { |
| 6273 return new Response(id, result: toJson()); | 6207 return new Response(id, result: toJson()); |
| 6274 } | 6208 } |
| 6275 | 6209 |
| 6276 @override | 6210 @override |
| 6277 String toString() => JSON.encode(toJson()); | 6211 String toString() => JSON.encode(toJson()); |
| 6278 | 6212 |
| 6279 @override | 6213 @override |
| 6280 bool operator ==(other) { | 6214 bool operator ==(other) { |
| 6281 if (other is EditGetAvailableRefactoringsResult) { | 6215 if (other is DiagnosticGetDiagnosticsResult) { |
| 6282 return listEqual( | 6216 return listEqual( |
| 6283 kinds, other.kinds, (RefactoringKind a, RefactoringKind b) => a == b); | 6217 contexts, other.contexts, (ContextData a, ContextData b) => a == b); |
| 6284 } | 6218 } |
| 6285 return false; | 6219 return false; |
| 6286 } | 6220 } |
| 6287 | 6221 |
| 6288 @override | 6222 @override |
| 6289 int get hashCode { | 6223 int get hashCode { |
| 6290 int hash = 0; | 6224 int hash = 0; |
| 6291 hash = JenkinsSmiHash.combine(hash, kinds.hashCode); | 6225 hash = JenkinsSmiHash.combine(hash, contexts.hashCode); |
| 6292 return JenkinsSmiHash.finish(hash); | 6226 return JenkinsSmiHash.finish(hash); |
| 6293 } | 6227 } |
| 6294 } | 6228 } |
| 6295 | 6229 |
| 6296 /** | 6230 /** |
| 6297 * edit.getFixes params | 6231 * diagnostic.getServerPort params |
| 6232 * |
| 6233 * Clients may not extend, implement or mix-in this class. |
| 6234 */ |
| 6235 class DiagnosticGetServerPortParams implements RequestParams { |
| 6236 @override |
| 6237 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 6238 |
| 6239 @override |
| 6240 Request toRequest(String id) { |
| 6241 return new Request(id, "diagnostic.getServerPort", null); |
| 6242 } |
| 6243 |
| 6244 @override |
| 6245 bool operator ==(other) { |
| 6246 if (other is DiagnosticGetServerPortParams) { |
| 6247 return true; |
| 6248 } |
| 6249 return false; |
| 6250 } |
| 6251 |
| 6252 @override |
| 6253 int get hashCode { |
| 6254 return 367508704; |
| 6255 } |
| 6256 } |
| 6257 |
| 6258 /** |
| 6259 * diagnostic.getServerPort result |
| 6298 * | 6260 * |
| 6299 * { | 6261 * { |
| 6300 * "file": FilePath | 6262 * "port": int |
| 6301 * "offset": int | |
| 6302 * } | 6263 * } |
| 6303 * | 6264 * |
| 6304 * Clients may not extend, implement or mix-in this class. | 6265 * Clients may not extend, implement or mix-in this class. |
| 6305 */ | 6266 */ |
| 6306 class EditGetFixesParams implements HasToJson { | 6267 class DiagnosticGetServerPortResult implements ResponseResult { |
| 6307 String _file; | 6268 int _port; |
| 6308 | |
| 6309 int _offset; | |
| 6310 | 6269 |
| 6311 /** | 6270 /** |
| 6312 * The file containing the errors for which fixes are being requested. | 6271 * The diagnostic server port. |
| 6313 */ | 6272 */ |
| 6314 String get file => _file; | 6273 int get port => _port; |
| 6315 | 6274 |
| 6316 /** | 6275 /** |
| 6317 * The file containing the errors for which fixes are being requested. | 6276 * The diagnostic server port. |
| 6318 */ | 6277 */ |
| 6319 void set file(String value) { | 6278 void set port(int value) { |
| 6320 assert(value != null); | 6279 assert(value != null); |
| 6321 this._file = value; | 6280 this._port = value; |
| 6322 } | 6281 } |
| 6323 | 6282 |
| 6324 /** | 6283 DiagnosticGetServerPortResult(int port) { |
| 6325 * The offset used to select the errors for which fixes will be returned. | 6284 this.port = port; |
| 6326 */ | |
| 6327 int get offset => _offset; | |
| 6328 | |
| 6329 /** | |
| 6330 * The offset used to select the errors for which fixes will be returned. | |
| 6331 */ | |
| 6332 void set offset(int value) { | |
| 6333 assert(value != null); | |
| 6334 this._offset = value; | |
| 6335 } | 6285 } |
| 6336 | 6286 |
| 6337 EditGetFixesParams(String file, int offset) { | 6287 factory DiagnosticGetServerPortResult.fromJson( |
| 6338 this.file = file; | |
| 6339 this.offset = offset; | |
| 6340 } | |
| 6341 | |
| 6342 factory EditGetFixesParams.fromJson( | |
| 6343 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 6288 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 6344 if (json == null) { | 6289 if (json == null) { |
| 6345 json = {}; | 6290 json = {}; |
| 6346 } | 6291 } |
| 6347 if (json is Map) { | 6292 if (json is Map) { |
| 6348 String file; | 6293 int port; |
| 6349 if (json.containsKey("file")) { | 6294 if (json.containsKey("port")) { |
| 6350 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 6295 port = jsonDecoder.decodeInt(jsonPath + ".port", json["port"]); |
| 6351 } else { | 6296 } else { |
| 6352 throw jsonDecoder.missingKey(jsonPath, "file"); | 6297 throw jsonDecoder.mismatch(jsonPath, "port"); |
| 6353 } | 6298 } |
| 6354 int offset; | 6299 return new DiagnosticGetServerPortResult(port); |
| 6355 if (json.containsKey("offset")) { | |
| 6356 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
| 6357 } else { | |
| 6358 throw jsonDecoder.missingKey(jsonPath, "offset"); | |
| 6359 } | |
| 6360 return new EditGetFixesParams(file, offset); | |
| 6361 } else { | 6300 } else { |
| 6362 throw jsonDecoder.mismatch(jsonPath, "edit.getFixes params", json); | 6301 throw jsonDecoder.mismatch( |
| 6302 jsonPath, "diagnostic.getServerPort result", json); |
| 6363 } | 6303 } |
| 6364 } | 6304 } |
| 6365 | 6305 |
| 6366 factory EditGetFixesParams.fromRequest(Request request) { | 6306 factory DiagnosticGetServerPortResult.fromResponse(Response response) { |
| 6367 return new EditGetFixesParams.fromJson( | 6307 return new DiagnosticGetServerPortResult.fromJson( |
| 6368 new RequestDecoder(request), "params", request._params); | 6308 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 6309 "result", |
| 6310 response.result); |
| 6369 } | 6311 } |
| 6370 | 6312 |
| 6313 @override |
| 6371 Map<String, dynamic> toJson() { | 6314 Map<String, dynamic> toJson() { |
| 6372 Map<String, dynamic> result = {}; | 6315 Map<String, dynamic> result = {}; |
| 6373 result["file"] = file; | 6316 result["port"] = port; |
| 6374 result["offset"] = offset; | |
| 6375 return result; | 6317 return result; |
| 6376 } | 6318 } |
| 6377 | 6319 |
| 6378 Request toRequest(String id) { | 6320 @override |
| 6379 return new Request(id, "edit.getFixes", toJson()); | 6321 Response toResponse(String id) { |
| 6322 return new Response(id, result: toJson()); |
| 6380 } | 6323 } |
| 6381 | 6324 |
| 6382 @override | 6325 @override |
| 6383 String toString() => JSON.encode(toJson()); | 6326 String toString() => JSON.encode(toJson()); |
| 6384 | 6327 |
| 6385 @override | 6328 @override |
| 6386 bool operator ==(other) { | 6329 bool operator ==(other) { |
| 6387 if (other is EditGetFixesParams) { | 6330 if (other is DiagnosticGetServerPortResult) { |
| 6388 return file == other.file && offset == other.offset; | 6331 return port == other.port; |
| 6389 } | 6332 } |
| 6390 return false; | 6333 return false; |
| 6391 } | 6334 } |
| 6392 | 6335 |
| 6393 @override | 6336 @override |
| 6394 int get hashCode { | 6337 int get hashCode { |
| 6395 int hash = 0; | 6338 int hash = 0; |
| 6396 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 6339 hash = JenkinsSmiHash.combine(hash, port.hashCode); |
| 6397 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
| 6398 return JenkinsSmiHash.finish(hash); | 6340 return JenkinsSmiHash.finish(hash); |
| 6399 } | 6341 } |
| 6400 } | 6342 } |
| 6401 | 6343 |
| 6402 /** | 6344 /** |
| 6403 * edit.getFixes result | 6345 * edit.format params |
| 6404 * | 6346 * |
| 6405 * { | 6347 * { |
| 6406 * "fixes": List<AnalysisErrorFixes> | 6348 * "file": FilePath |
| 6349 * "selectionOffset": int |
| 6350 * "selectionLength": int |
| 6351 * "lineLength": optional int |
| 6407 * } | 6352 * } |
| 6408 * | 6353 * |
| 6409 * Clients may not extend, implement or mix-in this class. | 6354 * Clients may not extend, implement or mix-in this class. |
| 6410 */ | 6355 */ |
| 6411 class EditGetFixesResult implements HasToJson { | 6356 class EditFormatParams implements RequestParams { |
| 6412 List<AnalysisErrorFixes> _fixes; | 6357 String _file; |
| 6358 |
| 6359 int _selectionOffset; |
| 6360 |
| 6361 int _selectionLength; |
| 6362 |
| 6363 int _lineLength; |
| 6413 | 6364 |
| 6414 /** | 6365 /** |
| 6415 * The fixes that are available for the errors at the given offset. | 6366 * The file containing the code to be formatted. |
| 6416 */ | 6367 */ |
| 6417 List<AnalysisErrorFixes> get fixes => _fixes; | 6368 String get file => _file; |
| 6418 | 6369 |
| 6419 /** | 6370 /** |
| 6420 * The fixes that are available for the errors at the given offset. | 6371 * The file containing the code to be formatted. |
| 6421 */ | 6372 */ |
| 6422 void set fixes(List<AnalysisErrorFixes> value) { | 6373 void set file(String value) { |
| 6423 assert(value != null); | 6374 assert(value != null); |
| 6424 this._fixes = value; | 6375 this._file = value; |
| 6425 } | 6376 } |
| 6426 | 6377 |
| 6427 EditGetFixesResult(List<AnalysisErrorFixes> fixes) { | 6378 /** |
| 6428 this.fixes = fixes; | 6379 * The offset of the current selection in the file. |
| 6380 */ |
| 6381 int get selectionOffset => _selectionOffset; |
| 6382 |
| 6383 /** |
| 6384 * The offset of the current selection in the file. |
| 6385 */ |
| 6386 void set selectionOffset(int value) { |
| 6387 assert(value != null); |
| 6388 this._selectionOffset = value; |
| 6429 } | 6389 } |
| 6430 | 6390 |
| 6431 factory EditGetFixesResult.fromJson( | 6391 /** |
| 6392 * The length of the current selection in the file. |
| 6393 */ |
| 6394 int get selectionLength => _selectionLength; |
| 6395 |
| 6396 /** |
| 6397 * The length of the current selection in the file. |
| 6398 */ |
| 6399 void set selectionLength(int value) { |
| 6400 assert(value != null); |
| 6401 this._selectionLength = value; |
| 6402 } |
| 6403 |
| 6404 /** |
| 6405 * The line length to be used by the formatter. |
| 6406 */ |
| 6407 int get lineLength => _lineLength; |
| 6408 |
| 6409 /** |
| 6410 * The line length to be used by the formatter. |
| 6411 */ |
| 6412 void set lineLength(int value) { |
| 6413 this._lineLength = value; |
| 6414 } |
| 6415 |
| 6416 EditFormatParams(String file, int selectionOffset, int selectionLength, |
| 6417 {int lineLength}) { |
| 6418 this.file = file; |
| 6419 this.selectionOffset = selectionOffset; |
| 6420 this.selectionLength = selectionLength; |
| 6421 this.lineLength = lineLength; |
| 6422 } |
| 6423 |
| 6424 factory EditFormatParams.fromJson( |
| 6432 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 6425 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 6433 if (json == null) { | 6426 if (json == null) { |
| 6434 json = {}; | 6427 json = {}; |
| 6435 } | 6428 } |
| 6436 if (json is Map) { | 6429 if (json is Map) { |
| 6437 List<AnalysisErrorFixes> fixes; | 6430 String file; |
| 6438 if (json.containsKey("fixes")) { | 6431 if (json.containsKey("file")) { |
| 6439 fixes = jsonDecoder.decodeList( | 6432 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 6440 jsonPath + ".fixes", | |
| 6441 json["fixes"], | |
| 6442 (String jsonPath, Object json) => | |
| 6443 new AnalysisErrorFixes.fromJson(jsonDecoder, jsonPath, json)); | |
| 6444 } else { | 6433 } else { |
| 6445 throw jsonDecoder.missingKey(jsonPath, "fixes"); | 6434 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 6446 } | 6435 } |
| 6447 return new EditGetFixesResult(fixes); | 6436 int selectionOffset; |
| 6437 if (json.containsKey("selectionOffset")) { |
| 6438 selectionOffset = jsonDecoder.decodeInt( |
| 6439 jsonPath + ".selectionOffset", json["selectionOffset"]); |
| 6440 } else { |
| 6441 throw jsonDecoder.mismatch(jsonPath, "selectionOffset"); |
| 6442 } |
| 6443 int selectionLength; |
| 6444 if (json.containsKey("selectionLength")) { |
| 6445 selectionLength = jsonDecoder.decodeInt( |
| 6446 jsonPath + ".selectionLength", json["selectionLength"]); |
| 6447 } else { |
| 6448 throw jsonDecoder.mismatch(jsonPath, "selectionLength"); |
| 6449 } |
| 6450 int lineLength; |
| 6451 if (json.containsKey("lineLength")) { |
| 6452 lineLength = |
| 6453 jsonDecoder.decodeInt(jsonPath + ".lineLength", json["lineLength"]); |
| 6454 } |
| 6455 return new EditFormatParams(file, selectionOffset, selectionLength, |
| 6456 lineLength: lineLength); |
| 6448 } else { | 6457 } else { |
| 6449 throw jsonDecoder.mismatch(jsonPath, "edit.getFixes result", json); | 6458 throw jsonDecoder.mismatch(jsonPath, "edit.format params", json); |
| 6450 } | 6459 } |
| 6451 } | 6460 } |
| 6452 | 6461 |
| 6453 factory EditGetFixesResult.fromResponse(Response response) { | 6462 factory EditFormatParams.fromRequest(Request request) { |
| 6454 return new EditGetFixesResult.fromJson( | 6463 return new EditFormatParams.fromJson( |
| 6455 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 6464 new RequestDecoder(request), "params", request.params); |
| 6456 "result", | |
| 6457 response._result); | |
| 6458 } | 6465 } |
| 6459 | 6466 |
| 6467 @override |
| 6460 Map<String, dynamic> toJson() { | 6468 Map<String, dynamic> toJson() { |
| 6461 Map<String, dynamic> result = {}; | 6469 Map<String, dynamic> result = {}; |
| 6462 result["fixes"] = | 6470 result["file"] = file; |
| 6463 fixes.map((AnalysisErrorFixes value) => value.toJson()).toList(); | 6471 result["selectionOffset"] = selectionOffset; |
| 6472 result["selectionLength"] = selectionLength; |
| 6473 if (lineLength != null) { |
| 6474 result["lineLength"] = lineLength; |
| 6475 } |
| 6464 return result; | 6476 return result; |
| 6465 } | 6477 } |
| 6466 | 6478 |
| 6467 Response toResponse(String id) { | 6479 @override |
| 6468 return new Response(id, result: toJson()); | 6480 Request toRequest(String id) { |
| 6481 return new Request(id, "edit.format", toJson()); |
| 6469 } | 6482 } |
| 6470 | 6483 |
| 6471 @override | 6484 @override |
| 6472 String toString() => JSON.encode(toJson()); | 6485 String toString() => JSON.encode(toJson()); |
| 6473 | 6486 |
| 6474 @override | 6487 @override |
| 6475 bool operator ==(other) { | 6488 bool operator ==(other) { |
| 6476 if (other is EditGetFixesResult) { | 6489 if (other is EditFormatParams) { |
| 6477 return listEqual(fixes, other.fixes, | 6490 return file == other.file && |
| 6478 (AnalysisErrorFixes a, AnalysisErrorFixes b) => a == b); | 6491 selectionOffset == other.selectionOffset && |
| 6492 selectionLength == other.selectionLength && |
| 6493 lineLength == other.lineLength; |
| 6479 } | 6494 } |
| 6480 return false; | 6495 return false; |
| 6481 } | 6496 } |
| 6482 | 6497 |
| 6483 @override | 6498 @override |
| 6484 int get hashCode { | 6499 int get hashCode { |
| 6485 int hash = 0; | 6500 int hash = 0; |
| 6486 hash = JenkinsSmiHash.combine(hash, fixes.hashCode); | 6501 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 6502 hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode); |
| 6503 hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode); |
| 6504 hash = JenkinsSmiHash.combine(hash, lineLength.hashCode); |
| 6487 return JenkinsSmiHash.finish(hash); | 6505 return JenkinsSmiHash.finish(hash); |
| 6488 } | 6506 } |
| 6489 } | 6507 } |
| 6490 | 6508 |
| 6491 /** | 6509 /** |
| 6492 * edit.getRefactoring params | 6510 * edit.format result |
| 6493 * | 6511 * |
| 6494 * { | 6512 * { |
| 6495 * "kind": RefactoringKind | 6513 * "edits": List<SourceEdit> |
| 6514 * "selectionOffset": int |
| 6515 * "selectionLength": int |
| 6516 * } |
| 6517 * |
| 6518 * Clients may not extend, implement or mix-in this class. |
| 6519 */ |
| 6520 class EditFormatResult implements ResponseResult { |
| 6521 List<SourceEdit> _edits; |
| 6522 |
| 6523 int _selectionOffset; |
| 6524 |
| 6525 int _selectionLength; |
| 6526 |
| 6527 /** |
| 6528 * The edit(s) to be applied in order to format the code. The list will be |
| 6529 * empty if the code was already formatted (there are no changes). |
| 6530 */ |
| 6531 List<SourceEdit> get edits => _edits; |
| 6532 |
| 6533 /** |
| 6534 * The edit(s) to be applied in order to format the code. The list will be |
| 6535 * empty if the code was already formatted (there are no changes). |
| 6536 */ |
| 6537 void set edits(List<SourceEdit> value) { |
| 6538 assert(value != null); |
| 6539 this._edits = value; |
| 6540 } |
| 6541 |
| 6542 /** |
| 6543 * The offset of the selection after formatting the code. |
| 6544 */ |
| 6545 int get selectionOffset => _selectionOffset; |
| 6546 |
| 6547 /** |
| 6548 * The offset of the selection after formatting the code. |
| 6549 */ |
| 6550 void set selectionOffset(int value) { |
| 6551 assert(value != null); |
| 6552 this._selectionOffset = value; |
| 6553 } |
| 6554 |
| 6555 /** |
| 6556 * The length of the selection after formatting the code. |
| 6557 */ |
| 6558 int get selectionLength => _selectionLength; |
| 6559 |
| 6560 /** |
| 6561 * The length of the selection after formatting the code. |
| 6562 */ |
| 6563 void set selectionLength(int value) { |
| 6564 assert(value != null); |
| 6565 this._selectionLength = value; |
| 6566 } |
| 6567 |
| 6568 EditFormatResult( |
| 6569 List<SourceEdit> edits, int selectionOffset, int selectionLength) { |
| 6570 this.edits = edits; |
| 6571 this.selectionOffset = selectionOffset; |
| 6572 this.selectionLength = selectionLength; |
| 6573 } |
| 6574 |
| 6575 factory EditFormatResult.fromJson( |
| 6576 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 6577 if (json == null) { |
| 6578 json = {}; |
| 6579 } |
| 6580 if (json is Map) { |
| 6581 List<SourceEdit> edits; |
| 6582 if (json.containsKey("edits")) { |
| 6583 edits = jsonDecoder.decodeList( |
| 6584 jsonPath + ".edits", |
| 6585 json["edits"], |
| 6586 (String jsonPath, Object json) => |
| 6587 new SourceEdit.fromJson(jsonDecoder, jsonPath, json)); |
| 6588 } else { |
| 6589 throw jsonDecoder.mismatch(jsonPath, "edits"); |
| 6590 } |
| 6591 int selectionOffset; |
| 6592 if (json.containsKey("selectionOffset")) { |
| 6593 selectionOffset = jsonDecoder.decodeInt( |
| 6594 jsonPath + ".selectionOffset", json["selectionOffset"]); |
| 6595 } else { |
| 6596 throw jsonDecoder.mismatch(jsonPath, "selectionOffset"); |
| 6597 } |
| 6598 int selectionLength; |
| 6599 if (json.containsKey("selectionLength")) { |
| 6600 selectionLength = jsonDecoder.decodeInt( |
| 6601 jsonPath + ".selectionLength", json["selectionLength"]); |
| 6602 } else { |
| 6603 throw jsonDecoder.mismatch(jsonPath, "selectionLength"); |
| 6604 } |
| 6605 return new EditFormatResult(edits, selectionOffset, selectionLength); |
| 6606 } else { |
| 6607 throw jsonDecoder.mismatch(jsonPath, "edit.format result", json); |
| 6608 } |
| 6609 } |
| 6610 |
| 6611 factory EditFormatResult.fromResponse(Response response) { |
| 6612 return new EditFormatResult.fromJson( |
| 6613 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 6614 "result", |
| 6615 response.result); |
| 6616 } |
| 6617 |
| 6618 @override |
| 6619 Map<String, dynamic> toJson() { |
| 6620 Map<String, dynamic> result = {}; |
| 6621 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList(); |
| 6622 result["selectionOffset"] = selectionOffset; |
| 6623 result["selectionLength"] = selectionLength; |
| 6624 return result; |
| 6625 } |
| 6626 |
| 6627 @override |
| 6628 Response toResponse(String id) { |
| 6629 return new Response(id, result: toJson()); |
| 6630 } |
| 6631 |
| 6632 @override |
| 6633 String toString() => JSON.encode(toJson()); |
| 6634 |
| 6635 @override |
| 6636 bool operator ==(other) { |
| 6637 if (other is EditFormatResult) { |
| 6638 return listEqual( |
| 6639 edits, other.edits, (SourceEdit a, SourceEdit b) => a == b) && |
| 6640 selectionOffset == other.selectionOffset && |
| 6641 selectionLength == other.selectionLength; |
| 6642 } |
| 6643 return false; |
| 6644 } |
| 6645 |
| 6646 @override |
| 6647 int get hashCode { |
| 6648 int hash = 0; |
| 6649 hash = JenkinsSmiHash.combine(hash, edits.hashCode); |
| 6650 hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode); |
| 6651 hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode); |
| 6652 return JenkinsSmiHash.finish(hash); |
| 6653 } |
| 6654 } |
| 6655 |
| 6656 /** |
| 6657 * edit.getAssists params |
| 6658 * |
| 6659 * { |
| 6496 * "file": FilePath | 6660 * "file": FilePath |
| 6497 * "offset": int | 6661 * "offset": int |
| 6498 * "length": int | 6662 * "length": int |
| 6499 * "validateOnly": bool | |
| 6500 * "options": optional RefactoringOptions | |
| 6501 * } | 6663 * } |
| 6502 * | 6664 * |
| 6503 * Clients may not extend, implement or mix-in this class. | 6665 * Clients may not extend, implement or mix-in this class. |
| 6504 */ | 6666 */ |
| 6505 class EditGetRefactoringParams implements HasToJson { | 6667 class EditGetAssistsParams implements RequestParams { |
| 6506 RefactoringKind _kind; | |
| 6507 | |
| 6508 String _file; | 6668 String _file; |
| 6509 | 6669 |
| 6510 int _offset; | 6670 int _offset; |
| 6511 | 6671 |
| 6512 int _length; | 6672 int _length; |
| 6513 | 6673 |
| 6514 bool _validateOnly; | 6674 /** |
| 6515 | 6675 * The file containing the code for which assists are being requested. |
| 6516 RefactoringOptions _options; | |
| 6517 | |
| 6518 /** | |
| 6519 * The kind of refactoring to be performed. | |
| 6520 */ | |
| 6521 RefactoringKind get kind => _kind; | |
| 6522 | |
| 6523 /** | |
| 6524 * The kind of refactoring to be performed. | |
| 6525 */ | |
| 6526 void set kind(RefactoringKind value) { | |
| 6527 assert(value != null); | |
| 6528 this._kind = value; | |
| 6529 } | |
| 6530 | |
| 6531 /** | |
| 6532 * The file containing the code involved in the refactoring. | |
| 6533 */ | 6676 */ |
| 6534 String get file => _file; | 6677 String get file => _file; |
| 6535 | 6678 |
| 6536 /** | 6679 /** |
| 6537 * The file containing the code involved in the refactoring. | 6680 * The file containing the code for which assists are being requested. |
| 6538 */ | 6681 */ |
| 6539 void set file(String value) { | 6682 void set file(String value) { |
| 6540 assert(value != null); | 6683 assert(value != null); |
| 6541 this._file = value; | 6684 this._file = value; |
| 6542 } | 6685 } |
| 6543 | 6686 |
| 6544 /** | 6687 /** |
| 6545 * The offset of the region involved in the refactoring. | 6688 * The offset of the code for which assists are being requested. |
| 6546 */ | 6689 */ |
| 6547 int get offset => _offset; | 6690 int get offset => _offset; |
| 6548 | 6691 |
| 6549 /** | 6692 /** |
| 6550 * The offset of the region involved in the refactoring. | 6693 * The offset of the code for which assists are being requested. |
| 6551 */ | 6694 */ |
| 6552 void set offset(int value) { | 6695 void set offset(int value) { |
| 6553 assert(value != null); | 6696 assert(value != null); |
| 6554 this._offset = value; | 6697 this._offset = value; |
| 6555 } | 6698 } |
| 6556 | 6699 |
| 6557 /** | 6700 /** |
| 6558 * The length of the region involved in the refactoring. | 6701 * The length of the code for which assists are being requested. |
| 6559 */ | 6702 */ |
| 6560 int get length => _length; | 6703 int get length => _length; |
| 6561 | 6704 |
| 6562 /** | 6705 /** |
| 6563 * The length of the region involved in the refactoring. | 6706 * The length of the code for which assists are being requested. |
| 6564 */ | 6707 */ |
| 6565 void set length(int value) { | 6708 void set length(int value) { |
| 6566 assert(value != null); | 6709 assert(value != null); |
| 6567 this._length = value; | 6710 this._length = value; |
| 6568 } | 6711 } |
| 6569 | 6712 |
| 6570 /** | 6713 EditGetAssistsParams(String file, int offset, int length) { |
| 6571 * True if the client is only requesting that the values of the options be | |
| 6572 * validated and no change be generated. | |
| 6573 */ | |
| 6574 bool get validateOnly => _validateOnly; | |
| 6575 | |
| 6576 /** | |
| 6577 * True if the client is only requesting that the values of the options be | |
| 6578 * validated and no change be generated. | |
| 6579 */ | |
| 6580 void set validateOnly(bool value) { | |
| 6581 assert(value != null); | |
| 6582 this._validateOnly = value; | |
| 6583 } | |
| 6584 | |
| 6585 /** | |
| 6586 * Data used to provide values provided by the user. The structure of the | |
| 6587 * data is dependent on the kind of refactoring being performed. The data | |
| 6588 * that is expected is documented in the section titled Refactorings, labeled | |
| 6589 * as "Options". This field can be omitted if the refactoring does not | |
| 6590 * require any options or if the values of those options are not known. | |
| 6591 */ | |
| 6592 RefactoringOptions get options => _options; | |
| 6593 | |
| 6594 /** | |
| 6595 * Data used to provide values provided by the user. The structure of the | |
| 6596 * data is dependent on the kind of refactoring being performed. The data | |
| 6597 * that is expected is documented in the section titled Refactorings, labeled | |
| 6598 * as "Options". This field can be omitted if the refactoring does not | |
| 6599 * require any options or if the values of those options are not known. | |
| 6600 */ | |
| 6601 void set options(RefactoringOptions value) { | |
| 6602 this._options = value; | |
| 6603 } | |
| 6604 | |
| 6605 EditGetRefactoringParams(RefactoringKind kind, String file, int offset, | |
| 6606 int length, bool validateOnly, | |
| 6607 {RefactoringOptions options}) { | |
| 6608 this.kind = kind; | |
| 6609 this.file = file; | 6714 this.file = file; |
| 6610 this.offset = offset; | 6715 this.offset = offset; |
| 6611 this.length = length; | 6716 this.length = length; |
| 6612 this.validateOnly = validateOnly; | 6717 } |
| 6613 this.options = options; | 6718 |
| 6614 } | 6719 factory EditGetAssistsParams.fromJson( |
| 6615 | |
| 6616 factory EditGetRefactoringParams.fromJson( | |
| 6617 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 6720 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 6618 if (json == null) { | 6721 if (json == null) { |
| 6619 json = {}; | 6722 json = {}; |
| 6620 } | 6723 } |
| 6621 if (json is Map) { | 6724 if (json is Map) { |
| 6622 RefactoringKind kind; | |
| 6623 if (json.containsKey("kind")) { | |
| 6624 kind = new RefactoringKind.fromJson( | |
| 6625 jsonDecoder, jsonPath + ".kind", json["kind"]); | |
| 6626 } else { | |
| 6627 throw jsonDecoder.missingKey(jsonPath, "kind"); | |
| 6628 } | |
| 6629 String file; | 6725 String file; |
| 6630 if (json.containsKey("file")) { | 6726 if (json.containsKey("file")) { |
| 6631 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 6727 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 6632 } else { | 6728 } else { |
| 6633 throw jsonDecoder.missingKey(jsonPath, "file"); | 6729 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 6634 } | 6730 } |
| 6635 int offset; | 6731 int offset; |
| 6636 if (json.containsKey("offset")) { | 6732 if (json.containsKey("offset")) { |
| 6637 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 6733 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 6638 } else { | 6734 } else { |
| 6639 throw jsonDecoder.missingKey(jsonPath, "offset"); | 6735 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 6640 } | 6736 } |
| 6641 int length; | 6737 int length; |
| 6642 if (json.containsKey("length")) { | 6738 if (json.containsKey("length")) { |
| 6643 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 6739 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 6644 } else { | 6740 } else { |
| 6645 throw jsonDecoder.missingKey(jsonPath, "length"); | 6741 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 6646 } | 6742 } |
| 6647 bool validateOnly; | 6743 return new EditGetAssistsParams(file, offset, length); |
| 6648 if (json.containsKey("validateOnly")) { | |
| 6649 validateOnly = jsonDecoder.decodeBool( | |
| 6650 jsonPath + ".validateOnly", json["validateOnly"]); | |
| 6651 } else { | |
| 6652 throw jsonDecoder.missingKey(jsonPath, "validateOnly"); | |
| 6653 } | |
| 6654 RefactoringOptions options; | |
| 6655 if (json.containsKey("options")) { | |
| 6656 options = new RefactoringOptions.fromJson( | |
| 6657 jsonDecoder, jsonPath + ".options", json["options"], kind); | |
| 6658 } | |
| 6659 return new EditGetRefactoringParams( | |
| 6660 kind, file, offset, length, validateOnly, | |
| 6661 options: options); | |
| 6662 } else { | 6744 } else { |
| 6663 throw jsonDecoder.mismatch(jsonPath, "edit.getRefactoring params", json); | 6745 throw jsonDecoder.mismatch(jsonPath, "edit.getAssists params", json); |
| 6664 } | 6746 } |
| 6665 } | 6747 } |
| 6666 | 6748 |
| 6667 factory EditGetRefactoringParams.fromRequest(Request request) { | 6749 factory EditGetAssistsParams.fromRequest(Request request) { |
| 6668 var params = new EditGetRefactoringParams.fromJson( | 6750 return new EditGetAssistsParams.fromJson( |
| 6669 new RequestDecoder(request), "params", request._params); | 6751 new RequestDecoder(request), "params", request.params); |
| 6670 REQUEST_ID_REFACTORING_KINDS[request.id] = params.kind; | 6752 } |
| 6671 return params; | 6753 |
| 6672 } | 6754 @override |
| 6673 | |
| 6674 Map<String, dynamic> toJson() { | 6755 Map<String, dynamic> toJson() { |
| 6675 Map<String, dynamic> result = {}; | 6756 Map<String, dynamic> result = {}; |
| 6676 result["kind"] = kind.toJson(); | |
| 6677 result["file"] = file; | 6757 result["file"] = file; |
| 6678 result["offset"] = offset; | 6758 result["offset"] = offset; |
| 6679 result["length"] = length; | 6759 result["length"] = length; |
| 6680 result["validateOnly"] = validateOnly; | |
| 6681 if (options != null) { | |
| 6682 result["options"] = options.toJson(); | |
| 6683 } | |
| 6684 return result; | 6760 return result; |
| 6685 } | 6761 } |
| 6686 | 6762 |
| 6763 @override |
| 6687 Request toRequest(String id) { | 6764 Request toRequest(String id) { |
| 6688 return new Request(id, "edit.getRefactoring", toJson()); | 6765 return new Request(id, "edit.getAssists", toJson()); |
| 6689 } | 6766 } |
| 6690 | 6767 |
| 6691 @override | 6768 @override |
| 6692 String toString() => JSON.encode(toJson()); | 6769 String toString() => JSON.encode(toJson()); |
| 6693 | 6770 |
| 6694 @override | 6771 @override |
| 6695 bool operator ==(other) { | 6772 bool operator ==(other) { |
| 6696 if (other is EditGetRefactoringParams) { | 6773 if (other is EditGetAssistsParams) { |
| 6697 return kind == other.kind && | 6774 return file == other.file && |
| 6698 file == other.file && | |
| 6699 offset == other.offset && | 6775 offset == other.offset && |
| 6700 length == other.length && | 6776 length == other.length; |
| 6701 validateOnly == other.validateOnly && | |
| 6702 options == other.options; | |
| 6703 } | 6777 } |
| 6704 return false; | 6778 return false; |
| 6705 } | 6779 } |
| 6706 | 6780 |
| 6707 @override | 6781 @override |
| 6708 int get hashCode { | 6782 int get hashCode { |
| 6709 int hash = 0; | 6783 int hash = 0; |
| 6710 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | |
| 6711 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 6784 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 6712 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 6785 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 6713 hash = JenkinsSmiHash.combine(hash, length.hashCode); | 6786 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 6714 hash = JenkinsSmiHash.combine(hash, validateOnly.hashCode); | |
| 6715 hash = JenkinsSmiHash.combine(hash, options.hashCode); | |
| 6716 return JenkinsSmiHash.finish(hash); | 6787 return JenkinsSmiHash.finish(hash); |
| 6717 } | 6788 } |
| 6718 } | 6789 } |
| 6719 | 6790 |
| 6720 /** | 6791 /** |
| 6721 * edit.getRefactoring result | 6792 * edit.getAssists result |
| 6722 * | 6793 * |
| 6723 * { | 6794 * { |
| 6724 * "initialProblems": List<RefactoringProblem> | 6795 * "assists": List<SourceChange> |
| 6725 * "optionsProblems": List<RefactoringProblem> | |
| 6726 * "finalProblems": List<RefactoringProblem> | |
| 6727 * "feedback": optional RefactoringFeedback | |
| 6728 * "change": optional SourceChange | |
| 6729 * "potentialEdits": optional List<String> | |
| 6730 * } | 6796 * } |
| 6731 * | 6797 * |
| 6732 * Clients may not extend, implement or mix-in this class. | 6798 * Clients may not extend, implement or mix-in this class. |
| 6733 */ | 6799 */ |
| 6734 class EditGetRefactoringResult implements HasToJson { | 6800 class EditGetAssistsResult implements ResponseResult { |
| 6735 List<RefactoringProblem> _initialProblems; | 6801 List<SourceChange> _assists; |
| 6736 | |
| 6737 List<RefactoringProblem> _optionsProblems; | |
| 6738 | |
| 6739 List<RefactoringProblem> _finalProblems; | |
| 6740 | |
| 6741 RefactoringFeedback _feedback; | |
| 6742 | |
| 6743 SourceChange _change; | |
| 6744 | |
| 6745 List<String> _potentialEdits; | |
| 6746 | 6802 |
| 6747 /** | 6803 /** |
| 6748 * The initial status of the refactoring, i.e. problems related to the | 6804 * The assists that are available at the given location. |
| 6749 * context in which the refactoring is requested. The array will be empty if | |
| 6750 * there are no known problems. | |
| 6751 */ | 6805 */ |
| 6752 List<RefactoringProblem> get initialProblems => _initialProblems; | 6806 List<SourceChange> get assists => _assists; |
| 6753 | 6807 |
| 6754 /** | 6808 /** |
| 6755 * The initial status of the refactoring, i.e. problems related to the | 6809 * The assists that are available at the given location. |
| 6756 * context in which the refactoring is requested. The array will be empty if | |
| 6757 * there are no known problems. | |
| 6758 */ | 6810 */ |
| 6759 void set initialProblems(List<RefactoringProblem> value) { | 6811 void set assists(List<SourceChange> value) { |
| 6760 assert(value != null); | 6812 assert(value != null); |
| 6761 this._initialProblems = value; | 6813 this._assists = value; |
| 6762 } | 6814 } |
| 6763 | 6815 |
| 6764 /** | 6816 EditGetAssistsResult(List<SourceChange> assists) { |
| 6765 * The options validation status, i.e. problems in the given options, such as | 6817 this.assists = assists; |
| 6766 * light-weight validation of a new name, flags compatibility, etc. The array | |
| 6767 * will be empty if there are no known problems. | |
| 6768 */ | |
| 6769 List<RefactoringProblem> get optionsProblems => _optionsProblems; | |
| 6770 | |
| 6771 /** | |
| 6772 * The options validation status, i.e. problems in the given options, such as | |
| 6773 * light-weight validation of a new name, flags compatibility, etc. The array | |
| 6774 * will be empty if there are no known problems. | |
| 6775 */ | |
| 6776 void set optionsProblems(List<RefactoringProblem> value) { | |
| 6777 assert(value != null); | |
| 6778 this._optionsProblems = value; | |
| 6779 } | 6818 } |
| 6780 | 6819 |
| 6781 /** | 6820 factory EditGetAssistsResult.fromJson( |
| 6782 * The final status of the refactoring, i.e. problems identified in the | |
| 6783 * result of a full, potentially expensive validation and / or change | |
| 6784 * creation. The array will be empty if there are no known problems. | |
| 6785 */ | |
| 6786 List<RefactoringProblem> get finalProblems => _finalProblems; | |
| 6787 | |
| 6788 /** | |
| 6789 * The final status of the refactoring, i.e. problems identified in the | |
| 6790 * result of a full, potentially expensive validation and / or change | |
| 6791 * creation. The array will be empty if there are no known problems. | |
| 6792 */ | |
| 6793 void set finalProblems(List<RefactoringProblem> value) { | |
| 6794 assert(value != null); | |
| 6795 this._finalProblems = value; | |
| 6796 } | |
| 6797 | |
| 6798 /** | |
| 6799 * Data used to provide feedback to the user. The structure of the data is | |
| 6800 * dependent on the kind of refactoring being created. The data that is | |
| 6801 * returned is documented in the section titled Refactorings, labeled as | |
| 6802 * "Feedback". | |
| 6803 */ | |
| 6804 RefactoringFeedback get feedback => _feedback; | |
| 6805 | |
| 6806 /** | |
| 6807 * Data used to provide feedback to the user. The structure of the data is | |
| 6808 * dependent on the kind of refactoring being created. The data that is | |
| 6809 * returned is documented in the section titled Refactorings, labeled as | |
| 6810 * "Feedback". | |
| 6811 */ | |
| 6812 void set feedback(RefactoringFeedback value) { | |
| 6813 this._feedback = value; | |
| 6814 } | |
| 6815 | |
| 6816 /** | |
| 6817 * The changes that are to be applied to affect the refactoring. This field | |
| 6818 * will be omitted if there are problems that prevent a set of changes from | |
| 6819 * being computed, such as having no options specified for a refactoring that | |
| 6820 * requires them, or if only validation was requested. | |
| 6821 */ | |
| 6822 SourceChange get change => _change; | |
| 6823 | |
| 6824 /** | |
| 6825 * The changes that are to be applied to affect the refactoring. This field | |
| 6826 * will be omitted if there are problems that prevent a set of changes from | |
| 6827 * being computed, such as having no options specified for a refactoring that | |
| 6828 * requires them, or if only validation was requested. | |
| 6829 */ | |
| 6830 void set change(SourceChange value) { | |
| 6831 this._change = value; | |
| 6832 } | |
| 6833 | |
| 6834 /** | |
| 6835 * The ids of source edits that are not known to be valid. An edit is not | |
| 6836 * known to be valid if there was insufficient type information for the | |
| 6837 * server to be able to determine whether or not the code needs to be | |
| 6838 * modified, such as when a member is being renamed and there is a reference | |
| 6839 * to a member from an unknown type. This field will be omitted if the change | |
| 6840 * field is omitted or if there are no potential edits for the refactoring. | |
| 6841 */ | |
| 6842 List<String> get potentialEdits => _potentialEdits; | |
| 6843 | |
| 6844 /** | |
| 6845 * The ids of source edits that are not known to be valid. An edit is not | |
| 6846 * known to be valid if there was insufficient type information for the | |
| 6847 * server to be able to determine whether or not the code needs to be | |
| 6848 * modified, such as when a member is being renamed and there is a reference | |
| 6849 * to a member from an unknown type. This field will be omitted if the change | |
| 6850 * field is omitted or if there are no potential edits for the refactoring. | |
| 6851 */ | |
| 6852 void set potentialEdits(List<String> value) { | |
| 6853 this._potentialEdits = value; | |
| 6854 } | |
| 6855 | |
| 6856 EditGetRefactoringResult( | |
| 6857 List<RefactoringProblem> initialProblems, | |
| 6858 List<RefactoringProblem> optionsProblems, | |
| 6859 List<RefactoringProblem> finalProblems, | |
| 6860 {RefactoringFeedback feedback, | |
| 6861 SourceChange change, | |
| 6862 List<String> potentialEdits}) { | |
| 6863 this.initialProblems = initialProblems; | |
| 6864 this.optionsProblems = optionsProblems; | |
| 6865 this.finalProblems = finalProblems; | |
| 6866 this.feedback = feedback; | |
| 6867 this.change = change; | |
| 6868 this.potentialEdits = potentialEdits; | |
| 6869 } | |
| 6870 | |
| 6871 factory EditGetRefactoringResult.fromJson( | |
| 6872 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 6821 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 6873 if (json == null) { | 6822 if (json == null) { |
| 6874 json = {}; | 6823 json = {}; |
| 6875 } | 6824 } |
| 6876 if (json is Map) { | 6825 if (json is Map) { |
| 6877 List<RefactoringProblem> initialProblems; | 6826 List<SourceChange> assists; |
| 6878 if (json.containsKey("initialProblems")) { | 6827 if (json.containsKey("assists")) { |
| 6879 initialProblems = jsonDecoder.decodeList( | 6828 assists = jsonDecoder.decodeList( |
| 6880 jsonPath + ".initialProblems", | 6829 jsonPath + ".assists", |
| 6881 json["initialProblems"], | 6830 json["assists"], |
| 6882 (String jsonPath, Object json) => | 6831 (String jsonPath, Object json) => |
| 6883 new RefactoringProblem.fromJson(jsonDecoder, jsonPath, json)); | 6832 new SourceChange.fromJson(jsonDecoder, jsonPath, json)); |
| 6884 } else { | 6833 } else { |
| 6885 throw jsonDecoder.missingKey(jsonPath, "initialProblems"); | 6834 throw jsonDecoder.mismatch(jsonPath, "assists"); |
| 6886 } | 6835 } |
| 6887 List<RefactoringProblem> optionsProblems; | 6836 return new EditGetAssistsResult(assists); |
| 6888 if (json.containsKey("optionsProblems")) { | |
| 6889 optionsProblems = jsonDecoder.decodeList( | |
| 6890 jsonPath + ".optionsProblems", | |
| 6891 json["optionsProblems"], | |
| 6892 (String jsonPath, Object json) => | |
| 6893 new RefactoringProblem.fromJson(jsonDecoder, jsonPath, json)); | |
| 6894 } else { | |
| 6895 throw jsonDecoder.missingKey(jsonPath, "optionsProblems"); | |
| 6896 } | |
| 6897 List<RefactoringProblem> finalProblems; | |
| 6898 if (json.containsKey("finalProblems")) { | |
| 6899 finalProblems = jsonDecoder.decodeList( | |
| 6900 jsonPath + ".finalProblems", | |
| 6901 json["finalProblems"], | |
| 6902 (String jsonPath, Object json) => | |
| 6903 new RefactoringProblem.fromJson(jsonDecoder, jsonPath, json)); | |
| 6904 } else { | |
| 6905 throw jsonDecoder.missingKey(jsonPath, "finalProblems"); | |
| 6906 } | |
| 6907 RefactoringFeedback feedback; | |
| 6908 if (json.containsKey("feedback")) { | |
| 6909 feedback = new RefactoringFeedback.fromJson( | |
| 6910 jsonDecoder, jsonPath + ".feedback", json["feedback"], json); | |
| 6911 } | |
| 6912 SourceChange change; | |
| 6913 if (json.containsKey("change")) { | |
| 6914 change = new SourceChange.fromJson( | |
| 6915 jsonDecoder, jsonPath + ".change", json["change"]); | |
| 6916 } | |
| 6917 List<String> potentialEdits; | |
| 6918 if (json.containsKey("potentialEdits")) { | |
| 6919 potentialEdits = jsonDecoder.decodeList(jsonPath + ".potentialEdits", | |
| 6920 json["potentialEdits"], jsonDecoder.decodeString); | |
| 6921 } | |
| 6922 return new EditGetRefactoringResult( | |
| 6923 initialProblems, optionsProblems, finalProblems, | |
| 6924 feedback: feedback, change: change, potentialEdits: potentialEdits); | |
| 6925 } else { | 6837 } else { |
| 6926 throw jsonDecoder.mismatch(jsonPath, "edit.getRefactoring result", json); | 6838 throw jsonDecoder.mismatch(jsonPath, "edit.getAssists result", json); |
| 6927 } | 6839 } |
| 6928 } | 6840 } |
| 6929 | 6841 |
| 6930 factory EditGetRefactoringResult.fromResponse(Response response) { | 6842 factory EditGetAssistsResult.fromResponse(Response response) { |
| 6931 return new EditGetRefactoringResult.fromJson( | 6843 return new EditGetAssistsResult.fromJson( |
| 6932 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 6844 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 6933 "result", | 6845 "result", |
| 6934 response._result); | 6846 response.result); |
| 6935 } | 6847 } |
| 6936 | 6848 |
| 6849 @override |
| 6937 Map<String, dynamic> toJson() { | 6850 Map<String, dynamic> toJson() { |
| 6938 Map<String, dynamic> result = {}; | 6851 Map<String, dynamic> result = {}; |
| 6939 result["initialProblems"] = initialProblems | 6852 result["assists"] = |
| 6940 .map((RefactoringProblem value) => value.toJson()) | 6853 assists.map((SourceChange value) => value.toJson()).toList(); |
| 6941 .toList(); | |
| 6942 result["optionsProblems"] = optionsProblems | |
| 6943 .map((RefactoringProblem value) => value.toJson()) | |
| 6944 .toList(); | |
| 6945 result["finalProblems"] = finalProblems | |
| 6946 .map((RefactoringProblem value) => value.toJson()) | |
| 6947 .toList(); | |
| 6948 if (feedback != null) { | |
| 6949 result["feedback"] = feedback.toJson(); | |
| 6950 } | |
| 6951 if (change != null) { | |
| 6952 result["change"] = change.toJson(); | |
| 6953 } | |
| 6954 if (potentialEdits != null) { | |
| 6955 result["potentialEdits"] = potentialEdits; | |
| 6956 } | |
| 6957 return result; | 6854 return result; |
| 6958 } | 6855 } |
| 6959 | 6856 |
| 6857 @override |
| 6960 Response toResponse(String id) { | 6858 Response toResponse(String id) { |
| 6961 return new Response(id, result: toJson()); | 6859 return new Response(id, result: toJson()); |
| 6962 } | 6860 } |
| 6963 | 6861 |
| 6964 @override | 6862 @override |
| 6965 String toString() => JSON.encode(toJson()); | 6863 String toString() => JSON.encode(toJson()); |
| 6966 | 6864 |
| 6967 @override | 6865 @override |
| 6968 bool operator ==(other) { | 6866 bool operator ==(other) { |
| 6969 if (other is EditGetRefactoringResult) { | 6867 if (other is EditGetAssistsResult) { |
| 6970 return listEqual(initialProblems, other.initialProblems, | 6868 return listEqual( |
| 6971 (RefactoringProblem a, RefactoringProblem b) => a == b) && | 6869 assists, other.assists, (SourceChange a, SourceChange b) => a == b); |
| 6972 listEqual(optionsProblems, other.optionsProblems, | |
| 6973 (RefactoringProblem a, RefactoringProblem b) => a == b) && | |
| 6974 listEqual(finalProblems, other.finalProblems, | |
| 6975 (RefactoringProblem a, RefactoringProblem b) => a == b) && | |
| 6976 feedback == other.feedback && | |
| 6977 change == other.change && | |
| 6978 listEqual(potentialEdits, other.potentialEdits, | |
| 6979 (String a, String b) => a == b); | |
| 6980 } | 6870 } |
| 6981 return false; | 6871 return false; |
| 6982 } | 6872 } |
| 6983 | 6873 |
| 6984 @override | 6874 @override |
| 6985 int get hashCode { | 6875 int get hashCode { |
| 6986 int hash = 0; | 6876 int hash = 0; |
| 6987 hash = JenkinsSmiHash.combine(hash, initialProblems.hashCode); | 6877 hash = JenkinsSmiHash.combine(hash, assists.hashCode); |
| 6988 hash = JenkinsSmiHash.combine(hash, optionsProblems.hashCode); | |
| 6989 hash = JenkinsSmiHash.combine(hash, finalProblems.hashCode); | |
| 6990 hash = JenkinsSmiHash.combine(hash, feedback.hashCode); | |
| 6991 hash = JenkinsSmiHash.combine(hash, change.hashCode); | |
| 6992 hash = JenkinsSmiHash.combine(hash, potentialEdits.hashCode); | |
| 6993 return JenkinsSmiHash.finish(hash); | 6878 return JenkinsSmiHash.finish(hash); |
| 6994 } | 6879 } |
| 6995 } | 6880 } |
| 6996 | 6881 |
| 6997 /** | 6882 /** |
| 6998 * edit.getStatementCompletion params | 6883 * edit.getAvailableRefactorings params |
| 6999 * | 6884 * |
| 7000 * { | 6885 * { |
| 7001 * "file": FilePath | 6886 * "file": FilePath |
| 7002 * "offset": int | 6887 * "offset": int |
| 6888 * "length": int |
| 7003 * } | 6889 * } |
| 7004 * | 6890 * |
| 7005 * Clients may not extend, implement or mix-in this class. | 6891 * Clients may not extend, implement or mix-in this class. |
| 7006 */ | 6892 */ |
| 7007 class EditGetStatementCompletionParams implements HasToJson { | 6893 class EditGetAvailableRefactoringsParams implements RequestParams { |
| 7008 String _file; | 6894 String _file; |
| 7009 | 6895 |
| 7010 int _offset; | 6896 int _offset; |
| 7011 | 6897 |
| 6898 int _length; |
| 6899 |
| 7012 /** | 6900 /** |
| 7013 * The file containing the statement to be completed. | 6901 * The file containing the code on which the refactoring would be based. |
| 7014 */ | 6902 */ |
| 7015 String get file => _file; | 6903 String get file => _file; |
| 7016 | 6904 |
| 7017 /** | 6905 /** |
| 7018 * The file containing the statement to be completed. | 6906 * The file containing the code on which the refactoring would be based. |
| 7019 */ | 6907 */ |
| 7020 void set file(String value) { | 6908 void set file(String value) { |
| 7021 assert(value != null); | 6909 assert(value != null); |
| 7022 this._file = value; | 6910 this._file = value; |
| 7023 } | 6911 } |
| 7024 | 6912 |
| 7025 /** | 6913 /** |
| 7026 * The offset used to identify the statement to be completed. | 6914 * The offset of the code on which the refactoring would be based. |
| 7027 */ | 6915 */ |
| 7028 int get offset => _offset; | 6916 int get offset => _offset; |
| 7029 | 6917 |
| 7030 /** | 6918 /** |
| 7031 * The offset used to identify the statement to be completed. | 6919 * The offset of the code on which the refactoring would be based. |
| 7032 */ | 6920 */ |
| 7033 void set offset(int value) { | 6921 void set offset(int value) { |
| 7034 assert(value != null); | 6922 assert(value != null); |
| 7035 this._offset = value; | 6923 this._offset = value; |
| 7036 } | 6924 } |
| 7037 | 6925 |
| 7038 EditGetStatementCompletionParams(String file, int offset) { | 6926 /** |
| 6927 * The length of the code on which the refactoring would be based. |
| 6928 */ |
| 6929 int get length => _length; |
| 6930 |
| 6931 /** |
| 6932 * The length of the code on which the refactoring would be based. |
| 6933 */ |
| 6934 void set length(int value) { |
| 6935 assert(value != null); |
| 6936 this._length = value; |
| 6937 } |
| 6938 |
| 6939 EditGetAvailableRefactoringsParams(String file, int offset, int length) { |
| 7039 this.file = file; | 6940 this.file = file; |
| 7040 this.offset = offset; | 6941 this.offset = offset; |
| 6942 this.length = length; |
| 7041 } | 6943 } |
| 7042 | 6944 |
| 7043 factory EditGetStatementCompletionParams.fromJson( | 6945 factory EditGetAvailableRefactoringsParams.fromJson( |
| 7044 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 6946 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 7045 if (json == null) { | 6947 if (json == null) { |
| 7046 json = {}; | 6948 json = {}; |
| 7047 } | 6949 } |
| 7048 if (json is Map) { | 6950 if (json is Map) { |
| 7049 String file; | 6951 String file; |
| 7050 if (json.containsKey("file")) { | 6952 if (json.containsKey("file")) { |
| 7051 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 6953 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 7052 } else { | 6954 } else { |
| 7053 throw jsonDecoder.missingKey(jsonPath, "file"); | 6955 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 7054 } | 6956 } |
| 7055 int offset; | 6957 int offset; |
| 7056 if (json.containsKey("offset")) { | 6958 if (json.containsKey("offset")) { |
| 7057 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 6959 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 7058 } else { | 6960 } else { |
| 7059 throw jsonDecoder.missingKey(jsonPath, "offset"); | 6961 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 7060 } | 6962 } |
| 7061 return new EditGetStatementCompletionParams(file, offset); | 6963 int length; |
| 6964 if (json.containsKey("length")) { |
| 6965 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 6966 } else { |
| 6967 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 6968 } |
| 6969 return new EditGetAvailableRefactoringsParams(file, offset, length); |
| 7062 } else { | 6970 } else { |
| 7063 throw jsonDecoder.mismatch( | 6971 throw jsonDecoder.mismatch( |
| 7064 jsonPath, "edit.getStatementCompletion params", json); | 6972 jsonPath, "edit.getAvailableRefactorings params", json); |
| 7065 } | 6973 } |
| 7066 } | 6974 } |
| 7067 | 6975 |
| 7068 factory EditGetStatementCompletionParams.fromRequest(Request request) { | 6976 factory EditGetAvailableRefactoringsParams.fromRequest(Request request) { |
| 7069 return new EditGetStatementCompletionParams.fromJson( | 6977 return new EditGetAvailableRefactoringsParams.fromJson( |
| 7070 new RequestDecoder(request), "params", request._params); | 6978 new RequestDecoder(request), "params", request.params); |
| 7071 } | 6979 } |
| 7072 | 6980 |
| 6981 @override |
| 7073 Map<String, dynamic> toJson() { | 6982 Map<String, dynamic> toJson() { |
| 7074 Map<String, dynamic> result = {}; | 6983 Map<String, dynamic> result = {}; |
| 7075 result["file"] = file; | 6984 result["file"] = file; |
| 7076 result["offset"] = offset; | 6985 result["offset"] = offset; |
| 6986 result["length"] = length; |
| 7077 return result; | 6987 return result; |
| 7078 } | 6988 } |
| 7079 | 6989 |
| 6990 @override |
| 7080 Request toRequest(String id) { | 6991 Request toRequest(String id) { |
| 7081 return new Request(id, "edit.getStatementCompletion", toJson()); | 6992 return new Request(id, "edit.getAvailableRefactorings", toJson()); |
| 7082 } | 6993 } |
| 7083 | 6994 |
| 7084 @override | 6995 @override |
| 7085 String toString() => JSON.encode(toJson()); | 6996 String toString() => JSON.encode(toJson()); |
| 7086 | 6997 |
| 7087 @override | 6998 @override |
| 7088 bool operator ==(other) { | 6999 bool operator ==(other) { |
| 7089 if (other is EditGetStatementCompletionParams) { | 7000 if (other is EditGetAvailableRefactoringsParams) { |
| 7090 return file == other.file && offset == other.offset; | 7001 return file == other.file && |
| 7002 offset == other.offset && |
| 7003 length == other.length; |
| 7091 } | 7004 } |
| 7092 return false; | 7005 return false; |
| 7093 } | 7006 } |
| 7094 | 7007 |
| 7095 @override | 7008 @override |
| 7096 int get hashCode { | 7009 int get hashCode { |
| 7097 int hash = 0; | 7010 int hash = 0; |
| 7098 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 7011 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 7099 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 7012 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 7013 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 7100 return JenkinsSmiHash.finish(hash); | 7014 return JenkinsSmiHash.finish(hash); |
| 7101 } | 7015 } |
| 7102 } | 7016 } |
| 7103 | 7017 |
| 7104 /** | 7018 /** |
| 7105 * edit.getStatementCompletion result | 7019 * edit.getAvailableRefactorings result |
| 7106 * | 7020 * |
| 7107 * { | 7021 * { |
| 7108 * "change": SourceChange | 7022 * "kinds": List<RefactoringKind> |
| 7109 * "whitespaceOnly": bool | |
| 7110 * } | 7023 * } |
| 7111 * | 7024 * |
| 7112 * Clients may not extend, implement or mix-in this class. | 7025 * Clients may not extend, implement or mix-in this class. |
| 7113 */ | 7026 */ |
| 7114 class EditGetStatementCompletionResult implements HasToJson { | 7027 class EditGetAvailableRefactoringsResult implements ResponseResult { |
| 7115 SourceChange _change; | 7028 List<RefactoringKind> _kinds; |
| 7116 | |
| 7117 bool _whitespaceOnly; | |
| 7118 | 7029 |
| 7119 /** | 7030 /** |
| 7120 * The change to be applied in order to complete the statement. | 7031 * The kinds of refactorings that are valid for the given selection. |
| 7121 */ | 7032 */ |
| 7122 SourceChange get change => _change; | 7033 List<RefactoringKind> get kinds => _kinds; |
| 7123 | 7034 |
| 7124 /** | 7035 /** |
| 7125 * The change to be applied in order to complete the statement. | 7036 * The kinds of refactorings that are valid for the given selection. |
| 7126 */ | 7037 */ |
| 7127 void set change(SourceChange value) { | 7038 void set kinds(List<RefactoringKind> value) { |
| 7128 assert(value != null); | 7039 assert(value != null); |
| 7129 this._change = value; | 7040 this._kinds = value; |
| 7130 } | 7041 } |
| 7131 | 7042 |
| 7132 /** | 7043 EditGetAvailableRefactoringsResult(List<RefactoringKind> kinds) { |
| 7133 * Will be true if the change contains nothing but whitespace characters, or | 7044 this.kinds = kinds; |
| 7134 * is empty. | |
| 7135 */ | |
| 7136 bool get whitespaceOnly => _whitespaceOnly; | |
| 7137 | |
| 7138 /** | |
| 7139 * Will be true if the change contains nothing but whitespace characters, or | |
| 7140 * is empty. | |
| 7141 */ | |
| 7142 void set whitespaceOnly(bool value) { | |
| 7143 assert(value != null); | |
| 7144 this._whitespaceOnly = value; | |
| 7145 } | 7045 } |
| 7146 | 7046 |
| 7147 EditGetStatementCompletionResult(SourceChange change, bool whitespaceOnly) { | 7047 factory EditGetAvailableRefactoringsResult.fromJson( |
| 7148 this.change = change; | |
| 7149 this.whitespaceOnly = whitespaceOnly; | |
| 7150 } | |
| 7151 | |
| 7152 factory EditGetStatementCompletionResult.fromJson( | |
| 7153 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 7048 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 7154 if (json == null) { | 7049 if (json == null) { |
| 7155 json = {}; | 7050 json = {}; |
| 7156 } | 7051 } |
| 7157 if (json is Map) { | 7052 if (json is Map) { |
| 7158 SourceChange change; | 7053 List<RefactoringKind> kinds; |
| 7159 if (json.containsKey("change")) { | 7054 if (json.containsKey("kinds")) { |
| 7160 change = new SourceChange.fromJson( | 7055 kinds = jsonDecoder.decodeList( |
| 7161 jsonDecoder, jsonPath + ".change", json["change"]); | 7056 jsonPath + ".kinds", |
| 7057 json["kinds"], |
| 7058 (String jsonPath, Object json) => |
| 7059 new RefactoringKind.fromJson(jsonDecoder, jsonPath, json)); |
| 7162 } else { | 7060 } else { |
| 7163 throw jsonDecoder.missingKey(jsonPath, "change"); | 7061 throw jsonDecoder.mismatch(jsonPath, "kinds"); |
| 7164 } | 7062 } |
| 7165 bool whitespaceOnly; | 7063 return new EditGetAvailableRefactoringsResult(kinds); |
| 7166 if (json.containsKey("whitespaceOnly")) { | |
| 7167 whitespaceOnly = jsonDecoder.decodeBool( | |
| 7168 jsonPath + ".whitespaceOnly", json["whitespaceOnly"]); | |
| 7169 } else { | |
| 7170 throw jsonDecoder.missingKey(jsonPath, "whitespaceOnly"); | |
| 7171 } | |
| 7172 return new EditGetStatementCompletionResult(change, whitespaceOnly); | |
| 7173 } else { | 7064 } else { |
| 7174 throw jsonDecoder.mismatch( | 7065 throw jsonDecoder.mismatch( |
| 7175 jsonPath, "edit.getStatementCompletion result", json); | 7066 jsonPath, "edit.getAvailableRefactorings result", json); |
| 7176 } | 7067 } |
| 7177 } | 7068 } |
| 7178 | 7069 |
| 7179 factory EditGetStatementCompletionResult.fromResponse(Response response) { | 7070 factory EditGetAvailableRefactoringsResult.fromResponse(Response response) { |
| 7180 return new EditGetStatementCompletionResult.fromJson( | 7071 return new EditGetAvailableRefactoringsResult.fromJson( |
| 7181 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 7072 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 7182 "result", | 7073 "result", |
| 7183 response._result); | 7074 response.result); |
| 7184 } | 7075 } |
| 7185 | 7076 |
| 7077 @override |
| 7186 Map<String, dynamic> toJson() { | 7078 Map<String, dynamic> toJson() { |
| 7187 Map<String, dynamic> result = {}; | 7079 Map<String, dynamic> result = {}; |
| 7188 result["change"] = change.toJson(); | 7080 result["kinds"] = |
| 7189 result["whitespaceOnly"] = whitespaceOnly; | 7081 kinds.map((RefactoringKind value) => value.toJson()).toList(); |
| 7190 return result; | 7082 return result; |
| 7191 } | 7083 } |
| 7192 | 7084 |
| 7085 @override |
| 7193 Response toResponse(String id) { | 7086 Response toResponse(String id) { |
| 7194 return new Response(id, result: toJson()); | 7087 return new Response(id, result: toJson()); |
| 7195 } | 7088 } |
| 7196 | 7089 |
| 7197 @override | 7090 @override |
| 7198 String toString() => JSON.encode(toJson()); | 7091 String toString() => JSON.encode(toJson()); |
| 7199 | 7092 |
| 7200 @override | 7093 @override |
| 7201 bool operator ==(other) { | 7094 bool operator ==(other) { |
| 7202 if (other is EditGetStatementCompletionResult) { | 7095 if (other is EditGetAvailableRefactoringsResult) { |
| 7203 return change == other.change && whitespaceOnly == other.whitespaceOnly; | 7096 return listEqual( |
| 7097 kinds, other.kinds, (RefactoringKind a, RefactoringKind b) => a == b); |
| 7204 } | 7098 } |
| 7205 return false; | 7099 return false; |
| 7206 } | 7100 } |
| 7207 | 7101 |
| 7208 @override | 7102 @override |
| 7209 int get hashCode { | 7103 int get hashCode { |
| 7210 int hash = 0; | 7104 int hash = 0; |
| 7211 hash = JenkinsSmiHash.combine(hash, change.hashCode); | 7105 hash = JenkinsSmiHash.combine(hash, kinds.hashCode); |
| 7212 hash = JenkinsSmiHash.combine(hash, whitespaceOnly.hashCode); | |
| 7213 return JenkinsSmiHash.finish(hash); | 7106 return JenkinsSmiHash.finish(hash); |
| 7214 } | 7107 } |
| 7215 } | 7108 } |
| 7216 | 7109 |
| 7217 /** | 7110 /** |
| 7218 * edit.sortMembers params | 7111 * edit.getFixes params |
| 7219 * | 7112 * |
| 7220 * { | 7113 * { |
| 7221 * "file": FilePath | 7114 * "file": FilePath |
| 7115 * "offset": int |
| 7222 * } | 7116 * } |
| 7223 * | 7117 * |
| 7224 * Clients may not extend, implement or mix-in this class. | 7118 * Clients may not extend, implement or mix-in this class. |
| 7225 */ | 7119 */ |
| 7226 class EditSortMembersParams implements HasToJson { | 7120 class EditGetFixesParams implements RequestParams { |
| 7227 String _file; | 7121 String _file; |
| 7228 | 7122 |
| 7123 int _offset; |
| 7124 |
| 7229 /** | 7125 /** |
| 7230 * The Dart file to sort. | 7126 * The file containing the errors for which fixes are being requested. |
| 7231 */ | 7127 */ |
| 7232 String get file => _file; | 7128 String get file => _file; |
| 7233 | 7129 |
| 7234 /** | 7130 /** |
| 7235 * The Dart file to sort. | 7131 * The file containing the errors for which fixes are being requested. |
| 7236 */ | 7132 */ |
| 7237 void set file(String value) { | 7133 void set file(String value) { |
| 7238 assert(value != null); | 7134 assert(value != null); |
| 7239 this._file = value; | 7135 this._file = value; |
| 7240 } | 7136 } |
| 7241 | 7137 |
| 7242 EditSortMembersParams(String file) { | 7138 /** |
| 7243 this.file = file; | 7139 * The offset used to select the errors for which fixes will be returned. |
| 7140 */ |
| 7141 int get offset => _offset; |
| 7142 |
| 7143 /** |
| 7144 * The offset used to select the errors for which fixes will be returned. |
| 7145 */ |
| 7146 void set offset(int value) { |
| 7147 assert(value != null); |
| 7148 this._offset = value; |
| 7244 } | 7149 } |
| 7245 | 7150 |
| 7246 factory EditSortMembersParams.fromJson( | 7151 EditGetFixesParams(String file, int offset) { |
| 7152 this.file = file; |
| 7153 this.offset = offset; |
| 7154 } |
| 7155 |
| 7156 factory EditGetFixesParams.fromJson( |
| 7247 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 7157 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 7248 if (json == null) { | 7158 if (json == null) { |
| 7249 json = {}; | 7159 json = {}; |
| 7250 } | 7160 } |
| 7251 if (json is Map) { | 7161 if (json is Map) { |
| 7252 String file; | 7162 String file; |
| 7253 if (json.containsKey("file")) { | 7163 if (json.containsKey("file")) { |
| 7254 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 7164 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 7255 } else { | 7165 } else { |
| 7256 throw jsonDecoder.missingKey(jsonPath, "file"); | 7166 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 7257 } | 7167 } |
| 7258 return new EditSortMembersParams(file); | 7168 int offset; |
| 7169 if (json.containsKey("offset")) { |
| 7170 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 7171 } else { |
| 7172 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 7173 } |
| 7174 return new EditGetFixesParams(file, offset); |
| 7259 } else { | 7175 } else { |
| 7260 throw jsonDecoder.mismatch(jsonPath, "edit.sortMembers params", json); | 7176 throw jsonDecoder.mismatch(jsonPath, "edit.getFixes params", json); |
| 7261 } | 7177 } |
| 7262 } | 7178 } |
| 7263 | 7179 |
| 7264 factory EditSortMembersParams.fromRequest(Request request) { | 7180 factory EditGetFixesParams.fromRequest(Request request) { |
| 7265 return new EditSortMembersParams.fromJson( | 7181 return new EditGetFixesParams.fromJson( |
| 7266 new RequestDecoder(request), "params", request._params); | 7182 new RequestDecoder(request), "params", request.params); |
| 7267 } | 7183 } |
| 7268 | 7184 |
| 7185 @override |
| 7269 Map<String, dynamic> toJson() { | 7186 Map<String, dynamic> toJson() { |
| 7270 Map<String, dynamic> result = {}; | 7187 Map<String, dynamic> result = {}; |
| 7271 result["file"] = file; | 7188 result["file"] = file; |
| 7189 result["offset"] = offset; |
| 7272 return result; | 7190 return result; |
| 7273 } | 7191 } |
| 7274 | 7192 |
| 7193 @override |
| 7275 Request toRequest(String id) { | 7194 Request toRequest(String id) { |
| 7276 return new Request(id, "edit.sortMembers", toJson()); | 7195 return new Request(id, "edit.getFixes", toJson()); |
| 7277 } | 7196 } |
| 7278 | 7197 |
| 7279 @override | 7198 @override |
| 7280 String toString() => JSON.encode(toJson()); | 7199 String toString() => JSON.encode(toJson()); |
| 7281 | 7200 |
| 7282 @override | 7201 @override |
| 7283 bool operator ==(other) { | 7202 bool operator ==(other) { |
| 7284 if (other is EditSortMembersParams) { | 7203 if (other is EditGetFixesParams) { |
| 7285 return file == other.file; | 7204 return file == other.file && offset == other.offset; |
| 7286 } | 7205 } |
| 7287 return false; | 7206 return false; |
| 7288 } | 7207 } |
| 7289 | 7208 |
| 7290 @override | 7209 @override |
| 7291 int get hashCode { | 7210 int get hashCode { |
| 7292 int hash = 0; | 7211 int hash = 0; |
| 7293 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 7212 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 7213 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 7294 return JenkinsSmiHash.finish(hash); | 7214 return JenkinsSmiHash.finish(hash); |
| 7295 } | 7215 } |
| 7296 } | 7216 } |
| 7297 | 7217 |
| 7298 /** | 7218 /** |
| 7299 * edit.sortMembers result | 7219 * edit.getFixes result |
| 7300 * | 7220 * |
| 7301 * { | 7221 * { |
| 7302 * "edit": SourceFileEdit | 7222 * "fixes": List<AnalysisErrorFixes> |
| 7303 * } | 7223 * } |
| 7304 * | 7224 * |
| 7305 * Clients may not extend, implement or mix-in this class. | 7225 * Clients may not extend, implement or mix-in this class. |
| 7306 */ | 7226 */ |
| 7307 class EditSortMembersResult implements HasToJson { | 7227 class EditGetFixesResult implements ResponseResult { |
| 7308 SourceFileEdit _edit; | 7228 List<AnalysisErrorFixes> _fixes; |
| 7309 | 7229 |
| 7310 /** | 7230 /** |
| 7311 * The file edit that is to be applied to the given file to effect the | 7231 * The fixes that are available for the errors at the given offset. |
| 7312 * sorting. | |
| 7313 */ | 7232 */ |
| 7314 SourceFileEdit get edit => _edit; | 7233 List<AnalysisErrorFixes> get fixes => _fixes; |
| 7315 | 7234 |
| 7316 /** | 7235 /** |
| 7317 * The file edit that is to be applied to the given file to effect the | 7236 * The fixes that are available for the errors at the given offset. |
| 7318 * sorting. | |
| 7319 */ | 7237 */ |
| 7320 void set edit(SourceFileEdit value) { | 7238 void set fixes(List<AnalysisErrorFixes> value) { |
| 7321 assert(value != null); | 7239 assert(value != null); |
| 7322 this._edit = value; | 7240 this._fixes = value; |
| 7323 } | 7241 } |
| 7324 | 7242 |
| 7325 EditSortMembersResult(SourceFileEdit edit) { | 7243 EditGetFixesResult(List<AnalysisErrorFixes> fixes) { |
| 7326 this.edit = edit; | 7244 this.fixes = fixes; |
| 7327 } | 7245 } |
| 7328 | 7246 |
| 7329 factory EditSortMembersResult.fromJson( | 7247 factory EditGetFixesResult.fromJson( |
| 7330 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 7248 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 7331 if (json == null) { | 7249 if (json == null) { |
| 7332 json = {}; | 7250 json = {}; |
| 7333 } | 7251 } |
| 7334 if (json is Map) { | 7252 if (json is Map) { |
| 7335 SourceFileEdit edit; | 7253 List<AnalysisErrorFixes> fixes; |
| 7336 if (json.containsKey("edit")) { | 7254 if (json.containsKey("fixes")) { |
| 7337 edit = new SourceFileEdit.fromJson( | 7255 fixes = jsonDecoder.decodeList( |
| 7338 jsonDecoder, jsonPath + ".edit", json["edit"]); | 7256 jsonPath + ".fixes", |
| 7257 json["fixes"], |
| 7258 (String jsonPath, Object json) => |
| 7259 new AnalysisErrorFixes.fromJson(jsonDecoder, jsonPath, json)); |
| 7339 } else { | 7260 } else { |
| 7340 throw jsonDecoder.missingKey(jsonPath, "edit"); | 7261 throw jsonDecoder.mismatch(jsonPath, "fixes"); |
| 7341 } | 7262 } |
| 7342 return new EditSortMembersResult(edit); | 7263 return new EditGetFixesResult(fixes); |
| 7343 } else { | 7264 } else { |
| 7344 throw jsonDecoder.mismatch(jsonPath, "edit.sortMembers result", json); | 7265 throw jsonDecoder.mismatch(jsonPath, "edit.getFixes result", json); |
| 7345 } | 7266 } |
| 7346 } | 7267 } |
| 7347 | 7268 |
| 7348 factory EditSortMembersResult.fromResponse(Response response) { | 7269 factory EditGetFixesResult.fromResponse(Response response) { |
| 7349 return new EditSortMembersResult.fromJson( | 7270 return new EditGetFixesResult.fromJson( |
| 7350 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 7271 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 7351 "result", | 7272 "result", |
| 7352 response._result); | 7273 response.result); |
| 7353 } | 7274 } |
| 7354 | 7275 |
| 7276 @override |
| 7355 Map<String, dynamic> toJson() { | 7277 Map<String, dynamic> toJson() { |
| 7356 Map<String, dynamic> result = {}; | 7278 Map<String, dynamic> result = {}; |
| 7357 result["edit"] = edit.toJson(); | 7279 result["fixes"] = |
| 7280 fixes.map((AnalysisErrorFixes value) => value.toJson()).toList(); |
| 7358 return result; | 7281 return result; |
| 7359 } | 7282 } |
| 7360 | 7283 |
| 7284 @override |
| 7361 Response toResponse(String id) { | 7285 Response toResponse(String id) { |
| 7362 return new Response(id, result: toJson()); | 7286 return new Response(id, result: toJson()); |
| 7363 } | 7287 } |
| 7364 | 7288 |
| 7365 @override | 7289 @override |
| 7366 String toString() => JSON.encode(toJson()); | 7290 String toString() => JSON.encode(toJson()); |
| 7367 | 7291 |
| 7368 @override | 7292 @override |
| 7369 bool operator ==(other) { | 7293 bool operator ==(other) { |
| 7370 if (other is EditSortMembersResult) { | 7294 if (other is EditGetFixesResult) { |
| 7371 return edit == other.edit; | 7295 return listEqual(fixes, other.fixes, |
| 7296 (AnalysisErrorFixes a, AnalysisErrorFixes b) => a == b); |
| 7372 } | 7297 } |
| 7373 return false; | 7298 return false; |
| 7374 } | 7299 } |
| 7375 | 7300 |
| 7376 @override | 7301 @override |
| 7377 int get hashCode { | 7302 int get hashCode { |
| 7378 int hash = 0; | 7303 int hash = 0; |
| 7379 hash = JenkinsSmiHash.combine(hash, edit.hashCode); | 7304 hash = JenkinsSmiHash.combine(hash, fixes.hashCode); |
| 7380 return JenkinsSmiHash.finish(hash); | 7305 return JenkinsSmiHash.finish(hash); |
| 7381 } | 7306 } |
| 7382 } | 7307 } |
| 7383 | 7308 |
| 7384 /** | 7309 /** |
| 7385 * edit.organizeDirectives params | 7310 * edit.getRefactoring params |
| 7386 * | 7311 * |
| 7387 * { | 7312 * { |
| 7313 * "kind": RefactoringKind |
| 7388 * "file": FilePath | 7314 * "file": FilePath |
| 7315 * "offset": int |
| 7316 * "length": int |
| 7317 * "validateOnly": bool |
| 7318 * "options": optional RefactoringOptions |
| 7389 * } | 7319 * } |
| 7390 * | 7320 * |
| 7391 * Clients may not extend, implement or mix-in this class. | 7321 * Clients may not extend, implement or mix-in this class. |
| 7392 */ | 7322 */ |
| 7393 class EditOrganizeDirectivesParams implements HasToJson { | 7323 class EditGetRefactoringParams implements RequestParams { |
| 7324 RefactoringKind _kind; |
| 7325 |
| 7394 String _file; | 7326 String _file; |
| 7395 | 7327 |
| 7396 /** | 7328 int _offset; |
| 7397 * The Dart file to organize directives in. | 7329 |
| 7330 int _length; |
| 7331 |
| 7332 bool _validateOnly; |
| 7333 |
| 7334 RefactoringOptions _options; |
| 7335 |
| 7336 /** |
| 7337 * The kind of refactoring to be performed. |
| 7338 */ |
| 7339 RefactoringKind get kind => _kind; |
| 7340 |
| 7341 /** |
| 7342 * The kind of refactoring to be performed. |
| 7343 */ |
| 7344 void set kind(RefactoringKind value) { |
| 7345 assert(value != null); |
| 7346 this._kind = value; |
| 7347 } |
| 7348 |
| 7349 /** |
| 7350 * The file containing the code involved in the refactoring. |
| 7398 */ | 7351 */ |
| 7399 String get file => _file; | 7352 String get file => _file; |
| 7400 | 7353 |
| 7401 /** | 7354 /** |
| 7402 * The Dart file to organize directives in. | 7355 * The file containing the code involved in the refactoring. |
| 7403 */ | 7356 */ |
| 7404 void set file(String value) { | 7357 void set file(String value) { |
| 7405 assert(value != null); | 7358 assert(value != null); |
| 7406 this._file = value; | 7359 this._file = value; |
| 7407 } | 7360 } |
| 7408 | 7361 |
| 7409 EditOrganizeDirectivesParams(String file) { | 7362 /** |
| 7363 * The offset of the region involved in the refactoring. |
| 7364 */ |
| 7365 int get offset => _offset; |
| 7366 |
| 7367 /** |
| 7368 * The offset of the region involved in the refactoring. |
| 7369 */ |
| 7370 void set offset(int value) { |
| 7371 assert(value != null); |
| 7372 this._offset = value; |
| 7373 } |
| 7374 |
| 7375 /** |
| 7376 * The length of the region involved in the refactoring. |
| 7377 */ |
| 7378 int get length => _length; |
| 7379 |
| 7380 /** |
| 7381 * The length of the region involved in the refactoring. |
| 7382 */ |
| 7383 void set length(int value) { |
| 7384 assert(value != null); |
| 7385 this._length = value; |
| 7386 } |
| 7387 |
| 7388 /** |
| 7389 * True if the client is only requesting that the values of the options be |
| 7390 * validated and no change be generated. |
| 7391 */ |
| 7392 bool get validateOnly => _validateOnly; |
| 7393 |
| 7394 /** |
| 7395 * True if the client is only requesting that the values of the options be |
| 7396 * validated and no change be generated. |
| 7397 */ |
| 7398 void set validateOnly(bool value) { |
| 7399 assert(value != null); |
| 7400 this._validateOnly = value; |
| 7401 } |
| 7402 |
| 7403 /** |
| 7404 * Data used to provide values provided by the user. The structure of the |
| 7405 * data is dependent on the kind of refactoring being performed. The data |
| 7406 * that is expected is documented in the section titled Refactorings, labeled |
| 7407 * as "Options". This field can be omitted if the refactoring does not |
| 7408 * require any options or if the values of those options are not known. |
| 7409 */ |
| 7410 RefactoringOptions get options => _options; |
| 7411 |
| 7412 /** |
| 7413 * Data used to provide values provided by the user. The structure of the |
| 7414 * data is dependent on the kind of refactoring being performed. The data |
| 7415 * that is expected is documented in the section titled Refactorings, labeled |
| 7416 * as "Options". This field can be omitted if the refactoring does not |
| 7417 * require any options or if the values of those options are not known. |
| 7418 */ |
| 7419 void set options(RefactoringOptions value) { |
| 7420 this._options = value; |
| 7421 } |
| 7422 |
| 7423 EditGetRefactoringParams(RefactoringKind kind, String file, int offset, |
| 7424 int length, bool validateOnly, |
| 7425 {RefactoringOptions options}) { |
| 7426 this.kind = kind; |
| 7410 this.file = file; | 7427 this.file = file; |
| 7411 } | 7428 this.offset = offset; |
| 7412 | 7429 this.length = length; |
| 7413 factory EditOrganizeDirectivesParams.fromJson( | 7430 this.validateOnly = validateOnly; |
| 7431 this.options = options; |
| 7432 } |
| 7433 |
| 7434 factory EditGetRefactoringParams.fromJson( |
| 7414 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 7435 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 7415 if (json == null) { | 7436 if (json == null) { |
| 7416 json = {}; | 7437 json = {}; |
| 7417 } | 7438 } |
| 7418 if (json is Map) { | 7439 if (json is Map) { |
| 7440 RefactoringKind kind; |
| 7441 if (json.containsKey("kind")) { |
| 7442 kind = new RefactoringKind.fromJson( |
| 7443 jsonDecoder, jsonPath + ".kind", json["kind"]); |
| 7444 } else { |
| 7445 throw jsonDecoder.mismatch(jsonPath, "kind"); |
| 7446 } |
| 7419 String file; | 7447 String file; |
| 7420 if (json.containsKey("file")) { | 7448 if (json.containsKey("file")) { |
| 7421 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 7449 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 7422 } else { | 7450 } else { |
| 7423 throw jsonDecoder.missingKey(jsonPath, "file"); | 7451 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 7424 } | 7452 } |
| 7425 return new EditOrganizeDirectivesParams(file); | 7453 int offset; |
| 7454 if (json.containsKey("offset")) { |
| 7455 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 7456 } else { |
| 7457 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 7458 } |
| 7459 int length; |
| 7460 if (json.containsKey("length")) { |
| 7461 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 7462 } else { |
| 7463 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 7464 } |
| 7465 bool validateOnly; |
| 7466 if (json.containsKey("validateOnly")) { |
| 7467 validateOnly = jsonDecoder.decodeBool( |
| 7468 jsonPath + ".validateOnly", json["validateOnly"]); |
| 7469 } else { |
| 7470 throw jsonDecoder.mismatch(jsonPath, "validateOnly"); |
| 7471 } |
| 7472 RefactoringOptions options; |
| 7473 if (json.containsKey("options")) { |
| 7474 options = new RefactoringOptions.fromJson( |
| 7475 jsonDecoder, jsonPath + ".options", json["options"], kind); |
| 7476 } |
| 7477 return new EditGetRefactoringParams( |
| 7478 kind, file, offset, length, validateOnly, |
| 7479 options: options); |
| 7426 } else { | 7480 } else { |
| 7427 throw jsonDecoder.mismatch( | 7481 throw jsonDecoder.mismatch(jsonPath, "edit.getRefactoring params", json); |
| 7428 jsonPath, "edit.organizeDirectives params", json); | |
| 7429 } | 7482 } |
| 7430 } | 7483 } |
| 7431 | 7484 |
| 7432 factory EditOrganizeDirectivesParams.fromRequest(Request request) { | 7485 factory EditGetRefactoringParams.fromRequest(Request request) { |
| 7433 return new EditOrganizeDirectivesParams.fromJson( | 7486 var params = new EditGetRefactoringParams.fromJson( |
| 7434 new RequestDecoder(request), "params", request._params); | 7487 new RequestDecoder(request), "params", request.params); |
| 7435 } | 7488 REQUEST_ID_REFACTORING_KINDS[request.id] = params.kind; |
| 7436 | 7489 return params; |
| 7490 } |
| 7491 |
| 7492 @override |
| 7437 Map<String, dynamic> toJson() { | 7493 Map<String, dynamic> toJson() { |
| 7438 Map<String, dynamic> result = {}; | 7494 Map<String, dynamic> result = {}; |
| 7495 result["kind"] = kind.toJson(); |
| 7439 result["file"] = file; | 7496 result["file"] = file; |
| 7497 result["offset"] = offset; |
| 7498 result["length"] = length; |
| 7499 result["validateOnly"] = validateOnly; |
| 7500 if (options != null) { |
| 7501 result["options"] = options.toJson(); |
| 7502 } |
| 7440 return result; | 7503 return result; |
| 7441 } | 7504 } |
| 7442 | 7505 |
| 7506 @override |
| 7443 Request toRequest(String id) { | 7507 Request toRequest(String id) { |
| 7444 return new Request(id, "edit.organizeDirectives", toJson()); | 7508 return new Request(id, "edit.getRefactoring", toJson()); |
| 7445 } | 7509 } |
| 7446 | 7510 |
| 7447 @override | 7511 @override |
| 7448 String toString() => JSON.encode(toJson()); | |
| 7449 | |
| 7450 @override | |
| 7451 bool operator ==(other) { | |
| 7452 if (other is EditOrganizeDirectivesParams) { | |
| 7453 return file == other.file; | |
| 7454 } | |
| 7455 return false; | |
| 7456 } | |
| 7457 | |
| 7458 @override | |
| 7459 int get hashCode { | |
| 7460 int hash = 0; | |
| 7461 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
| 7462 return JenkinsSmiHash.finish(hash); | |
| 7463 } | |
| 7464 } | |
| 7465 | |
| 7466 /** | |
| 7467 * edit.organizeDirectives result | |
| 7468 * | |
| 7469 * { | |
| 7470 * "edit": SourceFileEdit | |
| 7471 * } | |
| 7472 * | |
| 7473 * Clients may not extend, implement or mix-in this class. | |
| 7474 */ | |
| 7475 class EditOrganizeDirectivesResult implements HasToJson { | |
| 7476 SourceFileEdit _edit; | |
| 7477 | |
| 7478 /** | |
| 7479 * The file edit that is to be applied to the given file to effect the | |
| 7480 * organizing. | |
| 7481 */ | |
| 7482 SourceFileEdit get edit => _edit; | |
| 7483 | |
| 7484 /** | |
| 7485 * The file edit that is to be applied to the given file to effect the | |
| 7486 * organizing. | |
| 7487 */ | |
| 7488 void set edit(SourceFileEdit value) { | |
| 7489 assert(value != null); | |
| 7490 this._edit = value; | |
| 7491 } | |
| 7492 | |
| 7493 EditOrganizeDirectivesResult(SourceFileEdit edit) { | |
| 7494 this.edit = edit; | |
| 7495 } | |
| 7496 | |
| 7497 factory EditOrganizeDirectivesResult.fromJson( | |
| 7498 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 7499 if (json == null) { | |
| 7500 json = {}; | |
| 7501 } | |
| 7502 if (json is Map) { | |
| 7503 SourceFileEdit edit; | |
| 7504 if (json.containsKey("edit")) { | |
| 7505 edit = new SourceFileEdit.fromJson( | |
| 7506 jsonDecoder, jsonPath + ".edit", json["edit"]); | |
| 7507 } else { | |
| 7508 throw jsonDecoder.missingKey(jsonPath, "edit"); | |
| 7509 } | |
| 7510 return new EditOrganizeDirectivesResult(edit); | |
| 7511 } else { | |
| 7512 throw jsonDecoder.mismatch( | |
| 7513 jsonPath, "edit.organizeDirectives result", json); | |
| 7514 } | |
| 7515 } | |
| 7516 | |
| 7517 factory EditOrganizeDirectivesResult.fromResponse(Response response) { | |
| 7518 return new EditOrganizeDirectivesResult.fromJson( | |
| 7519 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | |
| 7520 "result", | |
| 7521 response._result); | |
| 7522 } | |
| 7523 | |
| 7524 Map<String, dynamic> toJson() { | |
| 7525 Map<String, dynamic> result = {}; | |
| 7526 result["edit"] = edit.toJson(); | |
| 7527 return result; | |
| 7528 } | |
| 7529 | |
| 7530 Response toResponse(String id) { | |
| 7531 return new Response(id, result: toJson()); | |
| 7532 } | |
| 7533 | |
| 7534 @override | |
| 7535 String toString() => JSON.encode(toJson()); | 7512 String toString() => JSON.encode(toJson()); |
| 7536 | 7513 |
| 7537 @override | 7514 @override |
| 7538 bool operator ==(other) { | 7515 bool operator ==(other) { |
| 7539 if (other is EditOrganizeDirectivesResult) { | 7516 if (other is EditGetRefactoringParams) { |
| 7540 return edit == other.edit; | 7517 return kind == other.kind && |
| 7518 file == other.file && |
| 7519 offset == other.offset && |
| 7520 length == other.length && |
| 7521 validateOnly == other.validateOnly && |
| 7522 options == other.options; |
| 7541 } | 7523 } |
| 7542 return false; | 7524 return false; |
| 7543 } | 7525 } |
| 7544 | 7526 |
| 7545 @override | 7527 @override |
| 7546 int get hashCode { | 7528 int get hashCode { |
| 7547 int hash = 0; | 7529 int hash = 0; |
| 7548 hash = JenkinsSmiHash.combine(hash, edit.hashCode); | 7530 hash = JenkinsSmiHash.combine(hash, kind.hashCode); |
| 7531 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 7532 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 7533 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 7534 hash = JenkinsSmiHash.combine(hash, validateOnly.hashCode); |
| 7535 hash = JenkinsSmiHash.combine(hash, options.hashCode); |
| 7549 return JenkinsSmiHash.finish(hash); | 7536 return JenkinsSmiHash.finish(hash); |
| 7550 } | 7537 } |
| 7551 } | 7538 } |
| 7552 | 7539 |
| 7553 /** | 7540 /** |
| 7554 * execution.createContext params | 7541 * edit.getRefactoring result |
| 7555 * | 7542 * |
| 7556 * { | 7543 * { |
| 7557 * "contextRoot": FilePath | 7544 * "initialProblems": List<RefactoringProblem> |
| 7545 * "optionsProblems": List<RefactoringProblem> |
| 7546 * "finalProblems": List<RefactoringProblem> |
| 7547 * "feedback": optional RefactoringFeedback |
| 7548 * "change": optional SourceChange |
| 7549 * "potentialEdits": optional List<String> |
| 7558 * } | 7550 * } |
| 7559 * | 7551 * |
| 7560 * Clients may not extend, implement or mix-in this class. | 7552 * Clients may not extend, implement or mix-in this class. |
| 7561 */ | 7553 */ |
| 7562 class ExecutionCreateContextParams implements HasToJson { | 7554 class EditGetRefactoringResult implements ResponseResult { |
| 7563 String _contextRoot; | 7555 List<RefactoringProblem> _initialProblems; |
| 7564 | 7556 |
| 7565 /** | 7557 List<RefactoringProblem> _optionsProblems; |
| 7566 * The path of the Dart or HTML file that will be launched, or the path of | 7558 |
| 7567 * the directory containing the file. | 7559 List<RefactoringProblem> _finalProblems; |
| 7568 */ | 7560 |
| 7569 String get contextRoot => _contextRoot; | 7561 RefactoringFeedback _feedback; |
| 7570 | 7562 |
| 7571 /** | 7563 SourceChange _change; |
| 7572 * The path of the Dart or HTML file that will be launched, or the path of | 7564 |
| 7573 * the directory containing the file. | 7565 List<String> _potentialEdits; |
| 7574 */ | 7566 |
| 7575 void set contextRoot(String value) { | 7567 /** |
| 7568 * The initial status of the refactoring, i.e. problems related to the |
| 7569 * context in which the refactoring is requested. The array will be empty if |
| 7570 * there are no known problems. |
| 7571 */ |
| 7572 List<RefactoringProblem> get initialProblems => _initialProblems; |
| 7573 |
| 7574 /** |
| 7575 * The initial status of the refactoring, i.e. problems related to the |
| 7576 * context in which the refactoring is requested. The array will be empty if |
| 7577 * there are no known problems. |
| 7578 */ |
| 7579 void set initialProblems(List<RefactoringProblem> value) { |
| 7576 assert(value != null); | 7580 assert(value != null); |
| 7577 this._contextRoot = value; | 7581 this._initialProblems = value; |
| 7578 } | 7582 } |
| 7579 | 7583 |
| 7580 ExecutionCreateContextParams(String contextRoot) { | 7584 /** |
| 7581 this.contextRoot = contextRoot; | 7585 * The options validation status, i.e. problems in the given options, such as |
| 7582 } | 7586 * light-weight validation of a new name, flags compatibility, etc. The array |
| 7583 | 7587 * will be empty if there are no known problems. |
| 7584 factory ExecutionCreateContextParams.fromJson( | 7588 */ |
| 7589 List<RefactoringProblem> get optionsProblems => _optionsProblems; |
| 7590 |
| 7591 /** |
| 7592 * The options validation status, i.e. problems in the given options, such as |
| 7593 * light-weight validation of a new name, flags compatibility, etc. The array |
| 7594 * will be empty if there are no known problems. |
| 7595 */ |
| 7596 void set optionsProblems(List<RefactoringProblem> value) { |
| 7597 assert(value != null); |
| 7598 this._optionsProblems = value; |
| 7599 } |
| 7600 |
| 7601 /** |
| 7602 * The final status of the refactoring, i.e. problems identified in the |
| 7603 * result of a full, potentially expensive validation and / or change |
| 7604 * creation. The array will be empty if there are no known problems. |
| 7605 */ |
| 7606 List<RefactoringProblem> get finalProblems => _finalProblems; |
| 7607 |
| 7608 /** |
| 7609 * The final status of the refactoring, i.e. problems identified in the |
| 7610 * result of a full, potentially expensive validation and / or change |
| 7611 * creation. The array will be empty if there are no known problems. |
| 7612 */ |
| 7613 void set finalProblems(List<RefactoringProblem> value) { |
| 7614 assert(value != null); |
| 7615 this._finalProblems = value; |
| 7616 } |
| 7617 |
| 7618 /** |
| 7619 * Data used to provide feedback to the user. The structure of the data is |
| 7620 * dependent on the kind of refactoring being created. The data that is |
| 7621 * returned is documented in the section titled Refactorings, labeled as |
| 7622 * "Feedback". |
| 7623 */ |
| 7624 RefactoringFeedback get feedback => _feedback; |
| 7625 |
| 7626 /** |
| 7627 * Data used to provide feedback to the user. The structure of the data is |
| 7628 * dependent on the kind of refactoring being created. The data that is |
| 7629 * returned is documented in the section titled Refactorings, labeled as |
| 7630 * "Feedback". |
| 7631 */ |
| 7632 void set feedback(RefactoringFeedback value) { |
| 7633 this._feedback = value; |
| 7634 } |
| 7635 |
| 7636 /** |
| 7637 * The changes that are to be applied to affect the refactoring. This field |
| 7638 * will be omitted if there are problems that prevent a set of changes from |
| 7639 * being computed, such as having no options specified for a refactoring that |
| 7640 * requires them, or if only validation was requested. |
| 7641 */ |
| 7642 SourceChange get change => _change; |
| 7643 |
| 7644 /** |
| 7645 * The changes that are to be applied to affect the refactoring. This field |
| 7646 * will be omitted if there are problems that prevent a set of changes from |
| 7647 * being computed, such as having no options specified for a refactoring that |
| 7648 * requires them, or if only validation was requested. |
| 7649 */ |
| 7650 void set change(SourceChange value) { |
| 7651 this._change = value; |
| 7652 } |
| 7653 |
| 7654 /** |
| 7655 * The ids of source edits that are not known to be valid. An edit is not |
| 7656 * known to be valid if there was insufficient type information for the |
| 7657 * server to be able to determine whether or not the code needs to be |
| 7658 * modified, such as when a member is being renamed and there is a reference |
| 7659 * to a member from an unknown type. This field will be omitted if the change |
| 7660 * field is omitted or if there are no potential edits for the refactoring. |
| 7661 */ |
| 7662 List<String> get potentialEdits => _potentialEdits; |
| 7663 |
| 7664 /** |
| 7665 * The ids of source edits that are not known to be valid. An edit is not |
| 7666 * known to be valid if there was insufficient type information for the |
| 7667 * server to be able to determine whether or not the code needs to be |
| 7668 * modified, such as when a member is being renamed and there is a reference |
| 7669 * to a member from an unknown type. This field will be omitted if the change |
| 7670 * field is omitted or if there are no potential edits for the refactoring. |
| 7671 */ |
| 7672 void set potentialEdits(List<String> value) { |
| 7673 this._potentialEdits = value; |
| 7674 } |
| 7675 |
| 7676 EditGetRefactoringResult( |
| 7677 List<RefactoringProblem> initialProblems, |
| 7678 List<RefactoringProblem> optionsProblems, |
| 7679 List<RefactoringProblem> finalProblems, |
| 7680 {RefactoringFeedback feedback, |
| 7681 SourceChange change, |
| 7682 List<String> potentialEdits}) { |
| 7683 this.initialProblems = initialProblems; |
| 7684 this.optionsProblems = optionsProblems; |
| 7685 this.finalProblems = finalProblems; |
| 7686 this.feedback = feedback; |
| 7687 this.change = change; |
| 7688 this.potentialEdits = potentialEdits; |
| 7689 } |
| 7690 |
| 7691 factory EditGetRefactoringResult.fromJson( |
| 7585 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 7692 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 7586 if (json == null) { | 7693 if (json == null) { |
| 7587 json = {}; | 7694 json = {}; |
| 7588 } | 7695 } |
| 7589 if (json is Map) { | 7696 if (json is Map) { |
| 7590 String contextRoot; | 7697 List<RefactoringProblem> initialProblems; |
| 7591 if (json.containsKey("contextRoot")) { | 7698 if (json.containsKey("initialProblems")) { |
| 7592 contextRoot = jsonDecoder.decodeString( | 7699 initialProblems = jsonDecoder.decodeList( |
| 7593 jsonPath + ".contextRoot", json["contextRoot"]); | 7700 jsonPath + ".initialProblems", |
| 7701 json["initialProblems"], |
| 7702 (String jsonPath, Object json) => |
| 7703 new RefactoringProblem.fromJson(jsonDecoder, jsonPath, json)); |
| 7594 } else { | 7704 } else { |
| 7595 throw jsonDecoder.missingKey(jsonPath, "contextRoot"); | 7705 throw jsonDecoder.mismatch(jsonPath, "initialProblems"); |
| 7596 } | 7706 } |
| 7597 return new ExecutionCreateContextParams(contextRoot); | 7707 List<RefactoringProblem> optionsProblems; |
| 7708 if (json.containsKey("optionsProblems")) { |
| 7709 optionsProblems = jsonDecoder.decodeList( |
| 7710 jsonPath + ".optionsProblems", |
| 7711 json["optionsProblems"], |
| 7712 (String jsonPath, Object json) => |
| 7713 new RefactoringProblem.fromJson(jsonDecoder, jsonPath, json)); |
| 7714 } else { |
| 7715 throw jsonDecoder.mismatch(jsonPath, "optionsProblems"); |
| 7716 } |
| 7717 List<RefactoringProblem> finalProblems; |
| 7718 if (json.containsKey("finalProblems")) { |
| 7719 finalProblems = jsonDecoder.decodeList( |
| 7720 jsonPath + ".finalProblems", |
| 7721 json["finalProblems"], |
| 7722 (String jsonPath, Object json) => |
| 7723 new RefactoringProblem.fromJson(jsonDecoder, jsonPath, json)); |
| 7724 } else { |
| 7725 throw jsonDecoder.mismatch(jsonPath, "finalProblems"); |
| 7726 } |
| 7727 RefactoringFeedback feedback; |
| 7728 if (json.containsKey("feedback")) { |
| 7729 feedback = new RefactoringFeedback.fromJson( |
| 7730 jsonDecoder, jsonPath + ".feedback", json["feedback"], json); |
| 7731 } |
| 7732 SourceChange change; |
| 7733 if (json.containsKey("change")) { |
| 7734 change = new SourceChange.fromJson( |
| 7735 jsonDecoder, jsonPath + ".change", json["change"]); |
| 7736 } |
| 7737 List<String> potentialEdits; |
| 7738 if (json.containsKey("potentialEdits")) { |
| 7739 potentialEdits = jsonDecoder.decodeList(jsonPath + ".potentialEdits", |
| 7740 json["potentialEdits"], jsonDecoder.decodeString); |
| 7741 } |
| 7742 return new EditGetRefactoringResult( |
| 7743 initialProblems, optionsProblems, finalProblems, |
| 7744 feedback: feedback, change: change, potentialEdits: potentialEdits); |
| 7598 } else { | 7745 } else { |
| 7599 throw jsonDecoder.mismatch( | 7746 throw jsonDecoder.mismatch(jsonPath, "edit.getRefactoring result", json); |
| 7600 jsonPath, "execution.createContext params", json); | 7747 } |
| 7601 } | 7748 } |
| 7602 } | 7749 |
| 7603 | 7750 factory EditGetRefactoringResult.fromResponse(Response response) { |
| 7604 factory ExecutionCreateContextParams.fromRequest(Request request) { | 7751 return new EditGetRefactoringResult.fromJson( |
| 7605 return new ExecutionCreateContextParams.fromJson( | 7752 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 7606 new RequestDecoder(request), "params", request._params); | 7753 "result", |
| 7607 } | 7754 response.result); |
| 7608 | 7755 } |
| 7756 |
| 7757 @override |
| 7609 Map<String, dynamic> toJson() { | 7758 Map<String, dynamic> toJson() { |
| 7610 Map<String, dynamic> result = {}; | 7759 Map<String, dynamic> result = {}; |
| 7611 result["contextRoot"] = contextRoot; | 7760 result["initialProblems"] = initialProblems |
| 7761 .map((RefactoringProblem value) => value.toJson()) |
| 7762 .toList(); |
| 7763 result["optionsProblems"] = optionsProblems |
| 7764 .map((RefactoringProblem value) => value.toJson()) |
| 7765 .toList(); |
| 7766 result["finalProblems"] = finalProblems |
| 7767 .map((RefactoringProblem value) => value.toJson()) |
| 7768 .toList(); |
| 7769 if (feedback != null) { |
| 7770 result["feedback"] = feedback.toJson(); |
| 7771 } |
| 7772 if (change != null) { |
| 7773 result["change"] = change.toJson(); |
| 7774 } |
| 7775 if (potentialEdits != null) { |
| 7776 result["potentialEdits"] = potentialEdits; |
| 7777 } |
| 7612 return result; | 7778 return result; |
| 7613 } | 7779 } |
| 7614 | 7780 |
| 7615 Request toRequest(String id) { | |
| 7616 return new Request(id, "execution.createContext", toJson()); | |
| 7617 } | |
| 7618 | |
| 7619 @override | 7781 @override |
| 7620 String toString() => JSON.encode(toJson()); | |
| 7621 | |
| 7622 @override | |
| 7623 bool operator ==(other) { | |
| 7624 if (other is ExecutionCreateContextParams) { | |
| 7625 return contextRoot == other.contextRoot; | |
| 7626 } | |
| 7627 return false; | |
| 7628 } | |
| 7629 | |
| 7630 @override | |
| 7631 int get hashCode { | |
| 7632 int hash = 0; | |
| 7633 hash = JenkinsSmiHash.combine(hash, contextRoot.hashCode); | |
| 7634 return JenkinsSmiHash.finish(hash); | |
| 7635 } | |
| 7636 } | |
| 7637 | |
| 7638 /** | |
| 7639 * execution.createContext result | |
| 7640 * | |
| 7641 * { | |
| 7642 * "id": ExecutionContextId | |
| 7643 * } | |
| 7644 * | |
| 7645 * Clients may not extend, implement or mix-in this class. | |
| 7646 */ | |
| 7647 class ExecutionCreateContextResult implements HasToJson { | |
| 7648 String _id; | |
| 7649 | |
| 7650 /** | |
| 7651 * The identifier used to refer to the execution context that was created. | |
| 7652 */ | |
| 7653 String get id => _id; | |
| 7654 | |
| 7655 /** | |
| 7656 * The identifier used to refer to the execution context that was created. | |
| 7657 */ | |
| 7658 void set id(String value) { | |
| 7659 assert(value != null); | |
| 7660 this._id = value; | |
| 7661 } | |
| 7662 | |
| 7663 ExecutionCreateContextResult(String id) { | |
| 7664 this.id = id; | |
| 7665 } | |
| 7666 | |
| 7667 factory ExecutionCreateContextResult.fromJson( | |
| 7668 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 7669 if (json == null) { | |
| 7670 json = {}; | |
| 7671 } | |
| 7672 if (json is Map) { | |
| 7673 String id; | |
| 7674 if (json.containsKey("id")) { | |
| 7675 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | |
| 7676 } else { | |
| 7677 throw jsonDecoder.missingKey(jsonPath, "id"); | |
| 7678 } | |
| 7679 return new ExecutionCreateContextResult(id); | |
| 7680 } else { | |
| 7681 throw jsonDecoder.mismatch( | |
| 7682 jsonPath, "execution.createContext result", json); | |
| 7683 } | |
| 7684 } | |
| 7685 | |
| 7686 factory ExecutionCreateContextResult.fromResponse(Response response) { | |
| 7687 return new ExecutionCreateContextResult.fromJson( | |
| 7688 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | |
| 7689 "result", | |
| 7690 response._result); | |
| 7691 } | |
| 7692 | |
| 7693 Map<String, dynamic> toJson() { | |
| 7694 Map<String, dynamic> result = {}; | |
| 7695 result["id"] = id; | |
| 7696 return result; | |
| 7697 } | |
| 7698 | |
| 7699 Response toResponse(String id) { | 7782 Response toResponse(String id) { |
| 7700 return new Response(id, result: toJson()); | 7783 return new Response(id, result: toJson()); |
| 7701 } | 7784 } |
| 7702 | 7785 |
| 7703 @override | 7786 @override |
| 7704 String toString() => JSON.encode(toJson()); | 7787 String toString() => JSON.encode(toJson()); |
| 7705 | 7788 |
| 7706 @override | 7789 @override |
| 7707 bool operator ==(other) { | 7790 bool operator ==(other) { |
| 7708 if (other is ExecutionCreateContextResult) { | 7791 if (other is EditGetRefactoringResult) { |
| 7709 return id == other.id; | 7792 return listEqual(initialProblems, other.initialProblems, |
| 7793 (RefactoringProblem a, RefactoringProblem b) => a == b) && |
| 7794 listEqual(optionsProblems, other.optionsProblems, |
| 7795 (RefactoringProblem a, RefactoringProblem b) => a == b) && |
| 7796 listEqual(finalProblems, other.finalProblems, |
| 7797 (RefactoringProblem a, RefactoringProblem b) => a == b) && |
| 7798 feedback == other.feedback && |
| 7799 change == other.change && |
| 7800 listEqual(potentialEdits, other.potentialEdits, |
| 7801 (String a, String b) => a == b); |
| 7710 } | 7802 } |
| 7711 return false; | 7803 return false; |
| 7712 } | 7804 } |
| 7713 | 7805 |
| 7714 @override | 7806 @override |
| 7715 int get hashCode { | 7807 int get hashCode { |
| 7716 int hash = 0; | 7808 int hash = 0; |
| 7717 hash = JenkinsSmiHash.combine(hash, id.hashCode); | 7809 hash = JenkinsSmiHash.combine(hash, initialProblems.hashCode); |
| 7810 hash = JenkinsSmiHash.combine(hash, optionsProblems.hashCode); |
| 7811 hash = JenkinsSmiHash.combine(hash, finalProblems.hashCode); |
| 7812 hash = JenkinsSmiHash.combine(hash, feedback.hashCode); |
| 7813 hash = JenkinsSmiHash.combine(hash, change.hashCode); |
| 7814 hash = JenkinsSmiHash.combine(hash, potentialEdits.hashCode); |
| 7718 return JenkinsSmiHash.finish(hash); | 7815 return JenkinsSmiHash.finish(hash); |
| 7719 } | 7816 } |
| 7720 } | 7817 } |
| 7721 | 7818 |
| 7722 /** | 7819 /** |
| 7723 * execution.deleteContext params | 7820 * edit.getStatementCompletion params |
| 7724 * | 7821 * |
| 7725 * { | 7822 * { |
| 7726 * "id": ExecutionContextId | 7823 * "file": FilePath |
| 7824 * "offset": int |
| 7727 * } | 7825 * } |
| 7728 * | 7826 * |
| 7729 * Clients may not extend, implement or mix-in this class. | 7827 * Clients may not extend, implement or mix-in this class. |
| 7730 */ | 7828 */ |
| 7731 class ExecutionDeleteContextParams implements HasToJson { | 7829 class EditGetStatementCompletionParams implements RequestParams { |
| 7732 String _id; | 7830 String _file; |
| 7831 |
| 7832 int _offset; |
| 7733 | 7833 |
| 7734 /** | 7834 /** |
| 7735 * The identifier of the execution context that is to be deleted. | 7835 * The file containing the statement to be completed. |
| 7736 */ | 7836 */ |
| 7737 String get id => _id; | 7837 String get file => _file; |
| 7738 | 7838 |
| 7739 /** | 7839 /** |
| 7740 * The identifier of the execution context that is to be deleted. | 7840 * The file containing the statement to be completed. |
| 7741 */ | 7841 */ |
| 7742 void set id(String value) { | 7842 void set file(String value) { |
| 7743 assert(value != null); | 7843 assert(value != null); |
| 7744 this._id = value; | 7844 this._file = value; |
| 7745 } | 7845 } |
| 7746 | 7846 |
| 7747 ExecutionDeleteContextParams(String id) { | 7847 /** |
| 7748 this.id = id; | 7848 * The offset used to identify the statement to be completed. |
| 7849 */ |
| 7850 int get offset => _offset; |
| 7851 |
| 7852 /** |
| 7853 * The offset used to identify the statement to be completed. |
| 7854 */ |
| 7855 void set offset(int value) { |
| 7856 assert(value != null); |
| 7857 this._offset = value; |
| 7749 } | 7858 } |
| 7750 | 7859 |
| 7751 factory ExecutionDeleteContextParams.fromJson( | 7860 EditGetStatementCompletionParams(String file, int offset) { |
| 7861 this.file = file; |
| 7862 this.offset = offset; |
| 7863 } |
| 7864 |
| 7865 factory EditGetStatementCompletionParams.fromJson( |
| 7752 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 7866 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 7753 if (json == null) { | 7867 if (json == null) { |
| 7754 json = {}; | 7868 json = {}; |
| 7755 } | 7869 } |
| 7756 if (json is Map) { | 7870 if (json is Map) { |
| 7757 String id; | 7871 String file; |
| 7758 if (json.containsKey("id")) { | 7872 if (json.containsKey("file")) { |
| 7759 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | 7873 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 7760 } else { | 7874 } else { |
| 7761 throw jsonDecoder.missingKey(jsonPath, "id"); | 7875 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 7762 } | 7876 } |
| 7763 return new ExecutionDeleteContextParams(id); | 7877 int offset; |
| 7878 if (json.containsKey("offset")) { |
| 7879 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 7880 } else { |
| 7881 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 7882 } |
| 7883 return new EditGetStatementCompletionParams(file, offset); |
| 7764 } else { | 7884 } else { |
| 7765 throw jsonDecoder.mismatch( | 7885 throw jsonDecoder.mismatch( |
| 7766 jsonPath, "execution.deleteContext params", json); | 7886 jsonPath, "edit.getStatementCompletion params", json); |
| 7767 } | 7887 } |
| 7768 } | 7888 } |
| 7769 | 7889 |
| 7770 factory ExecutionDeleteContextParams.fromRequest(Request request) { | 7890 factory EditGetStatementCompletionParams.fromRequest(Request request) { |
| 7771 return new ExecutionDeleteContextParams.fromJson( | 7891 return new EditGetStatementCompletionParams.fromJson( |
| 7772 new RequestDecoder(request), "params", request._params); | 7892 new RequestDecoder(request), "params", request.params); |
| 7773 } | 7893 } |
| 7774 | 7894 |
| 7895 @override |
| 7775 Map<String, dynamic> toJson() { | 7896 Map<String, dynamic> toJson() { |
| 7776 Map<String, dynamic> result = {}; | 7897 Map<String, dynamic> result = {}; |
| 7777 result["id"] = id; | 7898 result["file"] = file; |
| 7899 result["offset"] = offset; |
| 7778 return result; | 7900 return result; |
| 7779 } | 7901 } |
| 7780 | 7902 |
| 7903 @override |
| 7781 Request toRequest(String id) { | 7904 Request toRequest(String id) { |
| 7782 return new Request(id, "execution.deleteContext", toJson()); | 7905 return new Request(id, "edit.getStatementCompletion", toJson()); |
| 7783 } | 7906 } |
| 7784 | 7907 |
| 7785 @override | 7908 @override |
| 7786 String toString() => JSON.encode(toJson()); | 7909 String toString() => JSON.encode(toJson()); |
| 7787 | 7910 |
| 7788 @override | 7911 @override |
| 7789 bool operator ==(other) { | 7912 bool operator ==(other) { |
| 7790 if (other is ExecutionDeleteContextParams) { | 7913 if (other is EditGetStatementCompletionParams) { |
| 7791 return id == other.id; | 7914 return file == other.file && offset == other.offset; |
| 7792 } | 7915 } |
| 7793 return false; | 7916 return false; |
| 7794 } | 7917 } |
| 7795 | 7918 |
| 7796 @override | 7919 @override |
| 7797 int get hashCode { | 7920 int get hashCode { |
| 7798 int hash = 0; | 7921 int hash = 0; |
| 7799 hash = JenkinsSmiHash.combine(hash, id.hashCode); | 7922 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 7923 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 7800 return JenkinsSmiHash.finish(hash); | 7924 return JenkinsSmiHash.finish(hash); |
| 7801 } | 7925 } |
| 7802 } | 7926 } |
| 7803 | 7927 |
| 7804 /** | 7928 /** |
| 7805 * execution.deleteContext result | 7929 * edit.getStatementCompletion result |
| 7806 * | |
| 7807 * Clients may not extend, implement or mix-in this class. | |
| 7808 */ | |
| 7809 class ExecutionDeleteContextResult { | |
| 7810 Response toResponse(String id) { | |
| 7811 return new Response(id, result: null); | |
| 7812 } | |
| 7813 | |
| 7814 @override | |
| 7815 bool operator ==(other) { | |
| 7816 if (other is ExecutionDeleteContextResult) { | |
| 7817 return true; | |
| 7818 } | |
| 7819 return false; | |
| 7820 } | |
| 7821 | |
| 7822 @override | |
| 7823 int get hashCode { | |
| 7824 return 479954425; | |
| 7825 } | |
| 7826 } | |
| 7827 | |
| 7828 /** | |
| 7829 * execution.mapUri params | |
| 7830 * | 7930 * |
| 7831 * { | 7931 * { |
| 7832 * "id": ExecutionContextId | 7932 * "change": SourceChange |
| 7833 * "file": optional FilePath | 7933 * "whitespaceOnly": bool |
| 7834 * "uri": optional String | |
| 7835 * } | 7934 * } |
| 7836 * | 7935 * |
| 7837 * Clients may not extend, implement or mix-in this class. | 7936 * Clients may not extend, implement or mix-in this class. |
| 7838 */ | 7937 */ |
| 7839 class ExecutionMapUriParams implements HasToJson { | 7938 class EditGetStatementCompletionResult implements ResponseResult { |
| 7840 String _id; | 7939 SourceChange _change; |
| 7841 | 7940 |
| 7842 String _file; | 7941 bool _whitespaceOnly; |
| 7843 | |
| 7844 String _uri; | |
| 7845 | 7942 |
| 7846 /** | 7943 /** |
| 7847 * The identifier of the execution context in which the URI is to be mapped. | 7944 * The change to be applied in order to complete the statement. |
| 7848 */ | 7945 */ |
| 7849 String get id => _id; | 7946 SourceChange get change => _change; |
| 7850 | 7947 |
| 7851 /** | 7948 /** |
| 7852 * The identifier of the execution context in which the URI is to be mapped. | 7949 * The change to be applied in order to complete the statement. |
| 7853 */ | 7950 */ |
| 7854 void set id(String value) { | 7951 void set change(SourceChange value) { |
| 7855 assert(value != null); | 7952 assert(value != null); |
| 7856 this._id = value; | 7953 this._change = value; |
| 7857 } | 7954 } |
| 7858 | 7955 |
| 7859 /** | 7956 /** |
| 7860 * The path of the file to be mapped into a URI. | 7957 * Will be true if the change contains nothing but whitespace characters, or |
| 7958 * is empty. |
| 7861 */ | 7959 */ |
| 7862 String get file => _file; | 7960 bool get whitespaceOnly => _whitespaceOnly; |
| 7863 | 7961 |
| 7864 /** | 7962 /** |
| 7865 * The path of the file to be mapped into a URI. | 7963 * Will be true if the change contains nothing but whitespace characters, or |
| 7964 * is empty. |
| 7866 */ | 7965 */ |
| 7867 void set file(String value) { | 7966 void set whitespaceOnly(bool value) { |
| 7868 this._file = value; | 7967 assert(value != null); |
| 7968 this._whitespaceOnly = value; |
| 7869 } | 7969 } |
| 7870 | 7970 |
| 7871 /** | 7971 EditGetStatementCompletionResult(SourceChange change, bool whitespaceOnly) { |
| 7872 * The URI to be mapped into a file path. | 7972 this.change = change; |
| 7873 */ | 7973 this.whitespaceOnly = whitespaceOnly; |
| 7874 String get uri => _uri; | |
| 7875 | |
| 7876 /** | |
| 7877 * The URI to be mapped into a file path. | |
| 7878 */ | |
| 7879 void set uri(String value) { | |
| 7880 this._uri = value; | |
| 7881 } | 7974 } |
| 7882 | 7975 |
| 7883 ExecutionMapUriParams(String id, {String file, String uri}) { | 7976 factory EditGetStatementCompletionResult.fromJson( |
| 7884 this.id = id; | |
| 7885 this.file = file; | |
| 7886 this.uri = uri; | |
| 7887 } | |
| 7888 | |
| 7889 factory ExecutionMapUriParams.fromJson( | |
| 7890 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 7977 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 7891 if (json == null) { | 7978 if (json == null) { |
| 7892 json = {}; | 7979 json = {}; |
| 7893 } | 7980 } |
| 7894 if (json is Map) { | 7981 if (json is Map) { |
| 7895 String id; | 7982 SourceChange change; |
| 7896 if (json.containsKey("id")) { | 7983 if (json.containsKey("change")) { |
| 7897 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | 7984 change = new SourceChange.fromJson( |
| 7985 jsonDecoder, jsonPath + ".change", json["change"]); |
| 7898 } else { | 7986 } else { |
| 7899 throw jsonDecoder.missingKey(jsonPath, "id"); | 7987 throw jsonDecoder.mismatch(jsonPath, "change"); |
| 7900 } | 7988 } |
| 7901 String file; | 7989 bool whitespaceOnly; |
| 7902 if (json.containsKey("file")) { | 7990 if (json.containsKey("whitespaceOnly")) { |
| 7903 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 7991 whitespaceOnly = jsonDecoder.decodeBool( |
| 7992 jsonPath + ".whitespaceOnly", json["whitespaceOnly"]); |
| 7993 } else { |
| 7994 throw jsonDecoder.mismatch(jsonPath, "whitespaceOnly"); |
| 7904 } | 7995 } |
| 7905 String uri; | 7996 return new EditGetStatementCompletionResult(change, whitespaceOnly); |
| 7906 if (json.containsKey("uri")) { | |
| 7907 uri = jsonDecoder.decodeString(jsonPath + ".uri", json["uri"]); | |
| 7908 } | |
| 7909 return new ExecutionMapUriParams(id, file: file, uri: uri); | |
| 7910 } else { | 7997 } else { |
| 7911 throw jsonDecoder.mismatch(jsonPath, "execution.mapUri params", json); | 7998 throw jsonDecoder.mismatch( |
| 7999 jsonPath, "edit.getStatementCompletion result", json); |
| 7912 } | 8000 } |
| 7913 } | 8001 } |
| 7914 | 8002 |
| 7915 factory ExecutionMapUriParams.fromRequest(Request request) { | 8003 factory EditGetStatementCompletionResult.fromResponse(Response response) { |
| 7916 return new ExecutionMapUriParams.fromJson( | 8004 return new EditGetStatementCompletionResult.fromJson( |
| 7917 new RequestDecoder(request), "params", request._params); | 8005 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 8006 "result", |
| 8007 response.result); |
| 7918 } | 8008 } |
| 7919 | 8009 |
| 8010 @override |
| 7920 Map<String, dynamic> toJson() { | 8011 Map<String, dynamic> toJson() { |
| 7921 Map<String, dynamic> result = {}; | 8012 Map<String, dynamic> result = {}; |
| 7922 result["id"] = id; | 8013 result["change"] = change.toJson(); |
| 7923 if (file != null) { | 8014 result["whitespaceOnly"] = whitespaceOnly; |
| 7924 result["file"] = file; | |
| 7925 } | |
| 7926 if (uri != null) { | |
| 7927 result["uri"] = uri; | |
| 7928 } | |
| 7929 return result; | 8015 return result; |
| 7930 } | 8016 } |
| 7931 | 8017 |
| 7932 Request toRequest(String id) { | 8018 @override |
| 7933 return new Request(id, "execution.mapUri", toJson()); | 8019 Response toResponse(String id) { |
| 8020 return new Response(id, result: toJson()); |
| 7934 } | 8021 } |
| 7935 | 8022 |
| 7936 @override | 8023 @override |
| 7937 String toString() => JSON.encode(toJson()); | 8024 String toString() => JSON.encode(toJson()); |
| 7938 | 8025 |
| 7939 @override | 8026 @override |
| 7940 bool operator ==(other) { | 8027 bool operator ==(other) { |
| 7941 if (other is ExecutionMapUriParams) { | 8028 if (other is EditGetStatementCompletionResult) { |
| 7942 return id == other.id && file == other.file && uri == other.uri; | 8029 return change == other.change && whitespaceOnly == other.whitespaceOnly; |
| 7943 } | 8030 } |
| 7944 return false; | 8031 return false; |
| 7945 } | 8032 } |
| 7946 | 8033 |
| 7947 @override | 8034 @override |
| 7948 int get hashCode { | 8035 int get hashCode { |
| 7949 int hash = 0; | 8036 int hash = 0; |
| 7950 hash = JenkinsSmiHash.combine(hash, id.hashCode); | 8037 hash = JenkinsSmiHash.combine(hash, change.hashCode); |
| 7951 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 8038 hash = JenkinsSmiHash.combine(hash, whitespaceOnly.hashCode); |
| 7952 hash = JenkinsSmiHash.combine(hash, uri.hashCode); | |
| 7953 return JenkinsSmiHash.finish(hash); | 8039 return JenkinsSmiHash.finish(hash); |
| 7954 } | 8040 } |
| 7955 } | 8041 } |
| 7956 | 8042 |
| 7957 /** | 8043 /** |
| 7958 * execution.mapUri result | 8044 * edit.organizeDirectives params |
| 7959 * | 8045 * |
| 7960 * { | 8046 * { |
| 7961 * "file": optional FilePath | 8047 * "file": FilePath |
| 7962 * "uri": optional String | |
| 7963 * } | 8048 * } |
| 7964 * | 8049 * |
| 7965 * Clients may not extend, implement or mix-in this class. | 8050 * Clients may not extend, implement or mix-in this class. |
| 7966 */ | 8051 */ |
| 7967 class ExecutionMapUriResult implements HasToJson { | 8052 class EditOrganizeDirectivesParams implements RequestParams { |
| 7968 String _file; | 8053 String _file; |
| 7969 | 8054 |
| 7970 String _uri; | |
| 7971 | |
| 7972 /** | 8055 /** |
| 7973 * The file to which the URI was mapped. This field is omitted if the uri | 8056 * The Dart file to organize directives in. |
| 7974 * field was not given in the request. | |
| 7975 */ | 8057 */ |
| 7976 String get file => _file; | 8058 String get file => _file; |
| 7977 | 8059 |
| 7978 /** | 8060 /** |
| 7979 * The file to which the URI was mapped. This field is omitted if the uri | 8061 * The Dart file to organize directives in. |
| 7980 * field was not given in the request. | |
| 7981 */ | 8062 */ |
| 7982 void set file(String value) { | 8063 void set file(String value) { |
| 8064 assert(value != null); |
| 7983 this._file = value; | 8065 this._file = value; |
| 7984 } | 8066 } |
| 7985 | 8067 |
| 7986 /** | 8068 EditOrganizeDirectivesParams(String file) { |
| 7987 * The URI to which the file path was mapped. This field is omitted if the | 8069 this.file = file; |
| 7988 * file field was not given in the request. | |
| 7989 */ | |
| 7990 String get uri => _uri; | |
| 7991 | |
| 7992 /** | |
| 7993 * The URI to which the file path was mapped. This field is omitted if the | |
| 7994 * file field was not given in the request. | |
| 7995 */ | |
| 7996 void set uri(String value) { | |
| 7997 this._uri = value; | |
| 7998 } | 8070 } |
| 7999 | 8071 |
| 8000 ExecutionMapUriResult({String file, String uri}) { | 8072 factory EditOrganizeDirectivesParams.fromJson( |
| 8001 this.file = file; | |
| 8002 this.uri = uri; | |
| 8003 } | |
| 8004 | |
| 8005 factory ExecutionMapUriResult.fromJson( | |
| 8006 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 8073 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 8007 if (json == null) { | 8074 if (json == null) { |
| 8008 json = {}; | 8075 json = {}; |
| 8009 } | 8076 } |
| 8010 if (json is Map) { | 8077 if (json is Map) { |
| 8011 String file; | 8078 String file; |
| 8012 if (json.containsKey("file")) { | 8079 if (json.containsKey("file")) { |
| 8013 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 8080 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 8081 } else { |
| 8082 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 8014 } | 8083 } |
| 8015 String uri; | 8084 return new EditOrganizeDirectivesParams(file); |
| 8016 if (json.containsKey("uri")) { | |
| 8017 uri = jsonDecoder.decodeString(jsonPath + ".uri", json["uri"]); | |
| 8018 } | |
| 8019 return new ExecutionMapUriResult(file: file, uri: uri); | |
| 8020 } else { | 8085 } else { |
| 8021 throw jsonDecoder.mismatch(jsonPath, "execution.mapUri result", json); | 8086 throw jsonDecoder.mismatch( |
| 8087 jsonPath, "edit.organizeDirectives params", json); |
| 8022 } | 8088 } |
| 8023 } | 8089 } |
| 8024 | 8090 |
| 8025 factory ExecutionMapUriResult.fromResponse(Response response) { | 8091 factory EditOrganizeDirectivesParams.fromRequest(Request request) { |
| 8026 return new ExecutionMapUriResult.fromJson( | 8092 return new EditOrganizeDirectivesParams.fromJson( |
| 8027 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 8093 new RequestDecoder(request), "params", request.params); |
| 8028 "result", | |
| 8029 response._result); | |
| 8030 } | 8094 } |
| 8031 | 8095 |
| 8096 @override |
| 8032 Map<String, dynamic> toJson() { | 8097 Map<String, dynamic> toJson() { |
| 8033 Map<String, dynamic> result = {}; | 8098 Map<String, dynamic> result = {}; |
| 8034 if (file != null) { | 8099 result["file"] = file; |
| 8035 result["file"] = file; | |
| 8036 } | |
| 8037 if (uri != null) { | |
| 8038 result["uri"] = uri; | |
| 8039 } | |
| 8040 return result; | 8100 return result; |
| 8041 } | 8101 } |
| 8042 | 8102 |
| 8043 Response toResponse(String id) { | 8103 @override |
| 8044 return new Response(id, result: toJson()); | 8104 Request toRequest(String id) { |
| 8105 return new Request(id, "edit.organizeDirectives", toJson()); |
| 8045 } | 8106 } |
| 8046 | 8107 |
| 8047 @override | 8108 @override |
| 8048 String toString() => JSON.encode(toJson()); | 8109 String toString() => JSON.encode(toJson()); |
| 8049 | 8110 |
| 8050 @override | 8111 @override |
| 8051 bool operator ==(other) { | 8112 bool operator ==(other) { |
| 8052 if (other is ExecutionMapUriResult) { | 8113 if (other is EditOrganizeDirectivesParams) { |
| 8053 return file == other.file && uri == other.uri; | 8114 return file == other.file; |
| 8054 } | 8115 } |
| 8055 return false; | 8116 return false; |
| 8056 } | 8117 } |
| 8057 | 8118 |
| 8058 @override | 8119 @override |
| 8059 int get hashCode { | 8120 int get hashCode { |
| 8060 int hash = 0; | 8121 int hash = 0; |
| 8061 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 8122 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 8062 hash = JenkinsSmiHash.combine(hash, uri.hashCode); | |
| 8063 return JenkinsSmiHash.finish(hash); | 8123 return JenkinsSmiHash.finish(hash); |
| 8064 } | 8124 } |
| 8065 } | 8125 } |
| 8066 | 8126 |
| 8067 /** | 8127 /** |
| 8068 * execution.setSubscriptions params | 8128 * edit.organizeDirectives result |
| 8069 * | 8129 * |
| 8070 * { | 8130 * { |
| 8071 * "subscriptions": List<ExecutionService> | 8131 * "edit": SourceFileEdit |
| 8072 * } | 8132 * } |
| 8073 * | 8133 * |
| 8074 * Clients may not extend, implement or mix-in this class. | 8134 * Clients may not extend, implement or mix-in this class. |
| 8075 */ | 8135 */ |
| 8076 class ExecutionSetSubscriptionsParams implements HasToJson { | 8136 class EditOrganizeDirectivesResult implements ResponseResult { |
| 8077 List<ExecutionService> _subscriptions; | 8137 SourceFileEdit _edit; |
| 8078 | 8138 |
| 8079 /** | 8139 /** |
| 8080 * A list of the services being subscribed to. | 8140 * The file edit that is to be applied to the given file to effect the |
| 8141 * organizing. |
| 8081 */ | 8142 */ |
| 8082 List<ExecutionService> get subscriptions => _subscriptions; | 8143 SourceFileEdit get edit => _edit; |
| 8083 | 8144 |
| 8084 /** | 8145 /** |
| 8085 * A list of the services being subscribed to. | 8146 * The file edit that is to be applied to the given file to effect the |
| 8147 * organizing. |
| 8086 */ | 8148 */ |
| 8087 void set subscriptions(List<ExecutionService> value) { | 8149 void set edit(SourceFileEdit value) { |
| 8088 assert(value != null); | 8150 assert(value != null); |
| 8089 this._subscriptions = value; | 8151 this._edit = value; |
| 8090 } | 8152 } |
| 8091 | 8153 |
| 8092 ExecutionSetSubscriptionsParams(List<ExecutionService> subscriptions) { | 8154 EditOrganizeDirectivesResult(SourceFileEdit edit) { |
| 8093 this.subscriptions = subscriptions; | 8155 this.edit = edit; |
| 8094 } | 8156 } |
| 8095 | 8157 |
| 8096 factory ExecutionSetSubscriptionsParams.fromJson( | 8158 factory EditOrganizeDirectivesResult.fromJson( |
| 8097 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 8159 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 8098 if (json == null) { | 8160 if (json == null) { |
| 8099 json = {}; | 8161 json = {}; |
| 8100 } | 8162 } |
| 8101 if (json is Map) { | 8163 if (json is Map) { |
| 8102 List<ExecutionService> subscriptions; | 8164 SourceFileEdit edit; |
| 8103 if (json.containsKey("subscriptions")) { | 8165 if (json.containsKey("edit")) { |
| 8104 subscriptions = jsonDecoder.decodeList( | 8166 edit = new SourceFileEdit.fromJson( |
| 8105 jsonPath + ".subscriptions", | 8167 jsonDecoder, jsonPath + ".edit", json["edit"]); |
| 8106 json["subscriptions"], | |
| 8107 (String jsonPath, Object json) => | |
| 8108 new ExecutionService.fromJson(jsonDecoder, jsonPath, json)); | |
| 8109 } else { | 8168 } else { |
| 8110 throw jsonDecoder.missingKey(jsonPath, "subscriptions"); | 8169 throw jsonDecoder.mismatch(jsonPath, "edit"); |
| 8111 } | 8170 } |
| 8112 return new ExecutionSetSubscriptionsParams(subscriptions); | 8171 return new EditOrganizeDirectivesResult(edit); |
| 8113 } else { | 8172 } else { |
| 8114 throw jsonDecoder.mismatch( | 8173 throw jsonDecoder.mismatch( |
| 8115 jsonPath, "execution.setSubscriptions params", json); | 8174 jsonPath, "edit.organizeDirectives result", json); |
| 8116 } | 8175 } |
| 8117 } | 8176 } |
| 8118 | 8177 |
| 8119 factory ExecutionSetSubscriptionsParams.fromRequest(Request request) { | 8178 factory EditOrganizeDirectivesResult.fromResponse(Response response) { |
| 8120 return new ExecutionSetSubscriptionsParams.fromJson( | 8179 return new EditOrganizeDirectivesResult.fromJson( |
| 8121 new RequestDecoder(request), "params", request._params); | 8180 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 8181 "result", |
| 8182 response.result); |
| 8122 } | 8183 } |
| 8123 | 8184 |
| 8185 @override |
| 8124 Map<String, dynamic> toJson() { | 8186 Map<String, dynamic> toJson() { |
| 8125 Map<String, dynamic> result = {}; | 8187 Map<String, dynamic> result = {}; |
| 8126 result["subscriptions"] = | 8188 result["edit"] = edit.toJson(); |
| 8127 subscriptions.map((ExecutionService value) => value.toJson()).toList(); | |
| 8128 return result; | 8189 return result; |
| 8129 } | 8190 } |
| 8130 | 8191 |
| 8131 Request toRequest(String id) { | 8192 @override |
| 8132 return new Request(id, "execution.setSubscriptions", toJson()); | 8193 Response toResponse(String id) { |
| 8194 return new Response(id, result: toJson()); |
| 8133 } | 8195 } |
| 8134 | 8196 |
| 8135 @override | 8197 @override |
| 8136 String toString() => JSON.encode(toJson()); | 8198 String toString() => JSON.encode(toJson()); |
| 8137 | 8199 |
| 8138 @override | 8200 @override |
| 8139 bool operator ==(other) { | 8201 bool operator ==(other) { |
| 8140 if (other is ExecutionSetSubscriptionsParams) { | 8202 if (other is EditOrganizeDirectivesResult) { |
| 8141 return listEqual(subscriptions, other.subscriptions, | 8203 return edit == other.edit; |
| 8142 (ExecutionService a, ExecutionService b) => a == b); | |
| 8143 } | 8204 } |
| 8144 return false; | 8205 return false; |
| 8145 } | 8206 } |
| 8146 | 8207 |
| 8147 @override | 8208 @override |
| 8148 int get hashCode { | 8209 int get hashCode { |
| 8149 int hash = 0; | 8210 int hash = 0; |
| 8150 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode); | 8211 hash = JenkinsSmiHash.combine(hash, edit.hashCode); |
| 8151 return JenkinsSmiHash.finish(hash); | 8212 return JenkinsSmiHash.finish(hash); |
| 8152 } | 8213 } |
| 8153 } | 8214 } |
| 8154 | 8215 |
| 8155 /** | 8216 /** |
| 8156 * execution.setSubscriptions result | 8217 * edit.sortMembers params |
| 8157 * | |
| 8158 * Clients may not extend, implement or mix-in this class. | |
| 8159 */ | |
| 8160 class ExecutionSetSubscriptionsResult { | |
| 8161 Response toResponse(String id) { | |
| 8162 return new Response(id, result: null); | |
| 8163 } | |
| 8164 | |
| 8165 @override | |
| 8166 bool operator ==(other) { | |
| 8167 if (other is ExecutionSetSubscriptionsResult) { | |
| 8168 return true; | |
| 8169 } | |
| 8170 return false; | |
| 8171 } | |
| 8172 | |
| 8173 @override | |
| 8174 int get hashCode { | |
| 8175 return 287678780; | |
| 8176 } | |
| 8177 } | |
| 8178 | |
| 8179 /** | |
| 8180 * execution.launchData params | |
| 8181 * | 8218 * |
| 8182 * { | 8219 * { |
| 8183 * "file": FilePath | 8220 * "file": FilePath |
| 8184 * "kind": optional ExecutableKind | |
| 8185 * "referencedFiles": optional List<FilePath> | |
| 8186 * } | 8221 * } |
| 8187 * | 8222 * |
| 8188 * Clients may not extend, implement or mix-in this class. | 8223 * Clients may not extend, implement or mix-in this class. |
| 8189 */ | 8224 */ |
| 8190 class ExecutionLaunchDataParams implements HasToJson { | 8225 class EditSortMembersParams implements RequestParams { |
| 8191 String _file; | 8226 String _file; |
| 8192 | 8227 |
| 8193 ExecutableKind _kind; | |
| 8194 | |
| 8195 List<String> _referencedFiles; | |
| 8196 | |
| 8197 /** | 8228 /** |
| 8198 * The file for which launch data is being provided. This will either be a | 8229 * The Dart file to sort. |
| 8199 * Dart library or an HTML file. | |
| 8200 */ | 8230 */ |
| 8201 String get file => _file; | 8231 String get file => _file; |
| 8202 | 8232 |
| 8203 /** | 8233 /** |
| 8204 * The file for which launch data is being provided. This will either be a | 8234 * The Dart file to sort. |
| 8205 * Dart library or an HTML file. | |
| 8206 */ | 8235 */ |
| 8207 void set file(String value) { | 8236 void set file(String value) { |
| 8208 assert(value != null); | 8237 assert(value != null); |
| 8209 this._file = value; | 8238 this._file = value; |
| 8210 } | 8239 } |
| 8211 | 8240 |
| 8212 /** | 8241 EditSortMembersParams(String file) { |
| 8213 * The kind of the executable file. This field is omitted if the file is not | 8242 this.file = file; |
| 8214 * a Dart file. | |
| 8215 */ | |
| 8216 ExecutableKind get kind => _kind; | |
| 8217 | |
| 8218 /** | |
| 8219 * The kind of the executable file. This field is omitted if the file is not | |
| 8220 * a Dart file. | |
| 8221 */ | |
| 8222 void set kind(ExecutableKind value) { | |
| 8223 this._kind = value; | |
| 8224 } | 8243 } |
| 8225 | 8244 |
| 8226 /** | 8245 factory EditSortMembersParams.fromJson( |
| 8227 * A list of the Dart files that are referenced by the file. This field is | |
| 8228 * omitted if the file is not an HTML file. | |
| 8229 */ | |
| 8230 List<String> get referencedFiles => _referencedFiles; | |
| 8231 | |
| 8232 /** | |
| 8233 * A list of the Dart files that are referenced by the file. This field is | |
| 8234 * omitted if the file is not an HTML file. | |
| 8235 */ | |
| 8236 void set referencedFiles(List<String> value) { | |
| 8237 this._referencedFiles = value; | |
| 8238 } | |
| 8239 | |
| 8240 ExecutionLaunchDataParams(String file, | |
| 8241 {ExecutableKind kind, List<String> referencedFiles}) { | |
| 8242 this.file = file; | |
| 8243 this.kind = kind; | |
| 8244 this.referencedFiles = referencedFiles; | |
| 8245 } | |
| 8246 | |
| 8247 factory ExecutionLaunchDataParams.fromJson( | |
| 8248 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 8246 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 8249 if (json == null) { | 8247 if (json == null) { |
| 8250 json = {}; | 8248 json = {}; |
| 8251 } | 8249 } |
| 8252 if (json is Map) { | 8250 if (json is Map) { |
| 8253 String file; | 8251 String file; |
| 8254 if (json.containsKey("file")) { | 8252 if (json.containsKey("file")) { |
| 8255 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 8253 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 8256 } else { | 8254 } else { |
| 8257 throw jsonDecoder.missingKey(jsonPath, "file"); | 8255 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 8258 } | 8256 } |
| 8259 ExecutableKind kind; | 8257 return new EditSortMembersParams(file); |
| 8260 if (json.containsKey("kind")) { | |
| 8261 kind = new ExecutableKind.fromJson( | |
| 8262 jsonDecoder, jsonPath + ".kind", json["kind"]); | |
| 8263 } | |
| 8264 List<String> referencedFiles; | |
| 8265 if (json.containsKey("referencedFiles")) { | |
| 8266 referencedFiles = jsonDecoder.decodeList(jsonPath + ".referencedFiles", | |
| 8267 json["referencedFiles"], jsonDecoder.decodeString); | |
| 8268 } | |
| 8269 return new ExecutionLaunchDataParams(file, | |
| 8270 kind: kind, referencedFiles: referencedFiles); | |
| 8271 } else { | 8258 } else { |
| 8272 throw jsonDecoder.mismatch(jsonPath, "execution.launchData params", json); | 8259 throw jsonDecoder.mismatch(jsonPath, "edit.sortMembers params", json); |
| 8273 } | 8260 } |
| 8274 } | 8261 } |
| 8275 | 8262 |
| 8276 factory ExecutionLaunchDataParams.fromNotification( | 8263 factory EditSortMembersParams.fromRequest(Request request) { |
| 8277 Notification notification) { | 8264 return new EditSortMembersParams.fromJson( |
| 8278 return new ExecutionLaunchDataParams.fromJson( | 8265 new RequestDecoder(request), "params", request.params); |
| 8279 new ResponseDecoder(null), "params", notification._params); | |
| 8280 } | 8266 } |
| 8281 | 8267 |
| 8268 @override |
| 8282 Map<String, dynamic> toJson() { | 8269 Map<String, dynamic> toJson() { |
| 8283 Map<String, dynamic> result = {}; | 8270 Map<String, dynamic> result = {}; |
| 8284 result["file"] = file; | 8271 result["file"] = file; |
| 8285 if (kind != null) { | |
| 8286 result["kind"] = kind.toJson(); | |
| 8287 } | |
| 8288 if (referencedFiles != null) { | |
| 8289 result["referencedFiles"] = referencedFiles; | |
| 8290 } | |
| 8291 return result; | 8272 return result; |
| 8292 } | 8273 } |
| 8293 | 8274 |
| 8294 Notification toNotification() { | 8275 @override |
| 8295 return new Notification("execution.launchData", toJson()); | 8276 Request toRequest(String id) { |
| 8277 return new Request(id, "edit.sortMembers", toJson()); |
| 8296 } | 8278 } |
| 8297 | 8279 |
| 8298 @override | 8280 @override |
| 8299 String toString() => JSON.encode(toJson()); | 8281 String toString() => JSON.encode(toJson()); |
| 8300 | 8282 |
| 8301 @override | 8283 @override |
| 8302 bool operator ==(other) { | 8284 bool operator ==(other) { |
| 8303 if (other is ExecutionLaunchDataParams) { | 8285 if (other is EditSortMembersParams) { |
| 8304 return file == other.file && | 8286 return file == other.file; |
| 8305 kind == other.kind && | |
| 8306 listEqual(referencedFiles, other.referencedFiles, | |
| 8307 (String a, String b) => a == b); | |
| 8308 } | 8287 } |
| 8309 return false; | 8288 return false; |
| 8310 } | 8289 } |
| 8311 | 8290 |
| 8312 @override | 8291 @override |
| 8313 int get hashCode { | 8292 int get hashCode { |
| 8314 int hash = 0; | 8293 int hash = 0; |
| 8315 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 8294 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 8316 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | |
| 8317 hash = JenkinsSmiHash.combine(hash, referencedFiles.hashCode); | |
| 8318 return JenkinsSmiHash.finish(hash); | 8295 return JenkinsSmiHash.finish(hash); |
| 8319 } | 8296 } |
| 8320 } | 8297 } |
| 8321 | 8298 |
| 8322 /** | 8299 /** |
| 8323 * diagnostic.getDiagnostics params | 8300 * edit.sortMembers result |
| 8324 * | |
| 8325 * Clients may not extend, implement or mix-in this class. | |
| 8326 */ | |
| 8327 class DiagnosticGetDiagnosticsParams { | |
| 8328 Request toRequest(String id) { | |
| 8329 return new Request(id, "diagnostic.getDiagnostics", null); | |
| 8330 } | |
| 8331 | |
| 8332 @override | |
| 8333 bool operator ==(other) { | |
| 8334 if (other is DiagnosticGetDiagnosticsParams) { | |
| 8335 return true; | |
| 8336 } | |
| 8337 return false; | |
| 8338 } | |
| 8339 | |
| 8340 @override | |
| 8341 int get hashCode { | |
| 8342 return 587526202; | |
| 8343 } | |
| 8344 } | |
| 8345 | |
| 8346 /** | |
| 8347 * diagnostic.getDiagnostics result | |
| 8348 * | 8301 * |
| 8349 * { | 8302 * { |
| 8350 * "contexts": List<ContextData> | 8303 * "edit": SourceFileEdit |
| 8351 * } | 8304 * } |
| 8352 * | 8305 * |
| 8353 * Clients may not extend, implement or mix-in this class. | 8306 * Clients may not extend, implement or mix-in this class. |
| 8354 */ | 8307 */ |
| 8355 class DiagnosticGetDiagnosticsResult implements HasToJson { | 8308 class EditSortMembersResult implements ResponseResult { |
| 8356 List<ContextData> _contexts; | 8309 SourceFileEdit _edit; |
| 8357 | 8310 |
| 8358 /** | 8311 /** |
| 8359 * The list of analysis contexts. | 8312 * The file edit that is to be applied to the given file to effect the |
| 8313 * sorting. |
| 8360 */ | 8314 */ |
| 8361 List<ContextData> get contexts => _contexts; | 8315 SourceFileEdit get edit => _edit; |
| 8362 | 8316 |
| 8363 /** | 8317 /** |
| 8364 * The list of analysis contexts. | 8318 * The file edit that is to be applied to the given file to effect the |
| 8319 * sorting. |
| 8365 */ | 8320 */ |
| 8366 void set contexts(List<ContextData> value) { | 8321 void set edit(SourceFileEdit value) { |
| 8367 assert(value != null); | 8322 assert(value != null); |
| 8368 this._contexts = value; | 8323 this._edit = value; |
| 8369 } | 8324 } |
| 8370 | 8325 |
| 8371 DiagnosticGetDiagnosticsResult(List<ContextData> contexts) { | 8326 EditSortMembersResult(SourceFileEdit edit) { |
| 8372 this.contexts = contexts; | 8327 this.edit = edit; |
| 8373 } | 8328 } |
| 8374 | 8329 |
| 8375 factory DiagnosticGetDiagnosticsResult.fromJson( | 8330 factory EditSortMembersResult.fromJson( |
| 8376 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 8331 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 8377 if (json == null) { | 8332 if (json == null) { |
| 8378 json = {}; | 8333 json = {}; |
| 8379 } | 8334 } |
| 8380 if (json is Map) { | 8335 if (json is Map) { |
| 8381 List<ContextData> contexts; | 8336 SourceFileEdit edit; |
| 8382 if (json.containsKey("contexts")) { | 8337 if (json.containsKey("edit")) { |
| 8383 contexts = jsonDecoder.decodeList( | 8338 edit = new SourceFileEdit.fromJson( |
| 8384 jsonPath + ".contexts", | 8339 jsonDecoder, jsonPath + ".edit", json["edit"]); |
| 8385 json["contexts"], | |
| 8386 (String jsonPath, Object json) => | |
| 8387 new ContextData.fromJson(jsonDecoder, jsonPath, json)); | |
| 8388 } else { | 8340 } else { |
| 8389 throw jsonDecoder.missingKey(jsonPath, "contexts"); | 8341 throw jsonDecoder.mismatch(jsonPath, "edit"); |
| 8390 } | 8342 } |
| 8391 return new DiagnosticGetDiagnosticsResult(contexts); | 8343 return new EditSortMembersResult(edit); |
| 8392 } else { | 8344 } else { |
| 8393 throw jsonDecoder.mismatch( | 8345 throw jsonDecoder.mismatch(jsonPath, "edit.sortMembers result", json); |
| 8394 jsonPath, "diagnostic.getDiagnostics result", json); | |
| 8395 } | 8346 } |
| 8396 } | 8347 } |
| 8397 | 8348 |
| 8398 factory DiagnosticGetDiagnosticsResult.fromResponse(Response response) { | 8349 factory EditSortMembersResult.fromResponse(Response response) { |
| 8399 return new DiagnosticGetDiagnosticsResult.fromJson( | 8350 return new EditSortMembersResult.fromJson( |
| 8400 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | 8351 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 8401 "result", | 8352 "result", |
| 8402 response._result); | 8353 response.result); |
| 8403 } | 8354 } |
| 8404 | 8355 |
| 8356 @override |
| 8405 Map<String, dynamic> toJson() { | 8357 Map<String, dynamic> toJson() { |
| 8406 Map<String, dynamic> result = {}; | 8358 Map<String, dynamic> result = {}; |
| 8407 result["contexts"] = | 8359 result["edit"] = edit.toJson(); |
| 8408 contexts.map((ContextData value) => value.toJson()).toList(); | |
| 8409 return result; | 8360 return result; |
| 8410 } | 8361 } |
| 8411 | 8362 |
| 8363 @override |
| 8412 Response toResponse(String id) { | 8364 Response toResponse(String id) { |
| 8413 return new Response(id, result: toJson()); | 8365 return new Response(id, result: toJson()); |
| 8414 } | 8366 } |
| 8415 | 8367 |
| 8416 @override | 8368 @override |
| 8417 String toString() => JSON.encode(toJson()); | 8369 String toString() => JSON.encode(toJson()); |
| 8418 | 8370 |
| 8419 @override | 8371 @override |
| 8420 bool operator ==(other) { | 8372 bool operator ==(other) { |
| 8421 if (other is DiagnosticGetDiagnosticsResult) { | 8373 if (other is EditSortMembersResult) { |
| 8422 return listEqual( | 8374 return edit == other.edit; |
| 8423 contexts, other.contexts, (ContextData a, ContextData b) => a == b); | |
| 8424 } | 8375 } |
| 8425 return false; | 8376 return false; |
| 8426 } | 8377 } |
| 8427 | 8378 |
| 8428 @override | 8379 @override |
| 8429 int get hashCode { | 8380 int get hashCode { |
| 8430 int hash = 0; | 8381 int hash = 0; |
| 8431 hash = JenkinsSmiHash.combine(hash, contexts.hashCode); | 8382 hash = JenkinsSmiHash.combine(hash, edit.hashCode); |
| 8432 return JenkinsSmiHash.finish(hash); | 8383 return JenkinsSmiHash.finish(hash); |
| 8433 } | 8384 } |
| 8434 } | 8385 } |
| 8435 | 8386 |
| 8436 /** | 8387 /** |
| 8437 * diagnostic.getServerPort params | 8388 * Element |
| 8438 * | |
| 8439 * Clients may not extend, implement or mix-in this class. | |
| 8440 */ | |
| 8441 class DiagnosticGetServerPortParams { | |
| 8442 Request toRequest(String id) { | |
| 8443 return new Request(id, "diagnostic.getServerPort", null); | |
| 8444 } | |
| 8445 | |
| 8446 @override | |
| 8447 bool operator ==(other) { | |
| 8448 if (other is DiagnosticGetServerPortParams) { | |
| 8449 return true; | |
| 8450 } | |
| 8451 return false; | |
| 8452 } | |
| 8453 | |
| 8454 @override | |
| 8455 int get hashCode { | |
| 8456 return 367508704; | |
| 8457 } | |
| 8458 } | |
| 8459 | |
| 8460 /** | |
| 8461 * diagnostic.getServerPort result | |
| 8462 * | 8389 * |
| 8463 * { | 8390 * { |
| 8464 * "port": int | 8391 * "kind": ElementKind |
| 8392 * "name": String |
| 8393 * "location": optional Location |
| 8394 * "flags": int |
| 8395 * "parameters": optional String |
| 8396 * "returnType": optional String |
| 8397 * "typeParameters": optional String |
| 8465 * } | 8398 * } |
| 8466 * | 8399 * |
| 8467 * Clients may not extend, implement or mix-in this class. | 8400 * Clients may not extend, implement or mix-in this class. |
| 8468 */ | 8401 */ |
| 8469 class DiagnosticGetServerPortResult implements HasToJson { | 8402 class Element implements HasToJson { |
| 8470 int _port; | 8403 static const int FLAG_ABSTRACT = 0x01; |
| 8471 | 8404 static const int FLAG_CONST = 0x02; |
| 8472 /** | 8405 static const int FLAG_FINAL = 0x04; |
| 8473 * The diagnostic server port. | 8406 static const int FLAG_STATIC = 0x08; |
| 8474 */ | 8407 static const int FLAG_PRIVATE = 0x10; |
| 8475 int get port => _port; | 8408 static const int FLAG_DEPRECATED = 0x20; |
| 8476 | 8409 |
| 8477 /** | 8410 static int makeFlags( |
| 8478 * The diagnostic server port. | 8411 {isAbstract: false, |
| 8479 */ | 8412 isConst: false, |
| 8480 void set port(int value) { | 8413 isFinal: false, |
| 8414 isStatic: false, |
| 8415 isPrivate: false, |
| 8416 isDeprecated: false}) { |
| 8417 int flags = 0; |
| 8418 if (isAbstract) flags |= FLAG_ABSTRACT; |
| 8419 if (isConst) flags |= FLAG_CONST; |
| 8420 if (isFinal) flags |= FLAG_FINAL; |
| 8421 if (isStatic) flags |= FLAG_STATIC; |
| 8422 if (isPrivate) flags |= FLAG_PRIVATE; |
| 8423 if (isDeprecated) flags |= FLAG_DEPRECATED; |
| 8424 return flags; |
| 8425 } |
| 8426 |
| 8427 ElementKind _kind; |
| 8428 |
| 8429 String _name; |
| 8430 |
| 8431 Location _location; |
| 8432 |
| 8433 int _flags; |
| 8434 |
| 8435 String _parameters; |
| 8436 |
| 8437 String _returnType; |
| 8438 |
| 8439 String _typeParameters; |
| 8440 |
| 8441 /** |
| 8442 * The kind of the element. |
| 8443 */ |
| 8444 ElementKind get kind => _kind; |
| 8445 |
| 8446 /** |
| 8447 * The kind of the element. |
| 8448 */ |
| 8449 void set kind(ElementKind value) { |
| 8481 assert(value != null); | 8450 assert(value != null); |
| 8482 this._port = value; | 8451 this._kind = value; |
| 8483 } | 8452 } |
| 8484 | 8453 |
| 8485 DiagnosticGetServerPortResult(int port) { | 8454 /** |
| 8486 this.port = port; | 8455 * The name of the element. This is typically used as the label in the |
| 8487 } | 8456 * outline. |
| 8488 | 8457 */ |
| 8489 factory DiagnosticGetServerPortResult.fromJson( | 8458 String get name => _name; |
| 8459 |
| 8460 /** |
| 8461 * The name of the element. This is typically used as the label in the |
| 8462 * outline. |
| 8463 */ |
| 8464 void set name(String value) { |
| 8465 assert(value != null); |
| 8466 this._name = value; |
| 8467 } |
| 8468 |
| 8469 /** |
| 8470 * The location of the name in the declaration of the element. |
| 8471 */ |
| 8472 Location get location => _location; |
| 8473 |
| 8474 /** |
| 8475 * The location of the name in the declaration of the element. |
| 8476 */ |
| 8477 void set location(Location value) { |
| 8478 this._location = value; |
| 8479 } |
| 8480 |
| 8481 /** |
| 8482 * A bit-map containing the following flags: |
| 8483 * |
| 8484 * - 0x01 - set if the element is explicitly or implicitly abstract |
| 8485 * - 0x02 - set if the element was declared to be ‘const’ |
| 8486 * - 0x04 - set if the element was declared to be ‘final’ |
| 8487 * - 0x08 - set if the element is a static member of a class or is a |
| 8488 * top-level function or field |
| 8489 * - 0x10 - set if the element is private |
| 8490 * - 0x20 - set if the element is deprecated |
| 8491 */ |
| 8492 int get flags => _flags; |
| 8493 |
| 8494 /** |
| 8495 * A bit-map containing the following flags: |
| 8496 * |
| 8497 * - 0x01 - set if the element is explicitly or implicitly abstract |
| 8498 * - 0x02 - set if the element was declared to be ‘const’ |
| 8499 * - 0x04 - set if the element was declared to be ‘final’ |
| 8500 * - 0x08 - set if the element is a static member of a class or is a |
| 8501 * top-level function or field |
| 8502 * - 0x10 - set if the element is private |
| 8503 * - 0x20 - set if the element is deprecated |
| 8504 */ |
| 8505 void set flags(int value) { |
| 8506 assert(value != null); |
| 8507 this._flags = value; |
| 8508 } |
| 8509 |
| 8510 /** |
| 8511 * The parameter list for the element. If the element is not a method or |
| 8512 * function this field will not be defined. If the element doesn't have |
| 8513 * parameters (e.g. getter), this field will not be defined. If the element |
| 8514 * has zero parameters, this field will have a value of "()". |
| 8515 */ |
| 8516 String get parameters => _parameters; |
| 8517 |
| 8518 /** |
| 8519 * The parameter list for the element. If the element is not a method or |
| 8520 * function this field will not be defined. If the element doesn't have |
| 8521 * parameters (e.g. getter), this field will not be defined. If the element |
| 8522 * has zero parameters, this field will have a value of "()". |
| 8523 */ |
| 8524 void set parameters(String value) { |
| 8525 this._parameters = value; |
| 8526 } |
| 8527 |
| 8528 /** |
| 8529 * The return type of the element. If the element is not a method or function |
| 8530 * this field will not be defined. If the element does not have a declared |
| 8531 * return type, this field will contain an empty string. |
| 8532 */ |
| 8533 String get returnType => _returnType; |
| 8534 |
| 8535 /** |
| 8536 * The return type of the element. If the element is not a method or function |
| 8537 * this field will not be defined. If the element does not have a declared |
| 8538 * return type, this field will contain an empty string. |
| 8539 */ |
| 8540 void set returnType(String value) { |
| 8541 this._returnType = value; |
| 8542 } |
| 8543 |
| 8544 /** |
| 8545 * The type parameter list for the element. If the element doesn't have type |
| 8546 * parameters, this field will not be defined. |
| 8547 */ |
| 8548 String get typeParameters => _typeParameters; |
| 8549 |
| 8550 /** |
| 8551 * The type parameter list for the element. If the element doesn't have type |
| 8552 * parameters, this field will not be defined. |
| 8553 */ |
| 8554 void set typeParameters(String value) { |
| 8555 this._typeParameters = value; |
| 8556 } |
| 8557 |
| 8558 Element(ElementKind kind, String name, int flags, |
| 8559 {Location location, |
| 8560 String parameters, |
| 8561 String returnType, |
| 8562 String typeParameters}) { |
| 8563 this.kind = kind; |
| 8564 this.name = name; |
| 8565 this.location = location; |
| 8566 this.flags = flags; |
| 8567 this.parameters = parameters; |
| 8568 this.returnType = returnType; |
| 8569 this.typeParameters = typeParameters; |
| 8570 } |
| 8571 |
| 8572 factory Element.fromJson( |
| 8490 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 8573 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 8491 if (json == null) { | 8574 if (json == null) { |
| 8492 json = {}; | 8575 json = {}; |
| 8493 } | 8576 } |
| 8494 if (json is Map) { | 8577 if (json is Map) { |
| 8495 int port; | 8578 ElementKind kind; |
| 8496 if (json.containsKey("port")) { | 8579 if (json.containsKey("kind")) { |
| 8497 port = jsonDecoder.decodeInt(jsonPath + ".port", json["port"]); | 8580 kind = new ElementKind.fromJson( |
| 8581 jsonDecoder, jsonPath + ".kind", json["kind"]); |
| 8498 } else { | 8582 } else { |
| 8499 throw jsonDecoder.missingKey(jsonPath, "port"); | 8583 throw jsonDecoder.mismatch(jsonPath, "kind"); |
| 8500 } | 8584 } |
| 8501 return new DiagnosticGetServerPortResult(port); | 8585 String name; |
| 8502 } else { | 8586 if (json.containsKey("name")) { |
| 8503 throw jsonDecoder.mismatch( | 8587 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); |
| 8504 jsonPath, "diagnostic.getServerPort result", json); | |
| 8505 } | |
| 8506 } | |
| 8507 | |
| 8508 factory DiagnosticGetServerPortResult.fromResponse(Response response) { | |
| 8509 return new DiagnosticGetServerPortResult.fromJson( | |
| 8510 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), | |
| 8511 "result", | |
| 8512 response._result); | |
| 8513 } | |
| 8514 | |
| 8515 Map<String, dynamic> toJson() { | |
| 8516 Map<String, dynamic> result = {}; | |
| 8517 result["port"] = port; | |
| 8518 return result; | |
| 8519 } | |
| 8520 | |
| 8521 Response toResponse(String id) { | |
| 8522 return new Response(id, result: toJson()); | |
| 8523 } | |
| 8524 | |
| 8525 @override | |
| 8526 String toString() => JSON.encode(toJson()); | |
| 8527 | |
| 8528 @override | |
| 8529 bool operator ==(other) { | |
| 8530 if (other is DiagnosticGetServerPortResult) { | |
| 8531 return port == other.port; | |
| 8532 } | |
| 8533 return false; | |
| 8534 } | |
| 8535 | |
| 8536 @override | |
| 8537 int get hashCode { | |
| 8538 int hash = 0; | |
| 8539 hash = JenkinsSmiHash.combine(hash, port.hashCode); | |
| 8540 return JenkinsSmiHash.finish(hash); | |
| 8541 } | |
| 8542 } | |
| 8543 | |
| 8544 /** | |
| 8545 * AddContentOverlay | |
| 8546 * | |
| 8547 * { | |
| 8548 * "type": "add" | |
| 8549 * "content": String | |
| 8550 * } | |
| 8551 * | |
| 8552 * Clients may not extend, implement or mix-in this class. | |
| 8553 */ | |
| 8554 class AddContentOverlay implements HasToJson { | |
| 8555 String _content; | |
| 8556 | |
| 8557 /** | |
| 8558 * The new content of the file. | |
| 8559 */ | |
| 8560 String get content => _content; | |
| 8561 | |
| 8562 /** | |
| 8563 * The new content of the file. | |
| 8564 */ | |
| 8565 void set content(String value) { | |
| 8566 assert(value != null); | |
| 8567 this._content = value; | |
| 8568 } | |
| 8569 | |
| 8570 AddContentOverlay(String content) { | |
| 8571 this.content = content; | |
| 8572 } | |
| 8573 | |
| 8574 factory AddContentOverlay.fromJson( | |
| 8575 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 8576 if (json == null) { | |
| 8577 json = {}; | |
| 8578 } | |
| 8579 if (json is Map) { | |
| 8580 if (json["type"] != "add") { | |
| 8581 throw jsonDecoder.mismatch(jsonPath, "equal " + "add", json); | |
| 8582 } | |
| 8583 String content; | |
| 8584 if (json.containsKey("content")) { | |
| 8585 content = | |
| 8586 jsonDecoder.decodeString(jsonPath + ".content", json["content"]); | |
| 8587 } else { | 8588 } else { |
| 8588 throw jsonDecoder.missingKey(jsonPath, "content"); | 8589 throw jsonDecoder.mismatch(jsonPath, "name"); |
| 8589 } | |
| 8590 return new AddContentOverlay(content); | |
| 8591 } else { | |
| 8592 throw jsonDecoder.mismatch(jsonPath, "AddContentOverlay", json); | |
| 8593 } | |
| 8594 } | |
| 8595 | |
| 8596 Map<String, dynamic> toJson() { | |
| 8597 Map<String, dynamic> result = {}; | |
| 8598 result["type"] = "add"; | |
| 8599 result["content"] = content; | |
| 8600 return result; | |
| 8601 } | |
| 8602 | |
| 8603 @override | |
| 8604 String toString() => JSON.encode(toJson()); | |
| 8605 | |
| 8606 @override | |
| 8607 bool operator ==(other) { | |
| 8608 if (other is AddContentOverlay) { | |
| 8609 return content == other.content; | |
| 8610 } | |
| 8611 return false; | |
| 8612 } | |
| 8613 | |
| 8614 @override | |
| 8615 int get hashCode { | |
| 8616 int hash = 0; | |
| 8617 hash = JenkinsSmiHash.combine(hash, 704418402); | |
| 8618 hash = JenkinsSmiHash.combine(hash, content.hashCode); | |
| 8619 return JenkinsSmiHash.finish(hash); | |
| 8620 } | |
| 8621 } | |
| 8622 | |
| 8623 /** | |
| 8624 * AnalysisError | |
| 8625 * | |
| 8626 * { | |
| 8627 * "severity": AnalysisErrorSeverity | |
| 8628 * "type": AnalysisErrorType | |
| 8629 * "location": Location | |
| 8630 * "message": String | |
| 8631 * "correction": optional String | |
| 8632 * "code": String | |
| 8633 * "hasFix": optional bool | |
| 8634 * } | |
| 8635 * | |
| 8636 * Clients may not extend, implement or mix-in this class. | |
| 8637 */ | |
| 8638 class AnalysisError implements HasToJson { | |
| 8639 AnalysisErrorSeverity _severity; | |
| 8640 | |
| 8641 AnalysisErrorType _type; | |
| 8642 | |
| 8643 Location _location; | |
| 8644 | |
| 8645 String _message; | |
| 8646 | |
| 8647 String _correction; | |
| 8648 | |
| 8649 String _code; | |
| 8650 | |
| 8651 bool _hasFix; | |
| 8652 | |
| 8653 /** | |
| 8654 * The severity of the error. | |
| 8655 */ | |
| 8656 AnalysisErrorSeverity get severity => _severity; | |
| 8657 | |
| 8658 /** | |
| 8659 * The severity of the error. | |
| 8660 */ | |
| 8661 void set severity(AnalysisErrorSeverity value) { | |
| 8662 assert(value != null); | |
| 8663 this._severity = value; | |
| 8664 } | |
| 8665 | |
| 8666 /** | |
| 8667 * The type of the error. | |
| 8668 */ | |
| 8669 AnalysisErrorType get type => _type; | |
| 8670 | |
| 8671 /** | |
| 8672 * The type of the error. | |
| 8673 */ | |
| 8674 void set type(AnalysisErrorType value) { | |
| 8675 assert(value != null); | |
| 8676 this._type = value; | |
| 8677 } | |
| 8678 | |
| 8679 /** | |
| 8680 * The location associated with the error. | |
| 8681 */ | |
| 8682 Location get location => _location; | |
| 8683 | |
| 8684 /** | |
| 8685 * The location associated with the error. | |
| 8686 */ | |
| 8687 void set location(Location value) { | |
| 8688 assert(value != null); | |
| 8689 this._location = value; | |
| 8690 } | |
| 8691 | |
| 8692 /** | |
| 8693 * The message to be displayed for this error. The message should indicate | |
| 8694 * what is wrong with the code and why it is wrong. | |
| 8695 */ | |
| 8696 String get message => _message; | |
| 8697 | |
| 8698 /** | |
| 8699 * The message to be displayed for this error. The message should indicate | |
| 8700 * what is wrong with the code and why it is wrong. | |
| 8701 */ | |
| 8702 void set message(String value) { | |
| 8703 assert(value != null); | |
| 8704 this._message = value; | |
| 8705 } | |
| 8706 | |
| 8707 /** | |
| 8708 * The correction message to be displayed for this error. The correction | |
| 8709 * message should indicate how the user can fix the error. The field is | |
| 8710 * omitted if there is no correction message associated with the error code. | |
| 8711 */ | |
| 8712 String get correction => _correction; | |
| 8713 | |
| 8714 /** | |
| 8715 * The correction message to be displayed for this error. The correction | |
| 8716 * message should indicate how the user can fix the error. The field is | |
| 8717 * omitted if there is no correction message associated with the error code. | |
| 8718 */ | |
| 8719 void set correction(String value) { | |
| 8720 this._correction = value; | |
| 8721 } | |
| 8722 | |
| 8723 /** | |
| 8724 * The name, as a string, of the error code associated with this error. | |
| 8725 */ | |
| 8726 String get code => _code; | |
| 8727 | |
| 8728 /** | |
| 8729 * The name, as a string, of the error code associated with this error. | |
| 8730 */ | |
| 8731 void set code(String value) { | |
| 8732 assert(value != null); | |
| 8733 this._code = value; | |
| 8734 } | |
| 8735 | |
| 8736 /** | |
| 8737 * A hint to indicate to interested clients that this error has an associated | |
| 8738 * fix (or fixes). The absence of this field implies there are not known to | |
| 8739 * be fixes. Note that since the operation to calculate whether fixes apply | |
| 8740 * needs to be performant it is possible that complicated tests will be | |
| 8741 * skipped and a false negative returned. For this reason, this attribute | |
| 8742 * should be treated as a "hint". Despite the possibility of false negatives, | |
| 8743 * no false positives should be returned. If a client sees this flag set they | |
| 8744 * can proceed with the confidence that there are in fact associated fixes. | |
| 8745 */ | |
| 8746 bool get hasFix => _hasFix; | |
| 8747 | |
| 8748 /** | |
| 8749 * A hint to indicate to interested clients that this error has an associated | |
| 8750 * fix (or fixes). The absence of this field implies there are not known to | |
| 8751 * be fixes. Note that since the operation to calculate whether fixes apply | |
| 8752 * needs to be performant it is possible that complicated tests will be | |
| 8753 * skipped and a false negative returned. For this reason, this attribute | |
| 8754 * should be treated as a "hint". Despite the possibility of false negatives, | |
| 8755 * no false positives should be returned. If a client sees this flag set they | |
| 8756 * can proceed with the confidence that there are in fact associated fixes. | |
| 8757 */ | |
| 8758 void set hasFix(bool value) { | |
| 8759 this._hasFix = value; | |
| 8760 } | |
| 8761 | |
| 8762 AnalysisError(AnalysisErrorSeverity severity, AnalysisErrorType type, | |
| 8763 Location location, String message, String code, | |
| 8764 {String correction, bool hasFix}) { | |
| 8765 this.severity = severity; | |
| 8766 this.type = type; | |
| 8767 this.location = location; | |
| 8768 this.message = message; | |
| 8769 this.correction = correction; | |
| 8770 this.code = code; | |
| 8771 this.hasFix = hasFix; | |
| 8772 } | |
| 8773 | |
| 8774 factory AnalysisError.fromJson( | |
| 8775 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 8776 if (json == null) { | |
| 8777 json = {}; | |
| 8778 } | |
| 8779 if (json is Map) { | |
| 8780 AnalysisErrorSeverity severity; | |
| 8781 if (json.containsKey("severity")) { | |
| 8782 severity = new AnalysisErrorSeverity.fromJson( | |
| 8783 jsonDecoder, jsonPath + ".severity", json["severity"]); | |
| 8784 } else { | |
| 8785 throw jsonDecoder.missingKey(jsonPath, "severity"); | |
| 8786 } | |
| 8787 AnalysisErrorType type; | |
| 8788 if (json.containsKey("type")) { | |
| 8789 type = new AnalysisErrorType.fromJson( | |
| 8790 jsonDecoder, jsonPath + ".type", json["type"]); | |
| 8791 } else { | |
| 8792 throw jsonDecoder.missingKey(jsonPath, "type"); | |
| 8793 } | 8590 } |
| 8794 Location location; | 8591 Location location; |
| 8795 if (json.containsKey("location")) { | 8592 if (json.containsKey("location")) { |
| 8796 location = new Location.fromJson( | 8593 location = new Location.fromJson( |
| 8797 jsonDecoder, jsonPath + ".location", json["location"]); | 8594 jsonDecoder, jsonPath + ".location", json["location"]); |
| 8595 } |
| 8596 int flags; |
| 8597 if (json.containsKey("flags")) { |
| 8598 flags = jsonDecoder.decodeInt(jsonPath + ".flags", json["flags"]); |
| 8798 } else { | 8599 } else { |
| 8799 throw jsonDecoder.missingKey(jsonPath, "location"); | 8600 throw jsonDecoder.mismatch(jsonPath, "flags"); |
| 8800 } | 8601 } |
| 8801 String message; | 8602 String parameters; |
| 8802 if (json.containsKey("message")) { | 8603 if (json.containsKey("parameters")) { |
| 8803 message = | 8604 parameters = jsonDecoder.decodeString( |
| 8804 jsonDecoder.decodeString(jsonPath + ".message", json["message"]); | 8605 jsonPath + ".parameters", json["parameters"]); |
| 8805 } else { | 8606 } |
| 8806 throw jsonDecoder.missingKey(jsonPath, "message"); | 8607 String returnType; |
| 8807 } | 8608 if (json.containsKey("returnType")) { |
| 8808 String correction; | 8609 returnType = jsonDecoder.decodeString( |
| 8809 if (json.containsKey("correction")) { | 8610 jsonPath + ".returnType", json["returnType"]); |
| 8810 correction = jsonDecoder.decodeString( | 8611 } |
| 8811 jsonPath + ".correction", json["correction"]); | 8612 String typeParameters; |
| 8812 } | 8613 if (json.containsKey("typeParameters")) { |
| 8813 String code; | 8614 typeParameters = jsonDecoder.decodeString( |
| 8814 if (json.containsKey("code")) { | 8615 jsonPath + ".typeParameters", json["typeParameters"]); |
| 8815 code = jsonDecoder.decodeString(jsonPath + ".code", json["code"]); | 8616 } |
| 8816 } else { | 8617 return new Element(kind, name, flags, |
| 8817 throw jsonDecoder.missingKey(jsonPath, "code"); | 8618 location: location, |
| 8818 } | 8619 parameters: parameters, |
| 8819 bool hasFix; | 8620 returnType: returnType, |
| 8820 if (json.containsKey("hasFix")) { | 8621 typeParameters: typeParameters); |
| 8821 hasFix = jsonDecoder.decodeBool(jsonPath + ".hasFix", json["hasFix"]); | |
| 8822 } | |
| 8823 return new AnalysisError(severity, type, location, message, code, | |
| 8824 correction: correction, hasFix: hasFix); | |
| 8825 } else { | 8622 } else { |
| 8826 throw jsonDecoder.mismatch(jsonPath, "AnalysisError", json); | 8623 throw jsonDecoder.mismatch(jsonPath, "Element", json); |
| 8827 } | 8624 } |
| 8828 } | 8625 } |
| 8829 | 8626 |
| 8627 bool get isAbstract => (flags & FLAG_ABSTRACT) != 0; |
| 8628 bool get isConst => (flags & FLAG_CONST) != 0; |
| 8629 bool get isFinal => (flags & FLAG_FINAL) != 0; |
| 8630 bool get isStatic => (flags & FLAG_STATIC) != 0; |
| 8631 bool get isPrivate => (flags & FLAG_PRIVATE) != 0; |
| 8632 bool get isDeprecated => (flags & FLAG_DEPRECATED) != 0; |
| 8633 |
| 8634 @override |
| 8830 Map<String, dynamic> toJson() { | 8635 Map<String, dynamic> toJson() { |
| 8831 Map<String, dynamic> result = {}; | 8636 Map<String, dynamic> result = {}; |
| 8832 result["severity"] = severity.toJson(); | 8637 result["kind"] = kind.toJson(); |
| 8833 result["type"] = type.toJson(); | 8638 result["name"] = name; |
| 8834 result["location"] = location.toJson(); | 8639 if (location != null) { |
| 8835 result["message"] = message; | 8640 result["location"] = location.toJson(); |
| 8836 if (correction != null) { | 8641 } |
| 8837 result["correction"] = correction; | 8642 result["flags"] = flags; |
| 8838 } | 8643 if (parameters != null) { |
| 8839 result["code"] = code; | 8644 result["parameters"] = parameters; |
| 8840 if (hasFix != null) { | 8645 } |
| 8841 result["hasFix"] = hasFix; | 8646 if (returnType != null) { |
| 8647 result["returnType"] = returnType; |
| 8648 } |
| 8649 if (typeParameters != null) { |
| 8650 result["typeParameters"] = typeParameters; |
| 8842 } | 8651 } |
| 8843 return result; | 8652 return result; |
| 8844 } | 8653 } |
| 8845 | 8654 |
| 8846 @override | 8655 @override |
| 8847 String toString() => JSON.encode(toJson()); | 8656 String toString() => JSON.encode(toJson()); |
| 8848 | 8657 |
| 8849 @override | 8658 @override |
| 8850 bool operator ==(other) { | 8659 bool operator ==(other) { |
| 8851 if (other is AnalysisError) { | 8660 if (other is Element) { |
| 8852 return severity == other.severity && | 8661 return kind == other.kind && |
| 8853 type == other.type && | 8662 name == other.name && |
| 8854 location == other.location && | 8663 location == other.location && |
| 8855 message == other.message && | 8664 flags == other.flags && |
| 8856 correction == other.correction && | 8665 parameters == other.parameters && |
| 8857 code == other.code && | 8666 returnType == other.returnType && |
| 8858 hasFix == other.hasFix; | 8667 typeParameters == other.typeParameters; |
| 8859 } | 8668 } |
| 8860 return false; | 8669 return false; |
| 8861 } | 8670 } |
| 8862 | 8671 |
| 8863 @override | 8672 @override |
| 8864 int get hashCode { | 8673 int get hashCode { |
| 8865 int hash = 0; | 8674 int hash = 0; |
| 8866 hash = JenkinsSmiHash.combine(hash, severity.hashCode); | 8675 hash = JenkinsSmiHash.combine(hash, kind.hashCode); |
| 8867 hash = JenkinsSmiHash.combine(hash, type.hashCode); | 8676 hash = JenkinsSmiHash.combine(hash, name.hashCode); |
| 8868 hash = JenkinsSmiHash.combine(hash, location.hashCode); | 8677 hash = JenkinsSmiHash.combine(hash, location.hashCode); |
| 8869 hash = JenkinsSmiHash.combine(hash, message.hashCode); | 8678 hash = JenkinsSmiHash.combine(hash, flags.hashCode); |
| 8870 hash = JenkinsSmiHash.combine(hash, correction.hashCode); | 8679 hash = JenkinsSmiHash.combine(hash, parameters.hashCode); |
| 8871 hash = JenkinsSmiHash.combine(hash, code.hashCode); | 8680 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); |
| 8872 hash = JenkinsSmiHash.combine(hash, hasFix.hashCode); | 8681 hash = JenkinsSmiHash.combine(hash, typeParameters.hashCode); |
| 8873 return JenkinsSmiHash.finish(hash); | 8682 return JenkinsSmiHash.finish(hash); |
| 8874 } | 8683 } |
| 8875 } | 8684 } |
| 8876 | 8685 |
| 8877 /** | 8686 /** |
| 8878 * AnalysisErrorFixes | 8687 * ElementKind |
| 8879 * | 8688 * |
| 8880 * { | 8689 * enum { |
| 8881 * "error": AnalysisError | 8690 * CLASS |
| 8882 * "fixes": List<SourceChange> | 8691 * CLASS_TYPE_ALIAS |
| 8692 * COMPILATION_UNIT |
| 8693 * CONSTRUCTOR |
| 8694 * ENUM |
| 8695 * ENUM_CONSTANT |
| 8696 * FIELD |
| 8697 * FILE |
| 8698 * FUNCTION |
| 8699 * FUNCTION_TYPE_ALIAS |
| 8700 * GETTER |
| 8701 * LABEL |
| 8702 * LIBRARY |
| 8703 * LOCAL_VARIABLE |
| 8704 * METHOD |
| 8705 * PARAMETER |
| 8706 * PREFIX |
| 8707 * SETTER |
| 8708 * TOP_LEVEL_VARIABLE |
| 8709 * TYPE_PARAMETER |
| 8710 * UNIT_TEST_GROUP |
| 8711 * UNIT_TEST_TEST |
| 8712 * UNKNOWN |
| 8883 * } | 8713 * } |
| 8884 * | 8714 * |
| 8885 * Clients may not extend, implement or mix-in this class. | 8715 * Clients may not extend, implement or mix-in this class. |
| 8886 */ | 8716 */ |
| 8887 class AnalysisErrorFixes implements HasToJson { | 8717 class ElementKind implements Enum { |
| 8888 AnalysisError _error; | 8718 static const ElementKind CLASS = const ElementKind._("CLASS"); |
| 8889 | 8719 |
| 8890 List<SourceChange> _fixes; | 8720 static const ElementKind CLASS_TYPE_ALIAS = |
| 8891 | 8721 const ElementKind._("CLASS_TYPE_ALIAS"); |
| 8892 /** | 8722 |
| 8893 * The error with which the fixes are associated. | 8723 static const ElementKind COMPILATION_UNIT = |
| 8894 */ | 8724 const ElementKind._("COMPILATION_UNIT"); |
| 8895 AnalysisError get error => _error; | 8725 |
| 8896 | 8726 static const ElementKind CONSTRUCTOR = const ElementKind._("CONSTRUCTOR"); |
| 8897 /** | 8727 |
| 8898 * The error with which the fixes are associated. | 8728 static const ElementKind ENUM = const ElementKind._("ENUM"); |
| 8899 */ | 8729 |
| 8900 void set error(AnalysisError value) { | 8730 static const ElementKind ENUM_CONSTANT = const ElementKind._("ENUM_CONSTANT"); |
| 8731 |
| 8732 static const ElementKind FIELD = const ElementKind._("FIELD"); |
| 8733 |
| 8734 static const ElementKind FILE = const ElementKind._("FILE"); |
| 8735 |
| 8736 static const ElementKind FUNCTION = const ElementKind._("FUNCTION"); |
| 8737 |
| 8738 static const ElementKind FUNCTION_TYPE_ALIAS = |
| 8739 const ElementKind._("FUNCTION_TYPE_ALIAS"); |
| 8740 |
| 8741 static const ElementKind GETTER = const ElementKind._("GETTER"); |
| 8742 |
| 8743 static const ElementKind LABEL = const ElementKind._("LABEL"); |
| 8744 |
| 8745 static const ElementKind LIBRARY = const ElementKind._("LIBRARY"); |
| 8746 |
| 8747 static const ElementKind LOCAL_VARIABLE = |
| 8748 const ElementKind._("LOCAL_VARIABLE"); |
| 8749 |
| 8750 static const ElementKind METHOD = const ElementKind._("METHOD"); |
| 8751 |
| 8752 static const ElementKind PARAMETER = const ElementKind._("PARAMETER"); |
| 8753 |
| 8754 static const ElementKind PREFIX = const ElementKind._("PREFIX"); |
| 8755 |
| 8756 static const ElementKind SETTER = const ElementKind._("SETTER"); |
| 8757 |
| 8758 static const ElementKind TOP_LEVEL_VARIABLE = |
| 8759 const ElementKind._("TOP_LEVEL_VARIABLE"); |
| 8760 |
| 8761 static const ElementKind TYPE_PARAMETER = |
| 8762 const ElementKind._("TYPE_PARAMETER"); |
| 8763 |
| 8764 /** |
| 8765 * Deprecated: support for tests was removed. |
| 8766 */ |
| 8767 static const ElementKind UNIT_TEST_GROUP = |
| 8768 const ElementKind._("UNIT_TEST_GROUP"); |
| 8769 |
| 8770 /** |
| 8771 * Deprecated: support for tests was removed. |
| 8772 */ |
| 8773 static const ElementKind UNIT_TEST_TEST = |
| 8774 const ElementKind._("UNIT_TEST_TEST"); |
| 8775 |
| 8776 static const ElementKind UNKNOWN = const ElementKind._("UNKNOWN"); |
| 8777 |
| 8778 /** |
| 8779 * A list containing all of the enum values that are defined. |
| 8780 */ |
| 8781 static const List<ElementKind> VALUES = const <ElementKind>[ |
| 8782 CLASS, |
| 8783 CLASS_TYPE_ALIAS, |
| 8784 COMPILATION_UNIT, |
| 8785 CONSTRUCTOR, |
| 8786 ENUM, |
| 8787 ENUM_CONSTANT, |
| 8788 FIELD, |
| 8789 FILE, |
| 8790 FUNCTION, |
| 8791 FUNCTION_TYPE_ALIAS, |
| 8792 GETTER, |
| 8793 LABEL, |
| 8794 LIBRARY, |
| 8795 LOCAL_VARIABLE, |
| 8796 METHOD, |
| 8797 PARAMETER, |
| 8798 PREFIX, |
| 8799 SETTER, |
| 8800 TOP_LEVEL_VARIABLE, |
| 8801 TYPE_PARAMETER, |
| 8802 UNIT_TEST_GROUP, |
| 8803 UNIT_TEST_TEST, |
| 8804 UNKNOWN |
| 8805 ]; |
| 8806 |
| 8807 @override |
| 8808 final String name; |
| 8809 |
| 8810 const ElementKind._(this.name); |
| 8811 |
| 8812 factory ElementKind(String name) { |
| 8813 switch (name) { |
| 8814 case "CLASS": |
| 8815 return CLASS; |
| 8816 case "CLASS_TYPE_ALIAS": |
| 8817 return CLASS_TYPE_ALIAS; |
| 8818 case "COMPILATION_UNIT": |
| 8819 return COMPILATION_UNIT; |
| 8820 case "CONSTRUCTOR": |
| 8821 return CONSTRUCTOR; |
| 8822 case "ENUM": |
| 8823 return ENUM; |
| 8824 case "ENUM_CONSTANT": |
| 8825 return ENUM_CONSTANT; |
| 8826 case "FIELD": |
| 8827 return FIELD; |
| 8828 case "FILE": |
| 8829 return FILE; |
| 8830 case "FUNCTION": |
| 8831 return FUNCTION; |
| 8832 case "FUNCTION_TYPE_ALIAS": |
| 8833 return FUNCTION_TYPE_ALIAS; |
| 8834 case "GETTER": |
| 8835 return GETTER; |
| 8836 case "LABEL": |
| 8837 return LABEL; |
| 8838 case "LIBRARY": |
| 8839 return LIBRARY; |
| 8840 case "LOCAL_VARIABLE": |
| 8841 return LOCAL_VARIABLE; |
| 8842 case "METHOD": |
| 8843 return METHOD; |
| 8844 case "PARAMETER": |
| 8845 return PARAMETER; |
| 8846 case "PREFIX": |
| 8847 return PREFIX; |
| 8848 case "SETTER": |
| 8849 return SETTER; |
| 8850 case "TOP_LEVEL_VARIABLE": |
| 8851 return TOP_LEVEL_VARIABLE; |
| 8852 case "TYPE_PARAMETER": |
| 8853 return TYPE_PARAMETER; |
| 8854 case "UNIT_TEST_GROUP": |
| 8855 return UNIT_TEST_GROUP; |
| 8856 case "UNIT_TEST_TEST": |
| 8857 return UNIT_TEST_TEST; |
| 8858 case "UNKNOWN": |
| 8859 return UNKNOWN; |
| 8860 } |
| 8861 throw new Exception('Illegal enum value: $name'); |
| 8862 } |
| 8863 |
| 8864 factory ElementKind.fromJson( |
| 8865 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 8866 if (json is String) { |
| 8867 try { |
| 8868 return new ElementKind(json); |
| 8869 } catch (_) { |
| 8870 // Fall through |
| 8871 } |
| 8872 } |
| 8873 throw jsonDecoder.mismatch(jsonPath, "ElementKind", json); |
| 8874 } |
| 8875 |
| 8876 @override |
| 8877 String toString() => "ElementKind.$name"; |
| 8878 |
| 8879 String toJson() => name; |
| 8880 } |
| 8881 |
| 8882 /** |
| 8883 * ExecutableFile |
| 8884 * |
| 8885 * { |
| 8886 * "file": FilePath |
| 8887 * "kind": ExecutableKind |
| 8888 * } |
| 8889 * |
| 8890 * Clients may not extend, implement or mix-in this class. |
| 8891 */ |
| 8892 class ExecutableFile implements HasToJson { |
| 8893 String _file; |
| 8894 |
| 8895 ExecutableKind _kind; |
| 8896 |
| 8897 /** |
| 8898 * The path of the executable file. |
| 8899 */ |
| 8900 String get file => _file; |
| 8901 |
| 8902 /** |
| 8903 * The path of the executable file. |
| 8904 */ |
| 8905 void set file(String value) { |
| 8901 assert(value != null); | 8906 assert(value != null); |
| 8902 this._error = value; | 8907 this._file = value; |
| 8903 } | 8908 } |
| 8904 | 8909 |
| 8905 /** | 8910 /** |
| 8906 * The fixes associated with the error. | 8911 * The kind of the executable file. |
| 8907 */ | 8912 */ |
| 8908 List<SourceChange> get fixes => _fixes; | 8913 ExecutableKind get kind => _kind; |
| 8909 | 8914 |
| 8910 /** | 8915 /** |
| 8911 * The fixes associated with the error. | 8916 * The kind of the executable file. |
| 8912 */ | 8917 */ |
| 8913 void set fixes(List<SourceChange> value) { | 8918 void set kind(ExecutableKind value) { |
| 8914 assert(value != null); | 8919 assert(value != null); |
| 8915 this._fixes = value; | 8920 this._kind = value; |
| 8916 } | 8921 } |
| 8917 | 8922 |
| 8918 AnalysisErrorFixes(AnalysisError error, {List<SourceChange> fixes}) { | 8923 ExecutableFile(String file, ExecutableKind kind) { |
| 8919 this.error = error; | 8924 this.file = file; |
| 8920 if (fixes == null) { | 8925 this.kind = kind; |
| 8921 this.fixes = <SourceChange>[]; | 8926 } |
| 8922 } else { | 8927 |
| 8923 this.fixes = fixes; | 8928 factory ExecutableFile.fromJson( |
| 8924 } | |
| 8925 } | |
| 8926 | |
| 8927 factory AnalysisErrorFixes.fromJson( | |
| 8928 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 8929 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 8929 if (json == null) { | 8930 if (json == null) { |
| 8930 json = {}; | 8931 json = {}; |
| 8931 } | 8932 } |
| 8932 if (json is Map) { | 8933 if (json is Map) { |
| 8933 AnalysisError error; | 8934 String file; |
| 8934 if (json.containsKey("error")) { | 8935 if (json.containsKey("file")) { |
| 8935 error = new AnalysisError.fromJson( | 8936 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 8936 jsonDecoder, jsonPath + ".error", json["error"]); | |
| 8937 } else { | 8937 } else { |
| 8938 throw jsonDecoder.missingKey(jsonPath, "error"); | 8938 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 8939 } | 8939 } |
| 8940 List<SourceChange> fixes; | 8940 ExecutableKind kind; |
| 8941 if (json.containsKey("fixes")) { | 8941 if (json.containsKey("kind")) { |
| 8942 fixes = jsonDecoder.decodeList( | 8942 kind = new ExecutableKind.fromJson( |
| 8943 jsonPath + ".fixes", | 8943 jsonDecoder, jsonPath + ".kind", json["kind"]); |
| 8944 json["fixes"], | |
| 8945 (String jsonPath, Object json) => | |
| 8946 new SourceChange.fromJson(jsonDecoder, jsonPath, json)); | |
| 8947 } else { | 8944 } else { |
| 8948 throw jsonDecoder.missingKey(jsonPath, "fixes"); | 8945 throw jsonDecoder.mismatch(jsonPath, "kind"); |
| 8949 } | 8946 } |
| 8950 return new AnalysisErrorFixes(error, fixes: fixes); | 8947 return new ExecutableFile(file, kind); |
| 8951 } else { | 8948 } else { |
| 8952 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorFixes", json); | 8949 throw jsonDecoder.mismatch(jsonPath, "ExecutableFile", json); |
| 8953 } | 8950 } |
| 8954 } | 8951 } |
| 8955 | 8952 |
| 8953 @override |
| 8956 Map<String, dynamic> toJson() { | 8954 Map<String, dynamic> toJson() { |
| 8957 Map<String, dynamic> result = {}; | 8955 Map<String, dynamic> result = {}; |
| 8958 result["error"] = error.toJson(); | 8956 result["file"] = file; |
| 8959 result["fixes"] = | 8957 result["kind"] = kind.toJson(); |
| 8960 fixes.map((SourceChange value) => value.toJson()).toList(); | |
| 8961 return result; | 8958 return result; |
| 8962 } | 8959 } |
| 8963 | 8960 |
| 8964 @override | 8961 @override |
| 8965 String toString() => JSON.encode(toJson()); | 8962 String toString() => JSON.encode(toJson()); |
| 8966 | 8963 |
| 8967 @override | 8964 @override |
| 8968 bool operator ==(other) { | 8965 bool operator ==(other) { |
| 8969 if (other is AnalysisErrorFixes) { | 8966 if (other is ExecutableFile) { |
| 8970 return error == other.error && | 8967 return file == other.file && kind == other.kind; |
| 8971 listEqual( | |
| 8972 fixes, other.fixes, (SourceChange a, SourceChange b) => a == b); | |
| 8973 } | 8968 } |
| 8974 return false; | 8969 return false; |
| 8975 } | 8970 } |
| 8976 | 8971 |
| 8977 @override | 8972 @override |
| 8978 int get hashCode { | 8973 int get hashCode { |
| 8979 int hash = 0; | 8974 int hash = 0; |
| 8980 hash = JenkinsSmiHash.combine(hash, error.hashCode); | 8975 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 8981 hash = JenkinsSmiHash.combine(hash, fixes.hashCode); | 8976 hash = JenkinsSmiHash.combine(hash, kind.hashCode); |
| 8982 return JenkinsSmiHash.finish(hash); | 8977 return JenkinsSmiHash.finish(hash); |
| 8983 } | 8978 } |
| 8984 } | 8979 } |
| 8985 | 8980 |
| 8986 /** | 8981 /** |
| 8987 * AnalysisErrorSeverity | 8982 * ExecutableKind |
| 8988 * | 8983 * |
| 8989 * enum { | 8984 * enum { |
| 8990 * INFO | 8985 * CLIENT |
| 8991 * WARNING | 8986 * EITHER |
| 8992 * ERROR | 8987 * NOT_EXECUTABLE |
| 8988 * SERVER |
| 8993 * } | 8989 * } |
| 8994 * | 8990 * |
| 8995 * Clients may not extend, implement or mix-in this class. | 8991 * Clients may not extend, implement or mix-in this class. |
| 8996 */ | 8992 */ |
| 8997 class AnalysisErrorSeverity implements Enum { | 8993 class ExecutableKind implements Enum { |
| 8998 static const AnalysisErrorSeverity INFO = | 8994 static const ExecutableKind CLIENT = const ExecutableKind._("CLIENT"); |
| 8999 const AnalysisErrorSeverity._("INFO"); | 8995 |
| 9000 | 8996 static const ExecutableKind EITHER = const ExecutableKind._("EITHER"); |
| 9001 static const AnalysisErrorSeverity WARNING = | 8997 |
| 9002 const AnalysisErrorSeverity._("WARNING"); | 8998 static const ExecutableKind NOT_EXECUTABLE = |
| 9003 | 8999 const ExecutableKind._("NOT_EXECUTABLE"); |
| 9004 static const AnalysisErrorSeverity ERROR = | 9000 |
| 9005 const AnalysisErrorSeverity._("ERROR"); | 9001 static const ExecutableKind SERVER = const ExecutableKind._("SERVER"); |
| 9006 | 9002 |
| 9007 /** | 9003 /** |
| 9008 * A list containing all of the enum values that are defined. | 9004 * A list containing all of the enum values that are defined. |
| 9009 */ | 9005 */ |
| 9010 static const List<AnalysisErrorSeverity> VALUES = | 9006 static const List<ExecutableKind> VALUES = const <ExecutableKind>[ |
| 9011 const <AnalysisErrorSeverity>[INFO, WARNING, ERROR]; | 9007 CLIENT, |
| 9012 | 9008 EITHER, |
| 9009 NOT_EXECUTABLE, |
| 9010 SERVER |
| 9011 ]; |
| 9012 |
| 9013 @override |
| 9013 final String name; | 9014 final String name; |
| 9014 | 9015 |
| 9015 const AnalysisErrorSeverity._(this.name); | 9016 const ExecutableKind._(this.name); |
| 9016 | 9017 |
| 9017 factory AnalysisErrorSeverity(String name) { | 9018 factory ExecutableKind(String name) { |
| 9018 switch (name) { | 9019 switch (name) { |
| 9019 case "INFO": | 9020 case "CLIENT": |
| 9020 return INFO; | 9021 return CLIENT; |
| 9021 case "WARNING": | 9022 case "EITHER": |
| 9022 return WARNING; | 9023 return EITHER; |
| 9023 case "ERROR": | 9024 case "NOT_EXECUTABLE": |
| 9024 return ERROR; | 9025 return NOT_EXECUTABLE; |
| 9026 case "SERVER": |
| 9027 return SERVER; |
| 9025 } | 9028 } |
| 9026 throw new Exception('Illegal enum value: $name'); | 9029 throw new Exception('Illegal enum value: $name'); |
| 9027 } | 9030 } |
| 9028 | 9031 |
| 9029 factory AnalysisErrorSeverity.fromJson( | 9032 factory ExecutableKind.fromJson( |
| 9030 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 9033 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 9031 if (json is String) { | 9034 if (json is String) { |
| 9032 try { | 9035 try { |
| 9033 return new AnalysisErrorSeverity(json); | 9036 return new ExecutableKind(json); |
| 9034 } catch (_) { | 9037 } catch (_) { |
| 9035 // Fall through | 9038 // Fall through |
| 9036 } | 9039 } |
| 9037 } | 9040 } |
| 9038 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorSeverity", json); | 9041 throw jsonDecoder.mismatch(jsonPath, "ExecutableKind", json); |
| 9039 } | 9042 } |
| 9040 | 9043 |
| 9041 @override | 9044 @override |
| 9042 String toString() => "AnalysisErrorSeverity.$name"; | 9045 String toString() => "ExecutableKind.$name"; |
| 9043 | 9046 |
| 9044 String toJson() => name; | 9047 String toJson() => name; |
| 9045 } | 9048 } |
| 9046 | 9049 |
| 9047 /** | 9050 /** |
| 9048 * AnalysisErrorType | 9051 * execution.createContext params |
| 9049 * | 9052 * |
| 9050 * enum { | 9053 * { |
| 9051 * CHECKED_MODE_COMPILE_TIME_ERROR | 9054 * "contextRoot": FilePath |
| 9052 * COMPILE_TIME_ERROR | |
| 9053 * HINT | |
| 9054 * LINT | |
| 9055 * STATIC_TYPE_WARNING | |
| 9056 * STATIC_WARNING | |
| 9057 * SYNTACTIC_ERROR | |
| 9058 * TODO | |
| 9059 * } | 9055 * } |
| 9060 * | 9056 * |
| 9061 * Clients may not extend, implement or mix-in this class. | 9057 * Clients may not extend, implement or mix-in this class. |
| 9062 */ | 9058 */ |
| 9063 class AnalysisErrorType implements Enum { | 9059 class ExecutionCreateContextParams implements RequestParams { |
| 9064 static const AnalysisErrorType CHECKED_MODE_COMPILE_TIME_ERROR = | 9060 String _contextRoot; |
| 9065 const AnalysisErrorType._("CHECKED_MODE_COMPILE_TIME_ERROR"); | 9061 |
| 9066 | 9062 /** |
| 9067 static const AnalysisErrorType COMPILE_TIME_ERROR = | 9063 * The path of the Dart or HTML file that will be launched, or the path of |
| 9068 const AnalysisErrorType._("COMPILE_TIME_ERROR"); | 9064 * the directory containing the file. |
| 9069 | 9065 */ |
| 9070 static const AnalysisErrorType HINT = const AnalysisErrorType._("HINT"); | 9066 String get contextRoot => _contextRoot; |
| 9071 | 9067 |
| 9072 static const AnalysisErrorType LINT = const AnalysisErrorType._("LINT"); | 9068 /** |
| 9073 | 9069 * The path of the Dart or HTML file that will be launched, or the path of |
| 9074 static const AnalysisErrorType STATIC_TYPE_WARNING = | 9070 * the directory containing the file. |
| 9075 const AnalysisErrorType._("STATIC_TYPE_WARNING"); | 9071 */ |
| 9076 | 9072 void set contextRoot(String value) { |
| 9077 static const AnalysisErrorType STATIC_WARNING = | 9073 assert(value != null); |
| 9078 const AnalysisErrorType._("STATIC_WARNING"); | 9074 this._contextRoot = value; |
| 9079 | 9075 } |
| 9080 static const AnalysisErrorType SYNTACTIC_ERROR = | 9076 |
| 9081 const AnalysisErrorType._("SYNTACTIC_ERROR"); | 9077 ExecutionCreateContextParams(String contextRoot) { |
| 9082 | 9078 this.contextRoot = contextRoot; |
| 9083 static const AnalysisErrorType TODO = const AnalysisErrorType._("TODO"); | 9079 } |
| 9084 | 9080 |
| 9085 /** | 9081 factory ExecutionCreateContextParams.fromJson( |
| 9086 * A list containing all of the enum values that are defined. | |
| 9087 */ | |
| 9088 static const List<AnalysisErrorType> VALUES = const <AnalysisErrorType>[ | |
| 9089 CHECKED_MODE_COMPILE_TIME_ERROR, | |
| 9090 COMPILE_TIME_ERROR, | |
| 9091 HINT, | |
| 9092 LINT, | |
| 9093 STATIC_TYPE_WARNING, | |
| 9094 STATIC_WARNING, | |
| 9095 SYNTACTIC_ERROR, | |
| 9096 TODO | |
| 9097 ]; | |
| 9098 | |
| 9099 final String name; | |
| 9100 | |
| 9101 const AnalysisErrorType._(this.name); | |
| 9102 | |
| 9103 factory AnalysisErrorType(String name) { | |
| 9104 switch (name) { | |
| 9105 case "CHECKED_MODE_COMPILE_TIME_ERROR": | |
| 9106 return CHECKED_MODE_COMPILE_TIME_ERROR; | |
| 9107 case "COMPILE_TIME_ERROR": | |
| 9108 return COMPILE_TIME_ERROR; | |
| 9109 case "HINT": | |
| 9110 return HINT; | |
| 9111 case "LINT": | |
| 9112 return LINT; | |
| 9113 case "STATIC_TYPE_WARNING": | |
| 9114 return STATIC_TYPE_WARNING; | |
| 9115 case "STATIC_WARNING": | |
| 9116 return STATIC_WARNING; | |
| 9117 case "SYNTACTIC_ERROR": | |
| 9118 return SYNTACTIC_ERROR; | |
| 9119 case "TODO": | |
| 9120 return TODO; | |
| 9121 } | |
| 9122 throw new Exception('Illegal enum value: $name'); | |
| 9123 } | |
| 9124 | |
| 9125 factory AnalysisErrorType.fromJson( | |
| 9126 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 9127 if (json is String) { | |
| 9128 try { | |
| 9129 return new AnalysisErrorType(json); | |
| 9130 } catch (_) { | |
| 9131 // Fall through | |
| 9132 } | |
| 9133 } | |
| 9134 throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorType", json); | |
| 9135 } | |
| 9136 | |
| 9137 @override | |
| 9138 String toString() => "AnalysisErrorType.$name"; | |
| 9139 | |
| 9140 String toJson() => name; | |
| 9141 } | |
| 9142 | |
| 9143 /** | |
| 9144 * AnalysisOptions | |
| 9145 * | |
| 9146 * { | |
| 9147 * "enableAsync": optional bool | |
| 9148 * "enableDeferredLoading": optional bool | |
| 9149 * "enableEnums": optional bool | |
| 9150 * "enableNullAwareOperators": optional bool | |
| 9151 * "enableSuperMixins": optional bool | |
| 9152 * "generateDart2jsHints": optional bool | |
| 9153 * "generateHints": optional bool | |
| 9154 * "generateLints": optional bool | |
| 9155 * } | |
| 9156 * | |
| 9157 * Clients may not extend, implement or mix-in this class. | |
| 9158 */ | |
| 9159 class AnalysisOptions implements HasToJson { | |
| 9160 bool _enableAsync; | |
| 9161 | |
| 9162 bool _enableDeferredLoading; | |
| 9163 | |
| 9164 bool _enableEnums; | |
| 9165 | |
| 9166 bool _enableNullAwareOperators; | |
| 9167 | |
| 9168 bool _enableSuperMixins; | |
| 9169 | |
| 9170 bool _generateDart2jsHints; | |
| 9171 | |
| 9172 bool _generateHints; | |
| 9173 | |
| 9174 bool _generateLints; | |
| 9175 | |
| 9176 /** | |
| 9177 * Deprecated: this feature is always enabled. | |
| 9178 * | |
| 9179 * True if the client wants to enable support for the proposed async feature. | |
| 9180 */ | |
| 9181 bool get enableAsync => _enableAsync; | |
| 9182 | |
| 9183 /** | |
| 9184 * Deprecated: this feature is always enabled. | |
| 9185 * | |
| 9186 * True if the client wants to enable support for the proposed async feature. | |
| 9187 */ | |
| 9188 void set enableAsync(bool value) { | |
| 9189 this._enableAsync = value; | |
| 9190 } | |
| 9191 | |
| 9192 /** | |
| 9193 * Deprecated: this feature is always enabled. | |
| 9194 * | |
| 9195 * True if the client wants to enable support for the proposed deferred | |
| 9196 * loading feature. | |
| 9197 */ | |
| 9198 bool get enableDeferredLoading => _enableDeferredLoading; | |
| 9199 | |
| 9200 /** | |
| 9201 * Deprecated: this feature is always enabled. | |
| 9202 * | |
| 9203 * True if the client wants to enable support for the proposed deferred | |
| 9204 * loading feature. | |
| 9205 */ | |
| 9206 void set enableDeferredLoading(bool value) { | |
| 9207 this._enableDeferredLoading = value; | |
| 9208 } | |
| 9209 | |
| 9210 /** | |
| 9211 * Deprecated: this feature is always enabled. | |
| 9212 * | |
| 9213 * True if the client wants to enable support for the proposed enum feature. | |
| 9214 */ | |
| 9215 bool get enableEnums => _enableEnums; | |
| 9216 | |
| 9217 /** | |
| 9218 * Deprecated: this feature is always enabled. | |
| 9219 * | |
| 9220 * True if the client wants to enable support for the proposed enum feature. | |
| 9221 */ | |
| 9222 void set enableEnums(bool value) { | |
| 9223 this._enableEnums = value; | |
| 9224 } | |
| 9225 | |
| 9226 /** | |
| 9227 * Deprecated: this feature is always enabled. | |
| 9228 * | |
| 9229 * True if the client wants to enable support for the proposed "null aware | |
| 9230 * operators" feature. | |
| 9231 */ | |
| 9232 bool get enableNullAwareOperators => _enableNullAwareOperators; | |
| 9233 | |
| 9234 /** | |
| 9235 * Deprecated: this feature is always enabled. | |
| 9236 * | |
| 9237 * True if the client wants to enable support for the proposed "null aware | |
| 9238 * operators" feature. | |
| 9239 */ | |
| 9240 void set enableNullAwareOperators(bool value) { | |
| 9241 this._enableNullAwareOperators = value; | |
| 9242 } | |
| 9243 | |
| 9244 /** | |
| 9245 * True if the client wants to enable support for the proposed "less | |
| 9246 * restricted mixins" proposal (DEP 34). | |
| 9247 */ | |
| 9248 bool get enableSuperMixins => _enableSuperMixins; | |
| 9249 | |
| 9250 /** | |
| 9251 * True if the client wants to enable support for the proposed "less | |
| 9252 * restricted mixins" proposal (DEP 34). | |
| 9253 */ | |
| 9254 void set enableSuperMixins(bool value) { | |
| 9255 this._enableSuperMixins = value; | |
| 9256 } | |
| 9257 | |
| 9258 /** | |
| 9259 * True if hints that are specific to dart2js should be generated. This | |
| 9260 * option is ignored if generateHints is false. | |
| 9261 */ | |
| 9262 bool get generateDart2jsHints => _generateDart2jsHints; | |
| 9263 | |
| 9264 /** | |
| 9265 * True if hints that are specific to dart2js should be generated. This | |
| 9266 * option is ignored if generateHints is false. | |
| 9267 */ | |
| 9268 void set generateDart2jsHints(bool value) { | |
| 9269 this._generateDart2jsHints = value; | |
| 9270 } | |
| 9271 | |
| 9272 /** | |
| 9273 * True if hints should be generated as part of generating errors and | |
| 9274 * warnings. | |
| 9275 */ | |
| 9276 bool get generateHints => _generateHints; | |
| 9277 | |
| 9278 /** | |
| 9279 * True if hints should be generated as part of generating errors and | |
| 9280 * warnings. | |
| 9281 */ | |
| 9282 void set generateHints(bool value) { | |
| 9283 this._generateHints = value; | |
| 9284 } | |
| 9285 | |
| 9286 /** | |
| 9287 * True if lints should be generated as part of generating errors and | |
| 9288 * warnings. | |
| 9289 */ | |
| 9290 bool get generateLints => _generateLints; | |
| 9291 | |
| 9292 /** | |
| 9293 * True if lints should be generated as part of generating errors and | |
| 9294 * warnings. | |
| 9295 */ | |
| 9296 void set generateLints(bool value) { | |
| 9297 this._generateLints = value; | |
| 9298 } | |
| 9299 | |
| 9300 AnalysisOptions( | |
| 9301 {bool enableAsync, | |
| 9302 bool enableDeferredLoading, | |
| 9303 bool enableEnums, | |
| 9304 bool enableNullAwareOperators, | |
| 9305 bool enableSuperMixins, | |
| 9306 bool generateDart2jsHints, | |
| 9307 bool generateHints, | |
| 9308 bool generateLints}) { | |
| 9309 this.enableAsync = enableAsync; | |
| 9310 this.enableDeferredLoading = enableDeferredLoading; | |
| 9311 this.enableEnums = enableEnums; | |
| 9312 this.enableNullAwareOperators = enableNullAwareOperators; | |
| 9313 this.enableSuperMixins = enableSuperMixins; | |
| 9314 this.generateDart2jsHints = generateDart2jsHints; | |
| 9315 this.generateHints = generateHints; | |
| 9316 this.generateLints = generateLints; | |
| 9317 } | |
| 9318 | |
| 9319 factory AnalysisOptions.fromJson( | |
| 9320 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 9082 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 9321 if (json == null) { | 9083 if (json == null) { |
| 9322 json = {}; | 9084 json = {}; |
| 9323 } | 9085 } |
| 9324 if (json is Map) { | 9086 if (json is Map) { |
| 9325 bool enableAsync; | 9087 String contextRoot; |
| 9326 if (json.containsKey("enableAsync")) { | 9088 if (json.containsKey("contextRoot")) { |
| 9327 enableAsync = jsonDecoder.decodeBool( | 9089 contextRoot = jsonDecoder.decodeString( |
| 9328 jsonPath + ".enableAsync", json["enableAsync"]); | 9090 jsonPath + ".contextRoot", json["contextRoot"]); |
| 9329 } | 9091 } else { |
| 9330 bool enableDeferredLoading; | 9092 throw jsonDecoder.mismatch(jsonPath, "contextRoot"); |
| 9331 if (json.containsKey("enableDeferredLoading")) { | 9093 } |
| 9332 enableDeferredLoading = jsonDecoder.decodeBool( | 9094 return new ExecutionCreateContextParams(contextRoot); |
| 9333 jsonPath + ".enableDeferredLoading", json["enableDeferredLoading"]); | |
| 9334 } | |
| 9335 bool enableEnums; | |
| 9336 if (json.containsKey("enableEnums")) { | |
| 9337 enableEnums = jsonDecoder.decodeBool( | |
| 9338 jsonPath + ".enableEnums", json["enableEnums"]); | |
| 9339 } | |
| 9340 bool enableNullAwareOperators; | |
| 9341 if (json.containsKey("enableNullAwareOperators")) { | |
| 9342 enableNullAwareOperators = jsonDecoder.decodeBool( | |
| 9343 jsonPath + ".enableNullAwareOperators", | |
| 9344 json["enableNullAwareOperators"]); | |
| 9345 } | |
| 9346 bool enableSuperMixins; | |
| 9347 if (json.containsKey("enableSuperMixins")) { | |
| 9348 enableSuperMixins = jsonDecoder.decodeBool( | |
| 9349 jsonPath + ".enableSuperMixins", json["enableSuperMixins"]); | |
| 9350 } | |
| 9351 bool generateDart2jsHints; | |
| 9352 if (json.containsKey("generateDart2jsHints")) { | |
| 9353 generateDart2jsHints = jsonDecoder.decodeBool( | |
| 9354 jsonPath + ".generateDart2jsHints", json["generateDart2jsHints"]); | |
| 9355 } | |
| 9356 bool generateHints; | |
| 9357 if (json.containsKey("generateHints")) { | |
| 9358 generateHints = jsonDecoder.decodeBool( | |
| 9359 jsonPath + ".generateHints", json["generateHints"]); | |
| 9360 } | |
| 9361 bool generateLints; | |
| 9362 if (json.containsKey("generateLints")) { | |
| 9363 generateLints = jsonDecoder.decodeBool( | |
| 9364 jsonPath + ".generateLints", json["generateLints"]); | |
| 9365 } | |
| 9366 return new AnalysisOptions( | |
| 9367 enableAsync: enableAsync, | |
| 9368 enableDeferredLoading: enableDeferredLoading, | |
| 9369 enableEnums: enableEnums, | |
| 9370 enableNullAwareOperators: enableNullAwareOperators, | |
| 9371 enableSuperMixins: enableSuperMixins, | |
| 9372 generateDart2jsHints: generateDart2jsHints, | |
| 9373 generateHints: generateHints, | |
| 9374 generateLints: generateLints); | |
| 9375 } else { | 9095 } else { |
| 9376 throw jsonDecoder.mismatch(jsonPath, "AnalysisOptions", json); | 9096 throw jsonDecoder.mismatch( |
| 9377 } | 9097 jsonPath, "execution.createContext params", json); |
| 9378 } | 9098 } |
| 9379 | 9099 } |
| 9100 |
| 9101 factory ExecutionCreateContextParams.fromRequest(Request request) { |
| 9102 return new ExecutionCreateContextParams.fromJson( |
| 9103 new RequestDecoder(request), "params", request.params); |
| 9104 } |
| 9105 |
| 9106 @override |
| 9380 Map<String, dynamic> toJson() { | 9107 Map<String, dynamic> toJson() { |
| 9381 Map<String, dynamic> result = {}; | 9108 Map<String, dynamic> result = {}; |
| 9382 if (enableAsync != null) { | 9109 result["contextRoot"] = contextRoot; |
| 9383 result["enableAsync"] = enableAsync; | |
| 9384 } | |
| 9385 if (enableDeferredLoading != null) { | |
| 9386 result["enableDeferredLoading"] = enableDeferredLoading; | |
| 9387 } | |
| 9388 if (enableEnums != null) { | |
| 9389 result["enableEnums"] = enableEnums; | |
| 9390 } | |
| 9391 if (enableNullAwareOperators != null) { | |
| 9392 result["enableNullAwareOperators"] = enableNullAwareOperators; | |
| 9393 } | |
| 9394 if (enableSuperMixins != null) { | |
| 9395 result["enableSuperMixins"] = enableSuperMixins; | |
| 9396 } | |
| 9397 if (generateDart2jsHints != null) { | |
| 9398 result["generateDart2jsHints"] = generateDart2jsHints; | |
| 9399 } | |
| 9400 if (generateHints != null) { | |
| 9401 result["generateHints"] = generateHints; | |
| 9402 } | |
| 9403 if (generateLints != null) { | |
| 9404 result["generateLints"] = generateLints; | |
| 9405 } | |
| 9406 return result; | 9110 return result; |
| 9407 } | 9111 } |
| 9408 | 9112 |
| 9409 @override | 9113 @override |
| 9114 Request toRequest(String id) { |
| 9115 return new Request(id, "execution.createContext", toJson()); |
| 9116 } |
| 9117 |
| 9118 @override |
| 9410 String toString() => JSON.encode(toJson()); | 9119 String toString() => JSON.encode(toJson()); |
| 9411 | 9120 |
| 9412 @override | 9121 @override |
| 9413 bool operator ==(other) { | 9122 bool operator ==(other) { |
| 9414 if (other is AnalysisOptions) { | 9123 if (other is ExecutionCreateContextParams) { |
| 9415 return enableAsync == other.enableAsync && | 9124 return contextRoot == other.contextRoot; |
| 9416 enableDeferredLoading == other.enableDeferredLoading && | |
| 9417 enableEnums == other.enableEnums && | |
| 9418 enableNullAwareOperators == other.enableNullAwareOperators && | |
| 9419 enableSuperMixins == other.enableSuperMixins && | |
| 9420 generateDart2jsHints == other.generateDart2jsHints && | |
| 9421 generateHints == other.generateHints && | |
| 9422 generateLints == other.generateLints; | |
| 9423 } | 9125 } |
| 9424 return false; | 9126 return false; |
| 9425 } | 9127 } |
| 9128 |
| 9129 @override |
| 9130 int get hashCode { |
| 9131 int hash = 0; |
| 9132 hash = JenkinsSmiHash.combine(hash, contextRoot.hashCode); |
| 9133 return JenkinsSmiHash.finish(hash); |
| 9134 } |
| 9135 } |
| 9136 |
| 9137 /** |
| 9138 * execution.createContext result |
| 9139 * |
| 9140 * { |
| 9141 * "id": ExecutionContextId |
| 9142 * } |
| 9143 * |
| 9144 * Clients may not extend, implement or mix-in this class. |
| 9145 */ |
| 9146 class ExecutionCreateContextResult implements ResponseResult { |
| 9147 String _id; |
| 9148 |
| 9149 /** |
| 9150 * The identifier used to refer to the execution context that was created. |
| 9151 */ |
| 9152 String get id => _id; |
| 9153 |
| 9154 /** |
| 9155 * The identifier used to refer to the execution context that was created. |
| 9156 */ |
| 9157 void set id(String value) { |
| 9158 assert(value != null); |
| 9159 this._id = value; |
| 9160 } |
| 9161 |
| 9162 ExecutionCreateContextResult(String id) { |
| 9163 this.id = id; |
| 9164 } |
| 9165 |
| 9166 factory ExecutionCreateContextResult.fromJson( |
| 9167 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 9168 if (json == null) { |
| 9169 json = {}; |
| 9170 } |
| 9171 if (json is Map) { |
| 9172 String id; |
| 9173 if (json.containsKey("id")) { |
| 9174 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); |
| 9175 } else { |
| 9176 throw jsonDecoder.mismatch(jsonPath, "id"); |
| 9177 } |
| 9178 return new ExecutionCreateContextResult(id); |
| 9179 } else { |
| 9180 throw jsonDecoder.mismatch( |
| 9181 jsonPath, "execution.createContext result", json); |
| 9182 } |
| 9183 } |
| 9184 |
| 9185 factory ExecutionCreateContextResult.fromResponse(Response response) { |
| 9186 return new ExecutionCreateContextResult.fromJson( |
| 9187 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 9188 "result", |
| 9189 response.result); |
| 9190 } |
| 9191 |
| 9192 @override |
| 9193 Map<String, dynamic> toJson() { |
| 9194 Map<String, dynamic> result = {}; |
| 9195 result["id"] = id; |
| 9196 return result; |
| 9197 } |
| 9198 |
| 9199 @override |
| 9200 Response toResponse(String id) { |
| 9201 return new Response(id, result: toJson()); |
| 9202 } |
| 9203 |
| 9204 @override |
| 9205 String toString() => JSON.encode(toJson()); |
| 9206 |
| 9207 @override |
| 9208 bool operator ==(other) { |
| 9209 if (other is ExecutionCreateContextResult) { |
| 9210 return id == other.id; |
| 9211 } |
| 9212 return false; |
| 9213 } |
| 9214 |
| 9215 @override |
| 9216 int get hashCode { |
| 9217 int hash = 0; |
| 9218 hash = JenkinsSmiHash.combine(hash, id.hashCode); |
| 9219 return JenkinsSmiHash.finish(hash); |
| 9220 } |
| 9221 } |
| 9222 |
| 9223 /** |
| 9224 * execution.deleteContext params |
| 9225 * |
| 9226 * { |
| 9227 * "id": ExecutionContextId |
| 9228 * } |
| 9229 * |
| 9230 * Clients may not extend, implement or mix-in this class. |
| 9231 */ |
| 9232 class ExecutionDeleteContextParams implements RequestParams { |
| 9233 String _id; |
| 9234 |
| 9235 /** |
| 9236 * The identifier of the execution context that is to be deleted. |
| 9237 */ |
| 9238 String get id => _id; |
| 9239 |
| 9240 /** |
| 9241 * The identifier of the execution context that is to be deleted. |
| 9242 */ |
| 9243 void set id(String value) { |
| 9244 assert(value != null); |
| 9245 this._id = value; |
| 9246 } |
| 9247 |
| 9248 ExecutionDeleteContextParams(String id) { |
| 9249 this.id = id; |
| 9250 } |
| 9251 |
| 9252 factory ExecutionDeleteContextParams.fromJson( |
| 9253 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 9254 if (json == null) { |
| 9255 json = {}; |
| 9256 } |
| 9257 if (json is Map) { |
| 9258 String id; |
| 9259 if (json.containsKey("id")) { |
| 9260 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); |
| 9261 } else { |
| 9262 throw jsonDecoder.mismatch(jsonPath, "id"); |
| 9263 } |
| 9264 return new ExecutionDeleteContextParams(id); |
| 9265 } else { |
| 9266 throw jsonDecoder.mismatch( |
| 9267 jsonPath, "execution.deleteContext params", json); |
| 9268 } |
| 9269 } |
| 9270 |
| 9271 factory ExecutionDeleteContextParams.fromRequest(Request request) { |
| 9272 return new ExecutionDeleteContextParams.fromJson( |
| 9273 new RequestDecoder(request), "params", request.params); |
| 9274 } |
| 9275 |
| 9276 @override |
| 9277 Map<String, dynamic> toJson() { |
| 9278 Map<String, dynamic> result = {}; |
| 9279 result["id"] = id; |
| 9280 return result; |
| 9281 } |
| 9282 |
| 9283 @override |
| 9284 Request toRequest(String id) { |
| 9285 return new Request(id, "execution.deleteContext", toJson()); |
| 9286 } |
| 9287 |
| 9288 @override |
| 9289 String toString() => JSON.encode(toJson()); |
| 9290 |
| 9291 @override |
| 9292 bool operator ==(other) { |
| 9293 if (other is ExecutionDeleteContextParams) { |
| 9294 return id == other.id; |
| 9295 } |
| 9296 return false; |
| 9297 } |
| 9298 |
| 9299 @override |
| 9300 int get hashCode { |
| 9301 int hash = 0; |
| 9302 hash = JenkinsSmiHash.combine(hash, id.hashCode); |
| 9303 return JenkinsSmiHash.finish(hash); |
| 9304 } |
| 9305 } |
| 9306 |
| 9307 /** |
| 9308 * execution.deleteContext result |
| 9309 * |
| 9310 * Clients may not extend, implement or mix-in this class. |
| 9311 */ |
| 9312 class ExecutionDeleteContextResult implements ResponseResult { |
| 9313 @override |
| 9314 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 9315 |
| 9316 @override |
| 9317 Response toResponse(String id) { |
| 9318 return new Response(id, result: null); |
| 9319 } |
| 9320 |
| 9321 @override |
| 9322 bool operator ==(other) { |
| 9323 if (other is ExecutionDeleteContextResult) { |
| 9324 return true; |
| 9325 } |
| 9326 return false; |
| 9327 } |
| 9328 |
| 9329 @override |
| 9330 int get hashCode { |
| 9331 return 479954425; |
| 9332 } |
| 9333 } |
| 9334 |
| 9335 /** |
| 9336 * execution.launchData params |
| 9337 * |
| 9338 * { |
| 9339 * "file": FilePath |
| 9340 * "kind": optional ExecutableKind |
| 9341 * "referencedFiles": optional List<FilePath> |
| 9342 * } |
| 9343 * |
| 9344 * Clients may not extend, implement or mix-in this class. |
| 9345 */ |
| 9346 class ExecutionLaunchDataParams implements HasToJson { |
| 9347 String _file; |
| 9348 |
| 9349 ExecutableKind _kind; |
| 9350 |
| 9351 List<String> _referencedFiles; |
| 9352 |
| 9353 /** |
| 9354 * The file for which launch data is being provided. This will either be a |
| 9355 * Dart library or an HTML file. |
| 9356 */ |
| 9357 String get file => _file; |
| 9358 |
| 9359 /** |
| 9360 * The file for which launch data is being provided. This will either be a |
| 9361 * Dart library or an HTML file. |
| 9362 */ |
| 9363 void set file(String value) { |
| 9364 assert(value != null); |
| 9365 this._file = value; |
| 9366 } |
| 9367 |
| 9368 /** |
| 9369 * The kind of the executable file. This field is omitted if the file is not |
| 9370 * a Dart file. |
| 9371 */ |
| 9372 ExecutableKind get kind => _kind; |
| 9373 |
| 9374 /** |
| 9375 * The kind of the executable file. This field is omitted if the file is not |
| 9376 * a Dart file. |
| 9377 */ |
| 9378 void set kind(ExecutableKind value) { |
| 9379 this._kind = value; |
| 9380 } |
| 9381 |
| 9382 /** |
| 9383 * A list of the Dart files that are referenced by the file. This field is |
| 9384 * omitted if the file is not an HTML file. |
| 9385 */ |
| 9386 List<String> get referencedFiles => _referencedFiles; |
| 9387 |
| 9388 /** |
| 9389 * A list of the Dart files that are referenced by the file. This field is |
| 9390 * omitted if the file is not an HTML file. |
| 9391 */ |
| 9392 void set referencedFiles(List<String> value) { |
| 9393 this._referencedFiles = value; |
| 9394 } |
| 9395 |
| 9396 ExecutionLaunchDataParams(String file, |
| 9397 {ExecutableKind kind, List<String> referencedFiles}) { |
| 9398 this.file = file; |
| 9399 this.kind = kind; |
| 9400 this.referencedFiles = referencedFiles; |
| 9401 } |
| 9402 |
| 9403 factory ExecutionLaunchDataParams.fromJson( |
| 9404 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 9405 if (json == null) { |
| 9406 json = {}; |
| 9407 } |
| 9408 if (json is Map) { |
| 9409 String file; |
| 9410 if (json.containsKey("file")) { |
| 9411 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 9412 } else { |
| 9413 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 9414 } |
| 9415 ExecutableKind kind; |
| 9416 if (json.containsKey("kind")) { |
| 9417 kind = new ExecutableKind.fromJson( |
| 9418 jsonDecoder, jsonPath + ".kind", json["kind"]); |
| 9419 } |
| 9420 List<String> referencedFiles; |
| 9421 if (json.containsKey("referencedFiles")) { |
| 9422 referencedFiles = jsonDecoder.decodeList(jsonPath + ".referencedFiles", |
| 9423 json["referencedFiles"], jsonDecoder.decodeString); |
| 9424 } |
| 9425 return new ExecutionLaunchDataParams(file, |
| 9426 kind: kind, referencedFiles: referencedFiles); |
| 9427 } else { |
| 9428 throw jsonDecoder.mismatch(jsonPath, "execution.launchData params", json); |
| 9429 } |
| 9430 } |
| 9431 |
| 9432 factory ExecutionLaunchDataParams.fromNotification( |
| 9433 Notification notification) { |
| 9434 return new ExecutionLaunchDataParams.fromJson( |
| 9435 new ResponseDecoder(null), "params", notification.params); |
| 9436 } |
| 9437 |
| 9438 @override |
| 9439 Map<String, dynamic> toJson() { |
| 9440 Map<String, dynamic> result = {}; |
| 9441 result["file"] = file; |
| 9442 if (kind != null) { |
| 9443 result["kind"] = kind.toJson(); |
| 9444 } |
| 9445 if (referencedFiles != null) { |
| 9446 result["referencedFiles"] = referencedFiles; |
| 9447 } |
| 9448 return result; |
| 9449 } |
| 9450 |
| 9451 Notification toNotification() { |
| 9452 return new Notification("execution.launchData", toJson()); |
| 9453 } |
| 9454 |
| 9455 @override |
| 9456 String toString() => JSON.encode(toJson()); |
| 9457 |
| 9458 @override |
| 9459 bool operator ==(other) { |
| 9460 if (other is ExecutionLaunchDataParams) { |
| 9461 return file == other.file && |
| 9462 kind == other.kind && |
| 9463 listEqual(referencedFiles, other.referencedFiles, |
| 9464 (String a, String b) => a == b); |
| 9465 } |
| 9466 return false; |
| 9467 } |
| 9426 | 9468 |
| 9427 @override | 9469 @override |
| 9428 int get hashCode { | 9470 int get hashCode { |
| 9429 int hash = 0; | 9471 int hash = 0; |
| 9430 hash = JenkinsSmiHash.combine(hash, enableAsync.hashCode); | 9472 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 9431 hash = JenkinsSmiHash.combine(hash, enableDeferredLoading.hashCode); | 9473 hash = JenkinsSmiHash.combine(hash, kind.hashCode); |
| 9432 hash = JenkinsSmiHash.combine(hash, enableEnums.hashCode); | 9474 hash = JenkinsSmiHash.combine(hash, referencedFiles.hashCode); |
| 9433 hash = JenkinsSmiHash.combine(hash, enableNullAwareOperators.hashCode); | |
| 9434 hash = JenkinsSmiHash.combine(hash, enableSuperMixins.hashCode); | |
| 9435 hash = JenkinsSmiHash.combine(hash, generateDart2jsHints.hashCode); | |
| 9436 hash = JenkinsSmiHash.combine(hash, generateHints.hashCode); | |
| 9437 hash = JenkinsSmiHash.combine(hash, generateLints.hashCode); | |
| 9438 return JenkinsSmiHash.finish(hash); | 9475 return JenkinsSmiHash.finish(hash); |
| 9439 } | 9476 } |
| 9440 } | 9477 } |
| 9441 | 9478 |
| 9442 /** | 9479 /** |
| 9443 * AnalysisService | 9480 * execution.mapUri params |
| 9444 * | 9481 * |
| 9445 * enum { | 9482 * { |
| 9446 * FOLDING | 9483 * "id": ExecutionContextId |
| 9447 * HIGHLIGHTS | 9484 * "file": optional FilePath |
| 9448 * IMPLEMENTED | 9485 * "uri": optional String |
| 9449 * INVALIDATE | |
| 9450 * NAVIGATION | |
| 9451 * OCCURRENCES | |
| 9452 * OUTLINE | |
| 9453 * OVERRIDES | |
| 9454 * } | 9486 * } |
| 9455 * | 9487 * |
| 9456 * Clients may not extend, implement or mix-in this class. | 9488 * Clients may not extend, implement or mix-in this class. |
| 9457 */ | 9489 */ |
| 9458 class AnalysisService implements Enum { | 9490 class ExecutionMapUriParams implements RequestParams { |
| 9459 static const AnalysisService FOLDING = const AnalysisService._("FOLDING"); | 9491 String _id; |
| 9460 | 9492 |
| 9461 static const AnalysisService HIGHLIGHTS = | 9493 String _file; |
| 9462 const AnalysisService._("HIGHLIGHTS"); | |
| 9463 | 9494 |
| 9464 static const AnalysisService IMPLEMENTED = | 9495 String _uri; |
| 9465 const AnalysisService._("IMPLEMENTED"); | |
| 9466 | 9496 |
| 9467 /** | 9497 /** |
| 9468 * This service is not currently implemented and will become a | 9498 * The identifier of the execution context in which the URI is to be mapped. |
| 9469 * GeneralAnalysisService in a future release. | |
| 9470 */ | 9499 */ |
| 9471 static const AnalysisService INVALIDATE = | 9500 String get id => _id; |
| 9472 const AnalysisService._("INVALIDATE"); | |
| 9473 | |
| 9474 static const AnalysisService NAVIGATION = | |
| 9475 const AnalysisService._("NAVIGATION"); | |
| 9476 | |
| 9477 static const AnalysisService OCCURRENCES = | |
| 9478 const AnalysisService._("OCCURRENCES"); | |
| 9479 | |
| 9480 static const AnalysisService OUTLINE = const AnalysisService._("OUTLINE"); | |
| 9481 | |
| 9482 static const AnalysisService OVERRIDES = const AnalysisService._("OVERRIDES"); | |
| 9483 | 9501 |
| 9484 /** | 9502 /** |
| 9485 * A list containing all of the enum values that are defined. | 9503 * The identifier of the execution context in which the URI is to be mapped. |
| 9486 */ | 9504 */ |
| 9487 static const List<AnalysisService> VALUES = const <AnalysisService>[ | 9505 void set id(String value) { |
| 9488 FOLDING, | |
| 9489 HIGHLIGHTS, | |
| 9490 IMPLEMENTED, | |
| 9491 INVALIDATE, | |
| 9492 NAVIGATION, | |
| 9493 OCCURRENCES, | |
| 9494 OUTLINE, | |
| 9495 OVERRIDES | |
| 9496 ]; | |
| 9497 | |
| 9498 final String name; | |
| 9499 | |
| 9500 const AnalysisService._(this.name); | |
| 9501 | |
| 9502 factory AnalysisService(String name) { | |
| 9503 switch (name) { | |
| 9504 case "FOLDING": | |
| 9505 return FOLDING; | |
| 9506 case "HIGHLIGHTS": | |
| 9507 return HIGHLIGHTS; | |
| 9508 case "IMPLEMENTED": | |
| 9509 return IMPLEMENTED; | |
| 9510 case "INVALIDATE": | |
| 9511 return INVALIDATE; | |
| 9512 case "NAVIGATION": | |
| 9513 return NAVIGATION; | |
| 9514 case "OCCURRENCES": | |
| 9515 return OCCURRENCES; | |
| 9516 case "OUTLINE": | |
| 9517 return OUTLINE; | |
| 9518 case "OVERRIDES": | |
| 9519 return OVERRIDES; | |
| 9520 } | |
| 9521 throw new Exception('Illegal enum value: $name'); | |
| 9522 } | |
| 9523 | |
| 9524 factory AnalysisService.fromJson( | |
| 9525 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 9526 if (json is String) { | |
| 9527 try { | |
| 9528 return new AnalysisService(json); | |
| 9529 } catch (_) { | |
| 9530 // Fall through | |
| 9531 } | |
| 9532 } | |
| 9533 throw jsonDecoder.mismatch(jsonPath, "AnalysisService", json); | |
| 9534 } | |
| 9535 | |
| 9536 @override | |
| 9537 String toString() => "AnalysisService.$name"; | |
| 9538 | |
| 9539 String toJson() => name; | |
| 9540 } | |
| 9541 | |
| 9542 /** | |
| 9543 * AnalysisStatus | |
| 9544 * | |
| 9545 * { | |
| 9546 * "isAnalyzing": bool | |
| 9547 * "analysisTarget": optional String | |
| 9548 * } | |
| 9549 * | |
| 9550 * Clients may not extend, implement or mix-in this class. | |
| 9551 */ | |
| 9552 class AnalysisStatus implements HasToJson { | |
| 9553 bool _isAnalyzing; | |
| 9554 | |
| 9555 String _analysisTarget; | |
| 9556 | |
| 9557 /** | |
| 9558 * True if analysis is currently being performed. | |
| 9559 */ | |
| 9560 bool get isAnalyzing => _isAnalyzing; | |
| 9561 | |
| 9562 /** | |
| 9563 * True if analysis is currently being performed. | |
| 9564 */ | |
| 9565 void set isAnalyzing(bool value) { | |
| 9566 assert(value != null); | 9506 assert(value != null); |
| 9567 this._isAnalyzing = value; | 9507 this._id = value; |
| 9568 } | 9508 } |
| 9569 | 9509 |
| 9570 /** | 9510 /** |
| 9571 * The name of the current target of analysis. This field is omitted if | 9511 * The path of the file to be mapped into a URI. |
| 9572 * analyzing is false. | |
| 9573 */ | 9512 */ |
| 9574 String get analysisTarget => _analysisTarget; | 9513 String get file => _file; |
| 9575 | 9514 |
| 9576 /** | 9515 /** |
| 9577 * The name of the current target of analysis. This field is omitted if | 9516 * The path of the file to be mapped into a URI. |
| 9578 * analyzing is false. | |
| 9579 */ | 9517 */ |
| 9580 void set analysisTarget(String value) { | 9518 void set file(String value) { |
| 9581 this._analysisTarget = value; | 9519 this._file = value; |
| 9582 } | 9520 } |
| 9583 | 9521 |
| 9584 AnalysisStatus(bool isAnalyzing, {String analysisTarget}) { | 9522 /** |
| 9585 this.isAnalyzing = isAnalyzing; | 9523 * The URI to be mapped into a file path. |
| 9586 this.analysisTarget = analysisTarget; | 9524 */ |
| 9525 String get uri => _uri; |
| 9526 |
| 9527 /** |
| 9528 * The URI to be mapped into a file path. |
| 9529 */ |
| 9530 void set uri(String value) { |
| 9531 this._uri = value; |
| 9587 } | 9532 } |
| 9588 | 9533 |
| 9589 factory AnalysisStatus.fromJson( | 9534 ExecutionMapUriParams(String id, {String file, String uri}) { |
| 9535 this.id = id; |
| 9536 this.file = file; |
| 9537 this.uri = uri; |
| 9538 } |
| 9539 |
| 9540 factory ExecutionMapUriParams.fromJson( |
| 9590 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 9541 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 9591 if (json == null) { | 9542 if (json == null) { |
| 9592 json = {}; | 9543 json = {}; |
| 9593 } | 9544 } |
| 9594 if (json is Map) { | 9545 if (json is Map) { |
| 9595 bool isAnalyzing; | 9546 String id; |
| 9596 if (json.containsKey("isAnalyzing")) { | 9547 if (json.containsKey("id")) { |
| 9597 isAnalyzing = jsonDecoder.decodeBool( | 9548 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); |
| 9598 jsonPath + ".isAnalyzing", json["isAnalyzing"]); | |
| 9599 } else { | 9549 } else { |
| 9600 throw jsonDecoder.missingKey(jsonPath, "isAnalyzing"); | 9550 throw jsonDecoder.mismatch(jsonPath, "id"); |
| 9601 } | 9551 } |
| 9602 String analysisTarget; | 9552 String file; |
| 9603 if (json.containsKey("analysisTarget")) { | 9553 if (json.containsKey("file")) { |
| 9604 analysisTarget = jsonDecoder.decodeString( | 9554 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 9605 jsonPath + ".analysisTarget", json["analysisTarget"]); | |
| 9606 } | 9555 } |
| 9607 return new AnalysisStatus(isAnalyzing, analysisTarget: analysisTarget); | 9556 String uri; |
| 9557 if (json.containsKey("uri")) { |
| 9558 uri = jsonDecoder.decodeString(jsonPath + ".uri", json["uri"]); |
| 9559 } |
| 9560 return new ExecutionMapUriParams(id, file: file, uri: uri); |
| 9608 } else { | 9561 } else { |
| 9609 throw jsonDecoder.mismatch(jsonPath, "AnalysisStatus", json); | 9562 throw jsonDecoder.mismatch(jsonPath, "execution.mapUri params", json); |
| 9610 } | 9563 } |
| 9611 } | 9564 } |
| 9612 | 9565 |
| 9566 factory ExecutionMapUriParams.fromRequest(Request request) { |
| 9567 return new ExecutionMapUriParams.fromJson( |
| 9568 new RequestDecoder(request), "params", request.params); |
| 9569 } |
| 9570 |
| 9571 @override |
| 9613 Map<String, dynamic> toJson() { | 9572 Map<String, dynamic> toJson() { |
| 9614 Map<String, dynamic> result = {}; | 9573 Map<String, dynamic> result = {}; |
| 9615 result["isAnalyzing"] = isAnalyzing; | 9574 result["id"] = id; |
| 9616 if (analysisTarget != null) { | 9575 if (file != null) { |
| 9617 result["analysisTarget"] = analysisTarget; | 9576 result["file"] = file; |
| 9577 } |
| 9578 if (uri != null) { |
| 9579 result["uri"] = uri; |
| 9618 } | 9580 } |
| 9619 return result; | 9581 return result; |
| 9620 } | 9582 } |
| 9621 | 9583 |
| 9622 @override | 9584 @override |
| 9585 Request toRequest(String id) { |
| 9586 return new Request(id, "execution.mapUri", toJson()); |
| 9587 } |
| 9588 |
| 9589 @override |
| 9623 String toString() => JSON.encode(toJson()); | 9590 String toString() => JSON.encode(toJson()); |
| 9624 | 9591 |
| 9625 @override | 9592 @override |
| 9626 bool operator ==(other) { | 9593 bool operator ==(other) { |
| 9627 if (other is AnalysisStatus) { | 9594 if (other is ExecutionMapUriParams) { |
| 9628 return isAnalyzing == other.isAnalyzing && | 9595 return id == other.id && file == other.file && uri == other.uri; |
| 9629 analysisTarget == other.analysisTarget; | |
| 9630 } | 9596 } |
| 9631 return false; | 9597 return false; |
| 9632 } | 9598 } |
| 9633 | 9599 |
| 9634 @override | 9600 @override |
| 9635 int get hashCode { | 9601 int get hashCode { |
| 9636 int hash = 0; | 9602 int hash = 0; |
| 9637 hash = JenkinsSmiHash.combine(hash, isAnalyzing.hashCode); | 9603 hash = JenkinsSmiHash.combine(hash, id.hashCode); |
| 9638 hash = JenkinsSmiHash.combine(hash, analysisTarget.hashCode); | 9604 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 9605 hash = JenkinsSmiHash.combine(hash, uri.hashCode); |
| 9639 return JenkinsSmiHash.finish(hash); | 9606 return JenkinsSmiHash.finish(hash); |
| 9640 } | 9607 } |
| 9641 } | 9608 } |
| 9642 | 9609 |
| 9643 /** | 9610 /** |
| 9644 * ChangeContentOverlay | 9611 * execution.mapUri result |
| 9645 * | 9612 * |
| 9646 * { | 9613 * { |
| 9647 * "type": "change" | 9614 * "file": optional FilePath |
| 9648 * "edits": List<SourceEdit> | 9615 * "uri": optional String |
| 9649 * } | 9616 * } |
| 9650 * | 9617 * |
| 9651 * Clients may not extend, implement or mix-in this class. | 9618 * Clients may not extend, implement or mix-in this class. |
| 9652 */ | 9619 */ |
| 9653 class ChangeContentOverlay implements HasToJson { | 9620 class ExecutionMapUriResult implements ResponseResult { |
| 9654 List<SourceEdit> _edits; | 9621 String _file; |
| 9622 |
| 9623 String _uri; |
| 9655 | 9624 |
| 9656 /** | 9625 /** |
| 9657 * The edits to be applied to the file. | 9626 * The file to which the URI was mapped. This field is omitted if the uri |
| 9627 * field was not given in the request. |
| 9658 */ | 9628 */ |
| 9659 List<SourceEdit> get edits => _edits; | 9629 String get file => _file; |
| 9660 | 9630 |
| 9661 /** | 9631 /** |
| 9662 * The edits to be applied to the file. | 9632 * The file to which the URI was mapped. This field is omitted if the uri |
| 9633 * field was not given in the request. |
| 9663 */ | 9634 */ |
| 9664 void set edits(List<SourceEdit> value) { | 9635 void set file(String value) { |
| 9665 assert(value != null); | 9636 this._file = value; |
| 9666 this._edits = value; | |
| 9667 } | 9637 } |
| 9668 | 9638 |
| 9669 ChangeContentOverlay(List<SourceEdit> edits) { | 9639 /** |
| 9670 this.edits = edits; | 9640 * The URI to which the file path was mapped. This field is omitted if the |
| 9641 * file field was not given in the request. |
| 9642 */ |
| 9643 String get uri => _uri; |
| 9644 |
| 9645 /** |
| 9646 * The URI to which the file path was mapped. This field is omitted if the |
| 9647 * file field was not given in the request. |
| 9648 */ |
| 9649 void set uri(String value) { |
| 9650 this._uri = value; |
| 9671 } | 9651 } |
| 9672 | 9652 |
| 9673 factory ChangeContentOverlay.fromJson( | 9653 ExecutionMapUriResult({String file, String uri}) { |
| 9654 this.file = file; |
| 9655 this.uri = uri; |
| 9656 } |
| 9657 |
| 9658 factory ExecutionMapUriResult.fromJson( |
| 9674 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 9659 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 9675 if (json == null) { | 9660 if (json == null) { |
| 9676 json = {}; | 9661 json = {}; |
| 9677 } | 9662 } |
| 9678 if (json is Map) { | 9663 if (json is Map) { |
| 9679 if (json["type"] != "change") { | 9664 String file; |
| 9680 throw jsonDecoder.mismatch(jsonPath, "equal " + "change", json); | 9665 if (json.containsKey("file")) { |
| 9666 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 9681 } | 9667 } |
| 9682 List<SourceEdit> edits; | 9668 String uri; |
| 9683 if (json.containsKey("edits")) { | 9669 if (json.containsKey("uri")) { |
| 9684 edits = jsonDecoder.decodeList( | 9670 uri = jsonDecoder.decodeString(jsonPath + ".uri", json["uri"]); |
| 9685 jsonPath + ".edits", | |
| 9686 json["edits"], | |
| 9687 (String jsonPath, Object json) => | |
| 9688 new SourceEdit.fromJson(jsonDecoder, jsonPath, json)); | |
| 9689 } else { | |
| 9690 throw jsonDecoder.missingKey(jsonPath, "edits"); | |
| 9691 } | 9671 } |
| 9692 return new ChangeContentOverlay(edits); | 9672 return new ExecutionMapUriResult(file: file, uri: uri); |
| 9693 } else { | 9673 } else { |
| 9694 throw jsonDecoder.mismatch(jsonPath, "ChangeContentOverlay", json); | 9674 throw jsonDecoder.mismatch(jsonPath, "execution.mapUri result", json); |
| 9695 } | 9675 } |
| 9696 } | 9676 } |
| 9697 | 9677 |
| 9678 factory ExecutionMapUriResult.fromResponse(Response response) { |
| 9679 return new ExecutionMapUriResult.fromJson( |
| 9680 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 9681 "result", |
| 9682 response.result); |
| 9683 } |
| 9684 |
| 9685 @override |
| 9698 Map<String, dynamic> toJson() { | 9686 Map<String, dynamic> toJson() { |
| 9699 Map<String, dynamic> result = {}; | 9687 Map<String, dynamic> result = {}; |
| 9700 result["type"] = "change"; | 9688 if (file != null) { |
| 9701 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList(); | 9689 result["file"] = file; |
| 9690 } |
| 9691 if (uri != null) { |
| 9692 result["uri"] = uri; |
| 9693 } |
| 9702 return result; | 9694 return result; |
| 9703 } | 9695 } |
| 9704 | 9696 |
| 9705 @override | 9697 @override |
| 9698 Response toResponse(String id) { |
| 9699 return new Response(id, result: toJson()); |
| 9700 } |
| 9701 |
| 9702 @override |
| 9706 String toString() => JSON.encode(toJson()); | 9703 String toString() => JSON.encode(toJson()); |
| 9707 | 9704 |
| 9708 @override | 9705 @override |
| 9709 bool operator ==(other) { | 9706 bool operator ==(other) { |
| 9710 if (other is ChangeContentOverlay) { | 9707 if (other is ExecutionMapUriResult) { |
| 9711 return listEqual( | 9708 return file == other.file && uri == other.uri; |
| 9712 edits, other.edits, (SourceEdit a, SourceEdit b) => a == b); | |
| 9713 } | 9709 } |
| 9714 return false; | 9710 return false; |
| 9715 } | 9711 } |
| 9716 | 9712 |
| 9717 @override | 9713 @override |
| 9718 int get hashCode { | 9714 int get hashCode { |
| 9719 int hash = 0; | 9715 int hash = 0; |
| 9720 hash = JenkinsSmiHash.combine(hash, 873118866); | 9716 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 9721 hash = JenkinsSmiHash.combine(hash, edits.hashCode); | 9717 hash = JenkinsSmiHash.combine(hash, uri.hashCode); |
| 9722 return JenkinsSmiHash.finish(hash); | 9718 return JenkinsSmiHash.finish(hash); |
| 9723 } | 9719 } |
| 9724 } | 9720 } |
| 9725 | 9721 |
| 9726 /** | 9722 /** |
| 9727 * CompletionSuggestion | 9723 * ExecutionService |
| 9728 * | 9724 * |
| 9729 * { | 9725 * enum { |
| 9730 * "kind": CompletionSuggestionKind | 9726 * LAUNCH_DATA |
| 9731 * "relevance": int | |
| 9732 * "completion": String | |
| 9733 * "selectionOffset": int | |
| 9734 * "selectionLength": int | |
| 9735 * "isDeprecated": bool | |
| 9736 * "isPotential": bool | |
| 9737 * "docSummary": optional String | |
| 9738 * "docComplete": optional String | |
| 9739 * "declaringType": optional String | |
| 9740 * "defaultArgumentListString": optional String | |
| 9741 * "defaultArgumentListTextRanges": optional List<int> | |
| 9742 * "element": optional Element | |
| 9743 * "returnType": optional String | |
| 9744 * "parameterNames": optional List<String> | |
| 9745 * "parameterTypes": optional List<String> | |
| 9746 * "requiredParameterCount": optional int | |
| 9747 * "hasNamedParameters": optional bool | |
| 9748 * "parameterName": optional String | |
| 9749 * "parameterType": optional String | |
| 9750 * "importUri": optional String | |
| 9751 * } | 9727 * } |
| 9752 * | 9728 * |
| 9753 * Clients may not extend, implement or mix-in this class. | 9729 * Clients may not extend, implement or mix-in this class. |
| 9754 */ | 9730 */ |
| 9755 class CompletionSuggestion implements HasToJson { | 9731 class ExecutionService implements Enum { |
| 9756 CompletionSuggestionKind _kind; | 9732 static const ExecutionService LAUNCH_DATA = |
| 9757 | 9733 const ExecutionService._("LAUNCH_DATA"); |
| 9758 int _relevance; | 9734 |
| 9759 | 9735 /** |
| 9760 String _completion; | 9736 * A list containing all of the enum values that are defined. |
| 9761 | 9737 */ |
| 9762 int _selectionOffset; | 9738 static const List<ExecutionService> VALUES = const <ExecutionService>[ |
| 9763 | 9739 LAUNCH_DATA |
| 9764 int _selectionLength; | 9740 ]; |
| 9765 | 9741 |
| 9766 bool _isDeprecated; | 9742 @override |
| 9767 | 9743 final String name; |
| 9768 bool _isPotential; | 9744 |
| 9769 | 9745 const ExecutionService._(this.name); |
| 9770 String _docSummary; | 9746 |
| 9771 | 9747 factory ExecutionService(String name) { |
| 9772 String _docComplete; | 9748 switch (name) { |
| 9773 | 9749 case "LAUNCH_DATA": |
| 9774 String _declaringType; | 9750 return LAUNCH_DATA; |
| 9775 | 9751 } |
| 9776 String _defaultArgumentListString; | 9752 throw new Exception('Illegal enum value: $name'); |
| 9777 | 9753 } |
| 9778 List<int> _defaultArgumentListTextRanges; | 9754 |
| 9779 | 9755 factory ExecutionService.fromJson( |
| 9780 Element _element; | 9756 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 9781 | 9757 if (json is String) { |
| 9782 String _returnType; | 9758 try { |
| 9783 | 9759 return new ExecutionService(json); |
| 9784 List<String> _parameterNames; | 9760 } catch (_) { |
| 9785 | 9761 // Fall through |
| 9786 List<String> _parameterTypes; | 9762 } |
| 9787 | 9763 } |
| 9788 int _requiredParameterCount; | 9764 throw jsonDecoder.mismatch(jsonPath, "ExecutionService", json); |
| 9789 | 9765 } |
| 9790 bool _hasNamedParameters; | 9766 |
| 9791 | 9767 @override |
| 9792 String _parameterName; | 9768 String toString() => "ExecutionService.$name"; |
| 9793 | 9769 |
| 9794 String _parameterType; | 9770 String toJson() => name; |
| 9795 | 9771 } |
| 9796 String _importUri; | 9772 |
| 9797 | 9773 /** |
| 9798 /** | 9774 * execution.setSubscriptions params |
| 9799 * The kind of element being suggested. | 9775 * |
| 9800 */ | 9776 * { |
| 9801 CompletionSuggestionKind get kind => _kind; | 9777 * "subscriptions": List<ExecutionService> |
| 9802 | 9778 * } |
| 9803 /** | 9779 * |
| 9804 * The kind of element being suggested. | 9780 * Clients may not extend, implement or mix-in this class. |
| 9805 */ | 9781 */ |
| 9806 void set kind(CompletionSuggestionKind value) { | 9782 class ExecutionSetSubscriptionsParams implements RequestParams { |
| 9807 assert(value != null); | 9783 List<ExecutionService> _subscriptions; |
| 9808 this._kind = value; | 9784 |
| 9809 } | 9785 /** |
| 9810 | 9786 * A list of the services being subscribed to. |
| 9811 /** | 9787 */ |
| 9812 * The relevance of this completion suggestion where a higher number | 9788 List<ExecutionService> get subscriptions => _subscriptions; |
| 9813 * indicates a higher relevance. | 9789 |
| 9814 */ | 9790 /** |
| 9815 int get relevance => _relevance; | 9791 * A list of the services being subscribed to. |
| 9816 | 9792 */ |
| 9817 /** | 9793 void set subscriptions(List<ExecutionService> value) { |
| 9818 * The relevance of this completion suggestion where a higher number | 9794 assert(value != null); |
| 9819 * indicates a higher relevance. | 9795 this._subscriptions = value; |
| 9820 */ | 9796 } |
| 9821 void set relevance(int value) { | 9797 |
| 9822 assert(value != null); | 9798 ExecutionSetSubscriptionsParams(List<ExecutionService> subscriptions) { |
| 9823 this._relevance = value; | 9799 this.subscriptions = subscriptions; |
| 9824 } | 9800 } |
| 9825 | 9801 |
| 9826 /** | 9802 factory ExecutionSetSubscriptionsParams.fromJson( |
| 9827 * The identifier to be inserted if the suggestion is selected. If the | |
| 9828 * suggestion is for a method or function, the client might want to | |
| 9829 * additionally insert a template for the parameters. The information | |
| 9830 * required in order to do so is contained in other fields. | |
| 9831 */ | |
| 9832 String get completion => _completion; | |
| 9833 | |
| 9834 /** | |
| 9835 * The identifier to be inserted if the suggestion is selected. If the | |
| 9836 * suggestion is for a method or function, the client might want to | |
| 9837 * additionally insert a template for the parameters. The information | |
| 9838 * required in order to do so is contained in other fields. | |
| 9839 */ | |
| 9840 void set completion(String value) { | |
| 9841 assert(value != null); | |
| 9842 this._completion = value; | |
| 9843 } | |
| 9844 | |
| 9845 /** | |
| 9846 * The offset, relative to the beginning of the completion, of where the | |
| 9847 * selection should be placed after insertion. | |
| 9848 */ | |
| 9849 int get selectionOffset => _selectionOffset; | |
| 9850 | |
| 9851 /** | |
| 9852 * The offset, relative to the beginning of the completion, of where the | |
| 9853 * selection should be placed after insertion. | |
| 9854 */ | |
| 9855 void set selectionOffset(int value) { | |
| 9856 assert(value != null); | |
| 9857 this._selectionOffset = value; | |
| 9858 } | |
| 9859 | |
| 9860 /** | |
| 9861 * The number of characters that should be selected after insertion. | |
| 9862 */ | |
| 9863 int get selectionLength => _selectionLength; | |
| 9864 | |
| 9865 /** | |
| 9866 * The number of characters that should be selected after insertion. | |
| 9867 */ | |
| 9868 void set selectionLength(int value) { | |
| 9869 assert(value != null); | |
| 9870 this._selectionLength = value; | |
| 9871 } | |
| 9872 | |
| 9873 /** | |
| 9874 * True if the suggested element is deprecated. | |
| 9875 */ | |
| 9876 bool get isDeprecated => _isDeprecated; | |
| 9877 | |
| 9878 /** | |
| 9879 * True if the suggested element is deprecated. | |
| 9880 */ | |
| 9881 void set isDeprecated(bool value) { | |
| 9882 assert(value != null); | |
| 9883 this._isDeprecated = value; | |
| 9884 } | |
| 9885 | |
| 9886 /** | |
| 9887 * True if the element is not known to be valid for the target. This happens | |
| 9888 * if the type of the target is dynamic. | |
| 9889 */ | |
| 9890 bool get isPotential => _isPotential; | |
| 9891 | |
| 9892 /** | |
| 9893 * True if the element is not known to be valid for the target. This happens | |
| 9894 * if the type of the target is dynamic. | |
| 9895 */ | |
| 9896 void set isPotential(bool value) { | |
| 9897 assert(value != null); | |
| 9898 this._isPotential = value; | |
| 9899 } | |
| 9900 | |
| 9901 /** | |
| 9902 * An abbreviated version of the Dartdoc associated with the element being | |
| 9903 * suggested, This field is omitted if there is no Dartdoc associated with | |
| 9904 * the element. | |
| 9905 */ | |
| 9906 String get docSummary => _docSummary; | |
| 9907 | |
| 9908 /** | |
| 9909 * An abbreviated version of the Dartdoc associated with the element being | |
| 9910 * suggested, This field is omitted if there is no Dartdoc associated with | |
| 9911 * the element. | |
| 9912 */ | |
| 9913 void set docSummary(String value) { | |
| 9914 this._docSummary = value; | |
| 9915 } | |
| 9916 | |
| 9917 /** | |
| 9918 * The Dartdoc associated with the element being suggested, This field is | |
| 9919 * omitted if there is no Dartdoc associated with the element. | |
| 9920 */ | |
| 9921 String get docComplete => _docComplete; | |
| 9922 | |
| 9923 /** | |
| 9924 * The Dartdoc associated with the element being suggested, This field is | |
| 9925 * omitted if there is no Dartdoc associated with the element. | |
| 9926 */ | |
| 9927 void set docComplete(String value) { | |
| 9928 this._docComplete = value; | |
| 9929 } | |
| 9930 | |
| 9931 /** | |
| 9932 * The class that declares the element being suggested. This field is omitted | |
| 9933 * if the suggested element is not a member of a class. | |
| 9934 */ | |
| 9935 String get declaringType => _declaringType; | |
| 9936 | |
| 9937 /** | |
| 9938 * The class that declares the element being suggested. This field is omitted | |
| 9939 * if the suggested element is not a member of a class. | |
| 9940 */ | |
| 9941 void set declaringType(String value) { | |
| 9942 this._declaringType = value; | |
| 9943 } | |
| 9944 | |
| 9945 /** | |
| 9946 * A default String for use in generating argument list source contents on | |
| 9947 * the client side. | |
| 9948 */ | |
| 9949 String get defaultArgumentListString => _defaultArgumentListString; | |
| 9950 | |
| 9951 /** | |
| 9952 * A default String for use in generating argument list source contents on | |
| 9953 * the client side. | |
| 9954 */ | |
| 9955 void set defaultArgumentListString(String value) { | |
| 9956 this._defaultArgumentListString = value; | |
| 9957 } | |
| 9958 | |
| 9959 /** | |
| 9960 * Pairs of offsets and lengths describing 'defaultArgumentListString' text | |
| 9961 * ranges suitable for use by clients to set up linked edits of default | |
| 9962 * argument source contents. For example, given an argument list string 'x, | |
| 9963 * y', the corresponding text range [0, 1, 3, 1], indicates two text ranges | |
| 9964 * of length 1, starting at offsets 0 and 3. Clients can use these ranges to | |
| 9965 * treat the 'x' and 'y' values specially for linked edits. | |
| 9966 */ | |
| 9967 List<int> get defaultArgumentListTextRanges => _defaultArgumentListTextRanges; | |
| 9968 | |
| 9969 /** | |
| 9970 * Pairs of offsets and lengths describing 'defaultArgumentListString' text | |
| 9971 * ranges suitable for use by clients to set up linked edits of default | |
| 9972 * argument source contents. For example, given an argument list string 'x, | |
| 9973 * y', the corresponding text range [0, 1, 3, 1], indicates two text ranges | |
| 9974 * of length 1, starting at offsets 0 and 3. Clients can use these ranges to | |
| 9975 * treat the 'x' and 'y' values specially for linked edits. | |
| 9976 */ | |
| 9977 void set defaultArgumentListTextRanges(List<int> value) { | |
| 9978 this._defaultArgumentListTextRanges = value; | |
| 9979 } | |
| 9980 | |
| 9981 /** | |
| 9982 * Information about the element reference being suggested. | |
| 9983 */ | |
| 9984 Element get element => _element; | |
| 9985 | |
| 9986 /** | |
| 9987 * Information about the element reference being suggested. | |
| 9988 */ | |
| 9989 void set element(Element value) { | |
| 9990 this._element = value; | |
| 9991 } | |
| 9992 | |
| 9993 /** | |
| 9994 * The return type of the getter, function or method or the type of the field | |
| 9995 * being suggested. This field is omitted if the suggested element is not a | |
| 9996 * getter, function or method. | |
| 9997 */ | |
| 9998 String get returnType => _returnType; | |
| 9999 | |
| 10000 /** | |
| 10001 * The return type of the getter, function or method or the type of the field | |
| 10002 * being suggested. This field is omitted if the suggested element is not a | |
| 10003 * getter, function or method. | |
| 10004 */ | |
| 10005 void set returnType(String value) { | |
| 10006 this._returnType = value; | |
| 10007 } | |
| 10008 | |
| 10009 /** | |
| 10010 * The names of the parameters of the function or method being suggested. | |
| 10011 * This field is omitted if the suggested element is not a setter, function | |
| 10012 * or method. | |
| 10013 */ | |
| 10014 List<String> get parameterNames => _parameterNames; | |
| 10015 | |
| 10016 /** | |
| 10017 * The names of the parameters of the function or method being suggested. | |
| 10018 * This field is omitted if the suggested element is not a setter, function | |
| 10019 * or method. | |
| 10020 */ | |
| 10021 void set parameterNames(List<String> value) { | |
| 10022 this._parameterNames = value; | |
| 10023 } | |
| 10024 | |
| 10025 /** | |
| 10026 * The types of the parameters of the function or method being suggested. | |
| 10027 * This field is omitted if the parameterNames field is omitted. | |
| 10028 */ | |
| 10029 List<String> get parameterTypes => _parameterTypes; | |
| 10030 | |
| 10031 /** | |
| 10032 * The types of the parameters of the function or method being suggested. | |
| 10033 * This field is omitted if the parameterNames field is omitted. | |
| 10034 */ | |
| 10035 void set parameterTypes(List<String> value) { | |
| 10036 this._parameterTypes = value; | |
| 10037 } | |
| 10038 | |
| 10039 /** | |
| 10040 * The number of required parameters for the function or method being | |
| 10041 * suggested. This field is omitted if the parameterNames field is omitted. | |
| 10042 */ | |
| 10043 int get requiredParameterCount => _requiredParameterCount; | |
| 10044 | |
| 10045 /** | |
| 10046 * The number of required parameters for the function or method being | |
| 10047 * suggested. This field is omitted if the parameterNames field is omitted. | |
| 10048 */ | |
| 10049 void set requiredParameterCount(int value) { | |
| 10050 this._requiredParameterCount = value; | |
| 10051 } | |
| 10052 | |
| 10053 /** | |
| 10054 * True if the function or method being suggested has at least one named | |
| 10055 * parameter. This field is omitted if the parameterNames field is omitted. | |
| 10056 */ | |
| 10057 bool get hasNamedParameters => _hasNamedParameters; | |
| 10058 | |
| 10059 /** | |
| 10060 * True if the function or method being suggested has at least one named | |
| 10061 * parameter. This field is omitted if the parameterNames field is omitted. | |
| 10062 */ | |
| 10063 void set hasNamedParameters(bool value) { | |
| 10064 this._hasNamedParameters = value; | |
| 10065 } | |
| 10066 | |
| 10067 /** | |
| 10068 * The name of the optional parameter being suggested. This field is omitted | |
| 10069 * if the suggestion is not the addition of an optional argument within an | |
| 10070 * argument list. | |
| 10071 */ | |
| 10072 String get parameterName => _parameterName; | |
| 10073 | |
| 10074 /** | |
| 10075 * The name of the optional parameter being suggested. This field is omitted | |
| 10076 * if the suggestion is not the addition of an optional argument within an | |
| 10077 * argument list. | |
| 10078 */ | |
| 10079 void set parameterName(String value) { | |
| 10080 this._parameterName = value; | |
| 10081 } | |
| 10082 | |
| 10083 /** | |
| 10084 * The type of the options parameter being suggested. This field is omitted | |
| 10085 * if the parameterName field is omitted. | |
| 10086 */ | |
| 10087 String get parameterType => _parameterType; | |
| 10088 | |
| 10089 /** | |
| 10090 * The type of the options parameter being suggested. This field is omitted | |
| 10091 * if the parameterName field is omitted. | |
| 10092 */ | |
| 10093 void set parameterType(String value) { | |
| 10094 this._parameterType = value; | |
| 10095 } | |
| 10096 | |
| 10097 /** | |
| 10098 * The import to be added if the suggestion is out of scope and needs an | |
| 10099 * import to be added to be in scope. | |
| 10100 */ | |
| 10101 String get importUri => _importUri; | |
| 10102 | |
| 10103 /** | |
| 10104 * The import to be added if the suggestion is out of scope and needs an | |
| 10105 * import to be added to be in scope. | |
| 10106 */ | |
| 10107 void set importUri(String value) { | |
| 10108 this._importUri = value; | |
| 10109 } | |
| 10110 | |
| 10111 CompletionSuggestion( | |
| 10112 CompletionSuggestionKind kind, | |
| 10113 int relevance, | |
| 10114 String completion, | |
| 10115 int selectionOffset, | |
| 10116 int selectionLength, | |
| 10117 bool isDeprecated, | |
| 10118 bool isPotential, | |
| 10119 {String docSummary, | |
| 10120 String docComplete, | |
| 10121 String declaringType, | |
| 10122 String defaultArgumentListString, | |
| 10123 List<int> defaultArgumentListTextRanges, | |
| 10124 Element element, | |
| 10125 String returnType, | |
| 10126 List<String> parameterNames, | |
| 10127 List<String> parameterTypes, | |
| 10128 int requiredParameterCount, | |
| 10129 bool hasNamedParameters, | |
| 10130 String parameterName, | |
| 10131 String parameterType, | |
| 10132 String importUri}) { | |
| 10133 this.kind = kind; | |
| 10134 this.relevance = relevance; | |
| 10135 this.completion = completion; | |
| 10136 this.selectionOffset = selectionOffset; | |
| 10137 this.selectionLength = selectionLength; | |
| 10138 this.isDeprecated = isDeprecated; | |
| 10139 this.isPotential = isPotential; | |
| 10140 this.docSummary = docSummary; | |
| 10141 this.docComplete = docComplete; | |
| 10142 this.declaringType = declaringType; | |
| 10143 this.defaultArgumentListString = defaultArgumentListString; | |
| 10144 this.defaultArgumentListTextRanges = defaultArgumentListTextRanges; | |
| 10145 this.element = element; | |
| 10146 this.returnType = returnType; | |
| 10147 this.parameterNames = parameterNames; | |
| 10148 this.parameterTypes = parameterTypes; | |
| 10149 this.requiredParameterCount = requiredParameterCount; | |
| 10150 this.hasNamedParameters = hasNamedParameters; | |
| 10151 this.parameterName = parameterName; | |
| 10152 this.parameterType = parameterType; | |
| 10153 this.importUri = importUri; | |
| 10154 } | |
| 10155 | |
| 10156 factory CompletionSuggestion.fromJson( | |
| 10157 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 9803 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 10158 if (json == null) { | 9804 if (json == null) { |
| 10159 json = {}; | 9805 json = {}; |
| 10160 } | 9806 } |
| 10161 if (json is Map) { | 9807 if (json is Map) { |
| 10162 CompletionSuggestionKind kind; | 9808 List<ExecutionService> subscriptions; |
| 10163 if (json.containsKey("kind")) { | 9809 if (json.containsKey("subscriptions")) { |
| 10164 kind = new CompletionSuggestionKind.fromJson( | 9810 subscriptions = jsonDecoder.decodeList( |
| 10165 jsonDecoder, jsonPath + ".kind", json["kind"]); | 9811 jsonPath + ".subscriptions", |
| 10166 } else { | 9812 json["subscriptions"], |
| 10167 throw jsonDecoder.missingKey(jsonPath, "kind"); | 9813 (String jsonPath, Object json) => |
| 10168 } | 9814 new ExecutionService.fromJson(jsonDecoder, jsonPath, json)); |
| 10169 int relevance; | 9815 } else { |
| 10170 if (json.containsKey("relevance")) { | 9816 throw jsonDecoder.mismatch(jsonPath, "subscriptions"); |
| 10171 relevance = | 9817 } |
| 10172 jsonDecoder.decodeInt(jsonPath + ".relevance", json["relevance"]); | 9818 return new ExecutionSetSubscriptionsParams(subscriptions); |
| 10173 } else { | |
| 10174 throw jsonDecoder.missingKey(jsonPath, "relevance"); | |
| 10175 } | |
| 10176 String completion; | |
| 10177 if (json.containsKey("completion")) { | |
| 10178 completion = jsonDecoder.decodeString( | |
| 10179 jsonPath + ".completion", json["completion"]); | |
| 10180 } else { | |
| 10181 throw jsonDecoder.missingKey(jsonPath, "completion"); | |
| 10182 } | |
| 10183 int selectionOffset; | |
| 10184 if (json.containsKey("selectionOffset")) { | |
| 10185 selectionOffset = jsonDecoder.decodeInt( | |
| 10186 jsonPath + ".selectionOffset", json["selectionOffset"]); | |
| 10187 } else { | |
| 10188 throw jsonDecoder.missingKey(jsonPath, "selectionOffset"); | |
| 10189 } | |
| 10190 int selectionLength; | |
| 10191 if (json.containsKey("selectionLength")) { | |
| 10192 selectionLength = jsonDecoder.decodeInt( | |
| 10193 jsonPath + ".selectionLength", json["selectionLength"]); | |
| 10194 } else { | |
| 10195 throw jsonDecoder.missingKey(jsonPath, "selectionLength"); | |
| 10196 } | |
| 10197 bool isDeprecated; | |
| 10198 if (json.containsKey("isDeprecated")) { | |
| 10199 isDeprecated = jsonDecoder.decodeBool( | |
| 10200 jsonPath + ".isDeprecated", json["isDeprecated"]); | |
| 10201 } else { | |
| 10202 throw jsonDecoder.missingKey(jsonPath, "isDeprecated"); | |
| 10203 } | |
| 10204 bool isPotential; | |
| 10205 if (json.containsKey("isPotential")) { | |
| 10206 isPotential = jsonDecoder.decodeBool( | |
| 10207 jsonPath + ".isPotential", json["isPotential"]); | |
| 10208 } else { | |
| 10209 throw jsonDecoder.missingKey(jsonPath, "isPotential"); | |
| 10210 } | |
| 10211 String docSummary; | |
| 10212 if (json.containsKey("docSummary")) { | |
| 10213 docSummary = jsonDecoder.decodeString( | |
| 10214 jsonPath + ".docSummary", json["docSummary"]); | |
| 10215 } | |
| 10216 String docComplete; | |
| 10217 if (json.containsKey("docComplete")) { | |
| 10218 docComplete = jsonDecoder.decodeString( | |
| 10219 jsonPath + ".docComplete", json["docComplete"]); | |
| 10220 } | |
| 10221 String declaringType; | |
| 10222 if (json.containsKey("declaringType")) { | |
| 10223 declaringType = jsonDecoder.decodeString( | |
| 10224 jsonPath + ".declaringType", json["declaringType"]); | |
| 10225 } | |
| 10226 String defaultArgumentListString; | |
| 10227 if (json.containsKey("defaultArgumentListString")) { | |
| 10228 defaultArgumentListString = jsonDecoder.decodeString( | |
| 10229 jsonPath + ".defaultArgumentListString", | |
| 10230 json["defaultArgumentListString"]); | |
| 10231 } | |
| 10232 List<int> defaultArgumentListTextRanges; | |
| 10233 if (json.containsKey("defaultArgumentListTextRanges")) { | |
| 10234 defaultArgumentListTextRanges = jsonDecoder.decodeList( | |
| 10235 jsonPath + ".defaultArgumentListTextRanges", | |
| 10236 json["defaultArgumentListTextRanges"], | |
| 10237 jsonDecoder.decodeInt); | |
| 10238 } | |
| 10239 Element element; | |
| 10240 if (json.containsKey("element")) { | |
| 10241 element = new Element.fromJson( | |
| 10242 jsonDecoder, jsonPath + ".element", json["element"]); | |
| 10243 } | |
| 10244 String returnType; | |
| 10245 if (json.containsKey("returnType")) { | |
| 10246 returnType = jsonDecoder.decodeString( | |
| 10247 jsonPath + ".returnType", json["returnType"]); | |
| 10248 } | |
| 10249 List<String> parameterNames; | |
| 10250 if (json.containsKey("parameterNames")) { | |
| 10251 parameterNames = jsonDecoder.decodeList(jsonPath + ".parameterNames", | |
| 10252 json["parameterNames"], jsonDecoder.decodeString); | |
| 10253 } | |
| 10254 List<String> parameterTypes; | |
| 10255 if (json.containsKey("parameterTypes")) { | |
| 10256 parameterTypes = jsonDecoder.decodeList(jsonPath + ".parameterTypes", | |
| 10257 json["parameterTypes"], jsonDecoder.decodeString); | |
| 10258 } | |
| 10259 int requiredParameterCount; | |
| 10260 if (json.containsKey("requiredParameterCount")) { | |
| 10261 requiredParameterCount = jsonDecoder.decodeInt( | |
| 10262 jsonPath + ".requiredParameterCount", | |
| 10263 json["requiredParameterCount"]); | |
| 10264 } | |
| 10265 bool hasNamedParameters; | |
| 10266 if (json.containsKey("hasNamedParameters")) { | |
| 10267 hasNamedParameters = jsonDecoder.decodeBool( | |
| 10268 jsonPath + ".hasNamedParameters", json["hasNamedParameters"]); | |
| 10269 } | |
| 10270 String parameterName; | |
| 10271 if (json.containsKey("parameterName")) { | |
| 10272 parameterName = jsonDecoder.decodeString( | |
| 10273 jsonPath + ".parameterName", json["parameterName"]); | |
| 10274 } | |
| 10275 String parameterType; | |
| 10276 if (json.containsKey("parameterType")) { | |
| 10277 parameterType = jsonDecoder.decodeString( | |
| 10278 jsonPath + ".parameterType", json["parameterType"]); | |
| 10279 } | |
| 10280 String importUri; | |
| 10281 if (json.containsKey("importUri")) { | |
| 10282 importUri = jsonDecoder.decodeString( | |
| 10283 jsonPath + ".importUri", json["importUri"]); | |
| 10284 } | |
| 10285 return new CompletionSuggestion(kind, relevance, completion, | |
| 10286 selectionOffset, selectionLength, isDeprecated, isPotential, | |
| 10287 docSummary: docSummary, | |
| 10288 docComplete: docComplete, | |
| 10289 declaringType: declaringType, | |
| 10290 defaultArgumentListString: defaultArgumentListString, | |
| 10291 defaultArgumentListTextRanges: defaultArgumentListTextRanges, | |
| 10292 element: element, | |
| 10293 returnType: returnType, | |
| 10294 parameterNames: parameterNames, | |
| 10295 parameterTypes: parameterTypes, | |
| 10296 requiredParameterCount: requiredParameterCount, | |
| 10297 hasNamedParameters: hasNamedParameters, | |
| 10298 parameterName: parameterName, | |
| 10299 parameterType: parameterType, | |
| 10300 importUri: importUri); | |
| 10301 } else { | 9819 } else { |
| 10302 throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestion", json); | 9820 throw jsonDecoder.mismatch( |
| 10303 } | 9821 jsonPath, "execution.setSubscriptions params", json); |
| 10304 } | 9822 } |
| 10305 | 9823 } |
| 9824 |
| 9825 factory ExecutionSetSubscriptionsParams.fromRequest(Request request) { |
| 9826 return new ExecutionSetSubscriptionsParams.fromJson( |
| 9827 new RequestDecoder(request), "params", request.params); |
| 9828 } |
| 9829 |
| 9830 @override |
| 10306 Map<String, dynamic> toJson() { | 9831 Map<String, dynamic> toJson() { |
| 10307 Map<String, dynamic> result = {}; | 9832 Map<String, dynamic> result = {}; |
| 10308 result["kind"] = kind.toJson(); | 9833 result["subscriptions"] = |
| 10309 result["relevance"] = relevance; | 9834 subscriptions.map((ExecutionService value) => value.toJson()).toList(); |
| 10310 result["completion"] = completion; | |
| 10311 result["selectionOffset"] = selectionOffset; | |
| 10312 result["selectionLength"] = selectionLength; | |
| 10313 result["isDeprecated"] = isDeprecated; | |
| 10314 result["isPotential"] = isPotential; | |
| 10315 if (docSummary != null) { | |
| 10316 result["docSummary"] = docSummary; | |
| 10317 } | |
| 10318 if (docComplete != null) { | |
| 10319 result["docComplete"] = docComplete; | |
| 10320 } | |
| 10321 if (declaringType != null) { | |
| 10322 result["declaringType"] = declaringType; | |
| 10323 } | |
| 10324 if (defaultArgumentListString != null) { | |
| 10325 result["defaultArgumentListString"] = defaultArgumentListString; | |
| 10326 } | |
| 10327 if (defaultArgumentListTextRanges != null) { | |
| 10328 result["defaultArgumentListTextRanges"] = defaultArgumentListTextRanges; | |
| 10329 } | |
| 10330 if (element != null) { | |
| 10331 result["element"] = element.toJson(); | |
| 10332 } | |
| 10333 if (returnType != null) { | |
| 10334 result["returnType"] = returnType; | |
| 10335 } | |
| 10336 if (parameterNames != null) { | |
| 10337 result["parameterNames"] = parameterNames; | |
| 10338 } | |
| 10339 if (parameterTypes != null) { | |
| 10340 result["parameterTypes"] = parameterTypes; | |
| 10341 } | |
| 10342 if (requiredParameterCount != null) { | |
| 10343 result["requiredParameterCount"] = requiredParameterCount; | |
| 10344 } | |
| 10345 if (hasNamedParameters != null) { | |
| 10346 result["hasNamedParameters"] = hasNamedParameters; | |
| 10347 } | |
| 10348 if (parameterName != null) { | |
| 10349 result["parameterName"] = parameterName; | |
| 10350 } | |
| 10351 if (parameterType != null) { | |
| 10352 result["parameterType"] = parameterType; | |
| 10353 } | |
| 10354 if (importUri != null) { | |
| 10355 result["importUri"] = importUri; | |
| 10356 } | |
| 10357 return result; | 9835 return result; |
| 10358 } | 9836 } |
| 10359 | 9837 |
| 9838 @override |
| 9839 Request toRequest(String id) { |
| 9840 return new Request(id, "execution.setSubscriptions", toJson()); |
| 9841 } |
| 9842 |
| 9843 @override |
| 9844 String toString() => JSON.encode(toJson()); |
| 9845 |
| 9846 @override |
| 9847 bool operator ==(other) { |
| 9848 if (other is ExecutionSetSubscriptionsParams) { |
| 9849 return listEqual(subscriptions, other.subscriptions, |
| 9850 (ExecutionService a, ExecutionService b) => a == b); |
| 9851 } |
| 9852 return false; |
| 9853 } |
| 9854 |
| 9855 @override |
| 9856 int get hashCode { |
| 9857 int hash = 0; |
| 9858 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode); |
| 9859 return JenkinsSmiHash.finish(hash); |
| 9860 } |
| 9861 } |
| 9862 |
| 9863 /** |
| 9864 * execution.setSubscriptions result |
| 9865 * |
| 9866 * Clients may not extend, implement or mix-in this class. |
| 9867 */ |
| 9868 class ExecutionSetSubscriptionsResult implements ResponseResult { |
| 9869 @override |
| 9870 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 9871 |
| 9872 @override |
| 9873 Response toResponse(String id) { |
| 9874 return new Response(id, result: null); |
| 9875 } |
| 9876 |
| 9877 @override |
| 9878 bool operator ==(other) { |
| 9879 if (other is ExecutionSetSubscriptionsResult) { |
| 9880 return true; |
| 9881 } |
| 9882 return false; |
| 9883 } |
| 9884 |
| 9885 @override |
| 9886 int get hashCode { |
| 9887 return 287678780; |
| 9888 } |
| 9889 } |
| 9890 |
| 9891 /** |
| 9892 * extractLocalVariable feedback |
| 9893 * |
| 9894 * { |
| 9895 * "coveringExpressionOffsets": optional List<int> |
| 9896 * "coveringExpressionLengths": optional List<int> |
| 9897 * "names": List<String> |
| 9898 * "offsets": List<int> |
| 9899 * "lengths": List<int> |
| 9900 * } |
| 9901 * |
| 9902 * Clients may not extend, implement or mix-in this class. |
| 9903 */ |
| 9904 class ExtractLocalVariableFeedback extends RefactoringFeedback { |
| 9905 List<int> _coveringExpressionOffsets; |
| 9906 |
| 9907 List<int> _coveringExpressionLengths; |
| 9908 |
| 9909 List<String> _names; |
| 9910 |
| 9911 List<int> _offsets; |
| 9912 |
| 9913 List<int> _lengths; |
| 9914 |
| 9915 /** |
| 9916 * The offsets of the expressions that cover the specified selection, from |
| 9917 * the down most to the up most. |
| 9918 */ |
| 9919 List<int> get coveringExpressionOffsets => _coveringExpressionOffsets; |
| 9920 |
| 9921 /** |
| 9922 * The offsets of the expressions that cover the specified selection, from |
| 9923 * the down most to the up most. |
| 9924 */ |
| 9925 void set coveringExpressionOffsets(List<int> value) { |
| 9926 this._coveringExpressionOffsets = value; |
| 9927 } |
| 9928 |
| 9929 /** |
| 9930 * The lengths of the expressions that cover the specified selection, from |
| 9931 * the down most to the up most. |
| 9932 */ |
| 9933 List<int> get coveringExpressionLengths => _coveringExpressionLengths; |
| 9934 |
| 9935 /** |
| 9936 * The lengths of the expressions that cover the specified selection, from |
| 9937 * the down most to the up most. |
| 9938 */ |
| 9939 void set coveringExpressionLengths(List<int> value) { |
| 9940 this._coveringExpressionLengths = value; |
| 9941 } |
| 9942 |
| 9943 /** |
| 9944 * The proposed names for the local variable. |
| 9945 */ |
| 9946 List<String> get names => _names; |
| 9947 |
| 9948 /** |
| 9949 * The proposed names for the local variable. |
| 9950 */ |
| 9951 void set names(List<String> value) { |
| 9952 assert(value != null); |
| 9953 this._names = value; |
| 9954 } |
| 9955 |
| 9956 /** |
| 9957 * The offsets of the expressions that would be replaced by a reference to |
| 9958 * the variable. |
| 9959 */ |
| 9960 List<int> get offsets => _offsets; |
| 9961 |
| 9962 /** |
| 9963 * The offsets of the expressions that would be replaced by a reference to |
| 9964 * the variable. |
| 9965 */ |
| 9966 void set offsets(List<int> value) { |
| 9967 assert(value != null); |
| 9968 this._offsets = value; |
| 9969 } |
| 9970 |
| 9971 /** |
| 9972 * The lengths of the expressions that would be replaced by a reference to |
| 9973 * the variable. The lengths correspond to the offsets. In other words, for a |
| 9974 * given expression, if the offset of that expression is offsets[i], then the |
| 9975 * length of that expression is lengths[i]. |
| 9976 */ |
| 9977 List<int> get lengths => _lengths; |
| 9978 |
| 9979 /** |
| 9980 * The lengths of the expressions that would be replaced by a reference to |
| 9981 * the variable. The lengths correspond to the offsets. In other words, for a |
| 9982 * given expression, if the offset of that expression is offsets[i], then the |
| 9983 * length of that expression is lengths[i]. |
| 9984 */ |
| 9985 void set lengths(List<int> value) { |
| 9986 assert(value != null); |
| 9987 this._lengths = value; |
| 9988 } |
| 9989 |
| 9990 ExtractLocalVariableFeedback( |
| 9991 List<String> names, List<int> offsets, List<int> lengths, |
| 9992 {List<int> coveringExpressionOffsets, |
| 9993 List<int> coveringExpressionLengths}) { |
| 9994 this.coveringExpressionOffsets = coveringExpressionOffsets; |
| 9995 this.coveringExpressionLengths = coveringExpressionLengths; |
| 9996 this.names = names; |
| 9997 this.offsets = offsets; |
| 9998 this.lengths = lengths; |
| 9999 } |
| 10000 |
| 10001 factory ExtractLocalVariableFeedback.fromJson( |
| 10002 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 10003 if (json == null) { |
| 10004 json = {}; |
| 10005 } |
| 10006 if (json is Map) { |
| 10007 List<int> coveringExpressionOffsets; |
| 10008 if (json.containsKey("coveringExpressionOffsets")) { |
| 10009 coveringExpressionOffsets = jsonDecoder.decodeList( |
| 10010 jsonPath + ".coveringExpressionOffsets", |
| 10011 json["coveringExpressionOffsets"], |
| 10012 jsonDecoder.decodeInt); |
| 10013 } |
| 10014 List<int> coveringExpressionLengths; |
| 10015 if (json.containsKey("coveringExpressionLengths")) { |
| 10016 coveringExpressionLengths = jsonDecoder.decodeList( |
| 10017 jsonPath + ".coveringExpressionLengths", |
| 10018 json["coveringExpressionLengths"], |
| 10019 jsonDecoder.decodeInt); |
| 10020 } |
| 10021 List<String> names; |
| 10022 if (json.containsKey("names")) { |
| 10023 names = jsonDecoder.decodeList( |
| 10024 jsonPath + ".names", json["names"], jsonDecoder.decodeString); |
| 10025 } else { |
| 10026 throw jsonDecoder.mismatch(jsonPath, "names"); |
| 10027 } |
| 10028 List<int> offsets; |
| 10029 if (json.containsKey("offsets")) { |
| 10030 offsets = jsonDecoder.decodeList( |
| 10031 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt); |
| 10032 } else { |
| 10033 throw jsonDecoder.mismatch(jsonPath, "offsets"); |
| 10034 } |
| 10035 List<int> lengths; |
| 10036 if (json.containsKey("lengths")) { |
| 10037 lengths = jsonDecoder.decodeList( |
| 10038 jsonPath + ".lengths", json["lengths"], jsonDecoder.decodeInt); |
| 10039 } else { |
| 10040 throw jsonDecoder.mismatch(jsonPath, "lengths"); |
| 10041 } |
| 10042 return new ExtractLocalVariableFeedback(names, offsets, lengths, |
| 10043 coveringExpressionOffsets: coveringExpressionOffsets, |
| 10044 coveringExpressionLengths: coveringExpressionLengths); |
| 10045 } else { |
| 10046 throw jsonDecoder.mismatch( |
| 10047 jsonPath, "extractLocalVariable feedback", json); |
| 10048 } |
| 10049 } |
| 10050 |
| 10051 @override |
| 10052 Map<String, dynamic> toJson() { |
| 10053 Map<String, dynamic> result = {}; |
| 10054 if (coveringExpressionOffsets != null) { |
| 10055 result["coveringExpressionOffsets"] = coveringExpressionOffsets; |
| 10056 } |
| 10057 if (coveringExpressionLengths != null) { |
| 10058 result["coveringExpressionLengths"] = coveringExpressionLengths; |
| 10059 } |
| 10060 result["names"] = names; |
| 10061 result["offsets"] = offsets; |
| 10062 result["lengths"] = lengths; |
| 10063 return result; |
| 10064 } |
| 10065 |
| 10066 @override |
| 10067 String toString() => JSON.encode(toJson()); |
| 10068 |
| 10069 @override |
| 10070 bool operator ==(other) { |
| 10071 if (other is ExtractLocalVariableFeedback) { |
| 10072 return listEqual(coveringExpressionOffsets, |
| 10073 other.coveringExpressionOffsets, (int a, int b) => a == b) && |
| 10074 listEqual(coveringExpressionLengths, other.coveringExpressionLengths, |
| 10075 (int a, int b) => a == b) && |
| 10076 listEqual(names, other.names, (String a, String b) => a == b) && |
| 10077 listEqual(offsets, other.offsets, (int a, int b) => a == b) && |
| 10078 listEqual(lengths, other.lengths, (int a, int b) => a == b); |
| 10079 } |
| 10080 return false; |
| 10081 } |
| 10082 |
| 10083 @override |
| 10084 int get hashCode { |
| 10085 int hash = 0; |
| 10086 hash = JenkinsSmiHash.combine(hash, coveringExpressionOffsets.hashCode); |
| 10087 hash = JenkinsSmiHash.combine(hash, coveringExpressionLengths.hashCode); |
| 10088 hash = JenkinsSmiHash.combine(hash, names.hashCode); |
| 10089 hash = JenkinsSmiHash.combine(hash, offsets.hashCode); |
| 10090 hash = JenkinsSmiHash.combine(hash, lengths.hashCode); |
| 10091 return JenkinsSmiHash.finish(hash); |
| 10092 } |
| 10093 } |
| 10094 |
| 10095 /** |
| 10096 * extractLocalVariable options |
| 10097 * |
| 10098 * { |
| 10099 * "name": String |
| 10100 * "extractAll": bool |
| 10101 * } |
| 10102 * |
| 10103 * Clients may not extend, implement or mix-in this class. |
| 10104 */ |
| 10105 class ExtractLocalVariableOptions extends RefactoringOptions { |
| 10106 String _name; |
| 10107 |
| 10108 bool _extractAll; |
| 10109 |
| 10110 /** |
| 10111 * The name that the local variable should be given. |
| 10112 */ |
| 10113 String get name => _name; |
| 10114 |
| 10115 /** |
| 10116 * The name that the local variable should be given. |
| 10117 */ |
| 10118 void set name(String value) { |
| 10119 assert(value != null); |
| 10120 this._name = value; |
| 10121 } |
| 10122 |
| 10123 /** |
| 10124 * True if all occurrences of the expression within the scope in which the |
| 10125 * variable will be defined should be replaced by a reference to the local |
| 10126 * variable. The expression used to initiate the refactoring will always be |
| 10127 * replaced. |
| 10128 */ |
| 10129 bool get extractAll => _extractAll; |
| 10130 |
| 10131 /** |
| 10132 * True if all occurrences of the expression within the scope in which the |
| 10133 * variable will be defined should be replaced by a reference to the local |
| 10134 * variable. The expression used to initiate the refactoring will always be |
| 10135 * replaced. |
| 10136 */ |
| 10137 void set extractAll(bool value) { |
| 10138 assert(value != null); |
| 10139 this._extractAll = value; |
| 10140 } |
| 10141 |
| 10142 ExtractLocalVariableOptions(String name, bool extractAll) { |
| 10143 this.name = name; |
| 10144 this.extractAll = extractAll; |
| 10145 } |
| 10146 |
| 10147 factory ExtractLocalVariableOptions.fromJson( |
| 10148 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 10149 if (json == null) { |
| 10150 json = {}; |
| 10151 } |
| 10152 if (json is Map) { |
| 10153 String name; |
| 10154 if (json.containsKey("name")) { |
| 10155 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); |
| 10156 } else { |
| 10157 throw jsonDecoder.mismatch(jsonPath, "name"); |
| 10158 } |
| 10159 bool extractAll; |
| 10160 if (json.containsKey("extractAll")) { |
| 10161 extractAll = jsonDecoder.decodeBool( |
| 10162 jsonPath + ".extractAll", json["extractAll"]); |
| 10163 } else { |
| 10164 throw jsonDecoder.mismatch(jsonPath, "extractAll"); |
| 10165 } |
| 10166 return new ExtractLocalVariableOptions(name, extractAll); |
| 10167 } else { |
| 10168 throw jsonDecoder.mismatch( |
| 10169 jsonPath, "extractLocalVariable options", json); |
| 10170 } |
| 10171 } |
| 10172 |
| 10173 factory ExtractLocalVariableOptions.fromRefactoringParams( |
| 10174 EditGetRefactoringParams refactoringParams, Request request) { |
| 10175 return new ExtractLocalVariableOptions.fromJson( |
| 10176 new RequestDecoder(request), "options", refactoringParams.options); |
| 10177 } |
| 10178 |
| 10179 @override |
| 10180 Map<String, dynamic> toJson() { |
| 10181 Map<String, dynamic> result = {}; |
| 10182 result["name"] = name; |
| 10183 result["extractAll"] = extractAll; |
| 10184 return result; |
| 10185 } |
| 10186 |
| 10360 @override | 10187 @override |
| 10361 String toString() => JSON.encode(toJson()); | 10188 String toString() => JSON.encode(toJson()); |
| 10362 | 10189 |
| 10363 @override | 10190 @override |
| 10364 bool operator ==(other) { | 10191 bool operator ==(other) { |
| 10365 if (other is CompletionSuggestion) { | 10192 if (other is ExtractLocalVariableOptions) { |
| 10366 return kind == other.kind && | 10193 return name == other.name && extractAll == other.extractAll; |
| 10367 relevance == other.relevance && | |
| 10368 completion == other.completion && | |
| 10369 selectionOffset == other.selectionOffset && | |
| 10370 selectionLength == other.selectionLength && | |
| 10371 isDeprecated == other.isDeprecated && | |
| 10372 isPotential == other.isPotential && | |
| 10373 docSummary == other.docSummary && | |
| 10374 docComplete == other.docComplete && | |
| 10375 declaringType == other.declaringType && | |
| 10376 defaultArgumentListString == other.defaultArgumentListString && | |
| 10377 listEqual(defaultArgumentListTextRanges, | |
| 10378 other.defaultArgumentListTextRanges, (int a, int b) => a == b) && | |
| 10379 element == other.element && | |
| 10380 returnType == other.returnType && | |
| 10381 listEqual(parameterNames, other.parameterNames, | |
| 10382 (String a, String b) => a == b) && | |
| 10383 listEqual(parameterTypes, other.parameterTypes, | |
| 10384 (String a, String b) => a == b) && | |
| 10385 requiredParameterCount == other.requiredParameterCount && | |
| 10386 hasNamedParameters == other.hasNamedParameters && | |
| 10387 parameterName == other.parameterName && | |
| 10388 parameterType == other.parameterType && | |
| 10389 importUri == other.importUri; | |
| 10390 } | 10194 } |
| 10391 return false; | 10195 return false; |
| 10392 } | 10196 } |
| 10393 | 10197 |
| 10394 @override | 10198 @override |
| 10395 int get hashCode { | 10199 int get hashCode { |
| 10396 int hash = 0; | 10200 int hash = 0; |
| 10397 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | 10201 hash = JenkinsSmiHash.combine(hash, name.hashCode); |
| 10398 hash = JenkinsSmiHash.combine(hash, relevance.hashCode); | 10202 hash = JenkinsSmiHash.combine(hash, extractAll.hashCode); |
| 10399 hash = JenkinsSmiHash.combine(hash, completion.hashCode); | |
| 10400 hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode); | |
| 10401 hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode); | |
| 10402 hash = JenkinsSmiHash.combine(hash, isDeprecated.hashCode); | |
| 10403 hash = JenkinsSmiHash.combine(hash, isPotential.hashCode); | |
| 10404 hash = JenkinsSmiHash.combine(hash, docSummary.hashCode); | |
| 10405 hash = JenkinsSmiHash.combine(hash, docComplete.hashCode); | |
| 10406 hash = JenkinsSmiHash.combine(hash, declaringType.hashCode); | |
| 10407 hash = JenkinsSmiHash.combine(hash, defaultArgumentListString.hashCode); | |
| 10408 hash = JenkinsSmiHash.combine(hash, defaultArgumentListTextRanges.hashCode); | |
| 10409 hash = JenkinsSmiHash.combine(hash, element.hashCode); | |
| 10410 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); | |
| 10411 hash = JenkinsSmiHash.combine(hash, parameterNames.hashCode); | |
| 10412 hash = JenkinsSmiHash.combine(hash, parameterTypes.hashCode); | |
| 10413 hash = JenkinsSmiHash.combine(hash, requiredParameterCount.hashCode); | |
| 10414 hash = JenkinsSmiHash.combine(hash, hasNamedParameters.hashCode); | |
| 10415 hash = JenkinsSmiHash.combine(hash, parameterName.hashCode); | |
| 10416 hash = JenkinsSmiHash.combine(hash, parameterType.hashCode); | |
| 10417 hash = JenkinsSmiHash.combine(hash, importUri.hashCode); | |
| 10418 return JenkinsSmiHash.finish(hash); | 10203 return JenkinsSmiHash.finish(hash); |
| 10419 } | 10204 } |
| 10420 } | 10205 } |
| 10421 | 10206 |
| 10422 /** | 10207 /** |
| 10423 * CompletionSuggestionKind | 10208 * extractMethod feedback |
| 10424 * | 10209 * |
| 10425 * enum { | 10210 * { |
| 10426 * ARGUMENT_LIST | 10211 * "offset": int |
| 10427 * IMPORT | 10212 * "length": int |
| 10428 * IDENTIFIER | 10213 * "returnType": String |
| 10429 * INVOCATION | 10214 * "names": List<String> |
| 10430 * KEYWORD | 10215 * "canCreateGetter": bool |
| 10431 * NAMED_ARGUMENT | 10216 * "parameters": List<RefactoringMethodParameter> |
| 10432 * OPTIONAL_ARGUMENT | 10217 * "offsets": List<int> |
| 10433 * PARAMETER | 10218 * "lengths": List<int> |
| 10434 * } | 10219 * } |
| 10435 * | 10220 * |
| 10436 * Clients may not extend, implement or mix-in this class. | 10221 * Clients may not extend, implement or mix-in this class. |
| 10437 */ | 10222 */ |
| 10438 class CompletionSuggestionKind implements Enum { | 10223 class ExtractMethodFeedback extends RefactoringFeedback { |
| 10439 /** | 10224 int _offset; |
| 10440 * A list of arguments for the method or function that is being invoked. For | 10225 |
| 10441 * this suggestion kind, the completion field is a textual representation of | 10226 int _length; |
| 10442 * the invocation and the parameterNames, parameterTypes, and | 10227 |
| 10443 * requiredParameterCount attributes are defined. | 10228 String _returnType; |
| 10444 */ | 10229 |
| 10445 static const CompletionSuggestionKind ARGUMENT_LIST = | 10230 List<String> _names; |
| 10446 const CompletionSuggestionKind._("ARGUMENT_LIST"); | 10231 |
| 10447 | 10232 bool _canCreateGetter; |
| 10448 static const CompletionSuggestionKind IMPORT = | 10233 |
| 10449 const CompletionSuggestionKind._("IMPORT"); | 10234 List<RefactoringMethodParameter> _parameters; |
| 10450 | 10235 |
| 10451 /** | 10236 List<int> _offsets; |
| 10452 * The element identifier should be inserted at the completion location. For | 10237 |
| 10453 * example "someMethod" in import 'myLib.dart' show someMethod; . For | 10238 List<int> _lengths; |
| 10454 * suggestions of this kind, the element attribute is defined and the | 10239 |
| 10455 * completion field is the element's identifier. | 10240 /** |
| 10456 */ | 10241 * The offset to the beginning of the expression or statements that will be |
| 10457 static const CompletionSuggestionKind IDENTIFIER = | 10242 * extracted. |
| 10458 const CompletionSuggestionKind._("IDENTIFIER"); | 10243 */ |
| 10459 | 10244 int get offset => _offset; |
| 10460 /** | 10245 |
| 10461 * The element is being invoked at the completion location. For example, | 10246 /** |
| 10462 * "someMethod" in x.someMethod(); . For suggestions of this kind, the | 10247 * The offset to the beginning of the expression or statements that will be |
| 10463 * element attribute is defined and the completion field is the element's | 10248 * extracted. |
| 10464 * identifier. | 10249 */ |
| 10465 */ | 10250 void set offset(int value) { |
| 10466 static const CompletionSuggestionKind INVOCATION = | 10251 assert(value != null); |
| 10467 const CompletionSuggestionKind._("INVOCATION"); | 10252 this._offset = value; |
| 10468 | 10253 } |
| 10469 /** | 10254 |
| 10470 * A keyword is being suggested. For suggestions of this kind, the completion | 10255 /** |
| 10471 * is the keyword. | 10256 * The length of the expression or statements that will be extracted. |
| 10472 */ | 10257 */ |
| 10473 static const CompletionSuggestionKind KEYWORD = | 10258 int get length => _length; |
| 10474 const CompletionSuggestionKind._("KEYWORD"); | 10259 |
| 10475 | 10260 /** |
| 10476 /** | 10261 * The length of the expression or statements that will be extracted. |
| 10477 * A named argument for the current callsite is being suggested. For | 10262 */ |
| 10478 * suggestions of this kind, the completion is the named argument identifier | 10263 void set length(int value) { |
| 10479 * including a trailing ':' and space. | 10264 assert(value != null); |
| 10480 */ | 10265 this._length = value; |
| 10481 static const CompletionSuggestionKind NAMED_ARGUMENT = | 10266 } |
| 10482 const CompletionSuggestionKind._("NAMED_ARGUMENT"); | 10267 |
| 10483 | 10268 /** |
| 10484 static const CompletionSuggestionKind OPTIONAL_ARGUMENT = | 10269 * The proposed return type for the method. If the returned element does not |
| 10485 const CompletionSuggestionKind._("OPTIONAL_ARGUMENT"); | 10270 * have a declared return type, this field will contain an empty string. |
| 10486 | 10271 */ |
| 10487 static const CompletionSuggestionKind PARAMETER = | 10272 String get returnType => _returnType; |
| 10488 const CompletionSuggestionKind._("PARAMETER"); | 10273 |
| 10489 | 10274 /** |
| 10490 /** | 10275 * The proposed return type for the method. If the returned element does not |
| 10491 * A list containing all of the enum values that are defined. | 10276 * have a declared return type, this field will contain an empty string. |
| 10492 */ | 10277 */ |
| 10493 static const List<CompletionSuggestionKind> VALUES = | 10278 void set returnType(String value) { |
| 10494 const <CompletionSuggestionKind>[ | 10279 assert(value != null); |
| 10495 ARGUMENT_LIST, | 10280 this._returnType = value; |
| 10496 IMPORT, | 10281 } |
| 10497 IDENTIFIER, | 10282 |
| 10498 INVOCATION, | 10283 /** |
| 10499 KEYWORD, | 10284 * The proposed names for the method. |
| 10500 NAMED_ARGUMENT, | 10285 */ |
| 10501 OPTIONAL_ARGUMENT, | 10286 List<String> get names => _names; |
| 10502 PARAMETER | 10287 |
| 10503 ]; | 10288 /** |
| 10504 | 10289 * The proposed names for the method. |
| 10505 final String name; | 10290 */ |
| 10506 | 10291 void set names(List<String> value) { |
| 10507 const CompletionSuggestionKind._(this.name); | 10292 assert(value != null); |
| 10508 | 10293 this._names = value; |
| 10509 factory CompletionSuggestionKind(String name) { | 10294 } |
| 10510 switch (name) { | 10295 |
| 10511 case "ARGUMENT_LIST": | 10296 /** |
| 10512 return ARGUMENT_LIST; | 10297 * True if a getter could be created rather than a method. |
| 10513 case "IMPORT": | 10298 */ |
| 10514 return IMPORT; | 10299 bool get canCreateGetter => _canCreateGetter; |
| 10515 case "IDENTIFIER": | 10300 |
| 10516 return IDENTIFIER; | 10301 /** |
| 10517 case "INVOCATION": | 10302 * True if a getter could be created rather than a method. |
| 10518 return INVOCATION; | 10303 */ |
| 10519 case "KEYWORD": | 10304 void set canCreateGetter(bool value) { |
| 10520 return KEYWORD; | 10305 assert(value != null); |
| 10521 case "NAMED_ARGUMENT": | 10306 this._canCreateGetter = value; |
| 10522 return NAMED_ARGUMENT; | 10307 } |
| 10523 case "OPTIONAL_ARGUMENT": | 10308 |
| 10524 return OPTIONAL_ARGUMENT; | 10309 /** |
| 10525 case "PARAMETER": | 10310 * The proposed parameters for the method. |
| 10526 return PARAMETER; | 10311 */ |
| 10527 } | 10312 List<RefactoringMethodParameter> get parameters => _parameters; |
| 10528 throw new Exception('Illegal enum value: $name'); | 10313 |
| 10529 } | 10314 /** |
| 10530 | 10315 * The proposed parameters for the method. |
| 10531 factory CompletionSuggestionKind.fromJson( | 10316 */ |
| 10532 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 10317 void set parameters(List<RefactoringMethodParameter> value) { |
| 10533 if (json is String) { | 10318 assert(value != null); |
| 10534 try { | 10319 this._parameters = value; |
| 10535 return new CompletionSuggestionKind(json); | 10320 } |
| 10536 } catch (_) { | 10321 |
| 10537 // Fall through | 10322 /** |
| 10538 } | 10323 * The offsets of the expressions or statements that would be replaced by an |
| 10539 } | 10324 * invocation of the method. |
| 10540 throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestionKind", json); | 10325 */ |
| 10541 } | 10326 List<int> get offsets => _offsets; |
| 10542 | 10327 |
| 10543 @override | 10328 /** |
| 10544 String toString() => "CompletionSuggestionKind.$name"; | 10329 * The offsets of the expressions or statements that would be replaced by an |
| 10545 | 10330 * invocation of the method. |
| 10546 String toJson() => name; | 10331 */ |
| 10547 } | 10332 void set offsets(List<int> value) { |
| 10548 | 10333 assert(value != null); |
| 10549 /** | 10334 this._offsets = value; |
| 10550 * ContextData | 10335 } |
| 10551 * | 10336 |
| 10552 * { | 10337 /** |
| 10553 * "name": String | 10338 * The lengths of the expressions or statements that would be replaced by an |
| 10554 * "explicitFileCount": int | 10339 * invocation of the method. The lengths correspond to the offsets. In other |
| 10555 * "implicitFileCount": int | 10340 * words, for a given expression (or block of statements), if the offset of |
| 10556 * "workItemQueueLength": int | 10341 * that expression is offsets[i], then the length of that expression is |
| 10557 * "cacheEntryExceptions": List<String> | 10342 * lengths[i]. |
| 10558 * } | 10343 */ |
| 10559 * | 10344 List<int> get lengths => _lengths; |
| 10560 * Clients may not extend, implement or mix-in this class. | 10345 |
| 10561 */ | 10346 /** |
| 10562 class ContextData implements HasToJson { | 10347 * The lengths of the expressions or statements that would be replaced by an |
| 10563 String _name; | 10348 * invocation of the method. The lengths correspond to the offsets. In other |
| 10564 | 10349 * words, for a given expression (or block of statements), if the offset of |
| 10565 int _explicitFileCount; | 10350 * that expression is offsets[i], then the length of that expression is |
| 10566 | 10351 * lengths[i]. |
| 10567 int _implicitFileCount; | 10352 */ |
| 10568 | 10353 void set lengths(List<int> value) { |
| 10569 int _workItemQueueLength; | 10354 assert(value != null); |
| 10570 | 10355 this._lengths = value; |
| 10571 List<String> _cacheEntryExceptions; | 10356 } |
| 10572 | 10357 |
| 10573 /** | 10358 ExtractMethodFeedback( |
| 10574 * The name of the context. | 10359 int offset, |
| 10575 */ | 10360 int length, |
| 10576 String get name => _name; | 10361 String returnType, |
| 10577 | 10362 List<String> names, |
| 10578 /** | 10363 bool canCreateGetter, |
| 10579 * The name of the context. | 10364 List<RefactoringMethodParameter> parameters, |
| 10580 */ | 10365 List<int> offsets, |
| 10581 void set name(String value) { | 10366 List<int> lengths) { |
| 10582 assert(value != null); | 10367 this.offset = offset; |
| 10583 this._name = value; | 10368 this.length = length; |
| 10584 } | 10369 this.returnType = returnType; |
| 10585 | 10370 this.names = names; |
| 10586 /** | 10371 this.canCreateGetter = canCreateGetter; |
| 10587 * Explicitly analyzed files. | 10372 this.parameters = parameters; |
| 10588 */ | 10373 this.offsets = offsets; |
| 10589 int get explicitFileCount => _explicitFileCount; | 10374 this.lengths = lengths; |
| 10590 | 10375 } |
| 10591 /** | 10376 |
| 10592 * Explicitly analyzed files. | 10377 factory ExtractMethodFeedback.fromJson( |
| 10593 */ | |
| 10594 void set explicitFileCount(int value) { | |
| 10595 assert(value != null); | |
| 10596 this._explicitFileCount = value; | |
| 10597 } | |
| 10598 | |
| 10599 /** | |
| 10600 * Implicitly analyzed files. | |
| 10601 */ | |
| 10602 int get implicitFileCount => _implicitFileCount; | |
| 10603 | |
| 10604 /** | |
| 10605 * Implicitly analyzed files. | |
| 10606 */ | |
| 10607 void set implicitFileCount(int value) { | |
| 10608 assert(value != null); | |
| 10609 this._implicitFileCount = value; | |
| 10610 } | |
| 10611 | |
| 10612 /** | |
| 10613 * The number of work items in the queue. | |
| 10614 */ | |
| 10615 int get workItemQueueLength => _workItemQueueLength; | |
| 10616 | |
| 10617 /** | |
| 10618 * The number of work items in the queue. | |
| 10619 */ | |
| 10620 void set workItemQueueLength(int value) { | |
| 10621 assert(value != null); | |
| 10622 this._workItemQueueLength = value; | |
| 10623 } | |
| 10624 | |
| 10625 /** | |
| 10626 * Exceptions associated with cache entries. | |
| 10627 */ | |
| 10628 List<String> get cacheEntryExceptions => _cacheEntryExceptions; | |
| 10629 | |
| 10630 /** | |
| 10631 * Exceptions associated with cache entries. | |
| 10632 */ | |
| 10633 void set cacheEntryExceptions(List<String> value) { | |
| 10634 assert(value != null); | |
| 10635 this._cacheEntryExceptions = value; | |
| 10636 } | |
| 10637 | |
| 10638 ContextData(String name, int explicitFileCount, int implicitFileCount, | |
| 10639 int workItemQueueLength, List<String> cacheEntryExceptions) { | |
| 10640 this.name = name; | |
| 10641 this.explicitFileCount = explicitFileCount; | |
| 10642 this.implicitFileCount = implicitFileCount; | |
| 10643 this.workItemQueueLength = workItemQueueLength; | |
| 10644 this.cacheEntryExceptions = cacheEntryExceptions; | |
| 10645 } | |
| 10646 | |
| 10647 factory ContextData.fromJson( | |
| 10648 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 10378 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 10649 if (json == null) { | 10379 if (json == null) { |
| 10650 json = {}; | 10380 json = {}; |
| 10651 } | 10381 } |
| 10652 if (json is Map) { | 10382 if (json is Map) { |
| 10653 String name; | 10383 int offset; |
| 10654 if (json.containsKey("name")) { | 10384 if (json.containsKey("offset")) { |
| 10655 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | 10385 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 10656 } else { | 10386 } else { |
| 10657 throw jsonDecoder.missingKey(jsonPath, "name"); | 10387 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 10658 } | 10388 } |
| 10659 int explicitFileCount; | 10389 int length; |
| 10660 if (json.containsKey("explicitFileCount")) { | 10390 if (json.containsKey("length")) { |
| 10661 explicitFileCount = jsonDecoder.decodeInt( | 10391 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 10662 jsonPath + ".explicitFileCount", json["explicitFileCount"]); | 10392 } else { |
| 10663 } else { | 10393 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 10664 throw jsonDecoder.missingKey(jsonPath, "explicitFileCount"); | 10394 } |
| 10665 } | 10395 String returnType; |
| 10666 int implicitFileCount; | 10396 if (json.containsKey("returnType")) { |
| 10667 if (json.containsKey("implicitFileCount")) { | 10397 returnType = jsonDecoder.decodeString( |
| 10668 implicitFileCount = jsonDecoder.decodeInt( | 10398 jsonPath + ".returnType", json["returnType"]); |
| 10669 jsonPath + ".implicitFileCount", json["implicitFileCount"]); | 10399 } else { |
| 10670 } else { | 10400 throw jsonDecoder.mismatch(jsonPath, "returnType"); |
| 10671 throw jsonDecoder.missingKey(jsonPath, "implicitFileCount"); | 10401 } |
| 10672 } | 10402 List<String> names; |
| 10673 int workItemQueueLength; | 10403 if (json.containsKey("names")) { |
| 10674 if (json.containsKey("workItemQueueLength")) { | 10404 names = jsonDecoder.decodeList( |
| 10675 workItemQueueLength = jsonDecoder.decodeInt( | 10405 jsonPath + ".names", json["names"], jsonDecoder.decodeString); |
| 10676 jsonPath + ".workItemQueueLength", json["workItemQueueLength"]); | 10406 } else { |
| 10677 } else { | 10407 throw jsonDecoder.mismatch(jsonPath, "names"); |
| 10678 throw jsonDecoder.missingKey(jsonPath, "workItemQueueLength"); | 10408 } |
| 10679 } | 10409 bool canCreateGetter; |
| 10680 List<String> cacheEntryExceptions; | 10410 if (json.containsKey("canCreateGetter")) { |
| 10681 if (json.containsKey("cacheEntryExceptions")) { | 10411 canCreateGetter = jsonDecoder.decodeBool( |
| 10682 cacheEntryExceptions = jsonDecoder.decodeList( | 10412 jsonPath + ".canCreateGetter", json["canCreateGetter"]); |
| 10683 jsonPath + ".cacheEntryExceptions", | 10413 } else { |
| 10684 json["cacheEntryExceptions"], | 10414 throw jsonDecoder.mismatch(jsonPath, "canCreateGetter"); |
| 10685 jsonDecoder.decodeString); | 10415 } |
| 10686 } else { | 10416 List<RefactoringMethodParameter> parameters; |
| 10687 throw jsonDecoder.missingKey(jsonPath, "cacheEntryExceptions"); | 10417 if (json.containsKey("parameters")) { |
| 10688 } | 10418 parameters = jsonDecoder.decodeList( |
| 10689 return new ContextData(name, explicitFileCount, implicitFileCount, | 10419 jsonPath + ".parameters", |
| 10690 workItemQueueLength, cacheEntryExceptions); | 10420 json["parameters"], |
| 10421 (String jsonPath, Object json) => |
| 10422 new RefactoringMethodParameter.fromJson( |
| 10423 jsonDecoder, jsonPath, json)); |
| 10424 } else { |
| 10425 throw jsonDecoder.mismatch(jsonPath, "parameters"); |
| 10426 } |
| 10427 List<int> offsets; |
| 10428 if (json.containsKey("offsets")) { |
| 10429 offsets = jsonDecoder.decodeList( |
| 10430 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt); |
| 10431 } else { |
| 10432 throw jsonDecoder.mismatch(jsonPath, "offsets"); |
| 10433 } |
| 10434 List<int> lengths; |
| 10435 if (json.containsKey("lengths")) { |
| 10436 lengths = jsonDecoder.decodeList( |
| 10437 jsonPath + ".lengths", json["lengths"], jsonDecoder.decodeInt); |
| 10438 } else { |
| 10439 throw jsonDecoder.mismatch(jsonPath, "lengths"); |
| 10440 } |
| 10441 return new ExtractMethodFeedback(offset, length, returnType, names, |
| 10442 canCreateGetter, parameters, offsets, lengths); |
| 10691 } else { | 10443 } else { |
| 10692 throw jsonDecoder.mismatch(jsonPath, "ContextData", json); | 10444 throw jsonDecoder.mismatch(jsonPath, "extractMethod feedback", json); |
| 10693 } | 10445 } |
| 10694 } | 10446 } |
| 10695 | 10447 |
| 10448 @override |
| 10696 Map<String, dynamic> toJson() { | 10449 Map<String, dynamic> toJson() { |
| 10697 Map<String, dynamic> result = {}; | 10450 Map<String, dynamic> result = {}; |
| 10698 result["name"] = name; | 10451 result["offset"] = offset; |
| 10699 result["explicitFileCount"] = explicitFileCount; | 10452 result["length"] = length; |
| 10700 result["implicitFileCount"] = implicitFileCount; | 10453 result["returnType"] = returnType; |
| 10701 result["workItemQueueLength"] = workItemQueueLength; | 10454 result["names"] = names; |
| 10702 result["cacheEntryExceptions"] = cacheEntryExceptions; | 10455 result["canCreateGetter"] = canCreateGetter; |
| 10456 result["parameters"] = parameters |
| 10457 .map((RefactoringMethodParameter value) => value.toJson()) |
| 10458 .toList(); |
| 10459 result["offsets"] = offsets; |
| 10460 result["lengths"] = lengths; |
| 10703 return result; | 10461 return result; |
| 10704 } | 10462 } |
| 10705 | 10463 |
| 10706 @override | 10464 @override |
| 10707 String toString() => JSON.encode(toJson()); | 10465 String toString() => JSON.encode(toJson()); |
| 10708 | 10466 |
| 10709 @override | 10467 @override |
| 10710 bool operator ==(other) { | 10468 bool operator ==(other) { |
| 10711 if (other is ContextData) { | 10469 if (other is ExtractMethodFeedback) { |
| 10712 return name == other.name && | 10470 return offset == other.offset && |
| 10713 explicitFileCount == other.explicitFileCount && | 10471 length == other.length && |
| 10714 implicitFileCount == other.implicitFileCount && | 10472 returnType == other.returnType && |
| 10715 workItemQueueLength == other.workItemQueueLength && | 10473 listEqual(names, other.names, (String a, String b) => a == b) && |
| 10716 listEqual(cacheEntryExceptions, other.cacheEntryExceptions, | 10474 canCreateGetter == other.canCreateGetter && |
| 10717 (String a, String b) => a == b); | 10475 listEqual( |
| 10476 parameters, |
| 10477 other.parameters, |
| 10478 (RefactoringMethodParameter a, RefactoringMethodParameter b) => |
| 10479 a == b) && |
| 10480 listEqual(offsets, other.offsets, (int a, int b) => a == b) && |
| 10481 listEqual(lengths, other.lengths, (int a, int b) => a == b); |
| 10718 } | 10482 } |
| 10719 return false; | 10483 return false; |
| 10720 } | 10484 } |
| 10721 | 10485 |
| 10722 @override | 10486 @override |
| 10723 int get hashCode { | 10487 int get hashCode { |
| 10724 int hash = 0; | 10488 int hash = 0; |
| 10725 hash = JenkinsSmiHash.combine(hash, name.hashCode); | 10489 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 10726 hash = JenkinsSmiHash.combine(hash, explicitFileCount.hashCode); | 10490 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 10727 hash = JenkinsSmiHash.combine(hash, implicitFileCount.hashCode); | 10491 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); |
| 10728 hash = JenkinsSmiHash.combine(hash, workItemQueueLength.hashCode); | 10492 hash = JenkinsSmiHash.combine(hash, names.hashCode); |
| 10729 hash = JenkinsSmiHash.combine(hash, cacheEntryExceptions.hashCode); | 10493 hash = JenkinsSmiHash.combine(hash, canCreateGetter.hashCode); |
| 10494 hash = JenkinsSmiHash.combine(hash, parameters.hashCode); |
| 10495 hash = JenkinsSmiHash.combine(hash, offsets.hashCode); |
| 10496 hash = JenkinsSmiHash.combine(hash, lengths.hashCode); |
| 10730 return JenkinsSmiHash.finish(hash); | 10497 return JenkinsSmiHash.finish(hash); |
| 10731 } | 10498 } |
| 10732 } | 10499 } |
| 10733 | 10500 |
| 10734 /** | 10501 /** |
| 10735 * Element | 10502 * extractMethod options |
| 10736 * | 10503 * |
| 10737 * { | 10504 * { |
| 10738 * "kind": ElementKind | 10505 * "returnType": String |
| 10506 * "createGetter": bool |
| 10739 * "name": String | 10507 * "name": String |
| 10740 * "location": optional Location | 10508 * "parameters": List<RefactoringMethodParameter> |
| 10741 * "flags": int | 10509 * "extractAll": bool |
| 10742 * "parameters": optional String | |
| 10743 * "returnType": optional String | |
| 10744 * "typeParameters": optional String | |
| 10745 * } | 10510 * } |
| 10746 * | 10511 * |
| 10747 * Clients may not extend, implement or mix-in this class. | 10512 * Clients may not extend, implement or mix-in this class. |
| 10748 */ | 10513 */ |
| 10749 class Element implements HasToJson { | 10514 class ExtractMethodOptions extends RefactoringOptions { |
| 10750 static const int FLAG_ABSTRACT = 0x01; | 10515 String _returnType; |
| 10751 static const int FLAG_CONST = 0x02; | 10516 |
| 10752 static const int FLAG_FINAL = 0x04; | 10517 bool _createGetter; |
| 10753 static const int FLAG_STATIC = 0x08; | |
| 10754 static const int FLAG_PRIVATE = 0x10; | |
| 10755 static const int FLAG_DEPRECATED = 0x20; | |
| 10756 | |
| 10757 static int makeFlags( | |
| 10758 {isAbstract: false, | |
| 10759 isConst: false, | |
| 10760 isFinal: false, | |
| 10761 isStatic: false, | |
| 10762 isPrivate: false, | |
| 10763 isDeprecated: false}) { | |
| 10764 int flags = 0; | |
| 10765 if (isAbstract) flags |= FLAG_ABSTRACT; | |
| 10766 if (isConst) flags |= FLAG_CONST; | |
| 10767 if (isFinal) flags |= FLAG_FINAL; | |
| 10768 if (isStatic) flags |= FLAG_STATIC; | |
| 10769 if (isPrivate) flags |= FLAG_PRIVATE; | |
| 10770 if (isDeprecated) flags |= FLAG_DEPRECATED; | |
| 10771 return flags; | |
| 10772 } | |
| 10773 | |
| 10774 ElementKind _kind; | |
| 10775 | 10518 |
| 10776 String _name; | 10519 String _name; |
| 10777 | 10520 |
| 10778 Location _location; | 10521 List<RefactoringMethodParameter> _parameters; |
| 10779 | 10522 |
| 10780 int _flags; | 10523 bool _extractAll; |
| 10781 | 10524 |
| 10782 String _parameters; | 10525 /** |
| 10783 | 10526 * The return type that should be defined for the method. |
| 10784 String _returnType; | 10527 */ |
| 10785 | 10528 String get returnType => _returnType; |
| 10786 String _typeParameters; | 10529 |
| 10787 | 10530 /** |
| 10788 /** | 10531 * The return type that should be defined for the method. |
| 10789 * The kind of the element. | 10532 */ |
| 10790 */ | 10533 void set returnType(String value) { |
| 10791 ElementKind get kind => _kind; | 10534 assert(value != null); |
| 10792 | 10535 this._returnType = value; |
| 10793 /** | 10536 } |
| 10794 * The kind of the element. | 10537 |
| 10795 */ | 10538 /** |
| 10796 void set kind(ElementKind value) { | 10539 * True if a getter should be created rather than a method. It is an error if |
| 10797 assert(value != null); | 10540 * this field is true and the list of parameters is non-empty. |
| 10798 this._kind = value; | 10541 */ |
| 10799 } | 10542 bool get createGetter => _createGetter; |
| 10800 | 10543 |
| 10801 /** | 10544 /** |
| 10802 * The name of the element. This is typically used as the label in the | 10545 * True if a getter should be created rather than a method. It is an error if |
| 10803 * outline. | 10546 * this field is true and the list of parameters is non-empty. |
| 10547 */ |
| 10548 void set createGetter(bool value) { |
| 10549 assert(value != null); |
| 10550 this._createGetter = value; |
| 10551 } |
| 10552 |
| 10553 /** |
| 10554 * The name that the method should be given. |
| 10804 */ | 10555 */ |
| 10805 String get name => _name; | 10556 String get name => _name; |
| 10806 | 10557 |
| 10807 /** | 10558 /** |
| 10808 * The name of the element. This is typically used as the label in the | 10559 * The name that the method should be given. |
| 10809 * outline. | |
| 10810 */ | 10560 */ |
| 10811 void set name(String value) { | 10561 void set name(String value) { |
| 10812 assert(value != null); | 10562 assert(value != null); |
| 10813 this._name = value; | 10563 this._name = value; |
| 10814 } | 10564 } |
| 10815 | 10565 |
| 10816 /** | 10566 /** |
| 10817 * The location of the name in the declaration of the element. | 10567 * The parameters that should be defined for the method. |
| 10818 */ | 10568 * |
| 10819 Location get location => _location; | 10569 * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL |
| 10820 | 10570 * parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a |
| 10821 /** | 10571 * NAMED parameter. |
| 10822 * The location of the name in the declaration of the element. | 10572 * |
| 10823 */ | 10573 * - To change the order and/or update proposed parameters, add parameters |
| 10824 void set location(Location value) { | 10574 * with the same identifiers as proposed. |
| 10825 this._location = value; | 10575 * - To add new parameters, omit their identifier. |
| 10826 } | 10576 * - To remove some parameters, omit them in this list. |
| 10827 | 10577 */ |
| 10828 /** | 10578 List<RefactoringMethodParameter> get parameters => _parameters; |
| 10829 * A bit-map containing the following flags: | 10579 |
| 10830 * | 10580 /** |
| 10831 * - 0x01 - set if the element is explicitly or implicitly abstract | 10581 * The parameters that should be defined for the method. |
| 10832 * - 0x02 - set if the element was declared to be ‘const’ | 10582 * |
| 10833 * - 0x04 - set if the element was declared to be ‘final’ | 10583 * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL |
| 10834 * - 0x08 - set if the element is a static member of a class or is a | 10584 * parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a |
| 10835 * top-level function or field | 10585 * NAMED parameter. |
| 10836 * - 0x10 - set if the element is private | 10586 * |
| 10837 * - 0x20 - set if the element is deprecated | 10587 * - To change the order and/or update proposed parameters, add parameters |
| 10838 */ | 10588 * with the same identifiers as proposed. |
| 10839 int get flags => _flags; | 10589 * - To add new parameters, omit their identifier. |
| 10840 | 10590 * - To remove some parameters, omit them in this list. |
| 10841 /** | 10591 */ |
| 10842 * A bit-map containing the following flags: | 10592 void set parameters(List<RefactoringMethodParameter> value) { |
| 10843 * | 10593 assert(value != null); |
| 10844 * - 0x01 - set if the element is explicitly or implicitly abstract | |
| 10845 * - 0x02 - set if the element was declared to be ‘const’ | |
| 10846 * - 0x04 - set if the element was declared to be ‘final’ | |
| 10847 * - 0x08 - set if the element is a static member of a class or is a | |
| 10848 * top-level function or field | |
| 10849 * - 0x10 - set if the element is private | |
| 10850 * - 0x20 - set if the element is deprecated | |
| 10851 */ | |
| 10852 void set flags(int value) { | |
| 10853 assert(value != null); | |
| 10854 this._flags = value; | |
| 10855 } | |
| 10856 | |
| 10857 /** | |
| 10858 * The parameter list for the element. If the element is not a method or | |
| 10859 * function this field will not be defined. If the element doesn't have | |
| 10860 * parameters (e.g. getter), this field will not be defined. If the element | |
| 10861 * has zero parameters, this field will have a value of "()". | |
| 10862 */ | |
| 10863 String get parameters => _parameters; | |
| 10864 | |
| 10865 /** | |
| 10866 * The parameter list for the element. If the element is not a method or | |
| 10867 * function this field will not be defined. If the element doesn't have | |
| 10868 * parameters (e.g. getter), this field will not be defined. If the element | |
| 10869 * has zero parameters, this field will have a value of "()". | |
| 10870 */ | |
| 10871 void set parameters(String value) { | |
| 10872 this._parameters = value; | 10594 this._parameters = value; |
| 10873 } | 10595 } |
| 10874 | 10596 |
| 10875 /** | 10597 /** |
| 10876 * The return type of the element. If the element is not a method or function | 10598 * True if all occurrences of the expression or statements should be replaced |
| 10877 * this field will not be defined. If the element does not have a declared | 10599 * by an invocation of the method. The expression or statements used to |
| 10878 * return type, this field will contain an empty string. | 10600 * initiate the refactoring will always be replaced. |
| 10879 */ | 10601 */ |
| 10880 String get returnType => _returnType; | 10602 bool get extractAll => _extractAll; |
| 10881 | 10603 |
| 10882 /** | 10604 /** |
| 10883 * The return type of the element. If the element is not a method or function | 10605 * True if all occurrences of the expression or statements should be replaced |
| 10884 * this field will not be defined. If the element does not have a declared | 10606 * by an invocation of the method. The expression or statements used to |
| 10885 * return type, this field will contain an empty string. | 10607 * initiate the refactoring will always be replaced. |
| 10886 */ | 10608 */ |
| 10887 void set returnType(String value) { | 10609 void set extractAll(bool value) { |
| 10888 this._returnType = value; | 10610 assert(value != null); |
| 10889 } | 10611 this._extractAll = value; |
| 10890 | 10612 } |
| 10891 /** | 10613 |
| 10892 * The type parameter list for the element. If the element doesn't have type | 10614 ExtractMethodOptions(String returnType, bool createGetter, String name, |
| 10893 * parameters, this field will not be defined. | 10615 List<RefactoringMethodParameter> parameters, bool extractAll) { |
| 10894 */ | 10616 this.returnType = returnType; |
| 10895 String get typeParameters => _typeParameters; | 10617 this.createGetter = createGetter; |
| 10896 | |
| 10897 /** | |
| 10898 * The type parameter list for the element. If the element doesn't have type | |
| 10899 * parameters, this field will not be defined. | |
| 10900 */ | |
| 10901 void set typeParameters(String value) { | |
| 10902 this._typeParameters = value; | |
| 10903 } | |
| 10904 | |
| 10905 Element(ElementKind kind, String name, int flags, | |
| 10906 {Location location, | |
| 10907 String parameters, | |
| 10908 String returnType, | |
| 10909 String typeParameters}) { | |
| 10910 this.kind = kind; | |
| 10911 this.name = name; | 10618 this.name = name; |
| 10912 this.location = location; | |
| 10913 this.flags = flags; | |
| 10914 this.parameters = parameters; | 10619 this.parameters = parameters; |
| 10915 this.returnType = returnType; | 10620 this.extractAll = extractAll; |
| 10916 this.typeParameters = typeParameters; | 10621 } |
| 10917 } | 10622 |
| 10918 | 10623 factory ExtractMethodOptions.fromJson( |
| 10919 factory Element.fromJson( | |
| 10920 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 10624 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 10921 if (json == null) { | 10625 if (json == null) { |
| 10922 json = {}; | 10626 json = {}; |
| 10923 } | 10627 } |
| 10924 if (json is Map) { | 10628 if (json is Map) { |
| 10925 ElementKind kind; | |
| 10926 if (json.containsKey("kind")) { | |
| 10927 kind = new ElementKind.fromJson( | |
| 10928 jsonDecoder, jsonPath + ".kind", json["kind"]); | |
| 10929 } else { | |
| 10930 throw jsonDecoder.missingKey(jsonPath, "kind"); | |
| 10931 } | |
| 10932 String name; | |
| 10933 if (json.containsKey("name")) { | |
| 10934 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | |
| 10935 } else { | |
| 10936 throw jsonDecoder.missingKey(jsonPath, "name"); | |
| 10937 } | |
| 10938 Location location; | |
| 10939 if (json.containsKey("location")) { | |
| 10940 location = new Location.fromJson( | |
| 10941 jsonDecoder, jsonPath + ".location", json["location"]); | |
| 10942 } | |
| 10943 int flags; | |
| 10944 if (json.containsKey("flags")) { | |
| 10945 flags = jsonDecoder.decodeInt(jsonPath + ".flags", json["flags"]); | |
| 10946 } else { | |
| 10947 throw jsonDecoder.missingKey(jsonPath, "flags"); | |
| 10948 } | |
| 10949 String parameters; | |
| 10950 if (json.containsKey("parameters")) { | |
| 10951 parameters = jsonDecoder.decodeString( | |
| 10952 jsonPath + ".parameters", json["parameters"]); | |
| 10953 } | |
| 10954 String returnType; | 10629 String returnType; |
| 10955 if (json.containsKey("returnType")) { | 10630 if (json.containsKey("returnType")) { |
| 10956 returnType = jsonDecoder.decodeString( | 10631 returnType = jsonDecoder.decodeString( |
| 10957 jsonPath + ".returnType", json["returnType"]); | 10632 jsonPath + ".returnType", json["returnType"]); |
| 10958 } | 10633 } else { |
| 10959 String typeParameters; | 10634 throw jsonDecoder.mismatch(jsonPath, "returnType"); |
| 10960 if (json.containsKey("typeParameters")) { | 10635 } |
| 10961 typeParameters = jsonDecoder.decodeString( | 10636 bool createGetter; |
| 10962 jsonPath + ".typeParameters", json["typeParameters"]); | 10637 if (json.containsKey("createGetter")) { |
| 10963 } | 10638 createGetter = jsonDecoder.decodeBool( |
| 10964 return new Element(kind, name, flags, | 10639 jsonPath + ".createGetter", json["createGetter"]); |
| 10965 location: location, | 10640 } else { |
| 10966 parameters: parameters, | 10641 throw jsonDecoder.mismatch(jsonPath, "createGetter"); |
| 10967 returnType: returnType, | 10642 } |
| 10968 typeParameters: typeParameters); | 10643 String name; |
| 10644 if (json.containsKey("name")) { |
| 10645 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); |
| 10646 } else { |
| 10647 throw jsonDecoder.mismatch(jsonPath, "name"); |
| 10648 } |
| 10649 List<RefactoringMethodParameter> parameters; |
| 10650 if (json.containsKey("parameters")) { |
| 10651 parameters = jsonDecoder.decodeList( |
| 10652 jsonPath + ".parameters", |
| 10653 json["parameters"], |
| 10654 (String jsonPath, Object json) => |
| 10655 new RefactoringMethodParameter.fromJson( |
| 10656 jsonDecoder, jsonPath, json)); |
| 10657 } else { |
| 10658 throw jsonDecoder.mismatch(jsonPath, "parameters"); |
| 10659 } |
| 10660 bool extractAll; |
| 10661 if (json.containsKey("extractAll")) { |
| 10662 extractAll = jsonDecoder.decodeBool( |
| 10663 jsonPath + ".extractAll", json["extractAll"]); |
| 10664 } else { |
| 10665 throw jsonDecoder.mismatch(jsonPath, "extractAll"); |
| 10666 } |
| 10667 return new ExtractMethodOptions( |
| 10668 returnType, createGetter, name, parameters, extractAll); |
| 10969 } else { | 10669 } else { |
| 10970 throw jsonDecoder.mismatch(jsonPath, "Element", json); | 10670 throw jsonDecoder.mismatch(jsonPath, "extractMethod options", json); |
| 10971 } | 10671 } |
| 10972 } | 10672 } |
| 10973 | 10673 |
| 10974 bool get isAbstract => (flags & FLAG_ABSTRACT) != 0; | 10674 factory ExtractMethodOptions.fromRefactoringParams( |
| 10975 bool get isConst => (flags & FLAG_CONST) != 0; | 10675 EditGetRefactoringParams refactoringParams, Request request) { |
| 10976 bool get isFinal => (flags & FLAG_FINAL) != 0; | 10676 return new ExtractMethodOptions.fromJson( |
| 10977 bool get isStatic => (flags & FLAG_STATIC) != 0; | 10677 new RequestDecoder(request), "options", refactoringParams.options); |
| 10978 bool get isPrivate => (flags & FLAG_PRIVATE) != 0; | 10678 } |
| 10979 bool get isDeprecated => (flags & FLAG_DEPRECATED) != 0; | 10679 |
| 10980 | 10680 @override |
| 10981 Map<String, dynamic> toJson() { | 10681 Map<String, dynamic> toJson() { |
| 10982 Map<String, dynamic> result = {}; | 10682 Map<String, dynamic> result = {}; |
| 10983 result["kind"] = kind.toJson(); | 10683 result["returnType"] = returnType; |
| 10684 result["createGetter"] = createGetter; |
| 10984 result["name"] = name; | 10685 result["name"] = name; |
| 10985 if (location != null) { | 10686 result["parameters"] = parameters |
| 10986 result["location"] = location.toJson(); | 10687 .map((RefactoringMethodParameter value) => value.toJson()) |
| 10987 } | 10688 .toList(); |
| 10988 result["flags"] = flags; | 10689 result["extractAll"] = extractAll; |
| 10989 if (parameters != null) { | |
| 10990 result["parameters"] = parameters; | |
| 10991 } | |
| 10992 if (returnType != null) { | |
| 10993 result["returnType"] = returnType; | |
| 10994 } | |
| 10995 if (typeParameters != null) { | |
| 10996 result["typeParameters"] = typeParameters; | |
| 10997 } | |
| 10998 return result; | 10690 return result; |
| 10999 } | 10691 } |
| 11000 | 10692 |
| 11001 @override | 10693 @override |
| 11002 String toString() => JSON.encode(toJson()); | 10694 String toString() => JSON.encode(toJson()); |
| 11003 | 10695 |
| 11004 @override | 10696 @override |
| 11005 bool operator ==(other) { | 10697 bool operator ==(other) { |
| 11006 if (other is Element) { | 10698 if (other is ExtractMethodOptions) { |
| 11007 return kind == other.kind && | 10699 return returnType == other.returnType && |
| 10700 createGetter == other.createGetter && |
| 11008 name == other.name && | 10701 name == other.name && |
| 11009 location == other.location && | 10702 listEqual( |
| 11010 flags == other.flags && | 10703 parameters, |
| 11011 parameters == other.parameters && | 10704 other.parameters, |
| 11012 returnType == other.returnType && | 10705 (RefactoringMethodParameter a, RefactoringMethodParameter b) => |
| 11013 typeParameters == other.typeParameters; | 10706 a == b) && |
| 10707 extractAll == other.extractAll; |
| 11014 } | 10708 } |
| 11015 return false; | 10709 return false; |
| 11016 } | 10710 } |
| 11017 | 10711 |
| 11018 @override | 10712 @override |
| 11019 int get hashCode { | 10713 int get hashCode { |
| 11020 int hash = 0; | 10714 int hash = 0; |
| 11021 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | 10715 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); |
| 10716 hash = JenkinsSmiHash.combine(hash, createGetter.hashCode); |
| 11022 hash = JenkinsSmiHash.combine(hash, name.hashCode); | 10717 hash = JenkinsSmiHash.combine(hash, name.hashCode); |
| 11023 hash = JenkinsSmiHash.combine(hash, location.hashCode); | |
| 11024 hash = JenkinsSmiHash.combine(hash, flags.hashCode); | |
| 11025 hash = JenkinsSmiHash.combine(hash, parameters.hashCode); | 10718 hash = JenkinsSmiHash.combine(hash, parameters.hashCode); |
| 11026 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); | 10719 hash = JenkinsSmiHash.combine(hash, extractAll.hashCode); |
| 11027 hash = JenkinsSmiHash.combine(hash, typeParameters.hashCode); | |
| 11028 return JenkinsSmiHash.finish(hash); | 10720 return JenkinsSmiHash.finish(hash); |
| 11029 } | 10721 } |
| 11030 } | 10722 } |
| 11031 | 10723 |
| 11032 /** | 10724 /** |
| 11033 * ElementKind | 10725 * FileKind |
| 11034 * | 10726 * |
| 11035 * enum { | 10727 * enum { |
| 11036 * CLASS | |
| 11037 * CLASS_TYPE_ALIAS | |
| 11038 * COMPILATION_UNIT | |
| 11039 * CONSTRUCTOR | |
| 11040 * ENUM | |
| 11041 * ENUM_CONSTANT | |
| 11042 * FIELD | |
| 11043 * FILE | |
| 11044 * FUNCTION | |
| 11045 * FUNCTION_TYPE_ALIAS | |
| 11046 * GETTER | |
| 11047 * LABEL | |
| 11048 * LIBRARY | 10728 * LIBRARY |
| 11049 * LOCAL_VARIABLE | 10729 * PART |
| 11050 * METHOD | |
| 11051 * PARAMETER | |
| 11052 * PREFIX | |
| 11053 * SETTER | |
| 11054 * TOP_LEVEL_VARIABLE | |
| 11055 * TYPE_PARAMETER | |
| 11056 * UNIT_TEST_GROUP | |
| 11057 * UNIT_TEST_TEST | |
| 11058 * UNKNOWN | |
| 11059 * } | 10730 * } |
| 11060 * | 10731 * |
| 11061 * Clients may not extend, implement or mix-in this class. | 10732 * Clients may not extend, implement or mix-in this class. |
| 11062 */ | 10733 */ |
| 11063 class ElementKind implements Enum { | 10734 class FileKind implements Enum { |
| 11064 static const ElementKind CLASS = const ElementKind._("CLASS"); | 10735 static const FileKind LIBRARY = const FileKind._("LIBRARY"); |
| 11065 | 10736 |
| 11066 static const ElementKind CLASS_TYPE_ALIAS = | 10737 static const FileKind PART = const FileKind._("PART"); |
| 11067 const ElementKind._("CLASS_TYPE_ALIAS"); | |
| 11068 | |
| 11069 static const ElementKind COMPILATION_UNIT = | |
| 11070 const ElementKind._("COMPILATION_UNIT"); | |
| 11071 | |
| 11072 static const ElementKind CONSTRUCTOR = const ElementKind._("CONSTRUCTOR"); | |
| 11073 | |
| 11074 static const ElementKind ENUM = const ElementKind._("ENUM"); | |
| 11075 | |
| 11076 static const ElementKind ENUM_CONSTANT = const ElementKind._("ENUM_CONSTANT"); | |
| 11077 | |
| 11078 static const ElementKind FIELD = const ElementKind._("FIELD"); | |
| 11079 | |
| 11080 static const ElementKind FILE = const ElementKind._("FILE"); | |
| 11081 | |
| 11082 static const ElementKind FUNCTION = const ElementKind._("FUNCTION"); | |
| 11083 | |
| 11084 static const ElementKind FUNCTION_TYPE_ALIAS = | |
| 11085 const ElementKind._("FUNCTION_TYPE_ALIAS"); | |
| 11086 | |
| 11087 static const ElementKind GETTER = const ElementKind._("GETTER"); | |
| 11088 | |
| 11089 static const ElementKind LABEL = const ElementKind._("LABEL"); | |
| 11090 | |
| 11091 static const ElementKind LIBRARY = const ElementKind._("LIBRARY"); | |
| 11092 | |
| 11093 static const ElementKind LOCAL_VARIABLE = | |
| 11094 const ElementKind._("LOCAL_VARIABLE"); | |
| 11095 | |
| 11096 static const ElementKind METHOD = const ElementKind._("METHOD"); | |
| 11097 | |
| 11098 static const ElementKind PARAMETER = const ElementKind._("PARAMETER"); | |
| 11099 | |
| 11100 static const ElementKind PREFIX = const ElementKind._("PREFIX"); | |
| 11101 | |
| 11102 static const ElementKind SETTER = const ElementKind._("SETTER"); | |
| 11103 | |
| 11104 static const ElementKind TOP_LEVEL_VARIABLE = | |
| 11105 const ElementKind._("TOP_LEVEL_VARIABLE"); | |
| 11106 | |
| 11107 static const ElementKind TYPE_PARAMETER = | |
| 11108 const ElementKind._("TYPE_PARAMETER"); | |
| 11109 | |
| 11110 /** | |
| 11111 * Deprecated: support for tests was removed. | |
| 11112 */ | |
| 11113 static const ElementKind UNIT_TEST_GROUP = | |
| 11114 const ElementKind._("UNIT_TEST_GROUP"); | |
| 11115 | |
| 11116 /** | |
| 11117 * Deprecated: support for tests was removed. | |
| 11118 */ | |
| 11119 static const ElementKind UNIT_TEST_TEST = | |
| 11120 const ElementKind._("UNIT_TEST_TEST"); | |
| 11121 | |
| 11122 static const ElementKind UNKNOWN = const ElementKind._("UNKNOWN"); | |
| 11123 | 10738 |
| 11124 /** | 10739 /** |
| 11125 * A list containing all of the enum values that are defined. | 10740 * A list containing all of the enum values that are defined. |
| 11126 */ | 10741 */ |
| 11127 static const List<ElementKind> VALUES = const <ElementKind>[ | 10742 static const List<FileKind> VALUES = const <FileKind>[LIBRARY, PART]; |
| 11128 CLASS, | 10743 |
| 11129 CLASS_TYPE_ALIAS, | 10744 @override |
| 11130 COMPILATION_UNIT, | |
| 11131 CONSTRUCTOR, | |
| 11132 ENUM, | |
| 11133 ENUM_CONSTANT, | |
| 11134 FIELD, | |
| 11135 FILE, | |
| 11136 FUNCTION, | |
| 11137 FUNCTION_TYPE_ALIAS, | |
| 11138 GETTER, | |
| 11139 LABEL, | |
| 11140 LIBRARY, | |
| 11141 LOCAL_VARIABLE, | |
| 11142 METHOD, | |
| 11143 PARAMETER, | |
| 11144 PREFIX, | |
| 11145 SETTER, | |
| 11146 TOP_LEVEL_VARIABLE, | |
| 11147 TYPE_PARAMETER, | |
| 11148 UNIT_TEST_GROUP, | |
| 11149 UNIT_TEST_TEST, | |
| 11150 UNKNOWN | |
| 11151 ]; | |
| 11152 | |
| 11153 final String name; | 10745 final String name; |
| 11154 | 10746 |
| 11155 const ElementKind._(this.name); | 10747 const FileKind._(this.name); |
| 11156 | 10748 |
| 11157 factory ElementKind(String name) { | 10749 factory FileKind(String name) { |
| 11158 switch (name) { | 10750 switch (name) { |
| 11159 case "CLASS": | |
| 11160 return CLASS; | |
| 11161 case "CLASS_TYPE_ALIAS": | |
| 11162 return CLASS_TYPE_ALIAS; | |
| 11163 case "COMPILATION_UNIT": | |
| 11164 return COMPILATION_UNIT; | |
| 11165 case "CONSTRUCTOR": | |
| 11166 return CONSTRUCTOR; | |
| 11167 case "ENUM": | |
| 11168 return ENUM; | |
| 11169 case "ENUM_CONSTANT": | |
| 11170 return ENUM_CONSTANT; | |
| 11171 case "FIELD": | |
| 11172 return FIELD; | |
| 11173 case "FILE": | |
| 11174 return FILE; | |
| 11175 case "FUNCTION": | |
| 11176 return FUNCTION; | |
| 11177 case "FUNCTION_TYPE_ALIAS": | |
| 11178 return FUNCTION_TYPE_ALIAS; | |
| 11179 case "GETTER": | |
| 11180 return GETTER; | |
| 11181 case "LABEL": | |
| 11182 return LABEL; | |
| 11183 case "LIBRARY": | 10751 case "LIBRARY": |
| 11184 return LIBRARY; | 10752 return LIBRARY; |
| 11185 case "LOCAL_VARIABLE": | 10753 case "PART": |
| 11186 return LOCAL_VARIABLE; | 10754 return PART; |
| 11187 case "METHOD": | |
| 11188 return METHOD; | |
| 11189 case "PARAMETER": | |
| 11190 return PARAMETER; | |
| 11191 case "PREFIX": | |
| 11192 return PREFIX; | |
| 11193 case "SETTER": | |
| 11194 return SETTER; | |
| 11195 case "TOP_LEVEL_VARIABLE": | |
| 11196 return TOP_LEVEL_VARIABLE; | |
| 11197 case "TYPE_PARAMETER": | |
| 11198 return TYPE_PARAMETER; | |
| 11199 case "UNIT_TEST_GROUP": | |
| 11200 return UNIT_TEST_GROUP; | |
| 11201 case "UNIT_TEST_TEST": | |
| 11202 return UNIT_TEST_TEST; | |
| 11203 case "UNKNOWN": | |
| 11204 return UNKNOWN; | |
| 11205 } | 10755 } |
| 11206 throw new Exception('Illegal enum value: $name'); | 10756 throw new Exception('Illegal enum value: $name'); |
| 11207 } | 10757 } |
| 11208 | 10758 |
| 11209 factory ElementKind.fromJson( | 10759 factory FileKind.fromJson( |
| 11210 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 10760 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 11211 if (json is String) { | 10761 if (json is String) { |
| 11212 try { | 10762 try { |
| 11213 return new ElementKind(json); | 10763 return new FileKind(json); |
| 11214 } catch (_) { | 10764 } catch (_) { |
| 11215 // Fall through | 10765 // Fall through |
| 11216 } | 10766 } |
| 11217 } | 10767 } |
| 11218 throw jsonDecoder.mismatch(jsonPath, "ElementKind", json); | 10768 throw jsonDecoder.mismatch(jsonPath, "FileKind", json); |
| 11219 } | 10769 } |
| 11220 | 10770 |
| 11221 @override | 10771 @override |
| 11222 String toString() => "ElementKind.$name"; | 10772 String toString() => "FileKind.$name"; |
| 11223 | 10773 |
| 11224 String toJson() => name; | 10774 String toJson() => name; |
| 11225 } | 10775 } |
| 11226 | 10776 |
| 11227 /** | 10777 /** |
| 11228 * ExecutableFile | 10778 * FoldingKind |
| 11229 * | 10779 * |
| 11230 * { | 10780 * enum { |
| 11231 * "file": FilePath | 10781 * COMMENT |
| 11232 * "kind": ExecutableKind | 10782 * CLASS_MEMBER |
| 10783 * DIRECTIVES |
| 10784 * DOCUMENTATION_COMMENT |
| 10785 * TOP_LEVEL_DECLARATION |
| 11233 * } | 10786 * } |
| 11234 * | 10787 * |
| 11235 * Clients may not extend, implement or mix-in this class. | 10788 * Clients may not extend, implement or mix-in this class. |
| 11236 */ | 10789 */ |
| 11237 class ExecutableFile implements HasToJson { | 10790 class FoldingKind implements Enum { |
| 11238 String _file; | 10791 static const FoldingKind COMMENT = const FoldingKind._("COMMENT"); |
| 11239 | 10792 |
| 11240 ExecutableKind _kind; | 10793 static const FoldingKind CLASS_MEMBER = const FoldingKind._("CLASS_MEMBER"); |
| 11241 | 10794 |
| 11242 /** | 10795 static const FoldingKind DIRECTIVES = const FoldingKind._("DIRECTIVES"); |
| 11243 * The path of the executable file. | 10796 |
| 11244 */ | 10797 static const FoldingKind DOCUMENTATION_COMMENT = |
| 11245 String get file => _file; | 10798 const FoldingKind._("DOCUMENTATION_COMMENT"); |
| 11246 | 10799 |
| 11247 /** | 10800 static const FoldingKind TOP_LEVEL_DECLARATION = |
| 11248 * The path of the executable file. | 10801 const FoldingKind._("TOP_LEVEL_DECLARATION"); |
| 11249 */ | 10802 |
| 11250 void set file(String value) { | 10803 /** |
| 11251 assert(value != null); | 10804 * A list containing all of the enum values that are defined. |
| 11252 this._file = value; | 10805 */ |
| 11253 } | 10806 static const List<FoldingKind> VALUES = const <FoldingKind>[ |
| 11254 | 10807 COMMENT, |
| 11255 /** | 10808 CLASS_MEMBER, |
| 11256 * The kind of the executable file. | 10809 DIRECTIVES, |
| 11257 */ | 10810 DOCUMENTATION_COMMENT, |
| 11258 ExecutableKind get kind => _kind; | 10811 TOP_LEVEL_DECLARATION |
| 11259 | 10812 ]; |
| 11260 /** | 10813 |
| 11261 * The kind of the executable file. | 10814 @override |
| 11262 */ | 10815 final String name; |
| 11263 void set kind(ExecutableKind value) { | 10816 |
| 10817 const FoldingKind._(this.name); |
| 10818 |
| 10819 factory FoldingKind(String name) { |
| 10820 switch (name) { |
| 10821 case "COMMENT": |
| 10822 return COMMENT; |
| 10823 case "CLASS_MEMBER": |
| 10824 return CLASS_MEMBER; |
| 10825 case "DIRECTIVES": |
| 10826 return DIRECTIVES; |
| 10827 case "DOCUMENTATION_COMMENT": |
| 10828 return DOCUMENTATION_COMMENT; |
| 10829 case "TOP_LEVEL_DECLARATION": |
| 10830 return TOP_LEVEL_DECLARATION; |
| 10831 } |
| 10832 throw new Exception('Illegal enum value: $name'); |
| 10833 } |
| 10834 |
| 10835 factory FoldingKind.fromJson( |
| 10836 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 10837 if (json is String) { |
| 10838 try { |
| 10839 return new FoldingKind(json); |
| 10840 } catch (_) { |
| 10841 // Fall through |
| 10842 } |
| 10843 } |
| 10844 throw jsonDecoder.mismatch(jsonPath, "FoldingKind", json); |
| 10845 } |
| 10846 |
| 10847 @override |
| 10848 String toString() => "FoldingKind.$name"; |
| 10849 |
| 10850 String toJson() => name; |
| 10851 } |
| 10852 |
| 10853 /** |
| 10854 * FoldingRegion |
| 10855 * |
| 10856 * { |
| 10857 * "kind": FoldingKind |
| 10858 * "offset": int |
| 10859 * "length": int |
| 10860 * } |
| 10861 * |
| 10862 * Clients may not extend, implement or mix-in this class. |
| 10863 */ |
| 10864 class FoldingRegion implements HasToJson { |
| 10865 FoldingKind _kind; |
| 10866 |
| 10867 int _offset; |
| 10868 |
| 10869 int _length; |
| 10870 |
| 10871 /** |
| 10872 * The kind of the region. |
| 10873 */ |
| 10874 FoldingKind get kind => _kind; |
| 10875 |
| 10876 /** |
| 10877 * The kind of the region. |
| 10878 */ |
| 10879 void set kind(FoldingKind value) { |
| 11264 assert(value != null); | 10880 assert(value != null); |
| 11265 this._kind = value; | 10881 this._kind = value; |
| 11266 } | 10882 } |
| 11267 | 10883 |
| 11268 ExecutableFile(String file, ExecutableKind kind) { | 10884 /** |
| 11269 this.file = file; | 10885 * The offset of the region to be folded. |
| 10886 */ |
| 10887 int get offset => _offset; |
| 10888 |
| 10889 /** |
| 10890 * The offset of the region to be folded. |
| 10891 */ |
| 10892 void set offset(int value) { |
| 10893 assert(value != null); |
| 10894 this._offset = value; |
| 10895 } |
| 10896 |
| 10897 /** |
| 10898 * The length of the region to be folded. |
| 10899 */ |
| 10900 int get length => _length; |
| 10901 |
| 10902 /** |
| 10903 * The length of the region to be folded. |
| 10904 */ |
| 10905 void set length(int value) { |
| 10906 assert(value != null); |
| 10907 this._length = value; |
| 10908 } |
| 10909 |
| 10910 FoldingRegion(FoldingKind kind, int offset, int length) { |
| 11270 this.kind = kind; | 10911 this.kind = kind; |
| 11271 } | 10912 this.offset = offset; |
| 11272 | 10913 this.length = length; |
| 11273 factory ExecutableFile.fromJson( | 10914 } |
| 10915 |
| 10916 factory FoldingRegion.fromJson( |
| 11274 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 10917 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 11275 if (json == null) { | 10918 if (json == null) { |
| 11276 json = {}; | 10919 json = {}; |
| 11277 } | 10920 } |
| 11278 if (json is Map) { | 10921 if (json is Map) { |
| 11279 String file; | 10922 FoldingKind kind; |
| 11280 if (json.containsKey("file")) { | |
| 11281 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
| 11282 } else { | |
| 11283 throw jsonDecoder.missingKey(jsonPath, "file"); | |
| 11284 } | |
| 11285 ExecutableKind kind; | |
| 11286 if (json.containsKey("kind")) { | 10923 if (json.containsKey("kind")) { |
| 11287 kind = new ExecutableKind.fromJson( | 10924 kind = new FoldingKind.fromJson( |
| 11288 jsonDecoder, jsonPath + ".kind", json["kind"]); | 10925 jsonDecoder, jsonPath + ".kind", json["kind"]); |
| 11289 } else { | 10926 } else { |
| 11290 throw jsonDecoder.missingKey(jsonPath, "kind"); | 10927 throw jsonDecoder.mismatch(jsonPath, "kind"); |
| 11291 } | 10928 } |
| 11292 return new ExecutableFile(file, kind); | 10929 int offset; |
| 10930 if (json.containsKey("offset")) { |
| 10931 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 10932 } else { |
| 10933 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 10934 } |
| 10935 int length; |
| 10936 if (json.containsKey("length")) { |
| 10937 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 10938 } else { |
| 10939 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 10940 } |
| 10941 return new FoldingRegion(kind, offset, length); |
| 11293 } else { | 10942 } else { |
| 11294 throw jsonDecoder.mismatch(jsonPath, "ExecutableFile", json); | 10943 throw jsonDecoder.mismatch(jsonPath, "FoldingRegion", json); |
| 11295 } | 10944 } |
| 11296 } | 10945 } |
| 11297 | 10946 |
| 10947 @override |
| 11298 Map<String, dynamic> toJson() { | 10948 Map<String, dynamic> toJson() { |
| 11299 Map<String, dynamic> result = {}; | 10949 Map<String, dynamic> result = {}; |
| 11300 result["file"] = file; | |
| 11301 result["kind"] = kind.toJson(); | 10950 result["kind"] = kind.toJson(); |
| 10951 result["offset"] = offset; |
| 10952 result["length"] = length; |
| 11302 return result; | 10953 return result; |
| 11303 } | 10954 } |
| 11304 | 10955 |
| 11305 @override | 10956 @override |
| 11306 String toString() => JSON.encode(toJson()); | 10957 String toString() => JSON.encode(toJson()); |
| 11307 | 10958 |
| 11308 @override | 10959 @override |
| 11309 bool operator ==(other) { | 10960 bool operator ==(other) { |
| 11310 if (other is ExecutableFile) { | 10961 if (other is FoldingRegion) { |
| 11311 return file == other.file && kind == other.kind; | 10962 return kind == other.kind && |
| 10963 offset == other.offset && |
| 10964 length == other.length; |
| 11312 } | 10965 } |
| 11313 return false; | 10966 return false; |
| 11314 } | 10967 } |
| 11315 | 10968 |
| 11316 @override | 10969 @override |
| 11317 int get hashCode { | 10970 int get hashCode { |
| 11318 int hash = 0; | 10971 int hash = 0; |
| 11319 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
| 11320 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | 10972 hash = JenkinsSmiHash.combine(hash, kind.hashCode); |
| 10973 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 10974 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 11321 return JenkinsSmiHash.finish(hash); | 10975 return JenkinsSmiHash.finish(hash); |
| 11322 } | 10976 } |
| 11323 } | 10977 } |
| 11324 | 10978 |
| 11325 /** | 10979 /** |
| 11326 * ExecutableKind | 10980 * GeneralAnalysisService |
| 11327 * | 10981 * |
| 11328 * enum { | 10982 * enum { |
| 11329 * CLIENT | 10983 * ANALYZED_FILES |
| 11330 * EITHER | |
| 11331 * NOT_EXECUTABLE | |
| 11332 * SERVER | |
| 11333 * } | 10984 * } |
| 11334 * | 10985 * |
| 11335 * Clients may not extend, implement or mix-in this class. | 10986 * Clients may not extend, implement or mix-in this class. |
| 11336 */ | 10987 */ |
| 11337 class ExecutableKind implements Enum { | 10988 class GeneralAnalysisService implements Enum { |
| 11338 static const ExecutableKind CLIENT = const ExecutableKind._("CLIENT"); | 10989 static const GeneralAnalysisService ANALYZED_FILES = |
| 11339 | 10990 const GeneralAnalysisService._("ANALYZED_FILES"); |
| 11340 static const ExecutableKind EITHER = const ExecutableKind._("EITHER"); | |
| 11341 | |
| 11342 static const ExecutableKind NOT_EXECUTABLE = | |
| 11343 const ExecutableKind._("NOT_EXECUTABLE"); | |
| 11344 | |
| 11345 static const ExecutableKind SERVER = const ExecutableKind._("SERVER"); | |
| 11346 | 10991 |
| 11347 /** | 10992 /** |
| 11348 * A list containing all of the enum values that are defined. | 10993 * A list containing all of the enum values that are defined. |
| 11349 */ | 10994 */ |
| 11350 static const List<ExecutableKind> VALUES = const <ExecutableKind>[ | 10995 static const List<GeneralAnalysisService> VALUES = |
| 11351 CLIENT, | 10996 const <GeneralAnalysisService>[ANALYZED_FILES]; |
| 11352 EITHER, | |
| 11353 NOT_EXECUTABLE, | |
| 11354 SERVER | |
| 11355 ]; | |
| 11356 | 10997 |
| 10998 @override |
| 11357 final String name; | 10999 final String name; |
| 11358 | 11000 |
| 11359 const ExecutableKind._(this.name); | 11001 const GeneralAnalysisService._(this.name); |
| 11360 | 11002 |
| 11361 factory ExecutableKind(String name) { | 11003 factory GeneralAnalysisService(String name) { |
| 11362 switch (name) { | 11004 switch (name) { |
| 11363 case "CLIENT": | 11005 case "ANALYZED_FILES": |
| 11364 return CLIENT; | 11006 return ANALYZED_FILES; |
| 11365 case "EITHER": | |
| 11366 return EITHER; | |
| 11367 case "NOT_EXECUTABLE": | |
| 11368 return NOT_EXECUTABLE; | |
| 11369 case "SERVER": | |
| 11370 return SERVER; | |
| 11371 } | 11007 } |
| 11372 throw new Exception('Illegal enum value: $name'); | 11008 throw new Exception('Illegal enum value: $name'); |
| 11373 } | 11009 } |
| 11374 | 11010 |
| 11375 factory ExecutableKind.fromJson( | 11011 factory GeneralAnalysisService.fromJson( |
| 11376 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 11012 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 11377 if (json is String) { | 11013 if (json is String) { |
| 11378 try { | 11014 try { |
| 11379 return new ExecutableKind(json); | 11015 return new GeneralAnalysisService(json); |
| 11380 } catch (_) { | 11016 } catch (_) { |
| 11381 // Fall through | 11017 // Fall through |
| 11382 } | 11018 } |
| 11383 } | 11019 } |
| 11384 throw jsonDecoder.mismatch(jsonPath, "ExecutableKind", json); | 11020 throw jsonDecoder.mismatch(jsonPath, "GeneralAnalysisService", json); |
| 11385 } | 11021 } |
| 11386 | 11022 |
| 11387 @override | 11023 @override |
| 11388 String toString() => "ExecutableKind.$name"; | 11024 String toString() => "GeneralAnalysisService.$name"; |
| 11389 | 11025 |
| 11390 String toJson() => name; | 11026 String toJson() => name; |
| 11391 } | 11027 } |
| 11392 | 11028 |
| 11393 /** | 11029 /** |
| 11394 * ExecutionService | 11030 * HighlightRegion |
| 11395 * | |
| 11396 * enum { | |
| 11397 * LAUNCH_DATA | |
| 11398 * } | |
| 11399 * | |
| 11400 * Clients may not extend, implement or mix-in this class. | |
| 11401 */ | |
| 11402 class ExecutionService implements Enum { | |
| 11403 static const ExecutionService LAUNCH_DATA = | |
| 11404 const ExecutionService._("LAUNCH_DATA"); | |
| 11405 | |
| 11406 /** | |
| 11407 * A list containing all of the enum values that are defined. | |
| 11408 */ | |
| 11409 static const List<ExecutionService> VALUES = const <ExecutionService>[ | |
| 11410 LAUNCH_DATA | |
| 11411 ]; | |
| 11412 | |
| 11413 final String name; | |
| 11414 | |
| 11415 const ExecutionService._(this.name); | |
| 11416 | |
| 11417 factory ExecutionService(String name) { | |
| 11418 switch (name) { | |
| 11419 case "LAUNCH_DATA": | |
| 11420 return LAUNCH_DATA; | |
| 11421 } | |
| 11422 throw new Exception('Illegal enum value: $name'); | |
| 11423 } | |
| 11424 | |
| 11425 factory ExecutionService.fromJson( | |
| 11426 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 11427 if (json is String) { | |
| 11428 try { | |
| 11429 return new ExecutionService(json); | |
| 11430 } catch (_) { | |
| 11431 // Fall through | |
| 11432 } | |
| 11433 } | |
| 11434 throw jsonDecoder.mismatch(jsonPath, "ExecutionService", json); | |
| 11435 } | |
| 11436 | |
| 11437 @override | |
| 11438 String toString() => "ExecutionService.$name"; | |
| 11439 | |
| 11440 String toJson() => name; | |
| 11441 } | |
| 11442 | |
| 11443 /** | |
| 11444 * FileKind | |
| 11445 * | |
| 11446 * enum { | |
| 11447 * LIBRARY | |
| 11448 * PART | |
| 11449 * } | |
| 11450 * | |
| 11451 * Clients may not extend, implement or mix-in this class. | |
| 11452 */ | |
| 11453 class FileKind implements Enum { | |
| 11454 static const FileKind LIBRARY = const FileKind._("LIBRARY"); | |
| 11455 | |
| 11456 static const FileKind PART = const FileKind._("PART"); | |
| 11457 | |
| 11458 /** | |
| 11459 * A list containing all of the enum values that are defined. | |
| 11460 */ | |
| 11461 static const List<FileKind> VALUES = const <FileKind>[LIBRARY, PART]; | |
| 11462 | |
| 11463 final String name; | |
| 11464 | |
| 11465 const FileKind._(this.name); | |
| 11466 | |
| 11467 factory FileKind(String name) { | |
| 11468 switch (name) { | |
| 11469 case "LIBRARY": | |
| 11470 return LIBRARY; | |
| 11471 case "PART": | |
| 11472 return PART; | |
| 11473 } | |
| 11474 throw new Exception('Illegal enum value: $name'); | |
| 11475 } | |
| 11476 | |
| 11477 factory FileKind.fromJson( | |
| 11478 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 11479 if (json is String) { | |
| 11480 try { | |
| 11481 return new FileKind(json); | |
| 11482 } catch (_) { | |
| 11483 // Fall through | |
| 11484 } | |
| 11485 } | |
| 11486 throw jsonDecoder.mismatch(jsonPath, "FileKind", json); | |
| 11487 } | |
| 11488 | |
| 11489 @override | |
| 11490 String toString() => "FileKind.$name"; | |
| 11491 | |
| 11492 String toJson() => name; | |
| 11493 } | |
| 11494 | |
| 11495 /** | |
| 11496 * FoldingKind | |
| 11497 * | |
| 11498 * enum { | |
| 11499 * COMMENT | |
| 11500 * CLASS_MEMBER | |
| 11501 * DIRECTIVES | |
| 11502 * DOCUMENTATION_COMMENT | |
| 11503 * TOP_LEVEL_DECLARATION | |
| 11504 * } | |
| 11505 * | |
| 11506 * Clients may not extend, implement or mix-in this class. | |
| 11507 */ | |
| 11508 class FoldingKind implements Enum { | |
| 11509 static const FoldingKind COMMENT = const FoldingKind._("COMMENT"); | |
| 11510 | |
| 11511 static const FoldingKind CLASS_MEMBER = const FoldingKind._("CLASS_MEMBER"); | |
| 11512 | |
| 11513 static const FoldingKind DIRECTIVES = const FoldingKind._("DIRECTIVES"); | |
| 11514 | |
| 11515 static const FoldingKind DOCUMENTATION_COMMENT = | |
| 11516 const FoldingKind._("DOCUMENTATION_COMMENT"); | |
| 11517 | |
| 11518 static const FoldingKind TOP_LEVEL_DECLARATION = | |
| 11519 const FoldingKind._("TOP_LEVEL_DECLARATION"); | |
| 11520 | |
| 11521 /** | |
| 11522 * A list containing all of the enum values that are defined. | |
| 11523 */ | |
| 11524 static const List<FoldingKind> VALUES = const <FoldingKind>[ | |
| 11525 COMMENT, | |
| 11526 CLASS_MEMBER, | |
| 11527 DIRECTIVES, | |
| 11528 DOCUMENTATION_COMMENT, | |
| 11529 TOP_LEVEL_DECLARATION | |
| 11530 ]; | |
| 11531 | |
| 11532 final String name; | |
| 11533 | |
| 11534 const FoldingKind._(this.name); | |
| 11535 | |
| 11536 factory FoldingKind(String name) { | |
| 11537 switch (name) { | |
| 11538 case "COMMENT": | |
| 11539 return COMMENT; | |
| 11540 case "CLASS_MEMBER": | |
| 11541 return CLASS_MEMBER; | |
| 11542 case "DIRECTIVES": | |
| 11543 return DIRECTIVES; | |
| 11544 case "DOCUMENTATION_COMMENT": | |
| 11545 return DOCUMENTATION_COMMENT; | |
| 11546 case "TOP_LEVEL_DECLARATION": | |
| 11547 return TOP_LEVEL_DECLARATION; | |
| 11548 } | |
| 11549 throw new Exception('Illegal enum value: $name'); | |
| 11550 } | |
| 11551 | |
| 11552 factory FoldingKind.fromJson( | |
| 11553 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 11554 if (json is String) { | |
| 11555 try { | |
| 11556 return new FoldingKind(json); | |
| 11557 } catch (_) { | |
| 11558 // Fall through | |
| 11559 } | |
| 11560 } | |
| 11561 throw jsonDecoder.mismatch(jsonPath, "FoldingKind", json); | |
| 11562 } | |
| 11563 | |
| 11564 @override | |
| 11565 String toString() => "FoldingKind.$name"; | |
| 11566 | |
| 11567 String toJson() => name; | |
| 11568 } | |
| 11569 | |
| 11570 /** | |
| 11571 * FoldingRegion | |
| 11572 * | 11031 * |
| 11573 * { | 11032 * { |
| 11574 * "kind": FoldingKind | 11033 * "type": HighlightRegionType |
| 11575 * "offset": int | 11034 * "offset": int |
| 11576 * "length": int | 11035 * "length": int |
| 11577 * } | 11036 * } |
| 11578 * | 11037 * |
| 11579 * Clients may not extend, implement or mix-in this class. | 11038 * Clients may not extend, implement or mix-in this class. |
| 11580 */ | 11039 */ |
| 11581 class FoldingRegion implements HasToJson { | 11040 class HighlightRegion implements HasToJson { |
| 11582 FoldingKind _kind; | 11041 HighlightRegionType _type; |
| 11583 | 11042 |
| 11584 int _offset; | 11043 int _offset; |
| 11585 | 11044 |
| 11586 int _length; | 11045 int _length; |
| 11587 | 11046 |
| 11588 /** | 11047 /** |
| 11589 * The kind of the region. | 11048 * The type of highlight associated with the region. |
| 11590 */ | 11049 */ |
| 11591 FoldingKind get kind => _kind; | 11050 HighlightRegionType get type => _type; |
| 11592 | 11051 |
| 11593 /** | 11052 /** |
| 11594 * The kind of the region. | 11053 * The type of highlight associated with the region. |
| 11595 */ | 11054 */ |
| 11596 void set kind(FoldingKind value) { | 11055 void set type(HighlightRegionType value) { |
| 11597 assert(value != null); | 11056 assert(value != null); |
| 11598 this._kind = value; | 11057 this._type = value; |
| 11599 } | 11058 } |
| 11600 | 11059 |
| 11601 /** | 11060 /** |
| 11602 * The offset of the region to be folded. | 11061 * The offset of the region to be highlighted. |
| 11603 */ | 11062 */ |
| 11604 int get offset => _offset; | 11063 int get offset => _offset; |
| 11605 | 11064 |
| 11606 /** | 11065 /** |
| 11607 * The offset of the region to be folded. | 11066 * The offset of the region to be highlighted. |
| 11608 */ | 11067 */ |
| 11609 void set offset(int value) { | 11068 void set offset(int value) { |
| 11610 assert(value != null); | 11069 assert(value != null); |
| 11611 this._offset = value; | 11070 this._offset = value; |
| 11612 } | 11071 } |
| 11613 | 11072 |
| 11614 /** | 11073 /** |
| 11615 * The length of the region to be folded. | 11074 * The length of the region to be highlighted. |
| 11616 */ | 11075 */ |
| 11617 int get length => _length; | 11076 int get length => _length; |
| 11618 | 11077 |
| 11619 /** | 11078 /** |
| 11620 * The length of the region to be folded. | 11079 * The length of the region to be highlighted. |
| 11621 */ | 11080 */ |
| 11622 void set length(int value) { | 11081 void set length(int value) { |
| 11623 assert(value != null); | 11082 assert(value != null); |
| 11624 this._length = value; | 11083 this._length = value; |
| 11625 } | 11084 } |
| 11626 | 11085 |
| 11627 FoldingRegion(FoldingKind kind, int offset, int length) { | 11086 HighlightRegion(HighlightRegionType type, int offset, int length) { |
| 11628 this.kind = kind; | 11087 this.type = type; |
| 11629 this.offset = offset; | 11088 this.offset = offset; |
| 11630 this.length = length; | 11089 this.length = length; |
| 11631 } | 11090 } |
| 11632 | 11091 |
| 11633 factory FoldingRegion.fromJson( | 11092 factory HighlightRegion.fromJson( |
| 11634 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 11093 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 11635 if (json == null) { | 11094 if (json == null) { |
| 11636 json = {}; | 11095 json = {}; |
| 11637 } | 11096 } |
| 11638 if (json is Map) { | 11097 if (json is Map) { |
| 11639 FoldingKind kind; | 11098 HighlightRegionType type; |
| 11640 if (json.containsKey("kind")) { | 11099 if (json.containsKey("type")) { |
| 11641 kind = new FoldingKind.fromJson( | 11100 type = new HighlightRegionType.fromJson( |
| 11642 jsonDecoder, jsonPath + ".kind", json["kind"]); | 11101 jsonDecoder, jsonPath + ".type", json["type"]); |
| 11643 } else { | 11102 } else { |
| 11644 throw jsonDecoder.missingKey(jsonPath, "kind"); | 11103 throw jsonDecoder.mismatch(jsonPath, "type"); |
| 11645 } | 11104 } |
| 11646 int offset; | 11105 int offset; |
| 11647 if (json.containsKey("offset")) { | 11106 if (json.containsKey("offset")) { |
| 11648 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 11107 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 11649 } else { | 11108 } else { |
| 11650 throw jsonDecoder.missingKey(jsonPath, "offset"); | 11109 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 11651 } | 11110 } |
| 11652 int length; | 11111 int length; |
| 11653 if (json.containsKey("length")) { | 11112 if (json.containsKey("length")) { |
| 11654 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 11113 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 11655 } else { | 11114 } else { |
| 11656 throw jsonDecoder.missingKey(jsonPath, "length"); | 11115 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 11657 } | 11116 } |
| 11658 return new FoldingRegion(kind, offset, length); | 11117 return new HighlightRegion(type, offset, length); |
| 11659 } else { | 11118 } else { |
| 11660 throw jsonDecoder.mismatch(jsonPath, "FoldingRegion", json); | 11119 throw jsonDecoder.mismatch(jsonPath, "HighlightRegion", json); |
| 11661 } | 11120 } |
| 11662 } | 11121 } |
| 11663 | 11122 |
| 11123 @override |
| 11664 Map<String, dynamic> toJson() { | 11124 Map<String, dynamic> toJson() { |
| 11665 Map<String, dynamic> result = {}; | 11125 Map<String, dynamic> result = {}; |
| 11666 result["kind"] = kind.toJson(); | 11126 result["type"] = type.toJson(); |
| 11667 result["offset"] = offset; | 11127 result["offset"] = offset; |
| 11668 result["length"] = length; | 11128 result["length"] = length; |
| 11669 return result; | 11129 return result; |
| 11670 } | 11130 } |
| 11671 | 11131 |
| 11672 @override | 11132 @override |
| 11673 String toString() => JSON.encode(toJson()); | 11133 String toString() => JSON.encode(toJson()); |
| 11674 | 11134 |
| 11675 @override | 11135 @override |
| 11676 bool operator ==(other) { | 11136 bool operator ==(other) { |
| 11677 if (other is FoldingRegion) { | 11137 if (other is HighlightRegion) { |
| 11678 return kind == other.kind && | 11138 return type == other.type && |
| 11679 offset == other.offset && | 11139 offset == other.offset && |
| 11680 length == other.length; | 11140 length == other.length; |
| 11681 } | 11141 } |
| 11682 return false; | 11142 return false; |
| 11683 } | 11143 } |
| 11684 | 11144 |
| 11685 @override | 11145 @override |
| 11686 int get hashCode { | 11146 int get hashCode { |
| 11687 int hash = 0; | 11147 int hash = 0; |
| 11688 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | 11148 hash = JenkinsSmiHash.combine(hash, type.hashCode); |
| 11689 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 11149 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 11690 hash = JenkinsSmiHash.combine(hash, length.hashCode); | 11150 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 11691 return JenkinsSmiHash.finish(hash); | 11151 return JenkinsSmiHash.finish(hash); |
| 11692 } | 11152 } |
| 11693 } | 11153 } |
| 11694 | 11154 |
| 11695 /** | 11155 /** |
| 11696 * GeneralAnalysisService | |
| 11697 * | |
| 11698 * enum { | |
| 11699 * ANALYZED_FILES | |
| 11700 * } | |
| 11701 * | |
| 11702 * Clients may not extend, implement or mix-in this class. | |
| 11703 */ | |
| 11704 class GeneralAnalysisService implements Enum { | |
| 11705 static const GeneralAnalysisService ANALYZED_FILES = | |
| 11706 const GeneralAnalysisService._("ANALYZED_FILES"); | |
| 11707 | |
| 11708 /** | |
| 11709 * A list containing all of the enum values that are defined. | |
| 11710 */ | |
| 11711 static const List<GeneralAnalysisService> VALUES = | |
| 11712 const <GeneralAnalysisService>[ANALYZED_FILES]; | |
| 11713 | |
| 11714 final String name; | |
| 11715 | |
| 11716 const GeneralAnalysisService._(this.name); | |
| 11717 | |
| 11718 factory GeneralAnalysisService(String name) { | |
| 11719 switch (name) { | |
| 11720 case "ANALYZED_FILES": | |
| 11721 return ANALYZED_FILES; | |
| 11722 } | |
| 11723 throw new Exception('Illegal enum value: $name'); | |
| 11724 } | |
| 11725 | |
| 11726 factory GeneralAnalysisService.fromJson( | |
| 11727 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 11728 if (json is String) { | |
| 11729 try { | |
| 11730 return new GeneralAnalysisService(json); | |
| 11731 } catch (_) { | |
| 11732 // Fall through | |
| 11733 } | |
| 11734 } | |
| 11735 throw jsonDecoder.mismatch(jsonPath, "GeneralAnalysisService", json); | |
| 11736 } | |
| 11737 | |
| 11738 @override | |
| 11739 String toString() => "GeneralAnalysisService.$name"; | |
| 11740 | |
| 11741 String toJson() => name; | |
| 11742 } | |
| 11743 | |
| 11744 /** | |
| 11745 * HighlightRegion | |
| 11746 * | |
| 11747 * { | |
| 11748 * "type": HighlightRegionType | |
| 11749 * "offset": int | |
| 11750 * "length": int | |
| 11751 * } | |
| 11752 * | |
| 11753 * Clients may not extend, implement or mix-in this class. | |
| 11754 */ | |
| 11755 class HighlightRegion implements HasToJson { | |
| 11756 HighlightRegionType _type; | |
| 11757 | |
| 11758 int _offset; | |
| 11759 | |
| 11760 int _length; | |
| 11761 | |
| 11762 /** | |
| 11763 * The type of highlight associated with the region. | |
| 11764 */ | |
| 11765 HighlightRegionType get type => _type; | |
| 11766 | |
| 11767 /** | |
| 11768 * The type of highlight associated with the region. | |
| 11769 */ | |
| 11770 void set type(HighlightRegionType value) { | |
| 11771 assert(value != null); | |
| 11772 this._type = value; | |
| 11773 } | |
| 11774 | |
| 11775 /** | |
| 11776 * The offset of the region to be highlighted. | |
| 11777 */ | |
| 11778 int get offset => _offset; | |
| 11779 | |
| 11780 /** | |
| 11781 * The offset of the region to be highlighted. | |
| 11782 */ | |
| 11783 void set offset(int value) { | |
| 11784 assert(value != null); | |
| 11785 this._offset = value; | |
| 11786 } | |
| 11787 | |
| 11788 /** | |
| 11789 * The length of the region to be highlighted. | |
| 11790 */ | |
| 11791 int get length => _length; | |
| 11792 | |
| 11793 /** | |
| 11794 * The length of the region to be highlighted. | |
| 11795 */ | |
| 11796 void set length(int value) { | |
| 11797 assert(value != null); | |
| 11798 this._length = value; | |
| 11799 } | |
| 11800 | |
| 11801 HighlightRegion(HighlightRegionType type, int offset, int length) { | |
| 11802 this.type = type; | |
| 11803 this.offset = offset; | |
| 11804 this.length = length; | |
| 11805 } | |
| 11806 | |
| 11807 factory HighlightRegion.fromJson( | |
| 11808 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 11809 if (json == null) { | |
| 11810 json = {}; | |
| 11811 } | |
| 11812 if (json is Map) { | |
| 11813 HighlightRegionType type; | |
| 11814 if (json.containsKey("type")) { | |
| 11815 type = new HighlightRegionType.fromJson( | |
| 11816 jsonDecoder, jsonPath + ".type", json["type"]); | |
| 11817 } else { | |
| 11818 throw jsonDecoder.missingKey(jsonPath, "type"); | |
| 11819 } | |
| 11820 int offset; | |
| 11821 if (json.containsKey("offset")) { | |
| 11822 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
| 11823 } else { | |
| 11824 throw jsonDecoder.missingKey(jsonPath, "offset"); | |
| 11825 } | |
| 11826 int length; | |
| 11827 if (json.containsKey("length")) { | |
| 11828 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
| 11829 } else { | |
| 11830 throw jsonDecoder.missingKey(jsonPath, "length"); | |
| 11831 } | |
| 11832 return new HighlightRegion(type, offset, length); | |
| 11833 } else { | |
| 11834 throw jsonDecoder.mismatch(jsonPath, "HighlightRegion", json); | |
| 11835 } | |
| 11836 } | |
| 11837 | |
| 11838 Map<String, dynamic> toJson() { | |
| 11839 Map<String, dynamic> result = {}; | |
| 11840 result["type"] = type.toJson(); | |
| 11841 result["offset"] = offset; | |
| 11842 result["length"] = length; | |
| 11843 return result; | |
| 11844 } | |
| 11845 | |
| 11846 @override | |
| 11847 String toString() => JSON.encode(toJson()); | |
| 11848 | |
| 11849 @override | |
| 11850 bool operator ==(other) { | |
| 11851 if (other is HighlightRegion) { | |
| 11852 return type == other.type && | |
| 11853 offset == other.offset && | |
| 11854 length == other.length; | |
| 11855 } | |
| 11856 return false; | |
| 11857 } | |
| 11858 | |
| 11859 @override | |
| 11860 int get hashCode { | |
| 11861 int hash = 0; | |
| 11862 hash = JenkinsSmiHash.combine(hash, type.hashCode); | |
| 11863 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
| 11864 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
| 11865 return JenkinsSmiHash.finish(hash); | |
| 11866 } | |
| 11867 } | |
| 11868 | |
| 11869 /** | |
| 11870 * HighlightRegionType | 11156 * HighlightRegionType |
| 11871 * | 11157 * |
| 11872 * enum { | 11158 * enum { |
| 11873 * ANNOTATION | 11159 * ANNOTATION |
| 11874 * BUILT_IN | 11160 * BUILT_IN |
| 11875 * CLASS | 11161 * CLASS |
| 11876 * COMMENT_BLOCK | 11162 * COMMENT_BLOCK |
| 11877 * COMMENT_DOCUMENTATION | 11163 * COMMENT_DOCUMENTATION |
| 11878 * COMMENT_END_OF_LINE | 11164 * COMMENT_END_OF_LINE |
| 11879 * CONSTRUCTOR | 11165 * CONSTRUCTOR |
| (...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12382 TOP_LEVEL_GETTER_REFERENCE, | 11668 TOP_LEVEL_GETTER_REFERENCE, |
| 12383 TOP_LEVEL_SETTER_DECLARATION, | 11669 TOP_LEVEL_SETTER_DECLARATION, |
| 12384 TOP_LEVEL_SETTER_REFERENCE, | 11670 TOP_LEVEL_SETTER_REFERENCE, |
| 12385 TOP_LEVEL_VARIABLE_DECLARATION, | 11671 TOP_LEVEL_VARIABLE_DECLARATION, |
| 12386 TYPE_NAME_DYNAMIC, | 11672 TYPE_NAME_DYNAMIC, |
| 12387 TYPE_PARAMETER, | 11673 TYPE_PARAMETER, |
| 12388 UNRESOLVED_INSTANCE_MEMBER_REFERENCE, | 11674 UNRESOLVED_INSTANCE_MEMBER_REFERENCE, |
| 12389 VALID_STRING_ESCAPE | 11675 VALID_STRING_ESCAPE |
| 12390 ]; | 11676 ]; |
| 12391 | 11677 |
| 11678 @override |
| 12392 final String name; | 11679 final String name; |
| 12393 | 11680 |
| 12394 const HighlightRegionType._(this.name); | 11681 const HighlightRegionType._(this.name); |
| 12395 | 11682 |
| 12396 factory HighlightRegionType(String name) { | 11683 factory HighlightRegionType(String name) { |
| 12397 switch (name) { | 11684 switch (name) { |
| 12398 case "ANNOTATION": | 11685 case "ANNOTATION": |
| 12399 return ANNOTATION; | 11686 return ANNOTATION; |
| 12400 case "BUILT_IN": | 11687 case "BUILT_IN": |
| 12401 return BUILT_IN; | 11688 return BUILT_IN; |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12820 factory HoverInformation.fromJson( | 12107 factory HoverInformation.fromJson( |
| 12821 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 12108 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 12822 if (json == null) { | 12109 if (json == null) { |
| 12823 json = {}; | 12110 json = {}; |
| 12824 } | 12111 } |
| 12825 if (json is Map) { | 12112 if (json is Map) { |
| 12826 int offset; | 12113 int offset; |
| 12827 if (json.containsKey("offset")) { | 12114 if (json.containsKey("offset")) { |
| 12828 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 12115 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 12829 } else { | 12116 } else { |
| 12830 throw jsonDecoder.missingKey(jsonPath, "offset"); | 12117 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 12831 } | 12118 } |
| 12832 int length; | 12119 int length; |
| 12833 if (json.containsKey("length")) { | 12120 if (json.containsKey("length")) { |
| 12834 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 12121 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 12835 } else { | 12122 } else { |
| 12836 throw jsonDecoder.missingKey(jsonPath, "length"); | 12123 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 12837 } | 12124 } |
| 12838 String containingLibraryPath; | 12125 String containingLibraryPath; |
| 12839 if (json.containsKey("containingLibraryPath")) { | 12126 if (json.containsKey("containingLibraryPath")) { |
| 12840 containingLibraryPath = jsonDecoder.decodeString( | 12127 containingLibraryPath = jsonDecoder.decodeString( |
| 12841 jsonPath + ".containingLibraryPath", json["containingLibraryPath"]); | 12128 jsonPath + ".containingLibraryPath", json["containingLibraryPath"]); |
| 12842 } | 12129 } |
| 12843 String containingLibraryName; | 12130 String containingLibraryName; |
| 12844 if (json.containsKey("containingLibraryName")) { | 12131 if (json.containsKey("containingLibraryName")) { |
| 12845 containingLibraryName = jsonDecoder.decodeString( | 12132 containingLibraryName = jsonDecoder.decodeString( |
| 12846 jsonPath + ".containingLibraryName", json["containingLibraryName"]); | 12133 jsonPath + ".containingLibraryName", json["containingLibraryName"]); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12895 elementKind: elementKind, | 12182 elementKind: elementKind, |
| 12896 isDeprecated: isDeprecated, | 12183 isDeprecated: isDeprecated, |
| 12897 parameter: parameter, | 12184 parameter: parameter, |
| 12898 propagatedType: propagatedType, | 12185 propagatedType: propagatedType, |
| 12899 staticType: staticType); | 12186 staticType: staticType); |
| 12900 } else { | 12187 } else { |
| 12901 throw jsonDecoder.mismatch(jsonPath, "HoverInformation", json); | 12188 throw jsonDecoder.mismatch(jsonPath, "HoverInformation", json); |
| 12902 } | 12189 } |
| 12903 } | 12190 } |
| 12904 | 12191 |
| 12192 @override |
| 12905 Map<String, dynamic> toJson() { | 12193 Map<String, dynamic> toJson() { |
| 12906 Map<String, dynamic> result = {}; | 12194 Map<String, dynamic> result = {}; |
| 12907 result["offset"] = offset; | 12195 result["offset"] = offset; |
| 12908 result["length"] = length; | 12196 result["length"] = length; |
| 12909 if (containingLibraryPath != null) { | 12197 if (containingLibraryPath != null) { |
| 12910 result["containingLibraryPath"] = containingLibraryPath; | 12198 result["containingLibraryPath"] = containingLibraryPath; |
| 12911 } | 12199 } |
| 12912 if (containingLibraryName != null) { | 12200 if (containingLibraryName != null) { |
| 12913 result["containingLibraryName"] = containingLibraryName; | 12201 result["containingLibraryName"] = containingLibraryName; |
| 12914 } | 12202 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 12932 } | 12220 } |
| 12933 if (propagatedType != null) { | 12221 if (propagatedType != null) { |
| 12934 result["propagatedType"] = propagatedType; | 12222 result["propagatedType"] = propagatedType; |
| 12935 } | 12223 } |
| 12936 if (staticType != null) { | 12224 if (staticType != null) { |
| 12937 result["staticType"] = staticType; | 12225 result["staticType"] = staticType; |
| 12938 } | 12226 } |
| 12939 return result; | 12227 return result; |
| 12940 } | 12228 } |
| 12941 | 12229 |
| 12230 @override |
| 12231 String toString() => JSON.encode(toJson()); |
| 12232 |
| 12233 @override |
| 12234 bool operator ==(other) { |
| 12235 if (other is HoverInformation) { |
| 12236 return offset == other.offset && |
| 12237 length == other.length && |
| 12238 containingLibraryPath == other.containingLibraryPath && |
| 12239 containingLibraryName == other.containingLibraryName && |
| 12240 containingClassDescription == other.containingClassDescription && |
| 12241 dartdoc == other.dartdoc && |
| 12242 elementDescription == other.elementDescription && |
| 12243 elementKind == other.elementKind && |
| 12244 isDeprecated == other.isDeprecated && |
| 12245 parameter == other.parameter && |
| 12246 propagatedType == other.propagatedType && |
| 12247 staticType == other.staticType; |
| 12248 } |
| 12249 return false; |
| 12250 } |
| 12251 |
| 12252 @override |
| 12253 int get hashCode { |
| 12254 int hash = 0; |
| 12255 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 12256 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 12257 hash = JenkinsSmiHash.combine(hash, containingLibraryPath.hashCode); |
| 12258 hash = JenkinsSmiHash.combine(hash, containingLibraryName.hashCode); |
| 12259 hash = JenkinsSmiHash.combine(hash, containingClassDescription.hashCode); |
| 12260 hash = JenkinsSmiHash.combine(hash, dartdoc.hashCode); |
| 12261 hash = JenkinsSmiHash.combine(hash, elementDescription.hashCode); |
| 12262 hash = JenkinsSmiHash.combine(hash, elementKind.hashCode); |
| 12263 hash = JenkinsSmiHash.combine(hash, isDeprecated.hashCode); |
| 12264 hash = JenkinsSmiHash.combine(hash, parameter.hashCode); |
| 12265 hash = JenkinsSmiHash.combine(hash, propagatedType.hashCode); |
| 12266 hash = JenkinsSmiHash.combine(hash, staticType.hashCode); |
| 12267 return JenkinsSmiHash.finish(hash); |
| 12268 } |
| 12269 } |
| 12270 |
| 12271 /** |
| 12272 * ImplementedClass |
| 12273 * |
| 12274 * { |
| 12275 * "offset": int |
| 12276 * "length": int |
| 12277 * } |
| 12278 * |
| 12279 * Clients may not extend, implement or mix-in this class. |
| 12280 */ |
| 12281 class ImplementedClass implements HasToJson { |
| 12282 int _offset; |
| 12283 |
| 12284 int _length; |
| 12285 |
| 12286 /** |
| 12287 * The offset of the name of the implemented class. |
| 12288 */ |
| 12289 int get offset => _offset; |
| 12290 |
| 12291 /** |
| 12292 * The offset of the name of the implemented class. |
| 12293 */ |
| 12294 void set offset(int value) { |
| 12295 assert(value != null); |
| 12296 this._offset = value; |
| 12297 } |
| 12298 |
| 12299 /** |
| 12300 * The length of the name of the implemented class. |
| 12301 */ |
| 12302 int get length => _length; |
| 12303 |
| 12304 /** |
| 12305 * The length of the name of the implemented class. |
| 12306 */ |
| 12307 void set length(int value) { |
| 12308 assert(value != null); |
| 12309 this._length = value; |
| 12310 } |
| 12311 |
| 12312 ImplementedClass(int offset, int length) { |
| 12313 this.offset = offset; |
| 12314 this.length = length; |
| 12315 } |
| 12316 |
| 12317 factory ImplementedClass.fromJson( |
| 12318 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 12319 if (json == null) { |
| 12320 json = {}; |
| 12321 } |
| 12322 if (json is Map) { |
| 12323 int offset; |
| 12324 if (json.containsKey("offset")) { |
| 12325 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 12326 } else { |
| 12327 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 12328 } |
| 12329 int length; |
| 12330 if (json.containsKey("length")) { |
| 12331 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 12332 } else { |
| 12333 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 12334 } |
| 12335 return new ImplementedClass(offset, length); |
| 12336 } else { |
| 12337 throw jsonDecoder.mismatch(jsonPath, "ImplementedClass", json); |
| 12338 } |
| 12339 } |
| 12340 |
| 12341 @override |
| 12342 Map<String, dynamic> toJson() { |
| 12343 Map<String, dynamic> result = {}; |
| 12344 result["offset"] = offset; |
| 12345 result["length"] = length; |
| 12346 return result; |
| 12347 } |
| 12348 |
| 12349 @override |
| 12350 String toString() => JSON.encode(toJson()); |
| 12351 |
| 12352 @override |
| 12353 bool operator ==(other) { |
| 12354 if (other is ImplementedClass) { |
| 12355 return offset == other.offset && length == other.length; |
| 12356 } |
| 12357 return false; |
| 12358 } |
| 12359 |
| 12360 @override |
| 12361 int get hashCode { |
| 12362 int hash = 0; |
| 12363 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 12364 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 12365 return JenkinsSmiHash.finish(hash); |
| 12366 } |
| 12367 } |
| 12368 |
| 12369 /** |
| 12370 * ImplementedMember |
| 12371 * |
| 12372 * { |
| 12373 * "offset": int |
| 12374 * "length": int |
| 12375 * } |
| 12376 * |
| 12377 * Clients may not extend, implement or mix-in this class. |
| 12378 */ |
| 12379 class ImplementedMember implements HasToJson { |
| 12380 int _offset; |
| 12381 |
| 12382 int _length; |
| 12383 |
| 12384 /** |
| 12385 * The offset of the name of the implemented member. |
| 12386 */ |
| 12387 int get offset => _offset; |
| 12388 |
| 12389 /** |
| 12390 * The offset of the name of the implemented member. |
| 12391 */ |
| 12392 void set offset(int value) { |
| 12393 assert(value != null); |
| 12394 this._offset = value; |
| 12395 } |
| 12396 |
| 12397 /** |
| 12398 * The length of the name of the implemented member. |
| 12399 */ |
| 12400 int get length => _length; |
| 12401 |
| 12402 /** |
| 12403 * The length of the name of the implemented member. |
| 12404 */ |
| 12405 void set length(int value) { |
| 12406 assert(value != null); |
| 12407 this._length = value; |
| 12408 } |
| 12409 |
| 12410 ImplementedMember(int offset, int length) { |
| 12411 this.offset = offset; |
| 12412 this.length = length; |
| 12413 } |
| 12414 |
| 12415 factory ImplementedMember.fromJson( |
| 12416 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 12417 if (json == null) { |
| 12418 json = {}; |
| 12419 } |
| 12420 if (json is Map) { |
| 12421 int offset; |
| 12422 if (json.containsKey("offset")) { |
| 12423 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 12424 } else { |
| 12425 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 12426 } |
| 12427 int length; |
| 12428 if (json.containsKey("length")) { |
| 12429 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 12430 } else { |
| 12431 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 12432 } |
| 12433 return new ImplementedMember(offset, length); |
| 12434 } else { |
| 12435 throw jsonDecoder.mismatch(jsonPath, "ImplementedMember", json); |
| 12436 } |
| 12437 } |
| 12438 |
| 12439 @override |
| 12440 Map<String, dynamic> toJson() { |
| 12441 Map<String, dynamic> result = {}; |
| 12442 result["offset"] = offset; |
| 12443 result["length"] = length; |
| 12444 return result; |
| 12445 } |
| 12446 |
| 12447 @override |
| 12448 String toString() => JSON.encode(toJson()); |
| 12449 |
| 12450 @override |
| 12451 bool operator ==(other) { |
| 12452 if (other is ImplementedMember) { |
| 12453 return offset == other.offset && length == other.length; |
| 12454 } |
| 12455 return false; |
| 12456 } |
| 12457 |
| 12458 @override |
| 12459 int get hashCode { |
| 12460 int hash = 0; |
| 12461 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 12462 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 12463 return JenkinsSmiHash.finish(hash); |
| 12464 } |
| 12465 } |
| 12466 |
| 12467 /** |
| 12468 * inlineLocalVariable feedback |
| 12469 * |
| 12470 * { |
| 12471 * "name": String |
| 12472 * "occurrences": int |
| 12473 * } |
| 12474 * |
| 12475 * Clients may not extend, implement or mix-in this class. |
| 12476 */ |
| 12477 class InlineLocalVariableFeedback extends RefactoringFeedback { |
| 12478 String _name; |
| 12479 |
| 12480 int _occurrences; |
| 12481 |
| 12482 /** |
| 12483 * The name of the variable being inlined. |
| 12484 */ |
| 12485 String get name => _name; |
| 12486 |
| 12487 /** |
| 12488 * The name of the variable being inlined. |
| 12489 */ |
| 12490 void set name(String value) { |
| 12491 assert(value != null); |
| 12492 this._name = value; |
| 12493 } |
| 12494 |
| 12495 /** |
| 12496 * The number of times the variable occurs. |
| 12497 */ |
| 12498 int get occurrences => _occurrences; |
| 12499 |
| 12500 /** |
| 12501 * The number of times the variable occurs. |
| 12502 */ |
| 12503 void set occurrences(int value) { |
| 12504 assert(value != null); |
| 12505 this._occurrences = value; |
| 12506 } |
| 12507 |
| 12508 InlineLocalVariableFeedback(String name, int occurrences) { |
| 12509 this.name = name; |
| 12510 this.occurrences = occurrences; |
| 12511 } |
| 12512 |
| 12513 factory InlineLocalVariableFeedback.fromJson( |
| 12514 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 12515 if (json == null) { |
| 12516 json = {}; |
| 12517 } |
| 12518 if (json is Map) { |
| 12519 String name; |
| 12520 if (json.containsKey("name")) { |
| 12521 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); |
| 12522 } else { |
| 12523 throw jsonDecoder.mismatch(jsonPath, "name"); |
| 12524 } |
| 12525 int occurrences; |
| 12526 if (json.containsKey("occurrences")) { |
| 12527 occurrences = jsonDecoder.decodeInt( |
| 12528 jsonPath + ".occurrences", json["occurrences"]); |
| 12529 } else { |
| 12530 throw jsonDecoder.mismatch(jsonPath, "occurrences"); |
| 12531 } |
| 12532 return new InlineLocalVariableFeedback(name, occurrences); |
| 12533 } else { |
| 12534 throw jsonDecoder.mismatch( |
| 12535 jsonPath, "inlineLocalVariable feedback", json); |
| 12536 } |
| 12537 } |
| 12538 |
| 12539 @override |
| 12540 Map<String, dynamic> toJson() { |
| 12541 Map<String, dynamic> result = {}; |
| 12542 result["name"] = name; |
| 12543 result["occurrences"] = occurrences; |
| 12544 return result; |
| 12545 } |
| 12546 |
| 12547 @override |
| 12548 String toString() => JSON.encode(toJson()); |
| 12549 |
| 12550 @override |
| 12551 bool operator ==(other) { |
| 12552 if (other is InlineLocalVariableFeedback) { |
| 12553 return name == other.name && occurrences == other.occurrences; |
| 12554 } |
| 12555 return false; |
| 12556 } |
| 12557 |
| 12558 @override |
| 12559 int get hashCode { |
| 12560 int hash = 0; |
| 12561 hash = JenkinsSmiHash.combine(hash, name.hashCode); |
| 12562 hash = JenkinsSmiHash.combine(hash, occurrences.hashCode); |
| 12563 return JenkinsSmiHash.finish(hash); |
| 12564 } |
| 12565 } |
| 12566 |
| 12567 /** |
| 12568 * inlineLocalVariable options |
| 12569 * |
| 12570 * Clients may not extend, implement or mix-in this class. |
| 12571 */ |
| 12572 class InlineLocalVariableOptions extends RefactoringOptions |
| 12573 implements HasToJson { |
| 12574 @override |
| 12575 bool operator ==(other) { |
| 12576 if (other is InlineLocalVariableOptions) { |
| 12577 return true; |
| 12578 } |
| 12579 return false; |
| 12580 } |
| 12581 |
| 12582 @override |
| 12583 int get hashCode { |
| 12584 return 540364977; |
| 12585 } |
| 12586 } |
| 12587 |
| 12588 /** |
| 12589 * inlineMethod feedback |
| 12590 * |
| 12591 * { |
| 12592 * "className": optional String |
| 12593 * "methodName": String |
| 12594 * "isDeclaration": bool |
| 12595 * } |
| 12596 * |
| 12597 * Clients may not extend, implement or mix-in this class. |
| 12598 */ |
| 12599 class InlineMethodFeedback extends RefactoringFeedback { |
| 12600 String _className; |
| 12601 |
| 12602 String _methodName; |
| 12603 |
| 12604 bool _isDeclaration; |
| 12605 |
| 12606 /** |
| 12607 * The name of the class enclosing the method being inlined. If not a class |
| 12608 * member is being inlined, this field will be absent. |
| 12609 */ |
| 12610 String get className => _className; |
| 12611 |
| 12612 /** |
| 12613 * The name of the class enclosing the method being inlined. If not a class |
| 12614 * member is being inlined, this field will be absent. |
| 12615 */ |
| 12616 void set className(String value) { |
| 12617 this._className = value; |
| 12618 } |
| 12619 |
| 12620 /** |
| 12621 * The name of the method (or function) being inlined. |
| 12622 */ |
| 12623 String get methodName => _methodName; |
| 12624 |
| 12625 /** |
| 12626 * The name of the method (or function) being inlined. |
| 12627 */ |
| 12628 void set methodName(String value) { |
| 12629 assert(value != null); |
| 12630 this._methodName = value; |
| 12631 } |
| 12632 |
| 12633 /** |
| 12634 * True if the declaration of the method is selected. So all references |
| 12635 * should be inlined. |
| 12636 */ |
| 12637 bool get isDeclaration => _isDeclaration; |
| 12638 |
| 12639 /** |
| 12640 * True if the declaration of the method is selected. So all references |
| 12641 * should be inlined. |
| 12642 */ |
| 12643 void set isDeclaration(bool value) { |
| 12644 assert(value != null); |
| 12645 this._isDeclaration = value; |
| 12646 } |
| 12647 |
| 12648 InlineMethodFeedback(String methodName, bool isDeclaration, |
| 12649 {String className}) { |
| 12650 this.className = className; |
| 12651 this.methodName = methodName; |
| 12652 this.isDeclaration = isDeclaration; |
| 12653 } |
| 12654 |
| 12655 factory InlineMethodFeedback.fromJson( |
| 12656 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 12657 if (json == null) { |
| 12658 json = {}; |
| 12659 } |
| 12660 if (json is Map) { |
| 12661 String className; |
| 12662 if (json.containsKey("className")) { |
| 12663 className = jsonDecoder.decodeString( |
| 12664 jsonPath + ".className", json["className"]); |
| 12665 } |
| 12666 String methodName; |
| 12667 if (json.containsKey("methodName")) { |
| 12668 methodName = jsonDecoder.decodeString( |
| 12669 jsonPath + ".methodName", json["methodName"]); |
| 12670 } else { |
| 12671 throw jsonDecoder.mismatch(jsonPath, "methodName"); |
| 12672 } |
| 12673 bool isDeclaration; |
| 12674 if (json.containsKey("isDeclaration")) { |
| 12675 isDeclaration = jsonDecoder.decodeBool( |
| 12676 jsonPath + ".isDeclaration", json["isDeclaration"]); |
| 12677 } else { |
| 12678 throw jsonDecoder.mismatch(jsonPath, "isDeclaration"); |
| 12679 } |
| 12680 return new InlineMethodFeedback(methodName, isDeclaration, |
| 12681 className: className); |
| 12682 } else { |
| 12683 throw jsonDecoder.mismatch(jsonPath, "inlineMethod feedback", json); |
| 12684 } |
| 12685 } |
| 12686 |
| 12687 @override |
| 12688 Map<String, dynamic> toJson() { |
| 12689 Map<String, dynamic> result = {}; |
| 12690 if (className != null) { |
| 12691 result["className"] = className; |
| 12692 } |
| 12693 result["methodName"] = methodName; |
| 12694 result["isDeclaration"] = isDeclaration; |
| 12695 return result; |
| 12696 } |
| 12697 |
| 12698 @override |
| 12699 String toString() => JSON.encode(toJson()); |
| 12700 |
| 12701 @override |
| 12702 bool operator ==(other) { |
| 12703 if (other is InlineMethodFeedback) { |
| 12704 return className == other.className && |
| 12705 methodName == other.methodName && |
| 12706 isDeclaration == other.isDeclaration; |
| 12707 } |
| 12708 return false; |
| 12709 } |
| 12710 |
| 12711 @override |
| 12712 int get hashCode { |
| 12713 int hash = 0; |
| 12714 hash = JenkinsSmiHash.combine(hash, className.hashCode); |
| 12715 hash = JenkinsSmiHash.combine(hash, methodName.hashCode); |
| 12716 hash = JenkinsSmiHash.combine(hash, isDeclaration.hashCode); |
| 12717 return JenkinsSmiHash.finish(hash); |
| 12718 } |
| 12719 } |
| 12720 |
| 12721 /** |
| 12722 * inlineMethod options |
| 12723 * |
| 12724 * { |
| 12725 * "deleteSource": bool |
| 12726 * "inlineAll": bool |
| 12727 * } |
| 12728 * |
| 12729 * Clients may not extend, implement or mix-in this class. |
| 12730 */ |
| 12731 class InlineMethodOptions extends RefactoringOptions { |
| 12732 bool _deleteSource; |
| 12733 |
| 12734 bool _inlineAll; |
| 12735 |
| 12736 /** |
| 12737 * True if the method being inlined should be removed. It is an error if this |
| 12738 * field is true and inlineAll is false. |
| 12739 */ |
| 12740 bool get deleteSource => _deleteSource; |
| 12741 |
| 12742 /** |
| 12743 * True if the method being inlined should be removed. It is an error if this |
| 12744 * field is true and inlineAll is false. |
| 12745 */ |
| 12746 void set deleteSource(bool value) { |
| 12747 assert(value != null); |
| 12748 this._deleteSource = value; |
| 12749 } |
| 12750 |
| 12751 /** |
| 12752 * True if all invocations of the method should be inlined, or false if only |
| 12753 * the invocation site used to create this refactoring should be inlined. |
| 12754 */ |
| 12755 bool get inlineAll => _inlineAll; |
| 12756 |
| 12757 /** |
| 12758 * True if all invocations of the method should be inlined, or false if only |
| 12759 * the invocation site used to create this refactoring should be inlined. |
| 12760 */ |
| 12761 void set inlineAll(bool value) { |
| 12762 assert(value != null); |
| 12763 this._inlineAll = value; |
| 12764 } |
| 12765 |
| 12766 InlineMethodOptions(bool deleteSource, bool inlineAll) { |
| 12767 this.deleteSource = deleteSource; |
| 12768 this.inlineAll = inlineAll; |
| 12769 } |
| 12770 |
| 12771 factory InlineMethodOptions.fromJson( |
| 12772 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 12773 if (json == null) { |
| 12774 json = {}; |
| 12775 } |
| 12776 if (json is Map) { |
| 12777 bool deleteSource; |
| 12778 if (json.containsKey("deleteSource")) { |
| 12779 deleteSource = jsonDecoder.decodeBool( |
| 12780 jsonPath + ".deleteSource", json["deleteSource"]); |
| 12781 } else { |
| 12782 throw jsonDecoder.mismatch(jsonPath, "deleteSource"); |
| 12783 } |
| 12784 bool inlineAll; |
| 12785 if (json.containsKey("inlineAll")) { |
| 12786 inlineAll = |
| 12787 jsonDecoder.decodeBool(jsonPath + ".inlineAll", json["inlineAll"]); |
| 12788 } else { |
| 12789 throw jsonDecoder.mismatch(jsonPath, "inlineAll"); |
| 12790 } |
| 12791 return new InlineMethodOptions(deleteSource, inlineAll); |
| 12792 } else { |
| 12793 throw jsonDecoder.mismatch(jsonPath, "inlineMethod options", json); |
| 12794 } |
| 12795 } |
| 12796 |
| 12797 factory InlineMethodOptions.fromRefactoringParams( |
| 12798 EditGetRefactoringParams refactoringParams, Request request) { |
| 12799 return new InlineMethodOptions.fromJson( |
| 12800 new RequestDecoder(request), "options", refactoringParams.options); |
| 12801 } |
| 12802 |
| 12803 @override |
| 12804 Map<String, dynamic> toJson() { |
| 12805 Map<String, dynamic> result = {}; |
| 12806 result["deleteSource"] = deleteSource; |
| 12807 result["inlineAll"] = inlineAll; |
| 12808 return result; |
| 12809 } |
| 12810 |
| 12811 @override |
| 12812 String toString() => JSON.encode(toJson()); |
| 12813 |
| 12814 @override |
| 12815 bool operator ==(other) { |
| 12816 if (other is InlineMethodOptions) { |
| 12817 return deleteSource == other.deleteSource && inlineAll == other.inlineAll; |
| 12818 } |
| 12819 return false; |
| 12820 } |
| 12821 |
| 12822 @override |
| 12823 int get hashCode { |
| 12824 int hash = 0; |
| 12825 hash = JenkinsSmiHash.combine(hash, deleteSource.hashCode); |
| 12826 hash = JenkinsSmiHash.combine(hash, inlineAll.hashCode); |
| 12827 return JenkinsSmiHash.finish(hash); |
| 12828 } |
| 12829 } |
| 12830 |
| 12831 /** |
| 12832 * LinkedEditGroup |
| 12833 * |
| 12834 * { |
| 12835 * "positions": List<Position> |
| 12836 * "length": int |
| 12837 * "suggestions": List<LinkedEditSuggestion> |
| 12838 * } |
| 12839 * |
| 12840 * Clients may not extend, implement or mix-in this class. |
| 12841 */ |
| 12842 class LinkedEditGroup implements HasToJson { |
| 12843 List<Position> _positions; |
| 12844 |
| 12845 int _length; |
| 12846 |
| 12847 List<LinkedEditSuggestion> _suggestions; |
| 12848 |
| 12849 /** |
| 12850 * The positions of the regions that should be edited simultaneously. |
| 12851 */ |
| 12852 List<Position> get positions => _positions; |
| 12853 |
| 12854 /** |
| 12855 * The positions of the regions that should be edited simultaneously. |
| 12856 */ |
| 12857 void set positions(List<Position> value) { |
| 12858 assert(value != null); |
| 12859 this._positions = value; |
| 12860 } |
| 12861 |
| 12862 /** |
| 12863 * The length of the regions that should be edited simultaneously. |
| 12864 */ |
| 12865 int get length => _length; |
| 12866 |
| 12867 /** |
| 12868 * The length of the regions that should be edited simultaneously. |
| 12869 */ |
| 12870 void set length(int value) { |
| 12871 assert(value != null); |
| 12872 this._length = value; |
| 12873 } |
| 12874 |
| 12875 /** |
| 12876 * Pre-computed suggestions for what every region might want to be changed |
| 12877 * to. |
| 12878 */ |
| 12879 List<LinkedEditSuggestion> get suggestions => _suggestions; |
| 12880 |
| 12881 /** |
| 12882 * Pre-computed suggestions for what every region might want to be changed |
| 12883 * to. |
| 12884 */ |
| 12885 void set suggestions(List<LinkedEditSuggestion> value) { |
| 12886 assert(value != null); |
| 12887 this._suggestions = value; |
| 12888 } |
| 12889 |
| 12890 LinkedEditGroup(List<Position> positions, int length, |
| 12891 List<LinkedEditSuggestion> suggestions) { |
| 12892 this.positions = positions; |
| 12893 this.length = length; |
| 12894 this.suggestions = suggestions; |
| 12895 } |
| 12896 |
| 12897 factory LinkedEditGroup.fromJson( |
| 12898 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 12899 if (json == null) { |
| 12900 json = {}; |
| 12901 } |
| 12902 if (json is Map) { |
| 12903 List<Position> positions; |
| 12904 if (json.containsKey("positions")) { |
| 12905 positions = jsonDecoder.decodeList( |
| 12906 jsonPath + ".positions", |
| 12907 json["positions"], |
| 12908 (String jsonPath, Object json) => |
| 12909 new Position.fromJson(jsonDecoder, jsonPath, json)); |
| 12910 } else { |
| 12911 throw jsonDecoder.mismatch(jsonPath, "positions"); |
| 12912 } |
| 12913 int length; |
| 12914 if (json.containsKey("length")) { |
| 12915 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 12916 } else { |
| 12917 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 12918 } |
| 12919 List<LinkedEditSuggestion> suggestions; |
| 12920 if (json.containsKey("suggestions")) { |
| 12921 suggestions = jsonDecoder.decodeList( |
| 12922 jsonPath + ".suggestions", |
| 12923 json["suggestions"], |
| 12924 (String jsonPath, Object json) => |
| 12925 new LinkedEditSuggestion.fromJson(jsonDecoder, jsonPath, json)); |
| 12926 } else { |
| 12927 throw jsonDecoder.mismatch(jsonPath, "suggestions"); |
| 12928 } |
| 12929 return new LinkedEditGroup(positions, length, suggestions); |
| 12930 } else { |
| 12931 throw jsonDecoder.mismatch(jsonPath, "LinkedEditGroup", json); |
| 12932 } |
| 12933 } |
| 12934 |
| 12935 /** |
| 12936 * Construct an empty LinkedEditGroup. |
| 12937 */ |
| 12938 LinkedEditGroup.empty() : this(<Position>[], 0, <LinkedEditSuggestion>[]); |
| 12939 |
| 12940 @override |
| 12941 Map<String, dynamic> toJson() { |
| 12942 Map<String, dynamic> result = {}; |
| 12943 result["positions"] = |
| 12944 positions.map((Position value) => value.toJson()).toList(); |
| 12945 result["length"] = length; |
| 12946 result["suggestions"] = suggestions |
| 12947 .map((LinkedEditSuggestion value) => value.toJson()) |
| 12948 .toList(); |
| 12949 return result; |
| 12950 } |
| 12951 |
| 12952 /** |
| 12953 * Add a new position and change the length. |
| 12954 */ |
| 12955 void addPosition(Position position, int length) { |
| 12956 positions.add(position); |
| 12957 this.length = length; |
| 12958 } |
| 12959 |
| 12960 /** |
| 12961 * Add a new suggestion. |
| 12962 */ |
| 12963 void addSuggestion(LinkedEditSuggestion suggestion) { |
| 12964 suggestions.add(suggestion); |
| 12965 } |
| 12966 |
| 12967 @override |
| 12968 String toString() => JSON.encode(toJson()); |
| 12969 |
| 12970 @override |
| 12971 bool operator ==(other) { |
| 12972 if (other is LinkedEditGroup) { |
| 12973 return listEqual( |
| 12974 positions, other.positions, (Position a, Position b) => a == b) && |
| 12975 length == other.length && |
| 12976 listEqual(suggestions, other.suggestions, |
| 12977 (LinkedEditSuggestion a, LinkedEditSuggestion b) => a == b); |
| 12978 } |
| 12979 return false; |
| 12980 } |
| 12981 |
| 12982 @override |
| 12983 int get hashCode { |
| 12984 int hash = 0; |
| 12985 hash = JenkinsSmiHash.combine(hash, positions.hashCode); |
| 12986 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 12987 hash = JenkinsSmiHash.combine(hash, suggestions.hashCode); |
| 12988 return JenkinsSmiHash.finish(hash); |
| 12989 } |
| 12990 } |
| 12991 |
| 12992 /** |
| 12993 * LinkedEditSuggestion |
| 12994 * |
| 12995 * { |
| 12996 * "value": String |
| 12997 * "kind": LinkedEditSuggestionKind |
| 12998 * } |
| 12999 * |
| 13000 * Clients may not extend, implement or mix-in this class. |
| 13001 */ |
| 13002 class LinkedEditSuggestion implements HasToJson { |
| 13003 String _value; |
| 13004 |
| 13005 LinkedEditSuggestionKind _kind; |
| 13006 |
| 13007 /** |
| 13008 * The value that could be used to replace all of the linked edit regions. |
| 13009 */ |
| 13010 String get value => _value; |
| 13011 |
| 13012 /** |
| 13013 * The value that could be used to replace all of the linked edit regions. |
| 13014 */ |
| 13015 void set value(String value) { |
| 13016 assert(value != null); |
| 13017 this._value = value; |
| 13018 } |
| 13019 |
| 13020 /** |
| 13021 * The kind of value being proposed. |
| 13022 */ |
| 13023 LinkedEditSuggestionKind get kind => _kind; |
| 13024 |
| 13025 /** |
| 13026 * The kind of value being proposed. |
| 13027 */ |
| 13028 void set kind(LinkedEditSuggestionKind value) { |
| 13029 assert(value != null); |
| 13030 this._kind = value; |
| 13031 } |
| 13032 |
| 13033 LinkedEditSuggestion(String value, LinkedEditSuggestionKind kind) { |
| 13034 this.value = value; |
| 13035 this.kind = kind; |
| 13036 } |
| 13037 |
| 13038 factory LinkedEditSuggestion.fromJson( |
| 13039 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 13040 if (json == null) { |
| 13041 json = {}; |
| 13042 } |
| 13043 if (json is Map) { |
| 13044 String value; |
| 13045 if (json.containsKey("value")) { |
| 13046 value = jsonDecoder.decodeString(jsonPath + ".value", json["value"]); |
| 13047 } else { |
| 13048 throw jsonDecoder.mismatch(jsonPath, "value"); |
| 13049 } |
| 13050 LinkedEditSuggestionKind kind; |
| 13051 if (json.containsKey("kind")) { |
| 13052 kind = new LinkedEditSuggestionKind.fromJson( |
| 13053 jsonDecoder, jsonPath + ".kind", json["kind"]); |
| 13054 } else { |
| 13055 throw jsonDecoder.mismatch(jsonPath, "kind"); |
| 13056 } |
| 13057 return new LinkedEditSuggestion(value, kind); |
| 13058 } else { |
| 13059 throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestion", json); |
| 13060 } |
| 13061 } |
| 13062 |
| 13063 @override |
| 13064 Map<String, dynamic> toJson() { |
| 13065 Map<String, dynamic> result = {}; |
| 13066 result["value"] = value; |
| 13067 result["kind"] = kind.toJson(); |
| 13068 return result; |
| 13069 } |
| 13070 |
| 13071 @override |
| 13072 String toString() => JSON.encode(toJson()); |
| 13073 |
| 13074 @override |
| 13075 bool operator ==(other) { |
| 13076 if (other is LinkedEditSuggestion) { |
| 13077 return value == other.value && kind == other.kind; |
| 13078 } |
| 13079 return false; |
| 13080 } |
| 13081 |
| 13082 @override |
| 13083 int get hashCode { |
| 13084 int hash = 0; |
| 13085 hash = JenkinsSmiHash.combine(hash, value.hashCode); |
| 13086 hash = JenkinsSmiHash.combine(hash, kind.hashCode); |
| 13087 return JenkinsSmiHash.finish(hash); |
| 13088 } |
| 13089 } |
| 13090 |
| 13091 /** |
| 13092 * LinkedEditSuggestionKind |
| 13093 * |
| 13094 * enum { |
| 13095 * METHOD |
| 13096 * PARAMETER |
| 13097 * TYPE |
| 13098 * VARIABLE |
| 13099 * } |
| 13100 * |
| 13101 * Clients may not extend, implement or mix-in this class. |
| 13102 */ |
| 13103 class LinkedEditSuggestionKind implements Enum { |
| 13104 static const LinkedEditSuggestionKind METHOD = |
| 13105 const LinkedEditSuggestionKind._("METHOD"); |
| 13106 |
| 13107 static const LinkedEditSuggestionKind PARAMETER = |
| 13108 const LinkedEditSuggestionKind._("PARAMETER"); |
| 13109 |
| 13110 static const LinkedEditSuggestionKind TYPE = |
| 13111 const LinkedEditSuggestionKind._("TYPE"); |
| 13112 |
| 13113 static const LinkedEditSuggestionKind VARIABLE = |
| 13114 const LinkedEditSuggestionKind._("VARIABLE"); |
| 13115 |
| 13116 /** |
| 13117 * A list containing all of the enum values that are defined. |
| 13118 */ |
| 13119 static const List<LinkedEditSuggestionKind> VALUES = |
| 13120 const <LinkedEditSuggestionKind>[METHOD, PARAMETER, TYPE, VARIABLE]; |
| 13121 |
| 13122 @override |
| 13123 final String name; |
| 13124 |
| 13125 const LinkedEditSuggestionKind._(this.name); |
| 13126 |
| 13127 factory LinkedEditSuggestionKind(String name) { |
| 13128 switch (name) { |
| 13129 case "METHOD": |
| 13130 return METHOD; |
| 13131 case "PARAMETER": |
| 13132 return PARAMETER; |
| 13133 case "TYPE": |
| 13134 return TYPE; |
| 13135 case "VARIABLE": |
| 13136 return VARIABLE; |
| 13137 } |
| 13138 throw new Exception('Illegal enum value: $name'); |
| 13139 } |
| 13140 |
| 13141 factory LinkedEditSuggestionKind.fromJson( |
| 13142 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 13143 if (json is String) { |
| 13144 try { |
| 13145 return new LinkedEditSuggestionKind(json); |
| 13146 } catch (_) { |
| 13147 // Fall through |
| 13148 } |
| 13149 } |
| 13150 throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestionKind", json); |
| 13151 } |
| 13152 |
| 13153 @override |
| 13154 String toString() => "LinkedEditSuggestionKind.$name"; |
| 13155 |
| 13156 String toJson() => name; |
| 13157 } |
| 13158 |
| 13159 /** |
| 13160 * Location |
| 13161 * |
| 13162 * { |
| 13163 * "file": FilePath |
| 13164 * "offset": int |
| 13165 * "length": int |
| 13166 * "startLine": int |
| 13167 * "startColumn": int |
| 13168 * } |
| 13169 * |
| 13170 * Clients may not extend, implement or mix-in this class. |
| 13171 */ |
| 13172 class Location implements HasToJson { |
| 13173 String _file; |
| 13174 |
| 13175 int _offset; |
| 13176 |
| 13177 int _length; |
| 13178 |
| 13179 int _startLine; |
| 13180 |
| 13181 int _startColumn; |
| 13182 |
| 13183 /** |
| 13184 * The file containing the range. |
| 13185 */ |
| 13186 String get file => _file; |
| 13187 |
| 13188 /** |
| 13189 * The file containing the range. |
| 13190 */ |
| 13191 void set file(String value) { |
| 13192 assert(value != null); |
| 13193 this._file = value; |
| 13194 } |
| 13195 |
| 13196 /** |
| 13197 * The offset of the range. |
| 13198 */ |
| 13199 int get offset => _offset; |
| 13200 |
| 13201 /** |
| 13202 * The offset of the range. |
| 13203 */ |
| 13204 void set offset(int value) { |
| 13205 assert(value != null); |
| 13206 this._offset = value; |
| 13207 } |
| 13208 |
| 13209 /** |
| 13210 * The length of the range. |
| 13211 */ |
| 13212 int get length => _length; |
| 13213 |
| 13214 /** |
| 13215 * The length of the range. |
| 13216 */ |
| 13217 void set length(int value) { |
| 13218 assert(value != null); |
| 13219 this._length = value; |
| 13220 } |
| 13221 |
| 13222 /** |
| 13223 * The one-based index of the line containing the first character of the |
| 13224 * range. |
| 13225 */ |
| 13226 int get startLine => _startLine; |
| 13227 |
| 13228 /** |
| 13229 * The one-based index of the line containing the first character of the |
| 13230 * range. |
| 13231 */ |
| 13232 void set startLine(int value) { |
| 13233 assert(value != null); |
| 13234 this._startLine = value; |
| 13235 } |
| 13236 |
| 13237 /** |
| 13238 * The one-based index of the column containing the first character of the |
| 13239 * range. |
| 13240 */ |
| 13241 int get startColumn => _startColumn; |
| 13242 |
| 13243 /** |
| 13244 * The one-based index of the column containing the first character of the |
| 13245 * range. |
| 13246 */ |
| 13247 void set startColumn(int value) { |
| 13248 assert(value != null); |
| 13249 this._startColumn = value; |
| 13250 } |
| 13251 |
| 13252 Location( |
| 13253 String file, int offset, int length, int startLine, int startColumn) { |
| 13254 this.file = file; |
| 13255 this.offset = offset; |
| 13256 this.length = length; |
| 13257 this.startLine = startLine; |
| 13258 this.startColumn = startColumn; |
| 13259 } |
| 13260 |
| 13261 factory Location.fromJson( |
| 13262 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 13263 if (json == null) { |
| 13264 json = {}; |
| 13265 } |
| 13266 if (json is Map) { |
| 13267 String file; |
| 13268 if (json.containsKey("file")) { |
| 13269 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 13270 } else { |
| 13271 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 13272 } |
| 13273 int offset; |
| 13274 if (json.containsKey("offset")) { |
| 13275 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 13276 } else { |
| 13277 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 13278 } |
| 13279 int length; |
| 13280 if (json.containsKey("length")) { |
| 13281 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 13282 } else { |
| 13283 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 13284 } |
| 13285 int startLine; |
| 13286 if (json.containsKey("startLine")) { |
| 13287 startLine = |
| 13288 jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLine"]); |
| 13289 } else { |
| 13290 throw jsonDecoder.mismatch(jsonPath, "startLine"); |
| 13291 } |
| 13292 int startColumn; |
| 13293 if (json.containsKey("startColumn")) { |
| 13294 startColumn = jsonDecoder.decodeInt( |
| 13295 jsonPath + ".startColumn", json["startColumn"]); |
| 13296 } else { |
| 13297 throw jsonDecoder.mismatch(jsonPath, "startColumn"); |
| 13298 } |
| 13299 return new Location(file, offset, length, startLine, startColumn); |
| 13300 } else { |
| 13301 throw jsonDecoder.mismatch(jsonPath, "Location", json); |
| 13302 } |
| 13303 } |
| 13304 |
| 13305 @override |
| 13306 Map<String, dynamic> toJson() { |
| 13307 Map<String, dynamic> result = {}; |
| 13308 result["file"] = file; |
| 13309 result["offset"] = offset; |
| 13310 result["length"] = length; |
| 13311 result["startLine"] = startLine; |
| 13312 result["startColumn"] = startColumn; |
| 13313 return result; |
| 13314 } |
| 13315 |
| 12942 @override | 13316 @override |
| 12943 String toString() => JSON.encode(toJson()); | 13317 String toString() => JSON.encode(toJson()); |
| 12944 | 13318 |
| 12945 @override | 13319 @override |
| 12946 bool operator ==(other) { | 13320 bool operator ==(other) { |
| 12947 if (other is HoverInformation) { | 13321 if (other is Location) { |
| 12948 return offset == other.offset && | 13322 return file == other.file && |
| 13323 offset == other.offset && |
| 12949 length == other.length && | 13324 length == other.length && |
| 12950 containingLibraryPath == other.containingLibraryPath && | 13325 startLine == other.startLine && |
| 12951 containingLibraryName == other.containingLibraryName && | 13326 startColumn == other.startColumn; |
| 12952 containingClassDescription == other.containingClassDescription && | |
| 12953 dartdoc == other.dartdoc && | |
| 12954 elementDescription == other.elementDescription && | |
| 12955 elementKind == other.elementKind && | |
| 12956 isDeprecated == other.isDeprecated && | |
| 12957 parameter == other.parameter && | |
| 12958 propagatedType == other.propagatedType && | |
| 12959 staticType == other.staticType; | |
| 12960 } | 13327 } |
| 12961 return false; | 13328 return false; |
| 12962 } | 13329 } |
| 12963 | 13330 |
| 12964 @override | 13331 @override |
| 12965 int get hashCode { | 13332 int get hashCode { |
| 12966 int hash = 0; | 13333 int hash = 0; |
| 13334 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 12967 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 13335 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 12968 hash = JenkinsSmiHash.combine(hash, length.hashCode); | 13336 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 12969 hash = JenkinsSmiHash.combine(hash, containingLibraryPath.hashCode); | 13337 hash = JenkinsSmiHash.combine(hash, startLine.hashCode); |
| 12970 hash = JenkinsSmiHash.combine(hash, containingLibraryName.hashCode); | 13338 hash = JenkinsSmiHash.combine(hash, startColumn.hashCode); |
| 12971 hash = JenkinsSmiHash.combine(hash, containingClassDescription.hashCode); | |
| 12972 hash = JenkinsSmiHash.combine(hash, dartdoc.hashCode); | |
| 12973 hash = JenkinsSmiHash.combine(hash, elementDescription.hashCode); | |
| 12974 hash = JenkinsSmiHash.combine(hash, elementKind.hashCode); | |
| 12975 hash = JenkinsSmiHash.combine(hash, isDeprecated.hashCode); | |
| 12976 hash = JenkinsSmiHash.combine(hash, parameter.hashCode); | |
| 12977 hash = JenkinsSmiHash.combine(hash, propagatedType.hashCode); | |
| 12978 hash = JenkinsSmiHash.combine(hash, staticType.hashCode); | |
| 12979 return JenkinsSmiHash.finish(hash); | 13339 return JenkinsSmiHash.finish(hash); |
| 12980 } | 13340 } |
| 12981 } | 13341 } |
| 12982 | 13342 |
| 12983 /** | 13343 /** |
| 12984 * ImplementedClass | 13344 * moveFile feedback |
| 13345 * |
| 13346 * Clients may not extend, implement or mix-in this class. |
| 13347 */ |
| 13348 class MoveFileFeedback extends RefactoringFeedback implements HasToJson { |
| 13349 @override |
| 13350 bool operator ==(other) { |
| 13351 if (other is MoveFileFeedback) { |
| 13352 return true; |
| 13353 } |
| 13354 return false; |
| 13355 } |
| 13356 |
| 13357 @override |
| 13358 int get hashCode { |
| 13359 return 438975893; |
| 13360 } |
| 13361 } |
| 13362 |
| 13363 /** |
| 13364 * moveFile options |
| 12985 * | 13365 * |
| 12986 * { | 13366 * { |
| 12987 * "offset": int | 13367 * "newFile": FilePath |
| 12988 * "length": int | |
| 12989 * } | 13368 * } |
| 12990 * | 13369 * |
| 12991 * Clients may not extend, implement or mix-in this class. | 13370 * Clients may not extend, implement or mix-in this class. |
| 12992 */ | 13371 */ |
| 12993 class ImplementedClass implements HasToJson { | 13372 class MoveFileOptions extends RefactoringOptions { |
| 12994 int _offset; | 13373 String _newFile; |
| 12995 | |
| 12996 int _length; | |
| 12997 | 13374 |
| 12998 /** | 13375 /** |
| 12999 * The offset of the name of the implemented class. | 13376 * The new file path to which the given file is being moved. |
| 13000 */ | 13377 */ |
| 13001 int get offset => _offset; | 13378 String get newFile => _newFile; |
| 13002 | 13379 |
| 13003 /** | 13380 /** |
| 13004 * The offset of the name of the implemented class. | 13381 * The new file path to which the given file is being moved. |
| 13005 */ | 13382 */ |
| 13006 void set offset(int value) { | 13383 void set newFile(String value) { |
| 13007 assert(value != null); | 13384 assert(value != null); |
| 13008 this._offset = value; | 13385 this._newFile = value; |
| 13009 } | 13386 } |
| 13010 | 13387 |
| 13011 /** | 13388 MoveFileOptions(String newFile) { |
| 13012 * The length of the name of the implemented class. | 13389 this.newFile = newFile; |
| 13013 */ | |
| 13014 int get length => _length; | |
| 13015 | |
| 13016 /** | |
| 13017 * The length of the name of the implemented class. | |
| 13018 */ | |
| 13019 void set length(int value) { | |
| 13020 assert(value != null); | |
| 13021 this._length = value; | |
| 13022 } | 13390 } |
| 13023 | 13391 |
| 13024 ImplementedClass(int offset, int length) { | 13392 factory MoveFileOptions.fromJson( |
| 13025 this.offset = offset; | |
| 13026 this.length = length; | |
| 13027 } | |
| 13028 | |
| 13029 factory ImplementedClass.fromJson( | |
| 13030 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 13393 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 13031 if (json == null) { | 13394 if (json == null) { |
| 13032 json = {}; | 13395 json = {}; |
| 13033 } | 13396 } |
| 13034 if (json is Map) { | 13397 if (json is Map) { |
| 13035 int offset; | 13398 String newFile; |
| 13036 if (json.containsKey("offset")) { | 13399 if (json.containsKey("newFile")) { |
| 13037 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 13400 newFile = |
| 13401 jsonDecoder.decodeString(jsonPath + ".newFile", json["newFile"]); |
| 13038 } else { | 13402 } else { |
| 13039 throw jsonDecoder.missingKey(jsonPath, "offset"); | 13403 throw jsonDecoder.mismatch(jsonPath, "newFile"); |
| 13040 } | 13404 } |
| 13041 int length; | 13405 return new MoveFileOptions(newFile); |
| 13042 if (json.containsKey("length")) { | |
| 13043 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
| 13044 } else { | |
| 13045 throw jsonDecoder.missingKey(jsonPath, "length"); | |
| 13046 } | |
| 13047 return new ImplementedClass(offset, length); | |
| 13048 } else { | 13406 } else { |
| 13049 throw jsonDecoder.mismatch(jsonPath, "ImplementedClass", json); | 13407 throw jsonDecoder.mismatch(jsonPath, "moveFile options", json); |
| 13050 } | 13408 } |
| 13051 } | 13409 } |
| 13052 | 13410 |
| 13411 factory MoveFileOptions.fromRefactoringParams( |
| 13412 EditGetRefactoringParams refactoringParams, Request request) { |
| 13413 return new MoveFileOptions.fromJson( |
| 13414 new RequestDecoder(request), "options", refactoringParams.options); |
| 13415 } |
| 13416 |
| 13417 @override |
| 13053 Map<String, dynamic> toJson() { | 13418 Map<String, dynamic> toJson() { |
| 13054 Map<String, dynamic> result = {}; | 13419 Map<String, dynamic> result = {}; |
| 13055 result["offset"] = offset; | 13420 result["newFile"] = newFile; |
| 13056 result["length"] = length; | |
| 13057 return result; | 13421 return result; |
| 13058 } | 13422 } |
| 13059 | 13423 |
| 13060 @override | 13424 @override |
| 13061 String toString() => JSON.encode(toJson()); | 13425 String toString() => JSON.encode(toJson()); |
| 13062 | 13426 |
| 13063 @override | 13427 @override |
| 13064 bool operator ==(other) { | 13428 bool operator ==(other) { |
| 13065 if (other is ImplementedClass) { | 13429 if (other is MoveFileOptions) { |
| 13066 return offset == other.offset && length == other.length; | 13430 return newFile == other.newFile; |
| 13067 } | 13431 } |
| 13068 return false; | 13432 return false; |
| 13069 } | 13433 } |
| 13070 | 13434 |
| 13071 @override | 13435 @override |
| 13072 int get hashCode { | 13436 int get hashCode { |
| 13073 int hash = 0; | 13437 int hash = 0; |
| 13074 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 13438 hash = JenkinsSmiHash.combine(hash, newFile.hashCode); |
| 13075 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
| 13076 return JenkinsSmiHash.finish(hash); | 13439 return JenkinsSmiHash.finish(hash); |
| 13077 } | 13440 } |
| 13078 } | 13441 } |
| 13079 | 13442 |
| 13080 /** | 13443 /** |
| 13081 * ImplementedMember | 13444 * NavigationRegion |
| 13082 * | 13445 * |
| 13083 * { | 13446 * { |
| 13084 * "offset": int | 13447 * "offset": int |
| 13085 * "length": int | 13448 * "length": int |
| 13449 * "targets": List<int> |
| 13086 * } | 13450 * } |
| 13087 * | 13451 * |
| 13088 * Clients may not extend, implement or mix-in this class. | 13452 * Clients may not extend, implement or mix-in this class. |
| 13089 */ | 13453 */ |
| 13090 class ImplementedMember implements HasToJson { | 13454 class NavigationRegion implements HasToJson { |
| 13091 int _offset; | 13455 int _offset; |
| 13092 | 13456 |
| 13093 int _length; | 13457 int _length; |
| 13094 | 13458 |
| 13459 List<int> _targets; |
| 13460 |
| 13095 /** | 13461 /** |
| 13096 * The offset of the name of the implemented member. | 13462 * The offset of the region from which the user can navigate. |
| 13097 */ | 13463 */ |
| 13098 int get offset => _offset; | 13464 int get offset => _offset; |
| 13099 | 13465 |
| 13100 /** | 13466 /** |
| 13101 * The offset of the name of the implemented member. | 13467 * The offset of the region from which the user can navigate. |
| 13102 */ | 13468 */ |
| 13103 void set offset(int value) { | 13469 void set offset(int value) { |
| 13104 assert(value != null); | 13470 assert(value != null); |
| 13105 this._offset = value; | 13471 this._offset = value; |
| 13106 } | 13472 } |
| 13107 | 13473 |
| 13108 /** | 13474 /** |
| 13109 * The length of the name of the implemented member. | 13475 * The length of the region from which the user can navigate. |
| 13110 */ | 13476 */ |
| 13111 int get length => _length; | 13477 int get length => _length; |
| 13112 | 13478 |
| 13113 /** | 13479 /** |
| 13114 * The length of the name of the implemented member. | 13480 * The length of the region from which the user can navigate. |
| 13115 */ | 13481 */ |
| 13116 void set length(int value) { | 13482 void set length(int value) { |
| 13117 assert(value != null); | 13483 assert(value != null); |
| 13118 this._length = value; | 13484 this._length = value; |
| 13119 } | 13485 } |
| 13120 | 13486 |
| 13121 ImplementedMember(int offset, int length) { | 13487 /** |
| 13488 * The indexes of the targets (in the enclosing navigation response) to which |
| 13489 * the given region is bound. By opening the target, clients can implement |
| 13490 * one form of navigation. This list cannot be empty. |
| 13491 */ |
| 13492 List<int> get targets => _targets; |
| 13493 |
| 13494 /** |
| 13495 * The indexes of the targets (in the enclosing navigation response) to which |
| 13496 * the given region is bound. By opening the target, clients can implement |
| 13497 * one form of navigation. This list cannot be empty. |
| 13498 */ |
| 13499 void set targets(List<int> value) { |
| 13500 assert(value != null); |
| 13501 this._targets = value; |
| 13502 } |
| 13503 |
| 13504 NavigationRegion(int offset, int length, List<int> targets) { |
| 13122 this.offset = offset; | 13505 this.offset = offset; |
| 13123 this.length = length; | 13506 this.length = length; |
| 13507 this.targets = targets; |
| 13124 } | 13508 } |
| 13125 | 13509 |
| 13126 factory ImplementedMember.fromJson( | 13510 factory NavigationRegion.fromJson( |
| 13127 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 13511 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 13128 if (json == null) { | 13512 if (json == null) { |
| 13129 json = {}; | 13513 json = {}; |
| 13130 } | 13514 } |
| 13131 if (json is Map) { | 13515 if (json is Map) { |
| 13132 int offset; | 13516 int offset; |
| 13133 if (json.containsKey("offset")) { | 13517 if (json.containsKey("offset")) { |
| 13134 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 13518 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 13135 } else { | 13519 } else { |
| 13136 throw jsonDecoder.missingKey(jsonPath, "offset"); | 13520 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 13137 } | 13521 } |
| 13138 int length; | 13522 int length; |
| 13139 if (json.containsKey("length")) { | 13523 if (json.containsKey("length")) { |
| 13140 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 13524 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 13141 } else { | 13525 } else { |
| 13142 throw jsonDecoder.missingKey(jsonPath, "length"); | 13526 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 13143 } | 13527 } |
| 13144 return new ImplementedMember(offset, length); | 13528 List<int> targets; |
| 13529 if (json.containsKey("targets")) { |
| 13530 targets = jsonDecoder.decodeList( |
| 13531 jsonPath + ".targets", json["targets"], jsonDecoder.decodeInt); |
| 13532 } else { |
| 13533 throw jsonDecoder.mismatch(jsonPath, "targets"); |
| 13534 } |
| 13535 return new NavigationRegion(offset, length, targets); |
| 13145 } else { | 13536 } else { |
| 13146 throw jsonDecoder.mismatch(jsonPath, "ImplementedMember", json); | 13537 throw jsonDecoder.mismatch(jsonPath, "NavigationRegion", json); |
| 13147 } | 13538 } |
| 13148 } | 13539 } |
| 13149 | 13540 |
| 13541 @override |
| 13150 Map<String, dynamic> toJson() { | 13542 Map<String, dynamic> toJson() { |
| 13151 Map<String, dynamic> result = {}; | 13543 Map<String, dynamic> result = {}; |
| 13152 result["offset"] = offset; | 13544 result["offset"] = offset; |
| 13153 result["length"] = length; | 13545 result["length"] = length; |
| 13546 result["targets"] = targets; |
| 13154 return result; | 13547 return result; |
| 13155 } | 13548 } |
| 13156 | 13549 |
| 13157 @override | 13550 @override |
| 13158 String toString() => JSON.encode(toJson()); | 13551 String toString() => JSON.encode(toJson()); |
| 13159 | 13552 |
| 13160 @override | 13553 @override |
| 13161 bool operator ==(other) { | 13554 bool operator ==(other) { |
| 13162 if (other is ImplementedMember) { | 13555 if (other is NavigationRegion) { |
| 13163 return offset == other.offset && length == other.length; | 13556 return offset == other.offset && |
| 13557 length == other.length && |
| 13558 listEqual(targets, other.targets, (int a, int b) => a == b); |
| 13164 } | 13559 } |
| 13165 return false; | 13560 return false; |
| 13166 } | 13561 } |
| 13167 | 13562 |
| 13168 @override | 13563 @override |
| 13169 int get hashCode { | 13564 int get hashCode { |
| 13170 int hash = 0; | 13565 int hash = 0; |
| 13171 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 13566 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 13172 hash = JenkinsSmiHash.combine(hash, length.hashCode); | 13567 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 13568 hash = JenkinsSmiHash.combine(hash, targets.hashCode); |
| 13173 return JenkinsSmiHash.finish(hash); | 13569 return JenkinsSmiHash.finish(hash); |
| 13174 } | 13570 } |
| 13175 } | 13571 } |
| 13176 | 13572 |
| 13177 /** | 13573 /** |
| 13178 * LinkedEditGroup | 13574 * NavigationTarget |
| 13179 * | 13575 * |
| 13180 * { | 13576 * { |
| 13181 * "positions": List<Position> | 13577 * "kind": ElementKind |
| 13578 * "fileIndex": int |
| 13579 * "offset": int |
| 13182 * "length": int | 13580 * "length": int |
| 13183 * "suggestions": List<LinkedEditSuggestion> | 13581 * "startLine": int |
| 13582 * "startColumn": int |
| 13184 * } | 13583 * } |
| 13185 * | 13584 * |
| 13186 * Clients may not extend, implement or mix-in this class. | 13585 * Clients may not extend, implement or mix-in this class. |
| 13187 */ | 13586 */ |
| 13188 class LinkedEditGroup implements HasToJson { | 13587 class NavigationTarget implements HasToJson { |
| 13189 List<Position> _positions; | 13588 ElementKind _kind; |
| 13589 |
| 13590 int _fileIndex; |
| 13591 |
| 13592 int _offset; |
| 13190 | 13593 |
| 13191 int _length; | 13594 int _length; |
| 13192 | 13595 |
| 13193 List<LinkedEditSuggestion> _suggestions; | 13596 int _startLine; |
| 13597 |
| 13598 int _startColumn; |
| 13194 | 13599 |
| 13195 /** | 13600 /** |
| 13196 * The positions of the regions that should be edited simultaneously. | 13601 * The kind of the element. |
| 13197 */ | 13602 */ |
| 13198 List<Position> get positions => _positions; | 13603 ElementKind get kind => _kind; |
| 13199 | 13604 |
| 13200 /** | 13605 /** |
| 13201 * The positions of the regions that should be edited simultaneously. | 13606 * The kind of the element. |
| 13202 */ | 13607 */ |
| 13203 void set positions(List<Position> value) { | 13608 void set kind(ElementKind value) { |
| 13204 assert(value != null); | 13609 assert(value != null); |
| 13205 this._positions = value; | 13610 this._kind = value; |
| 13206 } | 13611 } |
| 13207 | 13612 |
| 13208 /** | 13613 /** |
| 13209 * The length of the regions that should be edited simultaneously. | 13614 * The index of the file (in the enclosing navigation response) to navigate |
| 13615 * to. |
| 13616 */ |
| 13617 int get fileIndex => _fileIndex; |
| 13618 |
| 13619 /** |
| 13620 * The index of the file (in the enclosing navigation response) to navigate |
| 13621 * to. |
| 13622 */ |
| 13623 void set fileIndex(int value) { |
| 13624 assert(value != null); |
| 13625 this._fileIndex = value; |
| 13626 } |
| 13627 |
| 13628 /** |
| 13629 * The offset of the region to which the user can navigate. |
| 13630 */ |
| 13631 int get offset => _offset; |
| 13632 |
| 13633 /** |
| 13634 * The offset of the region to which the user can navigate. |
| 13635 */ |
| 13636 void set offset(int value) { |
| 13637 assert(value != null); |
| 13638 this._offset = value; |
| 13639 } |
| 13640 |
| 13641 /** |
| 13642 * The length of the region to which the user can navigate. |
| 13210 */ | 13643 */ |
| 13211 int get length => _length; | 13644 int get length => _length; |
| 13212 | 13645 |
| 13213 /** | 13646 /** |
| 13214 * The length of the regions that should be edited simultaneously. | 13647 * The length of the region to which the user can navigate. |
| 13215 */ | 13648 */ |
| 13216 void set length(int value) { | 13649 void set length(int value) { |
| 13217 assert(value != null); | 13650 assert(value != null); |
| 13218 this._length = value; | 13651 this._length = value; |
| 13219 } | 13652 } |
| 13220 | 13653 |
| 13221 /** | 13654 /** |
| 13222 * Pre-computed suggestions for what every region might want to be changed | 13655 * The one-based index of the line containing the first character of the |
| 13223 * to. | 13656 * region. |
| 13224 */ | 13657 */ |
| 13225 List<LinkedEditSuggestion> get suggestions => _suggestions; | 13658 int get startLine => _startLine; |
| 13226 | 13659 |
| 13227 /** | 13660 /** |
| 13228 * Pre-computed suggestions for what every region might want to be changed | 13661 * The one-based index of the line containing the first character of the |
| 13229 * to. | 13662 * region. |
| 13230 */ | 13663 */ |
| 13231 void set suggestions(List<LinkedEditSuggestion> value) { | 13664 void set startLine(int value) { |
| 13232 assert(value != null); | 13665 assert(value != null); |
| 13233 this._suggestions = value; | 13666 this._startLine = value; |
| 13234 } | 13667 } |
| 13235 | 13668 |
| 13236 LinkedEditGroup(List<Position> positions, int length, | 13669 /** |
| 13237 List<LinkedEditSuggestion> suggestions) { | 13670 * The one-based index of the column containing the first character of the |
| 13238 this.positions = positions; | 13671 * region. |
| 13239 this.length = length; | 13672 */ |
| 13240 this.suggestions = suggestions; | 13673 int get startColumn => _startColumn; |
| 13674 |
| 13675 /** |
| 13676 * The one-based index of the column containing the first character of the |
| 13677 * region. |
| 13678 */ |
| 13679 void set startColumn(int value) { |
| 13680 assert(value != null); |
| 13681 this._startColumn = value; |
| 13241 } | 13682 } |
| 13242 | 13683 |
| 13243 factory LinkedEditGroup.fromJson( | 13684 NavigationTarget(ElementKind kind, int fileIndex, int offset, int length, |
| 13685 int startLine, int startColumn) { |
| 13686 this.kind = kind; |
| 13687 this.fileIndex = fileIndex; |
| 13688 this.offset = offset; |
| 13689 this.length = length; |
| 13690 this.startLine = startLine; |
| 13691 this.startColumn = startColumn; |
| 13692 } |
| 13693 |
| 13694 factory NavigationTarget.fromJson( |
| 13244 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 13695 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 13245 if (json == null) { | 13696 if (json == null) { |
| 13246 json = {}; | 13697 json = {}; |
| 13247 } | 13698 } |
| 13248 if (json is Map) { | 13699 if (json is Map) { |
| 13249 List<Position> positions; | 13700 ElementKind kind; |
| 13250 if (json.containsKey("positions")) { | 13701 if (json.containsKey("kind")) { |
| 13251 positions = jsonDecoder.decodeList( | 13702 kind = new ElementKind.fromJson( |
| 13252 jsonPath + ".positions", | 13703 jsonDecoder, jsonPath + ".kind", json["kind"]); |
| 13253 json["positions"], | |
| 13254 (String jsonPath, Object json) => | |
| 13255 new Position.fromJson(jsonDecoder, jsonPath, json)); | |
| 13256 } else { | 13704 } else { |
| 13257 throw jsonDecoder.missingKey(jsonPath, "positions"); | 13705 throw jsonDecoder.mismatch(jsonPath, "kind"); |
| 13706 } |
| 13707 int fileIndex; |
| 13708 if (json.containsKey("fileIndex")) { |
| 13709 fileIndex = |
| 13710 jsonDecoder.decodeInt(jsonPath + ".fileIndex", json["fileIndex"]); |
| 13711 } else { |
| 13712 throw jsonDecoder.mismatch(jsonPath, "fileIndex"); |
| 13713 } |
| 13714 int offset; |
| 13715 if (json.containsKey("offset")) { |
| 13716 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 13717 } else { |
| 13718 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 13258 } | 13719 } |
| 13259 int length; | 13720 int length; |
| 13260 if (json.containsKey("length")) { | 13721 if (json.containsKey("length")) { |
| 13261 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 13722 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 13262 } else { | 13723 } else { |
| 13263 throw jsonDecoder.missingKey(jsonPath, "length"); | 13724 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 13264 } | 13725 } |
| 13265 List<LinkedEditSuggestion> suggestions; | 13726 int startLine; |
| 13266 if (json.containsKey("suggestions")) { | 13727 if (json.containsKey("startLine")) { |
| 13267 suggestions = jsonDecoder.decodeList( | 13728 startLine = |
| 13268 jsonPath + ".suggestions", | 13729 jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLine"]); |
| 13269 json["suggestions"], | |
| 13270 (String jsonPath, Object json) => | |
| 13271 new LinkedEditSuggestion.fromJson(jsonDecoder, jsonPath, json)); | |
| 13272 } else { | 13730 } else { |
| 13273 throw jsonDecoder.missingKey(jsonPath, "suggestions"); | 13731 throw jsonDecoder.mismatch(jsonPath, "startLine"); |
| 13274 } | 13732 } |
| 13275 return new LinkedEditGroup(positions, length, suggestions); | 13733 int startColumn; |
| 13734 if (json.containsKey("startColumn")) { |
| 13735 startColumn = jsonDecoder.decodeInt( |
| 13736 jsonPath + ".startColumn", json["startColumn"]); |
| 13737 } else { |
| 13738 throw jsonDecoder.mismatch(jsonPath, "startColumn"); |
| 13739 } |
| 13740 return new NavigationTarget( |
| 13741 kind, fileIndex, offset, length, startLine, startColumn); |
| 13276 } else { | 13742 } else { |
| 13277 throw jsonDecoder.mismatch(jsonPath, "LinkedEditGroup", json); | 13743 throw jsonDecoder.mismatch(jsonPath, "NavigationTarget", json); |
| 13278 } | 13744 } |
| 13279 } | 13745 } |
| 13280 | 13746 |
| 13281 /** | 13747 @override |
| 13282 * Construct an empty LinkedEditGroup. | |
| 13283 */ | |
| 13284 LinkedEditGroup.empty() : this(<Position>[], 0, <LinkedEditSuggestion>[]); | |
| 13285 | |
| 13286 Map<String, dynamic> toJson() { | 13748 Map<String, dynamic> toJson() { |
| 13287 Map<String, dynamic> result = {}; | 13749 Map<String, dynamic> result = {}; |
| 13288 result["positions"] = | 13750 result["kind"] = kind.toJson(); |
| 13289 positions.map((Position value) => value.toJson()).toList(); | 13751 result["fileIndex"] = fileIndex; |
| 13752 result["offset"] = offset; |
| 13290 result["length"] = length; | 13753 result["length"] = length; |
| 13291 result["suggestions"] = suggestions | 13754 result["startLine"] = startLine; |
| 13292 .map((LinkedEditSuggestion value) => value.toJson()) | 13755 result["startColumn"] = startColumn; |
| 13293 .toList(); | |
| 13294 return result; | 13756 return result; |
| 13295 } | 13757 } |
| 13296 | 13758 |
| 13297 /** | |
| 13298 * Add a new position and change the length. | |
| 13299 */ | |
| 13300 void addPosition(Position position, int length) { | |
| 13301 positions.add(position); | |
| 13302 this.length = length; | |
| 13303 } | |
| 13304 | |
| 13305 /** | |
| 13306 * Add a new suggestion. | |
| 13307 */ | |
| 13308 void addSuggestion(LinkedEditSuggestion suggestion) { | |
| 13309 suggestions.add(suggestion); | |
| 13310 } | |
| 13311 | |
| 13312 @override | 13759 @override |
| 13313 String toString() => JSON.encode(toJson()); | 13760 String toString() => JSON.encode(toJson()); |
| 13314 | 13761 |
| 13315 @override | 13762 @override |
| 13316 bool operator ==(other) { | 13763 bool operator ==(other) { |
| 13317 if (other is LinkedEditGroup) { | 13764 if (other is NavigationTarget) { |
| 13318 return listEqual( | 13765 return kind == other.kind && |
| 13319 positions, other.positions, (Position a, Position b) => a == b) && | 13766 fileIndex == other.fileIndex && |
| 13767 offset == other.offset && |
| 13320 length == other.length && | 13768 length == other.length && |
| 13321 listEqual(suggestions, other.suggestions, | 13769 startLine == other.startLine && |
| 13322 (LinkedEditSuggestion a, LinkedEditSuggestion b) => a == b); | 13770 startColumn == other.startColumn; |
| 13323 } | 13771 } |
| 13324 return false; | 13772 return false; |
| 13325 } | 13773 } |
| 13326 | 13774 |
| 13327 @override | 13775 @override |
| 13328 int get hashCode { | 13776 int get hashCode { |
| 13329 int hash = 0; | 13777 int hash = 0; |
| 13330 hash = JenkinsSmiHash.combine(hash, positions.hashCode); | 13778 hash = JenkinsSmiHash.combine(hash, kind.hashCode); |
| 13779 hash = JenkinsSmiHash.combine(hash, fileIndex.hashCode); |
| 13780 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 13331 hash = JenkinsSmiHash.combine(hash, length.hashCode); | 13781 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 13332 hash = JenkinsSmiHash.combine(hash, suggestions.hashCode); | 13782 hash = JenkinsSmiHash.combine(hash, startLine.hashCode); |
| 13783 hash = JenkinsSmiHash.combine(hash, startColumn.hashCode); |
| 13333 return JenkinsSmiHash.finish(hash); | 13784 return JenkinsSmiHash.finish(hash); |
| 13334 } | 13785 } |
| 13335 } | 13786 } |
| 13336 | 13787 |
| 13337 /** | 13788 /** |
| 13338 * LinkedEditSuggestion | 13789 * Occurrences |
| 13339 * | 13790 * |
| 13340 * { | 13791 * { |
| 13341 * "value": String | 13792 * "element": Element |
| 13342 * "kind": LinkedEditSuggestionKind | 13793 * "offsets": List<int> |
| 13794 * "length": int |
| 13343 * } | 13795 * } |
| 13344 * | 13796 * |
| 13345 * Clients may not extend, implement or mix-in this class. | 13797 * Clients may not extend, implement or mix-in this class. |
| 13346 */ | 13798 */ |
| 13347 class LinkedEditSuggestion implements HasToJson { | 13799 class Occurrences implements HasToJson { |
| 13348 String _value; | 13800 Element _element; |
| 13349 | 13801 |
| 13350 LinkedEditSuggestionKind _kind; | 13802 List<int> _offsets; |
| 13803 |
| 13804 int _length; |
| 13351 | 13805 |
| 13352 /** | 13806 /** |
| 13353 * The value that could be used to replace all of the linked edit regions. | 13807 * The element that was referenced. |
| 13354 */ | 13808 */ |
| 13355 String get value => _value; | 13809 Element get element => _element; |
| 13356 | 13810 |
| 13357 /** | 13811 /** |
| 13358 * The value that could be used to replace all of the linked edit regions. | 13812 * The element that was referenced. |
| 13359 */ | 13813 */ |
| 13360 void set value(String value) { | 13814 void set element(Element value) { |
| 13361 assert(value != null); | 13815 assert(value != null); |
| 13362 this._value = value; | 13816 this._element = value; |
| 13363 } | 13817 } |
| 13364 | 13818 |
| 13365 /** | 13819 /** |
| 13366 * The kind of value being proposed. | 13820 * The offsets of the name of the referenced element within the file. |
| 13367 */ | 13821 */ |
| 13368 LinkedEditSuggestionKind get kind => _kind; | 13822 List<int> get offsets => _offsets; |
| 13369 | 13823 |
| 13370 /** | 13824 /** |
| 13371 * The kind of value being proposed. | 13825 * The offsets of the name of the referenced element within the file. |
| 13372 */ | 13826 */ |
| 13373 void set kind(LinkedEditSuggestionKind value) { | 13827 void set offsets(List<int> value) { |
| 13374 assert(value != null); | 13828 assert(value != null); |
| 13375 this._kind = value; | 13829 this._offsets = value; |
| 13376 } | 13830 } |
| 13377 | 13831 |
| 13378 LinkedEditSuggestion(String value, LinkedEditSuggestionKind kind) { | 13832 /** |
| 13379 this.value = value; | 13833 * The length of the name of the referenced element. |
| 13380 this.kind = kind; | 13834 */ |
| 13835 int get length => _length; |
| 13836 |
| 13837 /** |
| 13838 * The length of the name of the referenced element. |
| 13839 */ |
| 13840 void set length(int value) { |
| 13841 assert(value != null); |
| 13842 this._length = value; |
| 13381 } | 13843 } |
| 13382 | 13844 |
| 13383 factory LinkedEditSuggestion.fromJson( | 13845 Occurrences(Element element, List<int> offsets, int length) { |
| 13846 this.element = element; |
| 13847 this.offsets = offsets; |
| 13848 this.length = length; |
| 13849 } |
| 13850 |
| 13851 factory Occurrences.fromJson( |
| 13384 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 13852 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 13385 if (json == null) { | 13853 if (json == null) { |
| 13386 json = {}; | 13854 json = {}; |
| 13387 } | 13855 } |
| 13388 if (json is Map) { | 13856 if (json is Map) { |
| 13389 String value; | 13857 Element element; |
| 13390 if (json.containsKey("value")) { | 13858 if (json.containsKey("element")) { |
| 13391 value = jsonDecoder.decodeString(jsonPath + ".value", json["value"]); | 13859 element = new Element.fromJson( |
| 13860 jsonDecoder, jsonPath + ".element", json["element"]); |
| 13392 } else { | 13861 } else { |
| 13393 throw jsonDecoder.missingKey(jsonPath, "value"); | 13862 throw jsonDecoder.mismatch(jsonPath, "element"); |
| 13394 } | 13863 } |
| 13395 LinkedEditSuggestionKind kind; | 13864 List<int> offsets; |
| 13396 if (json.containsKey("kind")) { | 13865 if (json.containsKey("offsets")) { |
| 13397 kind = new LinkedEditSuggestionKind.fromJson( | 13866 offsets = jsonDecoder.decodeList( |
| 13398 jsonDecoder, jsonPath + ".kind", json["kind"]); | 13867 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt); |
| 13399 } else { | 13868 } else { |
| 13400 throw jsonDecoder.missingKey(jsonPath, "kind"); | 13869 throw jsonDecoder.mismatch(jsonPath, "offsets"); |
| 13401 } | 13870 } |
| 13402 return new LinkedEditSuggestion(value, kind); | 13871 int length; |
| 13872 if (json.containsKey("length")) { |
| 13873 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 13874 } else { |
| 13875 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 13876 } |
| 13877 return new Occurrences(element, offsets, length); |
| 13403 } else { | 13878 } else { |
| 13404 throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestion", json); | 13879 throw jsonDecoder.mismatch(jsonPath, "Occurrences", json); |
| 13405 } | 13880 } |
| 13406 } | 13881 } |
| 13407 | 13882 |
| 13883 @override |
| 13408 Map<String, dynamic> toJson() { | 13884 Map<String, dynamic> toJson() { |
| 13409 Map<String, dynamic> result = {}; | 13885 Map<String, dynamic> result = {}; |
| 13410 result["value"] = value; | 13886 result["element"] = element.toJson(); |
| 13411 result["kind"] = kind.toJson(); | 13887 result["offsets"] = offsets; |
| 13888 result["length"] = length; |
| 13412 return result; | 13889 return result; |
| 13413 } | 13890 } |
| 13414 | 13891 |
| 13415 @override | 13892 @override |
| 13416 String toString() => JSON.encode(toJson()); | 13893 String toString() => JSON.encode(toJson()); |
| 13417 | 13894 |
| 13418 @override | 13895 @override |
| 13419 bool operator ==(other) { | 13896 bool operator ==(other) { |
| 13420 if (other is LinkedEditSuggestion) { | 13897 if (other is Occurrences) { |
| 13421 return value == other.value && kind == other.kind; | 13898 return element == other.element && |
| 13899 listEqual(offsets, other.offsets, (int a, int b) => a == b) && |
| 13900 length == other.length; |
| 13422 } | 13901 } |
| 13423 return false; | 13902 return false; |
| 13424 } | 13903 } |
| 13425 | 13904 |
| 13426 @override | 13905 @override |
| 13427 int get hashCode { | 13906 int get hashCode { |
| 13428 int hash = 0; | 13907 int hash = 0; |
| 13429 hash = JenkinsSmiHash.combine(hash, value.hashCode); | 13908 hash = JenkinsSmiHash.combine(hash, element.hashCode); |
| 13430 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | 13909 hash = JenkinsSmiHash.combine(hash, offsets.hashCode); |
| 13910 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 13431 return JenkinsSmiHash.finish(hash); | 13911 return JenkinsSmiHash.finish(hash); |
| 13432 } | 13912 } |
| 13433 } | 13913 } |
| 13434 | 13914 |
| 13435 /** | 13915 /** |
| 13436 * LinkedEditSuggestionKind | 13916 * Outline |
| 13437 * | 13917 * |
| 13438 * enum { | 13918 * { |
| 13439 * METHOD | 13919 * "element": Element |
| 13440 * PARAMETER | 13920 * "offset": int |
| 13441 * TYPE | 13921 * "length": int |
| 13442 * VARIABLE | 13922 * "children": optional List<Outline> |
| 13443 * } | 13923 * } |
| 13444 * | 13924 * |
| 13445 * Clients may not extend, implement or mix-in this class. | 13925 * Clients may not extend, implement or mix-in this class. |
| 13446 */ | 13926 */ |
| 13447 class LinkedEditSuggestionKind implements Enum { | 13927 class Outline implements HasToJson { |
| 13448 static const LinkedEditSuggestionKind METHOD = | 13928 Element _element; |
| 13449 const LinkedEditSuggestionKind._("METHOD"); | |
| 13450 | |
| 13451 static const LinkedEditSuggestionKind PARAMETER = | |
| 13452 const LinkedEditSuggestionKind._("PARAMETER"); | |
| 13453 | |
| 13454 static const LinkedEditSuggestionKind TYPE = | |
| 13455 const LinkedEditSuggestionKind._("TYPE"); | |
| 13456 | |
| 13457 static const LinkedEditSuggestionKind VARIABLE = | |
| 13458 const LinkedEditSuggestionKind._("VARIABLE"); | |
| 13459 | |
| 13460 /** | |
| 13461 * A list containing all of the enum values that are defined. | |
| 13462 */ | |
| 13463 static const List<LinkedEditSuggestionKind> VALUES = | |
| 13464 const <LinkedEditSuggestionKind>[METHOD, PARAMETER, TYPE, VARIABLE]; | |
| 13465 | |
| 13466 final String name; | |
| 13467 | |
| 13468 const LinkedEditSuggestionKind._(this.name); | |
| 13469 | |
| 13470 factory LinkedEditSuggestionKind(String name) { | |
| 13471 switch (name) { | |
| 13472 case "METHOD": | |
| 13473 return METHOD; | |
| 13474 case "PARAMETER": | |
| 13475 return PARAMETER; | |
| 13476 case "TYPE": | |
| 13477 return TYPE; | |
| 13478 case "VARIABLE": | |
| 13479 return VARIABLE; | |
| 13480 } | |
| 13481 throw new Exception('Illegal enum value: $name'); | |
| 13482 } | |
| 13483 | |
| 13484 factory LinkedEditSuggestionKind.fromJson( | |
| 13485 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 13486 if (json is String) { | |
| 13487 try { | |
| 13488 return new LinkedEditSuggestionKind(json); | |
| 13489 } catch (_) { | |
| 13490 // Fall through | |
| 13491 } | |
| 13492 } | |
| 13493 throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestionKind", json); | |
| 13494 } | |
| 13495 | |
| 13496 @override | |
| 13497 String toString() => "LinkedEditSuggestionKind.$name"; | |
| 13498 | |
| 13499 String toJson() => name; | |
| 13500 } | |
| 13501 | |
| 13502 /** | |
| 13503 * Location | |
| 13504 * | |
| 13505 * { | |
| 13506 * "file": FilePath | |
| 13507 * "offset": int | |
| 13508 * "length": int | |
| 13509 * "startLine": int | |
| 13510 * "startColumn": int | |
| 13511 * } | |
| 13512 * | |
| 13513 * Clients may not extend, implement or mix-in this class. | |
| 13514 */ | |
| 13515 class Location implements HasToJson { | |
| 13516 String _file; | |
| 13517 | 13929 |
| 13518 int _offset; | 13930 int _offset; |
| 13519 | 13931 |
| 13520 int _length; | 13932 int _length; |
| 13521 | 13933 |
| 13522 int _startLine; | 13934 List<Outline> _children; |
| 13523 | |
| 13524 int _startColumn; | |
| 13525 | 13935 |
| 13526 /** | 13936 /** |
| 13527 * The file containing the range. | 13937 * A description of the element represented by this node. |
| 13528 */ | 13938 */ |
| 13529 String get file => _file; | 13939 Element get element => _element; |
| 13530 | 13940 |
| 13531 /** | 13941 /** |
| 13532 * The file containing the range. | 13942 * A description of the element represented by this node. |
| 13533 */ | 13943 */ |
| 13534 void set file(String value) { | 13944 void set element(Element value) { |
| 13535 assert(value != null); | 13945 assert(value != null); |
| 13536 this._file = value; | 13946 this._element = value; |
| 13537 } | 13947 } |
| 13538 | 13948 |
| 13539 /** | 13949 /** |
| 13540 * The offset of the range. | 13950 * The offset of the first character of the element. This is different than |
| 13951 * the offset in the Element, which if the offset of the name of the element. |
| 13952 * It can be used, for example, to map locations in the file back to an |
| 13953 * outline. |
| 13541 */ | 13954 */ |
| 13542 int get offset => _offset; | 13955 int get offset => _offset; |
| 13543 | 13956 |
| 13544 /** | 13957 /** |
| 13545 * The offset of the range. | 13958 * The offset of the first character of the element. This is different than |
| 13959 * the offset in the Element, which if the offset of the name of the element. |
| 13960 * It can be used, for example, to map locations in the file back to an |
| 13961 * outline. |
| 13546 */ | 13962 */ |
| 13547 void set offset(int value) { | 13963 void set offset(int value) { |
| 13548 assert(value != null); | 13964 assert(value != null); |
| 13549 this._offset = value; | 13965 this._offset = value; |
| 13550 } | 13966 } |
| 13551 | 13967 |
| 13552 /** | 13968 /** |
| 13553 * The length of the range. | 13969 * The length of the element. |
| 13554 */ | 13970 */ |
| 13555 int get length => _length; | 13971 int get length => _length; |
| 13556 | 13972 |
| 13557 /** | 13973 /** |
| 13558 * The length of the range. | 13974 * The length of the element. |
| 13559 */ | 13975 */ |
| 13560 void set length(int value) { | 13976 void set length(int value) { |
| 13561 assert(value != null); | 13977 assert(value != null); |
| 13562 this._length = value; | 13978 this._length = value; |
| 13563 } | 13979 } |
| 13564 | 13980 |
| 13565 /** | 13981 /** |
| 13566 * The one-based index of the line containing the first character of the | 13982 * The children of the node. The field will be omitted if the node has no |
| 13567 * range. | 13983 * children. |
| 13568 */ | 13984 */ |
| 13569 int get startLine => _startLine; | 13985 List<Outline> get children => _children; |
| 13570 | 13986 |
| 13571 /** | 13987 /** |
| 13572 * The one-based index of the line containing the first character of the | 13988 * The children of the node. The field will be omitted if the node has no |
| 13573 * range. | 13989 * children. |
| 13574 */ | 13990 */ |
| 13575 void set startLine(int value) { | 13991 void set children(List<Outline> value) { |
| 13576 assert(value != null); | 13992 this._children = value; |
| 13577 this._startLine = value; | |
| 13578 } | 13993 } |
| 13579 | 13994 |
| 13580 /** | 13995 Outline(Element element, int offset, int length, {List<Outline> children}) { |
| 13581 * The one-based index of the column containing the first character of the | 13996 this.element = element; |
| 13582 * range. | 13997 this.offset = offset; |
| 13583 */ | 13998 this.length = length; |
| 13584 int get startColumn => _startColumn; | 13999 this.children = children; |
| 13585 | |
| 13586 /** | |
| 13587 * The one-based index of the column containing the first character of the | |
| 13588 * range. | |
| 13589 */ | |
| 13590 void set startColumn(int value) { | |
| 13591 assert(value != null); | |
| 13592 this._startColumn = value; | |
| 13593 } | 14000 } |
| 13594 | 14001 |
| 13595 Location( | 14002 factory Outline.fromJson( |
| 13596 String file, int offset, int length, int startLine, int startColumn) { | |
| 13597 this.file = file; | |
| 13598 this.offset = offset; | |
| 13599 this.length = length; | |
| 13600 this.startLine = startLine; | |
| 13601 this.startColumn = startColumn; | |
| 13602 } | |
| 13603 | |
| 13604 factory Location.fromJson( | |
| 13605 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 14003 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 13606 if (json == null) { | 14004 if (json == null) { |
| 13607 json = {}; | 14005 json = {}; |
| 13608 } | 14006 } |
| 13609 if (json is Map) { | 14007 if (json is Map) { |
| 13610 String file; | 14008 Element element; |
| 13611 if (json.containsKey("file")) { | 14009 if (json.containsKey("element")) { |
| 13612 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 14010 element = new Element.fromJson( |
| 14011 jsonDecoder, jsonPath + ".element", json["element"]); |
| 13613 } else { | 14012 } else { |
| 13614 throw jsonDecoder.missingKey(jsonPath, "file"); | 14013 throw jsonDecoder.mismatch(jsonPath, "element"); |
| 13615 } | 14014 } |
| 13616 int offset; | 14015 int offset; |
| 13617 if (json.containsKey("offset")) { | 14016 if (json.containsKey("offset")) { |
| 13618 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 14017 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 13619 } else { | 14018 } else { |
| 13620 throw jsonDecoder.missingKey(jsonPath, "offset"); | 14019 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 13621 } | 14020 } |
| 13622 int length; | 14021 int length; |
| 13623 if (json.containsKey("length")) { | 14022 if (json.containsKey("length")) { |
| 13624 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 14023 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 13625 } else { | 14024 } else { |
| 13626 throw jsonDecoder.missingKey(jsonPath, "length"); | 14025 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 13627 } | 14026 } |
| 13628 int startLine; | 14027 List<Outline> children; |
| 13629 if (json.containsKey("startLine")) { | 14028 if (json.containsKey("children")) { |
| 13630 startLine = | 14029 children = jsonDecoder.decodeList( |
| 13631 jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLine"]); | 14030 jsonPath + ".children", |
| 13632 } else { | 14031 json["children"], |
| 13633 throw jsonDecoder.missingKey(jsonPath, "startLine"); | 14032 (String jsonPath, Object json) => |
| 14033 new Outline.fromJson(jsonDecoder, jsonPath, json)); |
| 13634 } | 14034 } |
| 13635 int startColumn; | 14035 return new Outline(element, offset, length, children: children); |
| 13636 if (json.containsKey("startColumn")) { | |
| 13637 startColumn = jsonDecoder.decodeInt( | |
| 13638 jsonPath + ".startColumn", json["startColumn"]); | |
| 13639 } else { | |
| 13640 throw jsonDecoder.missingKey(jsonPath, "startColumn"); | |
| 13641 } | |
| 13642 return new Location(file, offset, length, startLine, startColumn); | |
| 13643 } else { | 14036 } else { |
| 13644 throw jsonDecoder.mismatch(jsonPath, "Location", json); | 14037 throw jsonDecoder.mismatch(jsonPath, "Outline", json); |
| 13645 } | 14038 } |
| 13646 } | 14039 } |
| 13647 | 14040 |
| 14041 @override |
| 13648 Map<String, dynamic> toJson() { | 14042 Map<String, dynamic> toJson() { |
| 13649 Map<String, dynamic> result = {}; | 14043 Map<String, dynamic> result = {}; |
| 13650 result["file"] = file; | 14044 result["element"] = element.toJson(); |
| 13651 result["offset"] = offset; | 14045 result["offset"] = offset; |
| 13652 result["length"] = length; | 14046 result["length"] = length; |
| 13653 result["startLine"] = startLine; | 14047 if (children != null) { |
| 13654 result["startColumn"] = startColumn; | 14048 result["children"] = |
| 14049 children.map((Outline value) => value.toJson()).toList(); |
| 14050 } |
| 13655 return result; | 14051 return result; |
| 13656 } | 14052 } |
| 13657 | 14053 |
| 13658 @override | 14054 @override |
| 13659 String toString() => JSON.encode(toJson()); | 14055 String toString() => JSON.encode(toJson()); |
| 13660 | 14056 |
| 13661 @override | 14057 @override |
| 13662 bool operator ==(other) { | 14058 bool operator ==(other) { |
| 13663 if (other is Location) { | 14059 if (other is Outline) { |
| 13664 return file == other.file && | 14060 return element == other.element && |
| 13665 offset == other.offset && | 14061 offset == other.offset && |
| 13666 length == other.length && | 14062 length == other.length && |
| 13667 startLine == other.startLine && | 14063 listEqual(children, other.children, (Outline a, Outline b) => a == b); |
| 13668 startColumn == other.startColumn; | |
| 13669 } | 14064 } |
| 13670 return false; | 14065 return false; |
| 13671 } | 14066 } |
| 13672 | 14067 |
| 13673 @override | 14068 @override |
| 13674 int get hashCode { | 14069 int get hashCode { |
| 13675 int hash = 0; | 14070 int hash = 0; |
| 13676 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 14071 hash = JenkinsSmiHash.combine(hash, element.hashCode); |
| 13677 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 14072 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 13678 hash = JenkinsSmiHash.combine(hash, length.hashCode); | 14073 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 13679 hash = JenkinsSmiHash.combine(hash, startLine.hashCode); | 14074 hash = JenkinsSmiHash.combine(hash, children.hashCode); |
| 13680 hash = JenkinsSmiHash.combine(hash, startColumn.hashCode); | |
| 13681 return JenkinsSmiHash.finish(hash); | 14075 return JenkinsSmiHash.finish(hash); |
| 13682 } | 14076 } |
| 13683 } | 14077 } |
| 13684 | 14078 |
| 13685 /** | 14079 /** |
| 13686 * NavigationRegion | 14080 * OverriddenMember |
| 13687 * | 14081 * |
| 13688 * { | 14082 * { |
| 13689 * "offset": int | 14083 * "element": Element |
| 13690 * "length": int | 14084 * "className": String |
| 13691 * "targets": List<int> | |
| 13692 * } | 14085 * } |
| 13693 * | 14086 * |
| 13694 * Clients may not extend, implement or mix-in this class. | 14087 * Clients may not extend, implement or mix-in this class. |
| 13695 */ | 14088 */ |
| 13696 class NavigationRegion implements HasToJson { | 14089 class OverriddenMember implements HasToJson { |
| 13697 int _offset; | 14090 Element _element; |
| 13698 | 14091 |
| 13699 int _length; | 14092 String _className; |
| 13700 | |
| 13701 List<int> _targets; | |
| 13702 | 14093 |
| 13703 /** | 14094 /** |
| 13704 * The offset of the region from which the user can navigate. | 14095 * The element that is being overridden. |
| 13705 */ | 14096 */ |
| 13706 int get offset => _offset; | 14097 Element get element => _element; |
| 13707 | 14098 |
| 13708 /** | 14099 /** |
| 13709 * The offset of the region from which the user can navigate. | 14100 * The element that is being overridden. |
| 13710 */ | 14101 */ |
| 13711 void set offset(int value) { | 14102 void set element(Element value) { |
| 13712 assert(value != null); | 14103 assert(value != null); |
| 13713 this._offset = value; | 14104 this._element = value; |
| 13714 } | 14105 } |
| 13715 | 14106 |
| 13716 /** | 14107 /** |
| 13717 * The length of the region from which the user can navigate. | 14108 * The name of the class in which the member is defined. |
| 13718 */ | 14109 */ |
| 13719 int get length => _length; | 14110 String get className => _className; |
| 13720 | 14111 |
| 13721 /** | 14112 /** |
| 13722 * The length of the region from which the user can navigate. | 14113 * The name of the class in which the member is defined. |
| 13723 */ | 14114 */ |
| 13724 void set length(int value) { | 14115 void set className(String value) { |
| 13725 assert(value != null); | 14116 assert(value != null); |
| 13726 this._length = value; | 14117 this._className = value; |
| 13727 } | 14118 } |
| 13728 | 14119 |
| 13729 /** | 14120 OverriddenMember(Element element, String className) { |
| 13730 * The indexes of the targets (in the enclosing navigation response) to which | 14121 this.element = element; |
| 13731 * the given region is bound. By opening the target, clients can implement | 14122 this.className = className; |
| 13732 * one form of navigation. This list cannot be empty. | |
| 13733 */ | |
| 13734 List<int> get targets => _targets; | |
| 13735 | |
| 13736 /** | |
| 13737 * The indexes of the targets (in the enclosing navigation response) to which | |
| 13738 * the given region is bound. By opening the target, clients can implement | |
| 13739 * one form of navigation. This list cannot be empty. | |
| 13740 */ | |
| 13741 void set targets(List<int> value) { | |
| 13742 assert(value != null); | |
| 13743 this._targets = value; | |
| 13744 } | 14123 } |
| 13745 | 14124 |
| 13746 NavigationRegion(int offset, int length, List<int> targets) { | 14125 factory OverriddenMember.fromJson( |
| 13747 this.offset = offset; | |
| 13748 this.length = length; | |
| 13749 this.targets = targets; | |
| 13750 } | |
| 13751 | |
| 13752 factory NavigationRegion.fromJson( | |
| 13753 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 14126 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 13754 if (json == null) { | 14127 if (json == null) { |
| 13755 json = {}; | 14128 json = {}; |
| 13756 } | 14129 } |
| 13757 if (json is Map) { | 14130 if (json is Map) { |
| 13758 int offset; | 14131 Element element; |
| 13759 if (json.containsKey("offset")) { | 14132 if (json.containsKey("element")) { |
| 13760 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 14133 element = new Element.fromJson( |
| 14134 jsonDecoder, jsonPath + ".element", json["element"]); |
| 13761 } else { | 14135 } else { |
| 13762 throw jsonDecoder.missingKey(jsonPath, "offset"); | 14136 throw jsonDecoder.mismatch(jsonPath, "element"); |
| 13763 } | 14137 } |
| 13764 int length; | 14138 String className; |
| 13765 if (json.containsKey("length")) { | 14139 if (json.containsKey("className")) { |
| 13766 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 14140 className = jsonDecoder.decodeString( |
| 14141 jsonPath + ".className", json["className"]); |
| 13767 } else { | 14142 } else { |
| 13768 throw jsonDecoder.missingKey(jsonPath, "length"); | 14143 throw jsonDecoder.mismatch(jsonPath, "className"); |
| 13769 } | 14144 } |
| 13770 List<int> targets; | 14145 return new OverriddenMember(element, className); |
| 13771 if (json.containsKey("targets")) { | |
| 13772 targets = jsonDecoder.decodeList( | |
| 13773 jsonPath + ".targets", json["targets"], jsonDecoder.decodeInt); | |
| 13774 } else { | |
| 13775 throw jsonDecoder.missingKey(jsonPath, "targets"); | |
| 13776 } | |
| 13777 return new NavigationRegion(offset, length, targets); | |
| 13778 } else { | 14146 } else { |
| 13779 throw jsonDecoder.mismatch(jsonPath, "NavigationRegion", json); | 14147 throw jsonDecoder.mismatch(jsonPath, "OverriddenMember", json); |
| 13780 } | 14148 } |
| 13781 } | 14149 } |
| 13782 | 14150 |
| 14151 @override |
| 13783 Map<String, dynamic> toJson() { | 14152 Map<String, dynamic> toJson() { |
| 13784 Map<String, dynamic> result = {}; | 14153 Map<String, dynamic> result = {}; |
| 13785 result["offset"] = offset; | 14154 result["element"] = element.toJson(); |
| 13786 result["length"] = length; | 14155 result["className"] = className; |
| 13787 result["targets"] = targets; | |
| 13788 return result; | 14156 return result; |
| 13789 } | 14157 } |
| 13790 | 14158 |
| 13791 @override | 14159 @override |
| 13792 String toString() => JSON.encode(toJson()); | 14160 String toString() => JSON.encode(toJson()); |
| 13793 | 14161 |
| 13794 @override | 14162 @override |
| 13795 bool operator ==(other) { | 14163 bool operator ==(other) { |
| 13796 if (other is NavigationRegion) { | 14164 if (other is OverriddenMember) { |
| 13797 return offset == other.offset && | 14165 return element == other.element && className == other.className; |
| 13798 length == other.length && | |
| 13799 listEqual(targets, other.targets, (int a, int b) => a == b); | |
| 13800 } | 14166 } |
| 13801 return false; | 14167 return false; |
| 13802 } | 14168 } |
| 13803 | 14169 |
| 13804 @override | 14170 @override |
| 13805 int get hashCode { | 14171 int get hashCode { |
| 13806 int hash = 0; | 14172 int hash = 0; |
| 13807 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 14173 hash = JenkinsSmiHash.combine(hash, element.hashCode); |
| 13808 hash = JenkinsSmiHash.combine(hash, length.hashCode); | 14174 hash = JenkinsSmiHash.combine(hash, className.hashCode); |
| 13809 hash = JenkinsSmiHash.combine(hash, targets.hashCode); | |
| 13810 return JenkinsSmiHash.finish(hash); | 14175 return JenkinsSmiHash.finish(hash); |
| 13811 } | 14176 } |
| 13812 } | 14177 } |
| 13813 | 14178 |
| 13814 /** | 14179 /** |
| 13815 * NavigationTarget | 14180 * Override |
| 13816 * | 14181 * |
| 13817 * { | 14182 * { |
| 13818 * "kind": ElementKind | |
| 13819 * "fileIndex": int | |
| 13820 * "offset": int | 14183 * "offset": int |
| 13821 * "length": int | 14184 * "length": int |
| 13822 * "startLine": int | 14185 * "superclassMember": optional OverriddenMember |
| 13823 * "startColumn": int | 14186 * "interfaceMembers": optional List<OverriddenMember> |
| 13824 * } | 14187 * } |
| 13825 * | 14188 * |
| 13826 * Clients may not extend, implement or mix-in this class. | 14189 * Clients may not extend, implement or mix-in this class. |
| 13827 */ | 14190 */ |
| 13828 class NavigationTarget implements HasToJson { | 14191 class Override implements HasToJson { |
| 13829 ElementKind _kind; | |
| 13830 | |
| 13831 int _fileIndex; | |
| 13832 | |
| 13833 int _offset; | 14192 int _offset; |
| 13834 | 14193 |
| 13835 int _length; | 14194 int _length; |
| 13836 | 14195 |
| 13837 int _startLine; | 14196 OverriddenMember _superclassMember; |
| 13838 | 14197 |
| 13839 int _startColumn; | 14198 List<OverriddenMember> _interfaceMembers; |
| 13840 | 14199 |
| 13841 /** | 14200 /** |
| 13842 * The kind of the element. | 14201 * The offset of the name of the overriding member. |
| 13843 */ | |
| 13844 ElementKind get kind => _kind; | |
| 13845 | |
| 13846 /** | |
| 13847 * The kind of the element. | |
| 13848 */ | |
| 13849 void set kind(ElementKind value) { | |
| 13850 assert(value != null); | |
| 13851 this._kind = value; | |
| 13852 } | |
| 13853 | |
| 13854 /** | |
| 13855 * The index of the file (in the enclosing navigation response) to navigate | |
| 13856 * to. | |
| 13857 */ | |
| 13858 int get fileIndex => _fileIndex; | |
| 13859 | |
| 13860 /** | |
| 13861 * The index of the file (in the enclosing navigation response) to navigate | |
| 13862 * to. | |
| 13863 */ | |
| 13864 void set fileIndex(int value) { | |
| 13865 assert(value != null); | |
| 13866 this._fileIndex = value; | |
| 13867 } | |
| 13868 | |
| 13869 /** | |
| 13870 * The offset of the region to which the user can navigate. | |
| 13871 */ | 14202 */ |
| 13872 int get offset => _offset; | 14203 int get offset => _offset; |
| 13873 | 14204 |
| 13874 /** | 14205 /** |
| 13875 * The offset of the region to which the user can navigate. | 14206 * The offset of the name of the overriding member. |
| 13876 */ | 14207 */ |
| 13877 void set offset(int value) { | 14208 void set offset(int value) { |
| 13878 assert(value != null); | 14209 assert(value != null); |
| 13879 this._offset = value; | 14210 this._offset = value; |
| 13880 } | 14211 } |
| 13881 | 14212 |
| 13882 /** | 14213 /** |
| 13883 * The length of the region to which the user can navigate. | 14214 * The length of the name of the overriding member. |
| 13884 */ | 14215 */ |
| 13885 int get length => _length; | 14216 int get length => _length; |
| 13886 | 14217 |
| 13887 /** | 14218 /** |
| 13888 * The length of the region to which the user can navigate. | 14219 * The length of the name of the overriding member. |
| 13889 */ | 14220 */ |
| 13890 void set length(int value) { | 14221 void set length(int value) { |
| 13891 assert(value != null); | 14222 assert(value != null); |
| 13892 this._length = value; | 14223 this._length = value; |
| 13893 } | 14224 } |
| 13894 | 14225 |
| 13895 /** | 14226 /** |
| 13896 * The one-based index of the line containing the first character of the | 14227 * The member inherited from a superclass that is overridden by the |
| 13897 * region. | 14228 * overriding member. The field is omitted if there is no superclass member, |
| 14229 * in which case there must be at least one interface member. |
| 13898 */ | 14230 */ |
| 13899 int get startLine => _startLine; | 14231 OverriddenMember get superclassMember => _superclassMember; |
| 13900 | 14232 |
| 13901 /** | 14233 /** |
| 13902 * The one-based index of the line containing the first character of the | 14234 * The member inherited from a superclass that is overridden by the |
| 13903 * region. | 14235 * overriding member. The field is omitted if there is no superclass member, |
| 14236 * in which case there must be at least one interface member. |
| 13904 */ | 14237 */ |
| 13905 void set startLine(int value) { | 14238 void set superclassMember(OverriddenMember value) { |
| 13906 assert(value != null); | 14239 this._superclassMember = value; |
| 13907 this._startLine = value; | |
| 13908 } | 14240 } |
| 13909 | 14241 |
| 13910 /** | 14242 /** |
| 13911 * The one-based index of the column containing the first character of the | 14243 * The members inherited from interfaces that are overridden by the |
| 13912 * region. | 14244 * overriding member. The field is omitted if there are no interface members, |
| 14245 * in which case there must be a superclass member. |
| 13913 */ | 14246 */ |
| 13914 int get startColumn => _startColumn; | 14247 List<OverriddenMember> get interfaceMembers => _interfaceMembers; |
| 13915 | 14248 |
| 13916 /** | 14249 /** |
| 13917 * The one-based index of the column containing the first character of the | 14250 * The members inherited from interfaces that are overridden by the |
| 13918 * region. | 14251 * overriding member. The field is omitted if there are no interface members, |
| 14252 * in which case there must be a superclass member. |
| 13919 */ | 14253 */ |
| 13920 void set startColumn(int value) { | 14254 void set interfaceMembers(List<OverriddenMember> value) { |
| 13921 assert(value != null); | 14255 this._interfaceMembers = value; |
| 13922 this._startColumn = value; | |
| 13923 } | 14256 } |
| 13924 | 14257 |
| 13925 NavigationTarget(ElementKind kind, int fileIndex, int offset, int length, | 14258 Override(int offset, int length, |
| 13926 int startLine, int startColumn) { | 14259 {OverriddenMember superclassMember, |
| 13927 this.kind = kind; | 14260 List<OverriddenMember> interfaceMembers}) { |
| 13928 this.fileIndex = fileIndex; | |
| 13929 this.offset = offset; | 14261 this.offset = offset; |
| 13930 this.length = length; | 14262 this.length = length; |
| 13931 this.startLine = startLine; | 14263 this.superclassMember = superclassMember; |
| 13932 this.startColumn = startColumn; | 14264 this.interfaceMembers = interfaceMembers; |
| 13933 } | 14265 } |
| 13934 | 14266 |
| 13935 factory NavigationTarget.fromJson( | 14267 factory Override.fromJson( |
| 13936 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 14268 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 13937 if (json == null) { | 14269 if (json == null) { |
| 13938 json = {}; | 14270 json = {}; |
| 13939 } | 14271 } |
| 13940 if (json is Map) { | 14272 if (json is Map) { |
| 13941 ElementKind kind; | |
| 13942 if (json.containsKey("kind")) { | |
| 13943 kind = new ElementKind.fromJson( | |
| 13944 jsonDecoder, jsonPath + ".kind", json["kind"]); | |
| 13945 } else { | |
| 13946 throw jsonDecoder.missingKey(jsonPath, "kind"); | |
| 13947 } | |
| 13948 int fileIndex; | |
| 13949 if (json.containsKey("fileIndex")) { | |
| 13950 fileIndex = | |
| 13951 jsonDecoder.decodeInt(jsonPath + ".fileIndex", json["fileIndex"]); | |
| 13952 } else { | |
| 13953 throw jsonDecoder.missingKey(jsonPath, "fileIndex"); | |
| 13954 } | |
| 13955 int offset; | 14273 int offset; |
| 13956 if (json.containsKey("offset")) { | 14274 if (json.containsKey("offset")) { |
| 13957 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 14275 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 13958 } else { | 14276 } else { |
| 13959 throw jsonDecoder.missingKey(jsonPath, "offset"); | 14277 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 13960 } | 14278 } |
| 13961 int length; | 14279 int length; |
| 13962 if (json.containsKey("length")) { | 14280 if (json.containsKey("length")) { |
| 13963 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 14281 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 13964 } else { | 14282 } else { |
| 13965 throw jsonDecoder.missingKey(jsonPath, "length"); | 14283 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 13966 } | 14284 } |
| 13967 int startLine; | 14285 OverriddenMember superclassMember; |
| 13968 if (json.containsKey("startLine")) { | 14286 if (json.containsKey("superclassMember")) { |
| 13969 startLine = | 14287 superclassMember = new OverriddenMember.fromJson(jsonDecoder, |
| 13970 jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLine"]); | 14288 jsonPath + ".superclassMember", json["superclassMember"]); |
| 13971 } else { | |
| 13972 throw jsonDecoder.missingKey(jsonPath, "startLine"); | |
| 13973 } | 14289 } |
| 13974 int startColumn; | 14290 List<OverriddenMember> interfaceMembers; |
| 13975 if (json.containsKey("startColumn")) { | 14291 if (json.containsKey("interfaceMembers")) { |
| 13976 startColumn = jsonDecoder.decodeInt( | 14292 interfaceMembers = jsonDecoder.decodeList( |
| 13977 jsonPath + ".startColumn", json["startColumn"]); | 14293 jsonPath + ".interfaceMembers", |
| 13978 } else { | 14294 json["interfaceMembers"], |
| 13979 throw jsonDecoder.missingKey(jsonPath, "startColumn"); | 14295 (String jsonPath, Object json) => |
| 14296 new OverriddenMember.fromJson(jsonDecoder, jsonPath, json)); |
| 13980 } | 14297 } |
| 13981 return new NavigationTarget( | 14298 return new Override(offset, length, |
| 13982 kind, fileIndex, offset, length, startLine, startColumn); | 14299 superclassMember: superclassMember, |
| 14300 interfaceMembers: interfaceMembers); |
| 13983 } else { | 14301 } else { |
| 13984 throw jsonDecoder.mismatch(jsonPath, "NavigationTarget", json); | 14302 throw jsonDecoder.mismatch(jsonPath, "Override", json); |
| 13985 } | 14303 } |
| 13986 } | 14304 } |
| 13987 | 14305 |
| 14306 @override |
| 13988 Map<String, dynamic> toJson() { | 14307 Map<String, dynamic> toJson() { |
| 13989 Map<String, dynamic> result = {}; | 14308 Map<String, dynamic> result = {}; |
| 13990 result["kind"] = kind.toJson(); | |
| 13991 result["fileIndex"] = fileIndex; | |
| 13992 result["offset"] = offset; | 14309 result["offset"] = offset; |
| 13993 result["length"] = length; | 14310 result["length"] = length; |
| 13994 result["startLine"] = startLine; | 14311 if (superclassMember != null) { |
| 13995 result["startColumn"] = startColumn; | 14312 result["superclassMember"] = superclassMember.toJson(); |
| 14313 } |
| 14314 if (interfaceMembers != null) { |
| 14315 result["interfaceMembers"] = interfaceMembers |
| 14316 .map((OverriddenMember value) => value.toJson()) |
| 14317 .toList(); |
| 14318 } |
| 13996 return result; | 14319 return result; |
| 13997 } | 14320 } |
| 13998 | 14321 |
| 13999 @override | 14322 @override |
| 14000 String toString() => JSON.encode(toJson()); | 14323 String toString() => JSON.encode(toJson()); |
| 14001 | 14324 |
| 14002 @override | 14325 @override |
| 14003 bool operator ==(other) { | 14326 bool operator ==(other) { |
| 14004 if (other is NavigationTarget) { | 14327 if (other is Override) { |
| 14005 return kind == other.kind && | 14328 return offset == other.offset && |
| 14006 fileIndex == other.fileIndex && | |
| 14007 offset == other.offset && | |
| 14008 length == other.length && | 14329 length == other.length && |
| 14009 startLine == other.startLine && | 14330 superclassMember == other.superclassMember && |
| 14010 startColumn == other.startColumn; | 14331 listEqual(interfaceMembers, other.interfaceMembers, |
| 14332 (OverriddenMember a, OverriddenMember b) => a == b); |
| 14011 } | 14333 } |
| 14012 return false; | 14334 return false; |
| 14013 } | 14335 } |
| 14014 | 14336 |
| 14015 @override | 14337 @override |
| 14016 int get hashCode { | 14338 int get hashCode { |
| 14017 int hash = 0; | 14339 int hash = 0; |
| 14018 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | |
| 14019 hash = JenkinsSmiHash.combine(hash, fileIndex.hashCode); | |
| 14020 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 14340 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 14021 hash = JenkinsSmiHash.combine(hash, length.hashCode); | 14341 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 14022 hash = JenkinsSmiHash.combine(hash, startLine.hashCode); | 14342 hash = JenkinsSmiHash.combine(hash, superclassMember.hashCode); |
| 14023 hash = JenkinsSmiHash.combine(hash, startColumn.hashCode); | 14343 hash = JenkinsSmiHash.combine(hash, interfaceMembers.hashCode); |
| 14024 return JenkinsSmiHash.finish(hash); | 14344 return JenkinsSmiHash.finish(hash); |
| 14025 } | 14345 } |
| 14026 } | 14346 } |
| 14027 | 14347 |
| 14028 /** | 14348 /** |
| 14029 * Occurrences | 14349 * Position |
| 14030 * | 14350 * |
| 14031 * { | 14351 * { |
| 14032 * "element": Element | 14352 * "file": FilePath |
| 14033 * "offsets": List<int> | 14353 * "offset": int |
| 14034 * "length": int | |
| 14035 * } | 14354 * } |
| 14036 * | 14355 * |
| 14037 * Clients may not extend, implement or mix-in this class. | 14356 * Clients may not extend, implement or mix-in this class. |
| 14038 */ | 14357 */ |
| 14039 class Occurrences implements HasToJson { | 14358 class Position implements HasToJson { |
| 14040 Element _element; | 14359 String _file; |
| 14041 | 14360 |
| 14042 List<int> _offsets; | 14361 int _offset; |
| 14043 | |
| 14044 int _length; | |
| 14045 | 14362 |
| 14046 /** | 14363 /** |
| 14047 * The element that was referenced. | 14364 * The file containing the position. |
| 14048 */ | 14365 */ |
| 14049 Element get element => _element; | 14366 String get file => _file; |
| 14050 | 14367 |
| 14051 /** | 14368 /** |
| 14052 * The element that was referenced. | 14369 * The file containing the position. |
| 14053 */ | 14370 */ |
| 14054 void set element(Element value) { | 14371 void set file(String value) { |
| 14055 assert(value != null); | 14372 assert(value != null); |
| 14056 this._element = value; | 14373 this._file = value; |
| 14057 } | 14374 } |
| 14058 | 14375 |
| 14059 /** | 14376 /** |
| 14060 * The offsets of the name of the referenced element within the file. | 14377 * The offset of the position. |
| 14061 */ | 14378 */ |
| 14062 List<int> get offsets => _offsets; | 14379 int get offset => _offset; |
| 14063 | 14380 |
| 14064 /** | 14381 /** |
| 14065 * The offsets of the name of the referenced element within the file. | 14382 * The offset of the position. |
| 14066 */ | 14383 */ |
| 14067 void set offsets(List<int> value) { | 14384 void set offset(int value) { |
| 14068 assert(value != null); | 14385 assert(value != null); |
| 14069 this._offsets = value; | 14386 this._offset = value; |
| 14070 } | 14387 } |
| 14071 | 14388 |
| 14072 /** | 14389 Position(String file, int offset) { |
| 14073 * The length of the name of the referenced element. | 14390 this.file = file; |
| 14074 */ | 14391 this.offset = offset; |
| 14075 int get length => _length; | |
| 14076 | |
| 14077 /** | |
| 14078 * The length of the name of the referenced element. | |
| 14079 */ | |
| 14080 void set length(int value) { | |
| 14081 assert(value != null); | |
| 14082 this._length = value; | |
| 14083 } | 14392 } |
| 14084 | 14393 |
| 14085 Occurrences(Element element, List<int> offsets, int length) { | 14394 factory Position.fromJson( |
| 14086 this.element = element; | |
| 14087 this.offsets = offsets; | |
| 14088 this.length = length; | |
| 14089 } | |
| 14090 | |
| 14091 factory Occurrences.fromJson( | |
| 14092 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 14395 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 14093 if (json == null) { | 14396 if (json == null) { |
| 14094 json = {}; | 14397 json = {}; |
| 14095 } | 14398 } |
| 14096 if (json is Map) { | 14399 if (json is Map) { |
| 14097 Element element; | 14400 String file; |
| 14098 if (json.containsKey("element")) { | 14401 if (json.containsKey("file")) { |
| 14099 element = new Element.fromJson( | 14402 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 14100 jsonDecoder, jsonPath + ".element", json["element"]); | |
| 14101 } else { | 14403 } else { |
| 14102 throw jsonDecoder.missingKey(jsonPath, "element"); | 14404 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 14103 } | 14405 } |
| 14104 List<int> offsets; | 14406 int offset; |
| 14105 if (json.containsKey("offsets")) { | 14407 if (json.containsKey("offset")) { |
| 14106 offsets = jsonDecoder.decodeList( | 14408 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 14107 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt); | |
| 14108 } else { | 14409 } else { |
| 14109 throw jsonDecoder.missingKey(jsonPath, "offsets"); | 14410 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 14110 } | 14411 } |
| 14111 int length; | 14412 return new Position(file, offset); |
| 14112 if (json.containsKey("length")) { | |
| 14113 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
| 14114 } else { | |
| 14115 throw jsonDecoder.missingKey(jsonPath, "length"); | |
| 14116 } | |
| 14117 return new Occurrences(element, offsets, length); | |
| 14118 } else { | 14413 } else { |
| 14119 throw jsonDecoder.mismatch(jsonPath, "Occurrences", json); | 14414 throw jsonDecoder.mismatch(jsonPath, "Position", json); |
| 14120 } | 14415 } |
| 14121 } | 14416 } |
| 14122 | 14417 |
| 14418 @override |
| 14123 Map<String, dynamic> toJson() { | 14419 Map<String, dynamic> toJson() { |
| 14124 Map<String, dynamic> result = {}; | 14420 Map<String, dynamic> result = {}; |
| 14125 result["element"] = element.toJson(); | 14421 result["file"] = file; |
| 14126 result["offsets"] = offsets; | 14422 result["offset"] = offset; |
| 14127 result["length"] = length; | |
| 14128 return result; | 14423 return result; |
| 14129 } | 14424 } |
| 14130 | 14425 |
| 14426 @override |
| 14427 String toString() => JSON.encode(toJson()); |
| 14428 |
| 14429 @override |
| 14430 bool operator ==(other) { |
| 14431 if (other is Position) { |
| 14432 return file == other.file && offset == other.offset; |
| 14433 } |
| 14434 return false; |
| 14435 } |
| 14436 |
| 14437 @override |
| 14438 int get hashCode { |
| 14439 int hash = 0; |
| 14440 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 14441 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 14442 return JenkinsSmiHash.finish(hash); |
| 14443 } |
| 14444 } |
| 14445 |
| 14446 /** |
| 14447 * PubStatus |
| 14448 * |
| 14449 * { |
| 14450 * "isListingPackageDirs": bool |
| 14451 * } |
| 14452 * |
| 14453 * Clients may not extend, implement or mix-in this class. |
| 14454 */ |
| 14455 class PubStatus implements HasToJson { |
| 14456 bool _isListingPackageDirs; |
| 14457 |
| 14458 /** |
| 14459 * True if the server is currently running pub to produce a list of package |
| 14460 * directories. |
| 14461 */ |
| 14462 bool get isListingPackageDirs => _isListingPackageDirs; |
| 14463 |
| 14464 /** |
| 14465 * True if the server is currently running pub to produce a list of package |
| 14466 * directories. |
| 14467 */ |
| 14468 void set isListingPackageDirs(bool value) { |
| 14469 assert(value != null); |
| 14470 this._isListingPackageDirs = value; |
| 14471 } |
| 14472 |
| 14473 PubStatus(bool isListingPackageDirs) { |
| 14474 this.isListingPackageDirs = isListingPackageDirs; |
| 14475 } |
| 14476 |
| 14477 factory PubStatus.fromJson( |
| 14478 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 14479 if (json == null) { |
| 14480 json = {}; |
| 14481 } |
| 14482 if (json is Map) { |
| 14483 bool isListingPackageDirs; |
| 14484 if (json.containsKey("isListingPackageDirs")) { |
| 14485 isListingPackageDirs = jsonDecoder.decodeBool( |
| 14486 jsonPath + ".isListingPackageDirs", json["isListingPackageDirs"]); |
| 14487 } else { |
| 14488 throw jsonDecoder.mismatch(jsonPath, "isListingPackageDirs"); |
| 14489 } |
| 14490 return new PubStatus(isListingPackageDirs); |
| 14491 } else { |
| 14492 throw jsonDecoder.mismatch(jsonPath, "PubStatus", json); |
| 14493 } |
| 14494 } |
| 14495 |
| 14496 @override |
| 14497 Map<String, dynamic> toJson() { |
| 14498 Map<String, dynamic> result = {}; |
| 14499 result["isListingPackageDirs"] = isListingPackageDirs; |
| 14500 return result; |
| 14501 } |
| 14502 |
| 14131 @override | 14503 @override |
| 14132 String toString() => JSON.encode(toJson()); | 14504 String toString() => JSON.encode(toJson()); |
| 14133 | 14505 |
| 14134 @override | 14506 @override |
| 14135 bool operator ==(other) { | 14507 bool operator ==(other) { |
| 14136 if (other is Occurrences) { | 14508 if (other is PubStatus) { |
| 14137 return element == other.element && | 14509 return isListingPackageDirs == other.isListingPackageDirs; |
| 14138 listEqual(offsets, other.offsets, (int a, int b) => a == b) && | |
| 14139 length == other.length; | |
| 14140 } | 14510 } |
| 14141 return false; | 14511 return false; |
| 14142 } | 14512 } |
| 14143 | 14513 |
| 14144 @override | 14514 @override |
| 14145 int get hashCode { | 14515 int get hashCode { |
| 14146 int hash = 0; | 14516 int hash = 0; |
| 14147 hash = JenkinsSmiHash.combine(hash, element.hashCode); | 14517 hash = JenkinsSmiHash.combine(hash, isListingPackageDirs.hashCode); |
| 14148 hash = JenkinsSmiHash.combine(hash, offsets.hashCode); | |
| 14149 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
| 14150 return JenkinsSmiHash.finish(hash); | 14518 return JenkinsSmiHash.finish(hash); |
| 14151 } | 14519 } |
| 14152 } | 14520 } |
| 14153 | 14521 |
| 14154 /** | 14522 /** |
| 14155 * Outline | 14523 * RefactoringFeedback |
| 14156 * | 14524 * |
| 14157 * { | 14525 * { |
| 14158 * "element": Element | |
| 14159 * "offset": int | |
| 14160 * "length": int | |
| 14161 * "children": optional List<Outline> | |
| 14162 * } | 14526 * } |
| 14163 * | 14527 * |
| 14164 * Clients may not extend, implement or mix-in this class. | 14528 * Clients may not extend, implement or mix-in this class. |
| 14165 */ | 14529 */ |
| 14166 class Outline implements HasToJson { | 14530 class RefactoringFeedback implements HasToJson { |
| 14167 Element _element; | 14531 RefactoringFeedback(); |
| 14168 | 14532 |
| 14169 int _offset; | 14533 factory RefactoringFeedback.fromJson( |
| 14170 | 14534 JsonDecoder jsonDecoder, String jsonPath, Object json, Map responseJson) { |
| 14171 int _length; | 14535 return refactoringFeedbackFromJson( |
| 14172 | 14536 jsonDecoder, jsonPath, json, responseJson); |
| 14173 List<Outline> _children; | 14537 } |
| 14174 | 14538 |
| 14175 /** | 14539 @override |
| 14176 * A description of the element represented by this node. | 14540 Map<String, dynamic> toJson() { |
| 14177 */ | 14541 Map<String, dynamic> result = {}; |
| 14178 Element get element => _element; | 14542 return result; |
| 14179 | 14543 } |
| 14180 /** | 14544 |
| 14181 * A description of the element represented by this node. | 14545 @override |
| 14182 */ | 14546 String toString() => JSON.encode(toJson()); |
| 14183 void set element(Element value) { | 14547 |
| 14548 @override |
| 14549 bool operator ==(other) { |
| 14550 if (other is RefactoringFeedback) { |
| 14551 return true; |
| 14552 } |
| 14553 return false; |
| 14554 } |
| 14555 |
| 14556 @override |
| 14557 int get hashCode { |
| 14558 int hash = 0; |
| 14559 return JenkinsSmiHash.finish(hash); |
| 14560 } |
| 14561 } |
| 14562 |
| 14563 /** |
| 14564 * RefactoringKind |
| 14565 * |
| 14566 * enum { |
| 14567 * CONVERT_GETTER_TO_METHOD |
| 14568 * CONVERT_METHOD_TO_GETTER |
| 14569 * EXTRACT_LOCAL_VARIABLE |
| 14570 * EXTRACT_METHOD |
| 14571 * INLINE_LOCAL_VARIABLE |
| 14572 * INLINE_METHOD |
| 14573 * MOVE_FILE |
| 14574 * RENAME |
| 14575 * SORT_MEMBERS |
| 14576 * } |
| 14577 * |
| 14578 * Clients may not extend, implement or mix-in this class. |
| 14579 */ |
| 14580 class RefactoringKind implements Enum { |
| 14581 static const RefactoringKind CONVERT_GETTER_TO_METHOD = |
| 14582 const RefactoringKind._("CONVERT_GETTER_TO_METHOD"); |
| 14583 |
| 14584 static const RefactoringKind CONVERT_METHOD_TO_GETTER = |
| 14585 const RefactoringKind._("CONVERT_METHOD_TO_GETTER"); |
| 14586 |
| 14587 static const RefactoringKind EXTRACT_LOCAL_VARIABLE = |
| 14588 const RefactoringKind._("EXTRACT_LOCAL_VARIABLE"); |
| 14589 |
| 14590 static const RefactoringKind EXTRACT_METHOD = |
| 14591 const RefactoringKind._("EXTRACT_METHOD"); |
| 14592 |
| 14593 static const RefactoringKind INLINE_LOCAL_VARIABLE = |
| 14594 const RefactoringKind._("INLINE_LOCAL_VARIABLE"); |
| 14595 |
| 14596 static const RefactoringKind INLINE_METHOD = |
| 14597 const RefactoringKind._("INLINE_METHOD"); |
| 14598 |
| 14599 static const RefactoringKind MOVE_FILE = const RefactoringKind._("MOVE_FILE"); |
| 14600 |
| 14601 static const RefactoringKind RENAME = const RefactoringKind._("RENAME"); |
| 14602 |
| 14603 static const RefactoringKind SORT_MEMBERS = |
| 14604 const RefactoringKind._("SORT_MEMBERS"); |
| 14605 |
| 14606 /** |
| 14607 * A list containing all of the enum values that are defined. |
| 14608 */ |
| 14609 static const List<RefactoringKind> VALUES = const <RefactoringKind>[ |
| 14610 CONVERT_GETTER_TO_METHOD, |
| 14611 CONVERT_METHOD_TO_GETTER, |
| 14612 EXTRACT_LOCAL_VARIABLE, |
| 14613 EXTRACT_METHOD, |
| 14614 INLINE_LOCAL_VARIABLE, |
| 14615 INLINE_METHOD, |
| 14616 MOVE_FILE, |
| 14617 RENAME, |
| 14618 SORT_MEMBERS |
| 14619 ]; |
| 14620 |
| 14621 @override |
| 14622 final String name; |
| 14623 |
| 14624 const RefactoringKind._(this.name); |
| 14625 |
| 14626 factory RefactoringKind(String name) { |
| 14627 switch (name) { |
| 14628 case "CONVERT_GETTER_TO_METHOD": |
| 14629 return CONVERT_GETTER_TO_METHOD; |
| 14630 case "CONVERT_METHOD_TO_GETTER": |
| 14631 return CONVERT_METHOD_TO_GETTER; |
| 14632 case "EXTRACT_LOCAL_VARIABLE": |
| 14633 return EXTRACT_LOCAL_VARIABLE; |
| 14634 case "EXTRACT_METHOD": |
| 14635 return EXTRACT_METHOD; |
| 14636 case "INLINE_LOCAL_VARIABLE": |
| 14637 return INLINE_LOCAL_VARIABLE; |
| 14638 case "INLINE_METHOD": |
| 14639 return INLINE_METHOD; |
| 14640 case "MOVE_FILE": |
| 14641 return MOVE_FILE; |
| 14642 case "RENAME": |
| 14643 return RENAME; |
| 14644 case "SORT_MEMBERS": |
| 14645 return SORT_MEMBERS; |
| 14646 } |
| 14647 throw new Exception('Illegal enum value: $name'); |
| 14648 } |
| 14649 |
| 14650 factory RefactoringKind.fromJson( |
| 14651 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 14652 if (json is String) { |
| 14653 try { |
| 14654 return new RefactoringKind(json); |
| 14655 } catch (_) { |
| 14656 // Fall through |
| 14657 } |
| 14658 } |
| 14659 throw jsonDecoder.mismatch(jsonPath, "RefactoringKind", json); |
| 14660 } |
| 14661 |
| 14662 @override |
| 14663 String toString() => "RefactoringKind.$name"; |
| 14664 |
| 14665 String toJson() => name; |
| 14666 } |
| 14667 |
| 14668 /** |
| 14669 * RefactoringMethodParameter |
| 14670 * |
| 14671 * { |
| 14672 * "id": optional String |
| 14673 * "kind": RefactoringMethodParameterKind |
| 14674 * "type": String |
| 14675 * "name": String |
| 14676 * "parameters": optional String |
| 14677 * } |
| 14678 * |
| 14679 * Clients may not extend, implement or mix-in this class. |
| 14680 */ |
| 14681 class RefactoringMethodParameter implements HasToJson { |
| 14682 String _id; |
| 14683 |
| 14684 RefactoringMethodParameterKind _kind; |
| 14685 |
| 14686 String _type; |
| 14687 |
| 14688 String _name; |
| 14689 |
| 14690 String _parameters; |
| 14691 |
| 14692 /** |
| 14693 * The unique identifier of the parameter. Clients may omit this field for |
| 14694 * the parameters they want to add. |
| 14695 */ |
| 14696 String get id => _id; |
| 14697 |
| 14698 /** |
| 14699 * The unique identifier of the parameter. Clients may omit this field for |
| 14700 * the parameters they want to add. |
| 14701 */ |
| 14702 void set id(String value) { |
| 14703 this._id = value; |
| 14704 } |
| 14705 |
| 14706 /** |
| 14707 * The kind of the parameter. |
| 14708 */ |
| 14709 RefactoringMethodParameterKind get kind => _kind; |
| 14710 |
| 14711 /** |
| 14712 * The kind of the parameter. |
| 14713 */ |
| 14714 void set kind(RefactoringMethodParameterKind value) { |
| 14184 assert(value != null); | 14715 assert(value != null); |
| 14185 this._element = value; | 14716 this._kind = value; |
| 14186 } | 14717 } |
| 14187 | 14718 |
| 14188 /** | 14719 /** |
| 14189 * The offset of the first character of the element. This is different than | 14720 * The type that should be given to the parameter, or the return type of the |
| 14190 * the offset in the Element, which if the offset of the name of the element. | 14721 * parameter's function type. |
| 14191 * It can be used, for example, to map locations in the file back to an | 14722 */ |
| 14192 * outline. | 14723 String get type => _type; |
| 14193 */ | 14724 |
| 14194 int get offset => _offset; | 14725 /** |
| 14195 | 14726 * The type that should be given to the parameter, or the return type of the |
| 14196 /** | 14727 * parameter's function type. |
| 14197 * The offset of the first character of the element. This is different than | 14728 */ |
| 14198 * the offset in the Element, which if the offset of the name of the element. | 14729 void set type(String value) { |
| 14199 * It can be used, for example, to map locations in the file back to an | |
| 14200 * outline. | |
| 14201 */ | |
| 14202 void set offset(int value) { | |
| 14203 assert(value != null); | 14730 assert(value != null); |
| 14204 this._offset = value; | 14731 this._type = value; |
| 14205 } | 14732 } |
| 14206 | 14733 |
| 14207 /** | 14734 /** |
| 14208 * The length of the element. | 14735 * The name that should be given to the parameter. |
| 14209 */ | 14736 */ |
| 14210 int get length => _length; | 14737 String get name => _name; |
| 14211 | 14738 |
| 14212 /** | 14739 /** |
| 14213 * The length of the element. | 14740 * The name that should be given to the parameter. |
| 14214 */ | 14741 */ |
| 14215 void set length(int value) { | 14742 void set name(String value) { |
| 14216 assert(value != null); | 14743 assert(value != null); |
| 14217 this._length = value; | 14744 this._name = value; |
| 14218 } | 14745 } |
| 14219 | 14746 |
| 14220 /** | 14747 /** |
| 14221 * The children of the node. The field will be omitted if the node has no | 14748 * The parameter list of the parameter's function type. If the parameter is |
| 14222 * children. | 14749 * not of a function type, this field will not be defined. If the function |
| 14223 */ | 14750 * type has zero parameters, this field will have a value of "()". |
| 14224 List<Outline> get children => _children; | 14751 */ |
| 14225 | 14752 String get parameters => _parameters; |
| 14226 /** | 14753 |
| 14227 * The children of the node. The field will be omitted if the node has no | 14754 /** |
| 14228 * children. | 14755 * The parameter list of the parameter's function type. If the parameter is |
| 14229 */ | 14756 * not of a function type, this field will not be defined. If the function |
| 14230 void set children(List<Outline> value) { | 14757 * type has zero parameters, this field will have a value of "()". |
| 14231 this._children = value; | 14758 */ |
| 14232 } | 14759 void set parameters(String value) { |
| 14233 | 14760 this._parameters = value; |
| 14234 Outline(Element element, int offset, int length, {List<Outline> children}) { | 14761 } |
| 14235 this.element = element; | 14762 |
| 14236 this.offset = offset; | 14763 RefactoringMethodParameter( |
| 14237 this.length = length; | 14764 RefactoringMethodParameterKind kind, String type, String name, |
| 14238 this.children = children; | 14765 {String id, String parameters}) { |
| 14239 } | 14766 this.id = id; |
| 14240 | 14767 this.kind = kind; |
| 14241 factory Outline.fromJson( | 14768 this.type = type; |
| 14769 this.name = name; |
| 14770 this.parameters = parameters; |
| 14771 } |
| 14772 |
| 14773 factory RefactoringMethodParameter.fromJson( |
| 14242 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 14774 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 14243 if (json == null) { | 14775 if (json == null) { |
| 14244 json = {}; | 14776 json = {}; |
| 14245 } | 14777 } |
| 14246 if (json is Map) { | 14778 if (json is Map) { |
| 14247 Element element; | 14779 String id; |
| 14248 if (json.containsKey("element")) { | 14780 if (json.containsKey("id")) { |
| 14249 element = new Element.fromJson( | 14781 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); |
| 14250 jsonDecoder, jsonPath + ".element", json["element"]); | 14782 } |
| 14783 RefactoringMethodParameterKind kind; |
| 14784 if (json.containsKey("kind")) { |
| 14785 kind = new RefactoringMethodParameterKind.fromJson( |
| 14786 jsonDecoder, jsonPath + ".kind", json["kind"]); |
| 14251 } else { | 14787 } else { |
| 14252 throw jsonDecoder.missingKey(jsonPath, "element"); | 14788 throw jsonDecoder.mismatch(jsonPath, "kind"); |
| 14253 } | 14789 } |
| 14254 int offset; | 14790 String type; |
| 14255 if (json.containsKey("offset")) { | 14791 if (json.containsKey("type")) { |
| 14256 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 14792 type = jsonDecoder.decodeString(jsonPath + ".type", json["type"]); |
| 14257 } else { | 14793 } else { |
| 14258 throw jsonDecoder.missingKey(jsonPath, "offset"); | 14794 throw jsonDecoder.mismatch(jsonPath, "type"); |
| 14259 } | 14795 } |
| 14260 int length; | 14796 String name; |
| 14261 if (json.containsKey("length")) { | 14797 if (json.containsKey("name")) { |
| 14262 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 14798 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); |
| 14263 } else { | 14799 } else { |
| 14264 throw jsonDecoder.missingKey(jsonPath, "length"); | 14800 throw jsonDecoder.mismatch(jsonPath, "name"); |
| 14265 } | 14801 } |
| 14266 List<Outline> children; | 14802 String parameters; |
| 14267 if (json.containsKey("children")) { | 14803 if (json.containsKey("parameters")) { |
| 14268 children = jsonDecoder.decodeList( | 14804 parameters = jsonDecoder.decodeString( |
| 14269 jsonPath + ".children", | 14805 jsonPath + ".parameters", json["parameters"]); |
| 14270 json["children"], | 14806 } |
| 14271 (String jsonPath, Object json) => | 14807 return new RefactoringMethodParameter(kind, type, name, |
| 14272 new Outline.fromJson(jsonDecoder, jsonPath, json)); | 14808 id: id, parameters: parameters); |
| 14273 } | |
| 14274 return new Outline(element, offset, length, children: children); | |
| 14275 } else { | 14809 } else { |
| 14276 throw jsonDecoder.mismatch(jsonPath, "Outline", json); | 14810 throw jsonDecoder.mismatch(jsonPath, "RefactoringMethodParameter", json); |
| 14277 } | 14811 } |
| 14278 } | 14812 } |
| 14279 | 14813 |
| 14814 @override |
| 14280 Map<String, dynamic> toJson() { | 14815 Map<String, dynamic> toJson() { |
| 14281 Map<String, dynamic> result = {}; | 14816 Map<String, dynamic> result = {}; |
| 14282 result["element"] = element.toJson(); | 14817 if (id != null) { |
| 14283 result["offset"] = offset; | 14818 result["id"] = id; |
| 14284 result["length"] = length; | 14819 } |
| 14285 if (children != null) { | 14820 result["kind"] = kind.toJson(); |
| 14286 result["children"] = | 14821 result["type"] = type; |
| 14287 children.map((Outline value) => value.toJson()).toList(); | 14822 result["name"] = name; |
| 14823 if (parameters != null) { |
| 14824 result["parameters"] = parameters; |
| 14288 } | 14825 } |
| 14289 return result; | 14826 return result; |
| 14290 } | 14827 } |
| 14291 | 14828 |
| 14292 @override | |
| 14293 String toString() => JSON.encode(toJson()); | |
| 14294 | |
| 14295 @override | |
| 14296 bool operator ==(other) { | |
| 14297 if (other is Outline) { | |
| 14298 return element == other.element && | |
| 14299 offset == other.offset && | |
| 14300 length == other.length && | |
| 14301 listEqual(children, other.children, (Outline a, Outline b) => a == b); | |
| 14302 } | |
| 14303 return false; | |
| 14304 } | |
| 14305 | |
| 14306 @override | |
| 14307 int get hashCode { | |
| 14308 int hash = 0; | |
| 14309 hash = JenkinsSmiHash.combine(hash, element.hashCode); | |
| 14310 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
| 14311 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
| 14312 hash = JenkinsSmiHash.combine(hash, children.hashCode); | |
| 14313 return JenkinsSmiHash.finish(hash); | |
| 14314 } | |
| 14315 } | |
| 14316 | |
| 14317 /** | |
| 14318 * Override | |
| 14319 * | |
| 14320 * { | |
| 14321 * "offset": int | |
| 14322 * "length": int | |
| 14323 * "superclassMember": optional OverriddenMember | |
| 14324 * "interfaceMembers": optional List<OverriddenMember> | |
| 14325 * } | |
| 14326 * | |
| 14327 * Clients may not extend, implement or mix-in this class. | |
| 14328 */ | |
| 14329 class Override implements HasToJson { | |
| 14330 int _offset; | |
| 14331 | |
| 14332 int _length; | |
| 14333 | |
| 14334 OverriddenMember _superclassMember; | |
| 14335 | |
| 14336 List<OverriddenMember> _interfaceMembers; | |
| 14337 | |
| 14338 /** | |
| 14339 * The offset of the name of the overriding member. | |
| 14340 */ | |
| 14341 int get offset => _offset; | |
| 14342 | |
| 14343 /** | |
| 14344 * The offset of the name of the overriding member. | |
| 14345 */ | |
| 14346 void set offset(int value) { | |
| 14347 assert(value != null); | |
| 14348 this._offset = value; | |
| 14349 } | |
| 14350 | |
| 14351 /** | |
| 14352 * The length of the name of the overriding member. | |
| 14353 */ | |
| 14354 int get length => _length; | |
| 14355 | |
| 14356 /** | |
| 14357 * The length of the name of the overriding member. | |
| 14358 */ | |
| 14359 void set length(int value) { | |
| 14360 assert(value != null); | |
| 14361 this._length = value; | |
| 14362 } | |
| 14363 | |
| 14364 /** | |
| 14365 * The member inherited from a superclass that is overridden by the | |
| 14366 * overriding member. The field is omitted if there is no superclass member, | |
| 14367 * in which case there must be at least one interface member. | |
| 14368 */ | |
| 14369 OverriddenMember get superclassMember => _superclassMember; | |
| 14370 | |
| 14371 /** | |
| 14372 * The member inherited from a superclass that is overridden by the | |
| 14373 * overriding member. The field is omitted if there is no superclass member, | |
| 14374 * in which case there must be at least one interface member. | |
| 14375 */ | |
| 14376 void set superclassMember(OverriddenMember value) { | |
| 14377 this._superclassMember = value; | |
| 14378 } | |
| 14379 | |
| 14380 /** | |
| 14381 * The members inherited from interfaces that are overridden by the | |
| 14382 * overriding member. The field is omitted if there are no interface members, | |
| 14383 * in which case there must be a superclass member. | |
| 14384 */ | |
| 14385 List<OverriddenMember> get interfaceMembers => _interfaceMembers; | |
| 14386 | |
| 14387 /** | |
| 14388 * The members inherited from interfaces that are overridden by the | |
| 14389 * overriding member. The field is omitted if there are no interface members, | |
| 14390 * in which case there must be a superclass member. | |
| 14391 */ | |
| 14392 void set interfaceMembers(List<OverriddenMember> value) { | |
| 14393 this._interfaceMembers = value; | |
| 14394 } | |
| 14395 | |
| 14396 Override(int offset, int length, | |
| 14397 {OverriddenMember superclassMember, | |
| 14398 List<OverriddenMember> interfaceMembers}) { | |
| 14399 this.offset = offset; | |
| 14400 this.length = length; | |
| 14401 this.superclassMember = superclassMember; | |
| 14402 this.interfaceMembers = interfaceMembers; | |
| 14403 } | |
| 14404 | |
| 14405 factory Override.fromJson( | |
| 14406 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 14407 if (json == null) { | |
| 14408 json = {}; | |
| 14409 } | |
| 14410 if (json is Map) { | |
| 14411 int offset; | |
| 14412 if (json.containsKey("offset")) { | |
| 14413 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
| 14414 } else { | |
| 14415 throw jsonDecoder.missingKey(jsonPath, "offset"); | |
| 14416 } | |
| 14417 int length; | |
| 14418 if (json.containsKey("length")) { | |
| 14419 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | |
| 14420 } else { | |
| 14421 throw jsonDecoder.missingKey(jsonPath, "length"); | |
| 14422 } | |
| 14423 OverriddenMember superclassMember; | |
| 14424 if (json.containsKey("superclassMember")) { | |
| 14425 superclassMember = new OverriddenMember.fromJson(jsonDecoder, | |
| 14426 jsonPath + ".superclassMember", json["superclassMember"]); | |
| 14427 } | |
| 14428 List<OverriddenMember> interfaceMembers; | |
| 14429 if (json.containsKey("interfaceMembers")) { | |
| 14430 interfaceMembers = jsonDecoder.decodeList( | |
| 14431 jsonPath + ".interfaceMembers", | |
| 14432 json["interfaceMembers"], | |
| 14433 (String jsonPath, Object json) => | |
| 14434 new OverriddenMember.fromJson(jsonDecoder, jsonPath, json)); | |
| 14435 } | |
| 14436 return new Override(offset, length, | |
| 14437 superclassMember: superclassMember, | |
| 14438 interfaceMembers: interfaceMembers); | |
| 14439 } else { | |
| 14440 throw jsonDecoder.mismatch(jsonPath, "Override", json); | |
| 14441 } | |
| 14442 } | |
| 14443 | |
| 14444 Map<String, dynamic> toJson() { | |
| 14445 Map<String, dynamic> result = {}; | |
| 14446 result["offset"] = offset; | |
| 14447 result["length"] = length; | |
| 14448 if (superclassMember != null) { | |
| 14449 result["superclassMember"] = superclassMember.toJson(); | |
| 14450 } | |
| 14451 if (interfaceMembers != null) { | |
| 14452 result["interfaceMembers"] = interfaceMembers | |
| 14453 .map((OverriddenMember value) => value.toJson()) | |
| 14454 .toList(); | |
| 14455 } | |
| 14456 return result; | |
| 14457 } | |
| 14458 | |
| 14459 @override | |
| 14460 String toString() => JSON.encode(toJson()); | |
| 14461 | |
| 14462 @override | |
| 14463 bool operator ==(other) { | |
| 14464 if (other is Override) { | |
| 14465 return offset == other.offset && | |
| 14466 length == other.length && | |
| 14467 superclassMember == other.superclassMember && | |
| 14468 listEqual(interfaceMembers, other.interfaceMembers, | |
| 14469 (OverriddenMember a, OverriddenMember b) => a == b); | |
| 14470 } | |
| 14471 return false; | |
| 14472 } | |
| 14473 | |
| 14474 @override | |
| 14475 int get hashCode { | |
| 14476 int hash = 0; | |
| 14477 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
| 14478 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
| 14479 hash = JenkinsSmiHash.combine(hash, superclassMember.hashCode); | |
| 14480 hash = JenkinsSmiHash.combine(hash, interfaceMembers.hashCode); | |
| 14481 return JenkinsSmiHash.finish(hash); | |
| 14482 } | |
| 14483 } | |
| 14484 | |
| 14485 /** | |
| 14486 * OverriddenMember | |
| 14487 * | |
| 14488 * { | |
| 14489 * "element": Element | |
| 14490 * "className": String | |
| 14491 * } | |
| 14492 * | |
| 14493 * Clients may not extend, implement or mix-in this class. | |
| 14494 */ | |
| 14495 class OverriddenMember implements HasToJson { | |
| 14496 Element _element; | |
| 14497 | |
| 14498 String _className; | |
| 14499 | |
| 14500 /** | |
| 14501 * The element that is being overridden. | |
| 14502 */ | |
| 14503 Element get element => _element; | |
| 14504 | |
| 14505 /** | |
| 14506 * The element that is being overridden. | |
| 14507 */ | |
| 14508 void set element(Element value) { | |
| 14509 assert(value != null); | |
| 14510 this._element = value; | |
| 14511 } | |
| 14512 | |
| 14513 /** | |
| 14514 * The name of the class in which the member is defined. | |
| 14515 */ | |
| 14516 String get className => _className; | |
| 14517 | |
| 14518 /** | |
| 14519 * The name of the class in which the member is defined. | |
| 14520 */ | |
| 14521 void set className(String value) { | |
| 14522 assert(value != null); | |
| 14523 this._className = value; | |
| 14524 } | |
| 14525 | |
| 14526 OverriddenMember(Element element, String className) { | |
| 14527 this.element = element; | |
| 14528 this.className = className; | |
| 14529 } | |
| 14530 | |
| 14531 factory OverriddenMember.fromJson( | |
| 14532 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 14533 if (json == null) { | |
| 14534 json = {}; | |
| 14535 } | |
| 14536 if (json is Map) { | |
| 14537 Element element; | |
| 14538 if (json.containsKey("element")) { | |
| 14539 element = new Element.fromJson( | |
| 14540 jsonDecoder, jsonPath + ".element", json["element"]); | |
| 14541 } else { | |
| 14542 throw jsonDecoder.missingKey(jsonPath, "element"); | |
| 14543 } | |
| 14544 String className; | |
| 14545 if (json.containsKey("className")) { | |
| 14546 className = jsonDecoder.decodeString( | |
| 14547 jsonPath + ".className", json["className"]); | |
| 14548 } else { | |
| 14549 throw jsonDecoder.missingKey(jsonPath, "className"); | |
| 14550 } | |
| 14551 return new OverriddenMember(element, className); | |
| 14552 } else { | |
| 14553 throw jsonDecoder.mismatch(jsonPath, "OverriddenMember", json); | |
| 14554 } | |
| 14555 } | |
| 14556 | |
| 14557 Map<String, dynamic> toJson() { | |
| 14558 Map<String, dynamic> result = {}; | |
| 14559 result["element"] = element.toJson(); | |
| 14560 result["className"] = className; | |
| 14561 return result; | |
| 14562 } | |
| 14563 | |
| 14564 @override | 14829 @override |
| 14565 String toString() => JSON.encode(toJson()); | 14830 String toString() => JSON.encode(toJson()); |
| 14566 | 14831 |
| 14567 @override | 14832 @override |
| 14568 bool operator ==(other) { | 14833 bool operator ==(other) { |
| 14569 if (other is OverriddenMember) { | 14834 if (other is RefactoringMethodParameter) { |
| 14570 return element == other.element && className == other.className; | 14835 return id == other.id && |
| 14836 kind == other.kind && |
| 14837 type == other.type && |
| 14838 name == other.name && |
| 14839 parameters == other.parameters; |
| 14571 } | 14840 } |
| 14572 return false; | 14841 return false; |
| 14573 } | 14842 } |
| 14574 | 14843 |
| 14575 @override | 14844 @override |
| 14576 int get hashCode { | 14845 int get hashCode { |
| 14577 int hash = 0; | 14846 int hash = 0; |
| 14578 hash = JenkinsSmiHash.combine(hash, element.hashCode); | 14847 hash = JenkinsSmiHash.combine(hash, id.hashCode); |
| 14579 hash = JenkinsSmiHash.combine(hash, className.hashCode); | 14848 hash = JenkinsSmiHash.combine(hash, kind.hashCode); |
| 14849 hash = JenkinsSmiHash.combine(hash, type.hashCode); |
| 14850 hash = JenkinsSmiHash.combine(hash, name.hashCode); |
| 14851 hash = JenkinsSmiHash.combine(hash, parameters.hashCode); |
| 14580 return JenkinsSmiHash.finish(hash); | 14852 return JenkinsSmiHash.finish(hash); |
| 14581 } | 14853 } |
| 14582 } | 14854 } |
| 14583 | 14855 |
| 14584 /** | 14856 /** |
| 14585 * Position | 14857 * RefactoringMethodParameterKind |
| 14586 * | 14858 * |
| 14587 * { | 14859 * enum { |
| 14588 * "file": FilePath | 14860 * REQUIRED |
| 14589 * "offset": int | 14861 * POSITIONAL |
| 14862 * NAMED |
| 14590 * } | 14863 * } |
| 14591 * | 14864 * |
| 14592 * Clients may not extend, implement or mix-in this class. | 14865 * Clients may not extend, implement or mix-in this class. |
| 14593 */ | 14866 */ |
| 14594 class Position implements HasToJson { | 14867 class RefactoringMethodParameterKind implements Enum { |
| 14595 String _file; | 14868 static const RefactoringMethodParameterKind REQUIRED = |
| 14869 const RefactoringMethodParameterKind._("REQUIRED"); |
| 14596 | 14870 |
| 14597 int _offset; | 14871 static const RefactoringMethodParameterKind POSITIONAL = |
| 14872 const RefactoringMethodParameterKind._("POSITIONAL"); |
| 14873 |
| 14874 static const RefactoringMethodParameterKind NAMED = |
| 14875 const RefactoringMethodParameterKind._("NAMED"); |
| 14598 | 14876 |
| 14599 /** | 14877 /** |
| 14600 * The file containing the position. | 14878 * A list containing all of the enum values that are defined. |
| 14601 */ | 14879 */ |
| 14602 String get file => _file; | 14880 static const List<RefactoringMethodParameterKind> VALUES = |
| 14881 const <RefactoringMethodParameterKind>[REQUIRED, POSITIONAL, NAMED]; |
| 14603 | 14882 |
| 14604 /** | 14883 @override |
| 14605 * The file containing the position. | 14884 final String name; |
| 14606 */ | 14885 |
| 14607 void set file(String value) { | 14886 const RefactoringMethodParameterKind._(this.name); |
| 14608 assert(value != null); | 14887 |
| 14609 this._file = value; | 14888 factory RefactoringMethodParameterKind(String name) { |
| 14889 switch (name) { |
| 14890 case "REQUIRED": |
| 14891 return REQUIRED; |
| 14892 case "POSITIONAL": |
| 14893 return POSITIONAL; |
| 14894 case "NAMED": |
| 14895 return NAMED; |
| 14896 } |
| 14897 throw new Exception('Illegal enum value: $name'); |
| 14610 } | 14898 } |
| 14611 | 14899 |
| 14612 /** | 14900 factory RefactoringMethodParameterKind.fromJson( |
| 14613 * The offset of the position. | 14901 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 14614 */ | 14902 if (json is String) { |
| 14615 int get offset => _offset; | 14903 try { |
| 14616 | 14904 return new RefactoringMethodParameterKind(json); |
| 14617 /** | 14905 } catch (_) { |
| 14618 * The offset of the position. | 14906 // Fall through |
| 14619 */ | 14907 } |
| 14620 void set offset(int value) { | 14908 } |
| 14621 assert(value != null); | 14909 throw jsonDecoder.mismatch( |
| 14622 this._offset = value; | 14910 jsonPath, "RefactoringMethodParameterKind", json); |
| 14623 } | 14911 } |
| 14624 | 14912 |
| 14625 Position(String file, int offset) { | 14913 @override |
| 14626 this.file = file; | 14914 String toString() => "RefactoringMethodParameterKind.$name"; |
| 14627 this.offset = offset; | 14915 |
| 14916 String toJson() => name; |
| 14917 } |
| 14918 |
| 14919 /** |
| 14920 * RefactoringOptions |
| 14921 * |
| 14922 * { |
| 14923 * } |
| 14924 * |
| 14925 * Clients may not extend, implement or mix-in this class. |
| 14926 */ |
| 14927 class RefactoringOptions implements HasToJson { |
| 14928 RefactoringOptions(); |
| 14929 |
| 14930 factory RefactoringOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath, |
| 14931 Object json, RefactoringKind kind) { |
| 14932 return refactoringOptionsFromJson(jsonDecoder, jsonPath, json, kind); |
| 14628 } | 14933 } |
| 14629 | 14934 |
| 14630 factory Position.fromJson( | 14935 @override |
| 14631 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 14632 if (json == null) { | |
| 14633 json = {}; | |
| 14634 } | |
| 14635 if (json is Map) { | |
| 14636 String file; | |
| 14637 if (json.containsKey("file")) { | |
| 14638 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | |
| 14639 } else { | |
| 14640 throw jsonDecoder.missingKey(jsonPath, "file"); | |
| 14641 } | |
| 14642 int offset; | |
| 14643 if (json.containsKey("offset")) { | |
| 14644 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | |
| 14645 } else { | |
| 14646 throw jsonDecoder.missingKey(jsonPath, "offset"); | |
| 14647 } | |
| 14648 return new Position(file, offset); | |
| 14649 } else { | |
| 14650 throw jsonDecoder.mismatch(jsonPath, "Position", json); | |
| 14651 } | |
| 14652 } | |
| 14653 | |
| 14654 Map<String, dynamic> toJson() { | 14936 Map<String, dynamic> toJson() { |
| 14655 Map<String, dynamic> result = {}; | 14937 Map<String, dynamic> result = {}; |
| 14656 result["file"] = file; | |
| 14657 result["offset"] = offset; | |
| 14658 return result; | 14938 return result; |
| 14659 } | 14939 } |
| 14660 | 14940 |
| 14661 @override | 14941 @override |
| 14662 String toString() => JSON.encode(toJson()); | 14942 String toString() => JSON.encode(toJson()); |
| 14663 | 14943 |
| 14664 @override | 14944 @override |
| 14665 bool operator ==(other) { | 14945 bool operator ==(other) { |
| 14666 if (other is Position) { | 14946 if (other is RefactoringOptions) { |
| 14667 return file == other.file && offset == other.offset; | 14947 return true; |
| 14668 } | 14948 } |
| 14669 return false; | 14949 return false; |
| 14670 } | 14950 } |
| 14671 | 14951 |
| 14672 @override | 14952 @override |
| 14673 int get hashCode { | 14953 int get hashCode { |
| 14674 int hash = 0; | 14954 int hash = 0; |
| 14675 hash = JenkinsSmiHash.combine(hash, file.hashCode); | |
| 14676 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
| 14677 return JenkinsSmiHash.finish(hash); | 14955 return JenkinsSmiHash.finish(hash); |
| 14678 } | 14956 } |
| 14679 } | 14957 } |
| 14680 | 14958 |
| 14681 /** | 14959 /** |
| 14682 * PubStatus | 14960 * RefactoringProblem |
| 14683 * | 14961 * |
| 14684 * { | 14962 * { |
| 14685 * "isListingPackageDirs": bool | 14963 * "severity": RefactoringProblemSeverity |
| 14964 * "message": String |
| 14965 * "location": optional Location |
| 14686 * } | 14966 * } |
| 14687 * | 14967 * |
| 14688 * Clients may not extend, implement or mix-in this class. | 14968 * Clients may not extend, implement or mix-in this class. |
| 14689 */ | 14969 */ |
| 14690 class PubStatus implements HasToJson { | 14970 class RefactoringProblem implements HasToJson { |
| 14691 bool _isListingPackageDirs; | 14971 RefactoringProblemSeverity _severity; |
| 14972 |
| 14973 String _message; |
| 14974 |
| 14975 Location _location; |
| 14692 | 14976 |
| 14693 /** | 14977 /** |
| 14694 * True if the server is currently running pub to produce a list of package | 14978 * The severity of the problem being represented. |
| 14695 * directories. | |
| 14696 */ | 14979 */ |
| 14697 bool get isListingPackageDirs => _isListingPackageDirs; | 14980 RefactoringProblemSeverity get severity => _severity; |
| 14698 | 14981 |
| 14699 /** | 14982 /** |
| 14700 * True if the server is currently running pub to produce a list of package | 14983 * The severity of the problem being represented. |
| 14701 * directories. | |
| 14702 */ | 14984 */ |
| 14703 void set isListingPackageDirs(bool value) { | 14985 void set severity(RefactoringProblemSeverity value) { |
| 14704 assert(value != null); | 14986 assert(value != null); |
| 14705 this._isListingPackageDirs = value; | 14987 this._severity = value; |
| 14706 } | 14988 } |
| 14707 | 14989 |
| 14708 PubStatus(bool isListingPackageDirs) { | 14990 /** |
| 14709 this.isListingPackageDirs = isListingPackageDirs; | 14991 * A human-readable description of the problem being represented. |
| 14992 */ |
| 14993 String get message => _message; |
| 14994 |
| 14995 /** |
| 14996 * A human-readable description of the problem being represented. |
| 14997 */ |
| 14998 void set message(String value) { |
| 14999 assert(value != null); |
| 15000 this._message = value; |
| 14710 } | 15001 } |
| 14711 | 15002 |
| 14712 factory PubStatus.fromJson( | 15003 /** |
| 15004 * The location of the problem being represented. This field is omitted |
| 15005 * unless there is a specific location associated with the problem (such as a |
| 15006 * location where an element being renamed will be shadowed). |
| 15007 */ |
| 15008 Location get location => _location; |
| 15009 |
| 15010 /** |
| 15011 * The location of the problem being represented. This field is omitted |
| 15012 * unless there is a specific location associated with the problem (such as a |
| 15013 * location where an element being renamed will be shadowed). |
| 15014 */ |
| 15015 void set location(Location value) { |
| 15016 this._location = value; |
| 15017 } |
| 15018 |
| 15019 RefactoringProblem(RefactoringProblemSeverity severity, String message, |
| 15020 {Location location}) { |
| 15021 this.severity = severity; |
| 15022 this.message = message; |
| 15023 this.location = location; |
| 15024 } |
| 15025 |
| 15026 factory RefactoringProblem.fromJson( |
| 14713 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 15027 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 14714 if (json == null) { | 15028 if (json == null) { |
| 14715 json = {}; | 15029 json = {}; |
| 14716 } | 15030 } |
| 14717 if (json is Map) { | 15031 if (json is Map) { |
| 14718 bool isListingPackageDirs; | 15032 RefactoringProblemSeverity severity; |
| 14719 if (json.containsKey("isListingPackageDirs")) { | 15033 if (json.containsKey("severity")) { |
| 14720 isListingPackageDirs = jsonDecoder.decodeBool( | 15034 severity = new RefactoringProblemSeverity.fromJson( |
| 14721 jsonPath + ".isListingPackageDirs", json["isListingPackageDirs"]); | 15035 jsonDecoder, jsonPath + ".severity", json["severity"]); |
| 14722 } else { | 15036 } else { |
| 14723 throw jsonDecoder.missingKey(jsonPath, "isListingPackageDirs"); | 15037 throw jsonDecoder.mismatch(jsonPath, "severity"); |
| 14724 } | 15038 } |
| 14725 return new PubStatus(isListingPackageDirs); | 15039 String message; |
| 15040 if (json.containsKey("message")) { |
| 15041 message = |
| 15042 jsonDecoder.decodeString(jsonPath + ".message", json["message"]); |
| 15043 } else { |
| 15044 throw jsonDecoder.mismatch(jsonPath, "message"); |
| 15045 } |
| 15046 Location location; |
| 15047 if (json.containsKey("location")) { |
| 15048 location = new Location.fromJson( |
| 15049 jsonDecoder, jsonPath + ".location", json["location"]); |
| 15050 } |
| 15051 return new RefactoringProblem(severity, message, location: location); |
| 14726 } else { | 15052 } else { |
| 14727 throw jsonDecoder.mismatch(jsonPath, "PubStatus", json); | 15053 throw jsonDecoder.mismatch(jsonPath, "RefactoringProblem", json); |
| 14728 } | 15054 } |
| 14729 } | 15055 } |
| 14730 | 15056 |
| 15057 @override |
| 14731 Map<String, dynamic> toJson() { | 15058 Map<String, dynamic> toJson() { |
| 14732 Map<String, dynamic> result = {}; | 15059 Map<String, dynamic> result = {}; |
| 14733 result["isListingPackageDirs"] = isListingPackageDirs; | 15060 result["severity"] = severity.toJson(); |
| 15061 result["message"] = message; |
| 15062 if (location != null) { |
| 15063 result["location"] = location.toJson(); |
| 15064 } |
| 14734 return result; | 15065 return result; |
| 14735 } | 15066 } |
| 14736 | 15067 |
| 14737 @override | 15068 @override |
| 14738 String toString() => JSON.encode(toJson()); | 15069 String toString() => JSON.encode(toJson()); |
| 14739 | 15070 |
| 14740 @override | 15071 @override |
| 14741 bool operator ==(other) { | 15072 bool operator ==(other) { |
| 14742 if (other is PubStatus) { | 15073 if (other is RefactoringProblem) { |
| 14743 return isListingPackageDirs == other.isListingPackageDirs; | 15074 return severity == other.severity && |
| 15075 message == other.message && |
| 15076 location == other.location; |
| 14744 } | 15077 } |
| 14745 return false; | 15078 return false; |
| 14746 } | 15079 } |
| 14747 | 15080 |
| 14748 @override | 15081 @override |
| 14749 int get hashCode { | 15082 int get hashCode { |
| 14750 int hash = 0; | 15083 int hash = 0; |
| 14751 hash = JenkinsSmiHash.combine(hash, isListingPackageDirs.hashCode); | 15084 hash = JenkinsSmiHash.combine(hash, severity.hashCode); |
| 15085 hash = JenkinsSmiHash.combine(hash, message.hashCode); |
| 15086 hash = JenkinsSmiHash.combine(hash, location.hashCode); |
| 14752 return JenkinsSmiHash.finish(hash); | 15087 return JenkinsSmiHash.finish(hash); |
| 14753 } | 15088 } |
| 14754 } | 15089 } |
| 14755 | 15090 |
| 14756 /** | 15091 /** |
| 14757 * RefactoringKind | 15092 * RefactoringProblemSeverity |
| 14758 * | 15093 * |
| 14759 * enum { | 15094 * enum { |
| 14760 * CONVERT_GETTER_TO_METHOD | 15095 * INFO |
| 14761 * CONVERT_METHOD_TO_GETTER | 15096 * WARNING |
| 14762 * EXTRACT_LOCAL_VARIABLE | 15097 * ERROR |
| 14763 * EXTRACT_METHOD | 15098 * FATAL |
| 14764 * INLINE_LOCAL_VARIABLE | |
| 14765 * INLINE_METHOD | |
| 14766 * MOVE_FILE | |
| 14767 * RENAME | |
| 14768 * SORT_MEMBERS | |
| 14769 * } | 15099 * } |
| 14770 * | 15100 * |
| 14771 * Clients may not extend, implement or mix-in this class. | 15101 * Clients may not extend, implement or mix-in this class. |
| 14772 */ | 15102 */ |
| 14773 class RefactoringKind implements Enum { | 15103 class RefactoringProblemSeverity implements Enum { |
| 14774 static const RefactoringKind CONVERT_GETTER_TO_METHOD = | 15104 /** |
| 14775 const RefactoringKind._("CONVERT_GETTER_TO_METHOD"); | 15105 * A minor code problem. No example, because it is not used yet. |
| 14776 | 15106 */ |
| 14777 static const RefactoringKind CONVERT_METHOD_TO_GETTER = | 15107 static const RefactoringProblemSeverity INFO = |
| 14778 const RefactoringKind._("CONVERT_METHOD_TO_GETTER"); | 15108 const RefactoringProblemSeverity._("INFO"); |
| 14779 | 15109 |
| 14780 static const RefactoringKind EXTRACT_LOCAL_VARIABLE = | 15110 /** |
| 14781 const RefactoringKind._("EXTRACT_LOCAL_VARIABLE"); | 15111 * A minor code problem. For example names of local variables should be camel |
| 14782 | 15112 * case and start with a lower case letter. Staring the name of a variable |
| 14783 static const RefactoringKind EXTRACT_METHOD = | 15113 * with an upper case is OK from the language point of view, but it is nice |
| 14784 const RefactoringKind._("EXTRACT_METHOD"); | 15114 * to warn the user. |
| 14785 | 15115 */ |
| 14786 static const RefactoringKind INLINE_LOCAL_VARIABLE = | 15116 static const RefactoringProblemSeverity WARNING = |
| 14787 const RefactoringKind._("INLINE_LOCAL_VARIABLE"); | 15117 const RefactoringProblemSeverity._("WARNING"); |
| 14788 | 15118 |
| 14789 static const RefactoringKind INLINE_METHOD = | 15119 /** |
| 14790 const RefactoringKind._("INLINE_METHOD"); | 15120 * The refactoring technically can be performed, but there is a logical |
| 14791 | 15121 * problem. For example the name of a local variable being extracted |
| 14792 static const RefactoringKind MOVE_FILE = const RefactoringKind._("MOVE_FILE"); | 15122 * conflicts with another name in the scope, or duplicate parameter names in |
| 14793 | 15123 * the method being extracted, or a conflict between a parameter name and a |
| 14794 static const RefactoringKind RENAME = const RefactoringKind._("RENAME"); | 15124 * local variable, etc. In some cases the location of the problem is also |
| 14795 | 15125 * provided, so the IDE can show user the location and the problem, and let |
| 14796 static const RefactoringKind SORT_MEMBERS = | 15126 * the user decide whether she wants to perform the refactoring. For example |
| 14797 const RefactoringKind._("SORT_MEMBERS"); | 15127 * the name conflict might be expected, and the user wants to fix it |
| 15128 * afterwards. |
| 15129 */ |
| 15130 static const RefactoringProblemSeverity ERROR = |
| 15131 const RefactoringProblemSeverity._("ERROR"); |
| 15132 |
| 15133 /** |
| 15134 * A fatal error, which prevents performing the refactoring. For example the |
| 15135 * name of a local variable being extracted is not a valid identifier, or |
| 15136 * selection is not a valid expression. |
| 15137 */ |
| 15138 static const RefactoringProblemSeverity FATAL = |
| 15139 const RefactoringProblemSeverity._("FATAL"); |
| 14798 | 15140 |
| 14799 /** | 15141 /** |
| 14800 * A list containing all of the enum values that are defined. | 15142 * A list containing all of the enum values that are defined. |
| 14801 */ | 15143 */ |
| 14802 static const List<RefactoringKind> VALUES = const <RefactoringKind>[ | 15144 static const List<RefactoringProblemSeverity> VALUES = |
| 14803 CONVERT_GETTER_TO_METHOD, | 15145 const <RefactoringProblemSeverity>[INFO, WARNING, ERROR, FATAL]; |
| 14804 CONVERT_METHOD_TO_GETTER, | 15146 |
| 14805 EXTRACT_LOCAL_VARIABLE, | 15147 @override |
| 14806 EXTRACT_METHOD, | |
| 14807 INLINE_LOCAL_VARIABLE, | |
| 14808 INLINE_METHOD, | |
| 14809 MOVE_FILE, | |
| 14810 RENAME, | |
| 14811 SORT_MEMBERS | |
| 14812 ]; | |
| 14813 | |
| 14814 final String name; | 15148 final String name; |
| 14815 | 15149 |
| 14816 const RefactoringKind._(this.name); | 15150 const RefactoringProblemSeverity._(this.name); |
| 14817 | 15151 |
| 14818 factory RefactoringKind(String name) { | 15152 factory RefactoringProblemSeverity(String name) { |
| 14819 switch (name) { | 15153 switch (name) { |
| 14820 case "CONVERT_GETTER_TO_METHOD": | 15154 case "INFO": |
| 14821 return CONVERT_GETTER_TO_METHOD; | 15155 return INFO; |
| 14822 case "CONVERT_METHOD_TO_GETTER": | 15156 case "WARNING": |
| 14823 return CONVERT_METHOD_TO_GETTER; | 15157 return WARNING; |
| 14824 case "EXTRACT_LOCAL_VARIABLE": | 15158 case "ERROR": |
| 14825 return EXTRACT_LOCAL_VARIABLE; | 15159 return ERROR; |
| 14826 case "EXTRACT_METHOD": | 15160 case "FATAL": |
| 14827 return EXTRACT_METHOD; | 15161 return FATAL; |
| 14828 case "INLINE_LOCAL_VARIABLE": | |
| 14829 return INLINE_LOCAL_VARIABLE; | |
| 14830 case "INLINE_METHOD": | |
| 14831 return INLINE_METHOD; | |
| 14832 case "MOVE_FILE": | |
| 14833 return MOVE_FILE; | |
| 14834 case "RENAME": | |
| 14835 return RENAME; | |
| 14836 case "SORT_MEMBERS": | |
| 14837 return SORT_MEMBERS; | |
| 14838 } | 15162 } |
| 14839 throw new Exception('Illegal enum value: $name'); | 15163 throw new Exception('Illegal enum value: $name'); |
| 14840 } | 15164 } |
| 14841 | 15165 |
| 14842 factory RefactoringKind.fromJson( | 15166 factory RefactoringProblemSeverity.fromJson( |
| 14843 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 15167 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 14844 if (json is String) { | 15168 if (json is String) { |
| 14845 try { | 15169 try { |
| 14846 return new RefactoringKind(json); | 15170 return new RefactoringProblemSeverity(json); |
| 14847 } catch (_) { | 15171 } catch (_) { |
| 14848 // Fall through | 15172 // Fall through |
| 14849 } | 15173 } |
| 14850 } | 15174 } |
| 14851 throw jsonDecoder.mismatch(jsonPath, "RefactoringKind", json); | 15175 throw jsonDecoder.mismatch(jsonPath, "RefactoringProblemSeverity", json); |
| 14852 } | 15176 } |
| 14853 | 15177 |
| 14854 @override | 15178 /** |
| 14855 String toString() => "RefactoringKind.$name"; | 15179 * Returns the [RefactoringProblemSeverity] with the maximal severity. |
| 15180 */ |
| 15181 static RefactoringProblemSeverity max( |
| 15182 RefactoringProblemSeverity a, RefactoringProblemSeverity b) => |
| 15183 maxRefactoringProblemSeverity(a, b); |
| 15184 |
| 15185 @override |
| 15186 String toString() => "RefactoringProblemSeverity.$name"; |
| 14856 | 15187 |
| 14857 String toJson() => name; | 15188 String toJson() => name; |
| 14858 } | 15189 } |
| 14859 | 15190 |
| 14860 /** | 15191 /** |
| 14861 * RefactoringMethodParameter | 15192 * RemoveContentOverlay |
| 14862 * | 15193 * |
| 14863 * { | 15194 * { |
| 14864 * "id": optional String | 15195 * "type": "remove" |
| 14865 * "kind": RefactoringMethodParameterKind | |
| 14866 * "type": String | |
| 14867 * "name": String | |
| 14868 * "parameters": optional String | |
| 14869 * } | 15196 * } |
| 14870 * | 15197 * |
| 14871 * Clients may not extend, implement or mix-in this class. | 15198 * Clients may not extend, implement or mix-in this class. |
| 14872 */ | 15199 */ |
| 14873 class RefactoringMethodParameter implements HasToJson { | 15200 class RemoveContentOverlay implements HasToJson { |
| 14874 String _id; | 15201 RemoveContentOverlay(); |
| 14875 | 15202 |
| 14876 RefactoringMethodParameterKind _kind; | 15203 factory RemoveContentOverlay.fromJson( |
| 14877 | |
| 14878 String _type; | |
| 14879 | |
| 14880 String _name; | |
| 14881 | |
| 14882 String _parameters; | |
| 14883 | |
| 14884 /** | |
| 14885 * The unique identifier of the parameter. Clients may omit this field for | |
| 14886 * the parameters they want to add. | |
| 14887 */ | |
| 14888 String get id => _id; | |
| 14889 | |
| 14890 /** | |
| 14891 * The unique identifier of the parameter. Clients may omit this field for | |
| 14892 * the parameters they want to add. | |
| 14893 */ | |
| 14894 void set id(String value) { | |
| 14895 this._id = value; | |
| 14896 } | |
| 14897 | |
| 14898 /** | |
| 14899 * The kind of the parameter. | |
| 14900 */ | |
| 14901 RefactoringMethodParameterKind get kind => _kind; | |
| 14902 | |
| 14903 /** | |
| 14904 * The kind of the parameter. | |
| 14905 */ | |
| 14906 void set kind(RefactoringMethodParameterKind value) { | |
| 14907 assert(value != null); | |
| 14908 this._kind = value; | |
| 14909 } | |
| 14910 | |
| 14911 /** | |
| 14912 * The type that should be given to the parameter, or the return type of the | |
| 14913 * parameter's function type. | |
| 14914 */ | |
| 14915 String get type => _type; | |
| 14916 | |
| 14917 /** | |
| 14918 * The type that should be given to the parameter, or the return type of the | |
| 14919 * parameter's function type. | |
| 14920 */ | |
| 14921 void set type(String value) { | |
| 14922 assert(value != null); | |
| 14923 this._type = value; | |
| 14924 } | |
| 14925 | |
| 14926 /** | |
| 14927 * The name that should be given to the parameter. | |
| 14928 */ | |
| 14929 String get name => _name; | |
| 14930 | |
| 14931 /** | |
| 14932 * The name that should be given to the parameter. | |
| 14933 */ | |
| 14934 void set name(String value) { | |
| 14935 assert(value != null); | |
| 14936 this._name = value; | |
| 14937 } | |
| 14938 | |
| 14939 /** | |
| 14940 * The parameter list of the parameter's function type. If the parameter is | |
| 14941 * not of a function type, this field will not be defined. If the function | |
| 14942 * type has zero parameters, this field will have a value of "()". | |
| 14943 */ | |
| 14944 String get parameters => _parameters; | |
| 14945 | |
| 14946 /** | |
| 14947 * The parameter list of the parameter's function type. If the parameter is | |
| 14948 * not of a function type, this field will not be defined. If the function | |
| 14949 * type has zero parameters, this field will have a value of "()". | |
| 14950 */ | |
| 14951 void set parameters(String value) { | |
| 14952 this._parameters = value; | |
| 14953 } | |
| 14954 | |
| 14955 RefactoringMethodParameter( | |
| 14956 RefactoringMethodParameterKind kind, String type, String name, | |
| 14957 {String id, String parameters}) { | |
| 14958 this.id = id; | |
| 14959 this.kind = kind; | |
| 14960 this.type = type; | |
| 14961 this.name = name; | |
| 14962 this.parameters = parameters; | |
| 14963 } | |
| 14964 | |
| 14965 factory RefactoringMethodParameter.fromJson( | |
| 14966 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 15204 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 14967 if (json == null) { | 15205 if (json == null) { |
| 14968 json = {}; | 15206 json = {}; |
| 14969 } | 15207 } |
| 14970 if (json is Map) { | 15208 if (json is Map) { |
| 14971 String id; | 15209 if (json["type"] != "remove") { |
| 14972 if (json.containsKey("id")) { | 15210 throw jsonDecoder.mismatch(jsonPath, "equal " + "remove", json); |
| 14973 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | 15211 } |
| 14974 } | 15212 return new RemoveContentOverlay(); |
| 14975 RefactoringMethodParameterKind kind; | |
| 14976 if (json.containsKey("kind")) { | |
| 14977 kind = new RefactoringMethodParameterKind.fromJson( | |
| 14978 jsonDecoder, jsonPath + ".kind", json["kind"]); | |
| 14979 } else { | |
| 14980 throw jsonDecoder.missingKey(jsonPath, "kind"); | |
| 14981 } | |
| 14982 String type; | |
| 14983 if (json.containsKey("type")) { | |
| 14984 type = jsonDecoder.decodeString(jsonPath + ".type", json["type"]); | |
| 14985 } else { | |
| 14986 throw jsonDecoder.missingKey(jsonPath, "type"); | |
| 14987 } | |
| 14988 String name; | |
| 14989 if (json.containsKey("name")) { | |
| 14990 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | |
| 14991 } else { | |
| 14992 throw jsonDecoder.missingKey(jsonPath, "name"); | |
| 14993 } | |
| 14994 String parameters; | |
| 14995 if (json.containsKey("parameters")) { | |
| 14996 parameters = jsonDecoder.decodeString( | |
| 14997 jsonPath + ".parameters", json["parameters"]); | |
| 14998 } | |
| 14999 return new RefactoringMethodParameter(kind, type, name, | |
| 15000 id: id, parameters: parameters); | |
| 15001 } else { | 15213 } else { |
| 15002 throw jsonDecoder.mismatch(jsonPath, "RefactoringMethodParameter", json); | 15214 throw jsonDecoder.mismatch(jsonPath, "RemoveContentOverlay", json); |
| 15003 } | 15215 } |
| 15004 } | 15216 } |
| 15005 | 15217 |
| 15218 @override |
| 15006 Map<String, dynamic> toJson() { | 15219 Map<String, dynamic> toJson() { |
| 15007 Map<String, dynamic> result = {}; | 15220 Map<String, dynamic> result = {}; |
| 15008 if (id != null) { | 15221 result["type"] = "remove"; |
| 15009 result["id"] = id; | |
| 15010 } | |
| 15011 result["kind"] = kind.toJson(); | |
| 15012 result["type"] = type; | |
| 15013 result["name"] = name; | |
| 15014 if (parameters != null) { | |
| 15015 result["parameters"] = parameters; | |
| 15016 } | |
| 15017 return result; | 15222 return result; |
| 15018 } | 15223 } |
| 15019 | 15224 |
| 15225 @override |
| 15226 String toString() => JSON.encode(toJson()); |
| 15227 |
| 15228 @override |
| 15229 bool operator ==(other) { |
| 15230 if (other is RemoveContentOverlay) { |
| 15231 return true; |
| 15232 } |
| 15233 return false; |
| 15234 } |
| 15235 |
| 15236 @override |
| 15237 int get hashCode { |
| 15238 int hash = 0; |
| 15239 hash = JenkinsSmiHash.combine(hash, 114870849); |
| 15240 return JenkinsSmiHash.finish(hash); |
| 15241 } |
| 15242 } |
| 15243 |
| 15244 /** |
| 15245 * rename feedback |
| 15246 * |
| 15247 * { |
| 15248 * "offset": int |
| 15249 * "length": int |
| 15250 * "elementKindName": String |
| 15251 * "oldName": String |
| 15252 * } |
| 15253 * |
| 15254 * Clients may not extend, implement or mix-in this class. |
| 15255 */ |
| 15256 class RenameFeedback extends RefactoringFeedback { |
| 15257 int _offset; |
| 15258 |
| 15259 int _length; |
| 15260 |
| 15261 String _elementKindName; |
| 15262 |
| 15263 String _oldName; |
| 15264 |
| 15265 /** |
| 15266 * The offset to the beginning of the name selected to be renamed. |
| 15267 */ |
| 15268 int get offset => _offset; |
| 15269 |
| 15270 /** |
| 15271 * The offset to the beginning of the name selected to be renamed. |
| 15272 */ |
| 15273 void set offset(int value) { |
| 15274 assert(value != null); |
| 15275 this._offset = value; |
| 15276 } |
| 15277 |
| 15278 /** |
| 15279 * The length of the name selected to be renamed. |
| 15280 */ |
| 15281 int get length => _length; |
| 15282 |
| 15283 /** |
| 15284 * The length of the name selected to be renamed. |
| 15285 */ |
| 15286 void set length(int value) { |
| 15287 assert(value != null); |
| 15288 this._length = value; |
| 15289 } |
| 15290 |
| 15291 /** |
| 15292 * The human-readable description of the kind of element being renamed (such |
| 15293 * as "class" or "function type alias"). |
| 15294 */ |
| 15295 String get elementKindName => _elementKindName; |
| 15296 |
| 15297 /** |
| 15298 * The human-readable description of the kind of element being renamed (such |
| 15299 * as "class" or "function type alias"). |
| 15300 */ |
| 15301 void set elementKindName(String value) { |
| 15302 assert(value != null); |
| 15303 this._elementKindName = value; |
| 15304 } |
| 15305 |
| 15306 /** |
| 15307 * The old name of the element before the refactoring. |
| 15308 */ |
| 15309 String get oldName => _oldName; |
| 15310 |
| 15311 /** |
| 15312 * The old name of the element before the refactoring. |
| 15313 */ |
| 15314 void set oldName(String value) { |
| 15315 assert(value != null); |
| 15316 this._oldName = value; |
| 15317 } |
| 15318 |
| 15319 RenameFeedback( |
| 15320 int offset, int length, String elementKindName, String oldName) { |
| 15321 this.offset = offset; |
| 15322 this.length = length; |
| 15323 this.elementKindName = elementKindName; |
| 15324 this.oldName = oldName; |
| 15325 } |
| 15326 |
| 15327 factory RenameFeedback.fromJson( |
| 15328 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 15329 if (json == null) { |
| 15330 json = {}; |
| 15331 } |
| 15332 if (json is Map) { |
| 15333 int offset; |
| 15334 if (json.containsKey("offset")) { |
| 15335 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 15336 } else { |
| 15337 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 15338 } |
| 15339 int length; |
| 15340 if (json.containsKey("length")) { |
| 15341 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 15342 } else { |
| 15343 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 15344 } |
| 15345 String elementKindName; |
| 15346 if (json.containsKey("elementKindName")) { |
| 15347 elementKindName = jsonDecoder.decodeString( |
| 15348 jsonPath + ".elementKindName", json["elementKindName"]); |
| 15349 } else { |
| 15350 throw jsonDecoder.mismatch(jsonPath, "elementKindName"); |
| 15351 } |
| 15352 String oldName; |
| 15353 if (json.containsKey("oldName")) { |
| 15354 oldName = |
| 15355 jsonDecoder.decodeString(jsonPath + ".oldName", json["oldName"]); |
| 15356 } else { |
| 15357 throw jsonDecoder.mismatch(jsonPath, "oldName"); |
| 15358 } |
| 15359 return new RenameFeedback(offset, length, elementKindName, oldName); |
| 15360 } else { |
| 15361 throw jsonDecoder.mismatch(jsonPath, "rename feedback", json); |
| 15362 } |
| 15363 } |
| 15364 |
| 15365 @override |
| 15366 Map<String, dynamic> toJson() { |
| 15367 Map<String, dynamic> result = {}; |
| 15368 result["offset"] = offset; |
| 15369 result["length"] = length; |
| 15370 result["elementKindName"] = elementKindName; |
| 15371 result["oldName"] = oldName; |
| 15372 return result; |
| 15373 } |
| 15374 |
| 15020 @override | 15375 @override |
| 15021 String toString() => JSON.encode(toJson()); | 15376 String toString() => JSON.encode(toJson()); |
| 15022 | 15377 |
| 15023 @override | 15378 @override |
| 15024 bool operator ==(other) { | 15379 bool operator ==(other) { |
| 15025 if (other is RefactoringMethodParameter) { | 15380 if (other is RenameFeedback) { |
| 15026 return id == other.id && | 15381 return offset == other.offset && |
| 15027 kind == other.kind && | 15382 length == other.length && |
| 15028 type == other.type && | 15383 elementKindName == other.elementKindName && |
| 15029 name == other.name && | 15384 oldName == other.oldName; |
| 15030 parameters == other.parameters; | |
| 15031 } | 15385 } |
| 15032 return false; | 15386 return false; |
| 15033 } | 15387 } |
| 15034 | 15388 |
| 15035 @override | 15389 @override |
| 15036 int get hashCode { | 15390 int get hashCode { |
| 15037 int hash = 0; | 15391 int hash = 0; |
| 15038 hash = JenkinsSmiHash.combine(hash, id.hashCode); | 15392 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 15039 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | 15393 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 15040 hash = JenkinsSmiHash.combine(hash, type.hashCode); | 15394 hash = JenkinsSmiHash.combine(hash, elementKindName.hashCode); |
| 15041 hash = JenkinsSmiHash.combine(hash, name.hashCode); | 15395 hash = JenkinsSmiHash.combine(hash, oldName.hashCode); |
| 15042 hash = JenkinsSmiHash.combine(hash, parameters.hashCode); | |
| 15043 return JenkinsSmiHash.finish(hash); | 15396 return JenkinsSmiHash.finish(hash); |
| 15044 } | 15397 } |
| 15045 } | 15398 } |
| 15046 | 15399 |
| 15047 /** | 15400 /** |
| 15048 * RefactoringFeedback | 15401 * rename options |
| 15049 * | 15402 * |
| 15050 * { | 15403 * { |
| 15404 * "newName": String |
| 15051 * } | 15405 * } |
| 15052 * | 15406 * |
| 15053 * Clients may not extend, implement or mix-in this class. | 15407 * Clients may not extend, implement or mix-in this class. |
| 15054 */ | 15408 */ |
| 15055 class RefactoringFeedback implements HasToJson { | 15409 class RenameOptions extends RefactoringOptions { |
| 15056 RefactoringFeedback(); | 15410 String _newName; |
| 15057 | 15411 |
| 15058 factory RefactoringFeedback.fromJson( | 15412 /** |
| 15059 JsonDecoder jsonDecoder, String jsonPath, Object json, Map responseJson) { | 15413 * The name that the element should have after the refactoring. |
| 15060 return refactoringFeedbackFromJson( | 15414 */ |
| 15061 jsonDecoder, jsonPath, json, responseJson); | 15415 String get newName => _newName; |
| 15416 |
| 15417 /** |
| 15418 * The name that the element should have after the refactoring. |
| 15419 */ |
| 15420 void set newName(String value) { |
| 15421 assert(value != null); |
| 15422 this._newName = value; |
| 15062 } | 15423 } |
| 15063 | 15424 |
| 15425 RenameOptions(String newName) { |
| 15426 this.newName = newName; |
| 15427 } |
| 15428 |
| 15429 factory RenameOptions.fromJson( |
| 15430 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 15431 if (json == null) { |
| 15432 json = {}; |
| 15433 } |
| 15434 if (json is Map) { |
| 15435 String newName; |
| 15436 if (json.containsKey("newName")) { |
| 15437 newName = |
| 15438 jsonDecoder.decodeString(jsonPath + ".newName", json["newName"]); |
| 15439 } else { |
| 15440 throw jsonDecoder.mismatch(jsonPath, "newName"); |
| 15441 } |
| 15442 return new RenameOptions(newName); |
| 15443 } else { |
| 15444 throw jsonDecoder.mismatch(jsonPath, "rename options", json); |
| 15445 } |
| 15446 } |
| 15447 |
| 15448 factory RenameOptions.fromRefactoringParams( |
| 15449 EditGetRefactoringParams refactoringParams, Request request) { |
| 15450 return new RenameOptions.fromJson( |
| 15451 new RequestDecoder(request), "options", refactoringParams.options); |
| 15452 } |
| 15453 |
| 15454 @override |
| 15064 Map<String, dynamic> toJson() { | 15455 Map<String, dynamic> toJson() { |
| 15065 Map<String, dynamic> result = {}; | 15456 Map<String, dynamic> result = {}; |
| 15457 result["newName"] = newName; |
| 15066 return result; | 15458 return result; |
| 15067 } | 15459 } |
| 15068 | 15460 |
| 15069 @override | |
| 15070 String toString() => JSON.encode(toJson()); | |
| 15071 | |
| 15072 @override | |
| 15073 bool operator ==(other) { | |
| 15074 if (other is RefactoringFeedback) { | |
| 15075 return true; | |
| 15076 } | |
| 15077 return false; | |
| 15078 } | |
| 15079 | |
| 15080 @override | |
| 15081 int get hashCode { | |
| 15082 int hash = 0; | |
| 15083 return JenkinsSmiHash.finish(hash); | |
| 15084 } | |
| 15085 } | |
| 15086 | |
| 15087 /** | |
| 15088 * RefactoringOptions | |
| 15089 * | |
| 15090 * { | |
| 15091 * } | |
| 15092 * | |
| 15093 * Clients may not extend, implement or mix-in this class. | |
| 15094 */ | |
| 15095 class RefactoringOptions implements HasToJson { | |
| 15096 RefactoringOptions(); | |
| 15097 | |
| 15098 factory RefactoringOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath, | |
| 15099 Object json, RefactoringKind kind) { | |
| 15100 return refactoringOptionsFromJson(jsonDecoder, jsonPath, json, kind); | |
| 15101 } | |
| 15102 | |
| 15103 Map<String, dynamic> toJson() { | |
| 15104 Map<String, dynamic> result = {}; | |
| 15105 return result; | |
| 15106 } | |
| 15107 | |
| 15108 @override | 15461 @override |
| 15109 String toString() => JSON.encode(toJson()); | 15462 String toString() => JSON.encode(toJson()); |
| 15110 | 15463 |
| 15111 @override | 15464 @override |
| 15112 bool operator ==(other) { | 15465 bool operator ==(other) { |
| 15113 if (other is RefactoringOptions) { | 15466 if (other is RenameOptions) { |
| 15114 return true; | 15467 return newName == other.newName; |
| 15115 } | 15468 } |
| 15116 return false; | 15469 return false; |
| 15117 } | 15470 } |
| 15118 | 15471 |
| 15119 @override | 15472 @override |
| 15120 int get hashCode { | 15473 int get hashCode { |
| 15121 int hash = 0; | 15474 int hash = 0; |
| 15475 hash = JenkinsSmiHash.combine(hash, newName.hashCode); |
| 15122 return JenkinsSmiHash.finish(hash); | 15476 return JenkinsSmiHash.finish(hash); |
| 15123 } | 15477 } |
| 15124 } | 15478 } |
| 15125 | 15479 |
| 15126 /** | 15480 /** |
| 15127 * RefactoringMethodParameterKind | 15481 * RequestError |
| 15128 * | 15482 * |
| 15129 * enum { | 15483 * { |
| 15130 * REQUIRED | 15484 * "code": RequestErrorCode |
| 15131 * POSITIONAL | 15485 * "message": String |
| 15132 * NAMED | 15486 * "stackTrace": optional String |
| 15133 * } | 15487 * } |
| 15134 * | 15488 * |
| 15135 * Clients may not extend, implement or mix-in this class. | 15489 * Clients may not extend, implement or mix-in this class. |
| 15136 */ | 15490 */ |
| 15137 class RefactoringMethodParameterKind implements Enum { | 15491 class RequestError implements HasToJson { |
| 15138 static const RefactoringMethodParameterKind REQUIRED = | 15492 RequestErrorCode _code; |
| 15139 const RefactoringMethodParameterKind._("REQUIRED"); | |
| 15140 | |
| 15141 static const RefactoringMethodParameterKind POSITIONAL = | |
| 15142 const RefactoringMethodParameterKind._("POSITIONAL"); | |
| 15143 | |
| 15144 static const RefactoringMethodParameterKind NAMED = | |
| 15145 const RefactoringMethodParameterKind._("NAMED"); | |
| 15146 | |
| 15147 /** | |
| 15148 * A list containing all of the enum values that are defined. | |
| 15149 */ | |
| 15150 static const List<RefactoringMethodParameterKind> VALUES = | |
| 15151 const <RefactoringMethodParameterKind>[REQUIRED, POSITIONAL, NAMED]; | |
| 15152 | |
| 15153 final String name; | |
| 15154 | |
| 15155 const RefactoringMethodParameterKind._(this.name); | |
| 15156 | |
| 15157 factory RefactoringMethodParameterKind(String name) { | |
| 15158 switch (name) { | |
| 15159 case "REQUIRED": | |
| 15160 return REQUIRED; | |
| 15161 case "POSITIONAL": | |
| 15162 return POSITIONAL; | |
| 15163 case "NAMED": | |
| 15164 return NAMED; | |
| 15165 } | |
| 15166 throw new Exception('Illegal enum value: $name'); | |
| 15167 } | |
| 15168 | |
| 15169 factory RefactoringMethodParameterKind.fromJson( | |
| 15170 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 15171 if (json is String) { | |
| 15172 try { | |
| 15173 return new RefactoringMethodParameterKind(json); | |
| 15174 } catch (_) { | |
| 15175 // Fall through | |
| 15176 } | |
| 15177 } | |
| 15178 throw jsonDecoder.mismatch( | |
| 15179 jsonPath, "RefactoringMethodParameterKind", json); | |
| 15180 } | |
| 15181 | |
| 15182 @override | |
| 15183 String toString() => "RefactoringMethodParameterKind.$name"; | |
| 15184 | |
| 15185 String toJson() => name; | |
| 15186 } | |
| 15187 | |
| 15188 /** | |
| 15189 * RefactoringProblem | |
| 15190 * | |
| 15191 * { | |
| 15192 * "severity": RefactoringProblemSeverity | |
| 15193 * "message": String | |
| 15194 * "location": optional Location | |
| 15195 * } | |
| 15196 * | |
| 15197 * Clients may not extend, implement or mix-in this class. | |
| 15198 */ | |
| 15199 class RefactoringProblem implements HasToJson { | |
| 15200 RefactoringProblemSeverity _severity; | |
| 15201 | 15493 |
| 15202 String _message; | 15494 String _message; |
| 15203 | 15495 |
| 15204 Location _location; | 15496 String _stackTrace; |
| 15205 | 15497 |
| 15206 /** | 15498 /** |
| 15207 * The severity of the problem being represented. | 15499 * A code that uniquely identifies the error that occurred. |
| 15208 */ | 15500 */ |
| 15209 RefactoringProblemSeverity get severity => _severity; | 15501 RequestErrorCode get code => _code; |
| 15210 | 15502 |
| 15211 /** | 15503 /** |
| 15212 * The severity of the problem being represented. | 15504 * A code that uniquely identifies the error that occurred. |
| 15213 */ | 15505 */ |
| 15214 void set severity(RefactoringProblemSeverity value) { | 15506 void set code(RequestErrorCode value) { |
| 15215 assert(value != null); | 15507 assert(value != null); |
| 15216 this._severity = value; | 15508 this._code = value; |
| 15217 } | 15509 } |
| 15218 | 15510 |
| 15219 /** | 15511 /** |
| 15220 * A human-readable description of the problem being represented. | 15512 * A short description of the error. |
| 15221 */ | 15513 */ |
| 15222 String get message => _message; | 15514 String get message => _message; |
| 15223 | 15515 |
| 15224 /** | 15516 /** |
| 15225 * A human-readable description of the problem being represented. | 15517 * A short description of the error. |
| 15226 */ | 15518 */ |
| 15227 void set message(String value) { | 15519 void set message(String value) { |
| 15228 assert(value != null); | 15520 assert(value != null); |
| 15229 this._message = value; | 15521 this._message = value; |
| 15230 } | 15522 } |
| 15231 | 15523 |
| 15232 /** | 15524 /** |
| 15233 * The location of the problem being represented. This field is omitted | 15525 * The stack trace associated with processing the request, used for debugging |
| 15234 * unless there is a specific location associated with the problem (such as a | 15526 * the server. |
| 15235 * location where an element being renamed will be shadowed). | |
| 15236 */ | 15527 */ |
| 15237 Location get location => _location; | 15528 String get stackTrace => _stackTrace; |
| 15238 | 15529 |
| 15239 /** | 15530 /** |
| 15240 * The location of the problem being represented. This field is omitted | 15531 * The stack trace associated with processing the request, used for debugging |
| 15241 * unless there is a specific location associated with the problem (such as a | 15532 * the server. |
| 15242 * location where an element being renamed will be shadowed). | |
| 15243 */ | 15533 */ |
| 15244 void set location(Location value) { | 15534 void set stackTrace(String value) { |
| 15245 this._location = value; | 15535 this._stackTrace = value; |
| 15246 } | 15536 } |
| 15247 | 15537 |
| 15248 RefactoringProblem(RefactoringProblemSeverity severity, String message, | 15538 RequestError(RequestErrorCode code, String message, {String stackTrace}) { |
| 15249 {Location location}) { | 15539 this.code = code; |
| 15250 this.severity = severity; | |
| 15251 this.message = message; | 15540 this.message = message; |
| 15252 this.location = location; | 15541 this.stackTrace = stackTrace; |
| 15253 } | 15542 } |
| 15254 | 15543 |
| 15255 factory RefactoringProblem.fromJson( | 15544 factory RequestError.fromJson( |
| 15256 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 15545 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 15257 if (json == null) { | 15546 if (json == null) { |
| 15258 json = {}; | 15547 json = {}; |
| 15259 } | 15548 } |
| 15260 if (json is Map) { | 15549 if (json is Map) { |
| 15261 RefactoringProblemSeverity severity; | 15550 RequestErrorCode code; |
| 15262 if (json.containsKey("severity")) { | 15551 if (json.containsKey("code")) { |
| 15263 severity = new RefactoringProblemSeverity.fromJson( | 15552 code = new RequestErrorCode.fromJson( |
| 15264 jsonDecoder, jsonPath + ".severity", json["severity"]); | 15553 jsonDecoder, jsonPath + ".code", json["code"]); |
| 15265 } else { | 15554 } else { |
| 15266 throw jsonDecoder.missingKey(jsonPath, "severity"); | 15555 throw jsonDecoder.mismatch(jsonPath, "code"); |
| 15267 } | 15556 } |
| 15268 String message; | 15557 String message; |
| 15269 if (json.containsKey("message")) { | 15558 if (json.containsKey("message")) { |
| 15270 message = | 15559 message = |
| 15271 jsonDecoder.decodeString(jsonPath + ".message", json["message"]); | 15560 jsonDecoder.decodeString(jsonPath + ".message", json["message"]); |
| 15272 } else { | 15561 } else { |
| 15273 throw jsonDecoder.missingKey(jsonPath, "message"); | 15562 throw jsonDecoder.mismatch(jsonPath, "message"); |
| 15274 } | 15563 } |
| 15275 Location location; | 15564 String stackTrace; |
| 15276 if (json.containsKey("location")) { | 15565 if (json.containsKey("stackTrace")) { |
| 15277 location = new Location.fromJson( | 15566 stackTrace = jsonDecoder.decodeString( |
| 15278 jsonDecoder, jsonPath + ".location", json["location"]); | 15567 jsonPath + ".stackTrace", json["stackTrace"]); |
| 15279 } | 15568 } |
| 15280 return new RefactoringProblem(severity, message, location: location); | 15569 return new RequestError(code, message, stackTrace: stackTrace); |
| 15281 } else { | 15570 } else { |
| 15282 throw jsonDecoder.mismatch(jsonPath, "RefactoringProblem", json); | 15571 throw jsonDecoder.mismatch(jsonPath, "RequestError", json); |
| 15283 } | 15572 } |
| 15284 } | 15573 } |
| 15285 | 15574 |
| 15575 @override |
| 15286 Map<String, dynamic> toJson() { | 15576 Map<String, dynamic> toJson() { |
| 15287 Map<String, dynamic> result = {}; | 15577 Map<String, dynamic> result = {}; |
| 15288 result["severity"] = severity.toJson(); | 15578 result["code"] = code.toJson(); |
| 15289 result["message"] = message; | 15579 result["message"] = message; |
| 15290 if (location != null) { | 15580 if (stackTrace != null) { |
| 15291 result["location"] = location.toJson(); | 15581 result["stackTrace"] = stackTrace; |
| 15292 } | 15582 } |
| 15293 return result; | 15583 return result; |
| 15294 } | 15584 } |
| 15295 | 15585 |
| 15296 @override | 15586 @override |
| 15297 String toString() => JSON.encode(toJson()); | 15587 String toString() => JSON.encode(toJson()); |
| 15298 | 15588 |
| 15299 @override | 15589 @override |
| 15300 bool operator ==(other) { | 15590 bool operator ==(other) { |
| 15301 if (other is RefactoringProblem) { | 15591 if (other is RequestError) { |
| 15302 return severity == other.severity && | 15592 return code == other.code && |
| 15303 message == other.message && | 15593 message == other.message && |
| 15304 location == other.location; | 15594 stackTrace == other.stackTrace; |
| 15305 } | 15595 } |
| 15306 return false; | 15596 return false; |
| 15307 } | 15597 } |
| 15308 | 15598 |
| 15309 @override | 15599 @override |
| 15310 int get hashCode { | 15600 int get hashCode { |
| 15311 int hash = 0; | 15601 int hash = 0; |
| 15312 hash = JenkinsSmiHash.combine(hash, severity.hashCode); | 15602 hash = JenkinsSmiHash.combine(hash, code.hashCode); |
| 15313 hash = JenkinsSmiHash.combine(hash, message.hashCode); | 15603 hash = JenkinsSmiHash.combine(hash, message.hashCode); |
| 15314 hash = JenkinsSmiHash.combine(hash, location.hashCode); | 15604 hash = JenkinsSmiHash.combine(hash, stackTrace.hashCode); |
| 15315 return JenkinsSmiHash.finish(hash); | 15605 return JenkinsSmiHash.finish(hash); |
| 15316 } | 15606 } |
| 15317 } | 15607 } |
| 15318 | 15608 |
| 15319 /** | 15609 /** |
| 15320 * RefactoringProblemSeverity | 15610 * RequestErrorCode |
| 15321 * | 15611 * |
| 15322 * enum { | 15612 * enum { |
| 15323 * INFO | 15613 * CONTENT_MODIFIED |
| 15324 * WARNING | 15614 * DEBUG_PORT_COULD_NOT_BE_OPENED |
| 15325 * ERROR | 15615 * FILE_NOT_ANALYZED |
| 15326 * FATAL | 15616 * FORMAT_INVALID_FILE |
| 15617 * FORMAT_WITH_ERRORS |
| 15618 * GET_ERRORS_INVALID_FILE |
| 15619 * GET_NAVIGATION_INVALID_FILE |
| 15620 * GET_REACHABLE_SOURCES_INVALID_FILE |
| 15621 * INVALID_ANALYSIS_ROOT |
| 15622 * INVALID_EXECUTION_CONTEXT |
| 15623 * INVALID_FILE_PATH_FORMAT |
| 15624 * INVALID_OVERLAY_CHANGE |
| 15625 * INVALID_PARAMETER |
| 15626 * INVALID_REQUEST |
| 15627 * NO_INDEX_GENERATED |
| 15628 * ORGANIZE_DIRECTIVES_ERROR |
| 15629 * REFACTORING_REQUEST_CANCELLED |
| 15630 * SERVER_ALREADY_STARTED |
| 15631 * SERVER_ERROR |
| 15632 * SORT_MEMBERS_INVALID_FILE |
| 15633 * SORT_MEMBERS_PARSE_ERRORS |
| 15634 * UNANALYZED_PRIORITY_FILES |
| 15635 * UNKNOWN_REQUEST |
| 15636 * UNKNOWN_SOURCE |
| 15637 * UNSUPPORTED_FEATURE |
| 15327 * } | 15638 * } |
| 15328 * | 15639 * |
| 15329 * Clients may not extend, implement or mix-in this class. | 15640 * Clients may not extend, implement or mix-in this class. |
| 15330 */ | 15641 */ |
| 15331 class RefactoringProblemSeverity implements Enum { | 15642 class RequestErrorCode implements Enum { |
| 15332 /** | 15643 /** |
| 15333 * A minor code problem. No example, because it is not used yet. | 15644 * An "analysis.getErrors" or "analysis.getNavigation" request could not be |
| 15334 */ | 15645 * satisfied because the content of the file changed before the requested |
| 15335 static const RefactoringProblemSeverity INFO = | 15646 * results could be computed. |
| 15336 const RefactoringProblemSeverity._("INFO"); | 15647 */ |
| 15337 | 15648 static const RequestErrorCode CONTENT_MODIFIED = |
| 15338 /** | 15649 const RequestErrorCode._("CONTENT_MODIFIED"); |
| 15339 * A minor code problem. For example names of local variables should be camel | 15650 |
| 15340 * case and start with a lower case letter. Staring the name of a variable | 15651 /** |
| 15341 * with an upper case is OK from the language point of view, but it is nice | 15652 * The server was unable to open a port for the diagnostic server. |
| 15342 * to warn the user. | 15653 */ |
| 15343 */ | 15654 static const RequestErrorCode DEBUG_PORT_COULD_NOT_BE_OPENED = |
| 15344 static const RefactoringProblemSeverity WARNING = | 15655 const RequestErrorCode._("DEBUG_PORT_COULD_NOT_BE_OPENED"); |
| 15345 const RefactoringProblemSeverity._("WARNING"); | 15656 |
| 15346 | 15657 /** |
| 15347 /** | 15658 * A request specified a FilePath which does not match a file in an analysis |
| 15348 * The refactoring technically can be performed, but there is a logical | 15659 * root, or the requested operation is not available for the file. |
| 15349 * problem. For example the name of a local variable being extracted | 15660 */ |
| 15350 * conflicts with another name in the scope, or duplicate parameter names in | 15661 static const RequestErrorCode FILE_NOT_ANALYZED = |
| 15351 * the method being extracted, or a conflict between a parameter name and a | 15662 const RequestErrorCode._("FILE_NOT_ANALYZED"); |
| 15352 * local variable, etc. In some cases the location of the problem is also | 15663 |
| 15353 * provided, so the IDE can show user the location and the problem, and let | 15664 /** |
| 15354 * the user decide whether she wants to perform the refactoring. For example | 15665 * An "edit.format" request specified a FilePath which does not match a Dart |
| 15355 * the name conflict might be expected, and the user wants to fix it | 15666 * file in an analysis root. |
| 15356 * afterwards. | 15667 */ |
| 15357 */ | 15668 static const RequestErrorCode FORMAT_INVALID_FILE = |
| 15358 static const RefactoringProblemSeverity ERROR = | 15669 const RequestErrorCode._("FORMAT_INVALID_FILE"); |
| 15359 const RefactoringProblemSeverity._("ERROR"); | 15670 |
| 15360 | 15671 /** |
| 15361 /** | 15672 * An "edit.format" request specified a file that contains syntax errors. |
| 15362 * A fatal error, which prevents performing the refactoring. For example the | 15673 */ |
| 15363 * name of a local variable being extracted is not a valid identifier, or | 15674 static const RequestErrorCode FORMAT_WITH_ERRORS = |
| 15364 * selection is not a valid expression. | 15675 const RequestErrorCode._("FORMAT_WITH_ERRORS"); |
| 15365 */ | 15676 |
| 15366 static const RefactoringProblemSeverity FATAL = | 15677 /** |
| 15367 const RefactoringProblemSeverity._("FATAL"); | 15678 * An "analysis.getErrors" request specified a FilePath which does not match |
| 15679 * a file currently subject to analysis. |
| 15680 */ |
| 15681 static const RequestErrorCode GET_ERRORS_INVALID_FILE = |
| 15682 const RequestErrorCode._("GET_ERRORS_INVALID_FILE"); |
| 15683 |
| 15684 /** |
| 15685 * An "analysis.getNavigation" request specified a FilePath which does not |
| 15686 * match a file currently subject to analysis. |
| 15687 */ |
| 15688 static const RequestErrorCode GET_NAVIGATION_INVALID_FILE = |
| 15689 const RequestErrorCode._("GET_NAVIGATION_INVALID_FILE"); |
| 15690 |
| 15691 /** |
| 15692 * An "analysis.getReachableSources" request specified a FilePath which does |
| 15693 * not match a file currently subject to analysis. |
| 15694 */ |
| 15695 static const RequestErrorCode GET_REACHABLE_SOURCES_INVALID_FILE = |
| 15696 const RequestErrorCode._("GET_REACHABLE_SOURCES_INVALID_FILE"); |
| 15697 |
| 15698 /** |
| 15699 * A path passed as an argument to a request (such as analysis.reanalyze) is |
| 15700 * required to be an analysis root, but isn't. |
| 15701 */ |
| 15702 static const RequestErrorCode INVALID_ANALYSIS_ROOT = |
| 15703 const RequestErrorCode._("INVALID_ANALYSIS_ROOT"); |
| 15704 |
| 15705 /** |
| 15706 * The context root used to create an execution context does not exist. |
| 15707 */ |
| 15708 static const RequestErrorCode INVALID_EXECUTION_CONTEXT = |
| 15709 const RequestErrorCode._("INVALID_EXECUTION_CONTEXT"); |
| 15710 |
| 15711 /** |
| 15712 * The format of the given file path is invalid, e.g. is not absolute and |
| 15713 * normalized. |
| 15714 */ |
| 15715 static const RequestErrorCode INVALID_FILE_PATH_FORMAT = |
| 15716 const RequestErrorCode._("INVALID_FILE_PATH_FORMAT"); |
| 15717 |
| 15718 /** |
| 15719 * An "analysis.updateContent" request contained a ChangeContentOverlay |
| 15720 * object which can't be applied, due to an edit having an offset or length |
| 15721 * that is out of range. |
| 15722 */ |
| 15723 static const RequestErrorCode INVALID_OVERLAY_CHANGE = |
| 15724 const RequestErrorCode._("INVALID_OVERLAY_CHANGE"); |
| 15725 |
| 15726 /** |
| 15727 * One of the method parameters was invalid. |
| 15728 */ |
| 15729 static const RequestErrorCode INVALID_PARAMETER = |
| 15730 const RequestErrorCode._("INVALID_PARAMETER"); |
| 15731 |
| 15732 /** |
| 15733 * A malformed request was received. |
| 15734 */ |
| 15735 static const RequestErrorCode INVALID_REQUEST = |
| 15736 const RequestErrorCode._("INVALID_REQUEST"); |
| 15737 |
| 15738 /** |
| 15739 * The "--no-index" flag was passed when the analysis server created, but |
| 15740 * this API call requires an index to have been generated. |
| 15741 */ |
| 15742 static const RequestErrorCode NO_INDEX_GENERATED = |
| 15743 const RequestErrorCode._("NO_INDEX_GENERATED"); |
| 15744 |
| 15745 /** |
| 15746 * An "edit.organizeDirectives" request specified a Dart file that cannot be |
| 15747 * analyzed. The reason is described in the message. |
| 15748 */ |
| 15749 static const RequestErrorCode ORGANIZE_DIRECTIVES_ERROR = |
| 15750 const RequestErrorCode._("ORGANIZE_DIRECTIVES_ERROR"); |
| 15751 |
| 15752 /** |
| 15753 * Another refactoring request was received during processing of this one. |
| 15754 */ |
| 15755 static const RequestErrorCode REFACTORING_REQUEST_CANCELLED = |
| 15756 const RequestErrorCode._("REFACTORING_REQUEST_CANCELLED"); |
| 15757 |
| 15758 /** |
| 15759 * The analysis server has already been started (and hence won't accept new |
| 15760 * connections). |
| 15761 * |
| 15762 * This error is included for future expansion; at present the analysis |
| 15763 * server can only speak to one client at a time so this error will never |
| 15764 * occur. |
| 15765 */ |
| 15766 static const RequestErrorCode SERVER_ALREADY_STARTED = |
| 15767 const RequestErrorCode._("SERVER_ALREADY_STARTED"); |
| 15768 |
| 15769 /** |
| 15770 * An internal error occurred in the analysis server. Also see the |
| 15771 * server.error notification. |
| 15772 */ |
| 15773 static const RequestErrorCode SERVER_ERROR = |
| 15774 const RequestErrorCode._("SERVER_ERROR"); |
| 15775 |
| 15776 /** |
| 15777 * An "edit.sortMembers" request specified a FilePath which does not match a |
| 15778 * Dart file in an analysis root. |
| 15779 */ |
| 15780 static const RequestErrorCode SORT_MEMBERS_INVALID_FILE = |
| 15781 const RequestErrorCode._("SORT_MEMBERS_INVALID_FILE"); |
| 15782 |
| 15783 /** |
| 15784 * An "edit.sortMembers" request specified a Dart file that has scan or parse |
| 15785 * errors. |
| 15786 */ |
| 15787 static const RequestErrorCode SORT_MEMBERS_PARSE_ERRORS = |
| 15788 const RequestErrorCode._("SORT_MEMBERS_PARSE_ERRORS"); |
| 15789 |
| 15790 /** |
| 15791 * An "analysis.setPriorityFiles" request includes one or more files that are |
| 15792 * not being analyzed. |
| 15793 * |
| 15794 * This is a legacy error; it will be removed before the API reaches version |
| 15795 * 1.0. |
| 15796 */ |
| 15797 static const RequestErrorCode UNANALYZED_PRIORITY_FILES = |
| 15798 const RequestErrorCode._("UNANALYZED_PRIORITY_FILES"); |
| 15799 |
| 15800 /** |
| 15801 * A request was received which the analysis server does not recognize, or |
| 15802 * cannot handle in its current configuration. |
| 15803 */ |
| 15804 static const RequestErrorCode UNKNOWN_REQUEST = |
| 15805 const RequestErrorCode._("UNKNOWN_REQUEST"); |
| 15806 |
| 15807 /** |
| 15808 * The analysis server was requested to perform an action on a source that |
| 15809 * does not exist. |
| 15810 */ |
| 15811 static const RequestErrorCode UNKNOWN_SOURCE = |
| 15812 const RequestErrorCode._("UNKNOWN_SOURCE"); |
| 15813 |
| 15814 /** |
| 15815 * The analysis server was requested to perform an action which is not |
| 15816 * supported. |
| 15817 * |
| 15818 * This is a legacy error; it will be removed before the API reaches version |
| 15819 * 1.0. |
| 15820 */ |
| 15821 static const RequestErrorCode UNSUPPORTED_FEATURE = |
| 15822 const RequestErrorCode._("UNSUPPORTED_FEATURE"); |
| 15368 | 15823 |
| 15369 /** | 15824 /** |
| 15370 * A list containing all of the enum values that are defined. | 15825 * A list containing all of the enum values that are defined. |
| 15371 */ | 15826 */ |
| 15372 static const List<RefactoringProblemSeverity> VALUES = | 15827 static const List<RequestErrorCode> VALUES = const <RequestErrorCode>[ |
| 15373 const <RefactoringProblemSeverity>[INFO, WARNING, ERROR, FATAL]; | 15828 CONTENT_MODIFIED, |
| 15374 | 15829 DEBUG_PORT_COULD_NOT_BE_OPENED, |
| 15830 FILE_NOT_ANALYZED, |
| 15831 FORMAT_INVALID_FILE, |
| 15832 FORMAT_WITH_ERRORS, |
| 15833 GET_ERRORS_INVALID_FILE, |
| 15834 GET_NAVIGATION_INVALID_FILE, |
| 15835 GET_REACHABLE_SOURCES_INVALID_FILE, |
| 15836 INVALID_ANALYSIS_ROOT, |
| 15837 INVALID_EXECUTION_CONTEXT, |
| 15838 INVALID_FILE_PATH_FORMAT, |
| 15839 INVALID_OVERLAY_CHANGE, |
| 15840 INVALID_PARAMETER, |
| 15841 INVALID_REQUEST, |
| 15842 NO_INDEX_GENERATED, |
| 15843 ORGANIZE_DIRECTIVES_ERROR, |
| 15844 REFACTORING_REQUEST_CANCELLED, |
| 15845 SERVER_ALREADY_STARTED, |
| 15846 SERVER_ERROR, |
| 15847 SORT_MEMBERS_INVALID_FILE, |
| 15848 SORT_MEMBERS_PARSE_ERRORS, |
| 15849 UNANALYZED_PRIORITY_FILES, |
| 15850 UNKNOWN_REQUEST, |
| 15851 UNKNOWN_SOURCE, |
| 15852 UNSUPPORTED_FEATURE |
| 15853 ]; |
| 15854 |
| 15855 @override |
| 15375 final String name; | 15856 final String name; |
| 15376 | 15857 |
| 15377 const RefactoringProblemSeverity._(this.name); | 15858 const RequestErrorCode._(this.name); |
| 15378 | 15859 |
| 15379 factory RefactoringProblemSeverity(String name) { | 15860 factory RequestErrorCode(String name) { |
| 15380 switch (name) { | 15861 switch (name) { |
| 15381 case "INFO": | 15862 case "CONTENT_MODIFIED": |
| 15382 return INFO; | 15863 return CONTENT_MODIFIED; |
| 15383 case "WARNING": | 15864 case "DEBUG_PORT_COULD_NOT_BE_OPENED": |
| 15384 return WARNING; | 15865 return DEBUG_PORT_COULD_NOT_BE_OPENED; |
| 15385 case "ERROR": | 15866 case "FILE_NOT_ANALYZED": |
| 15386 return ERROR; | 15867 return FILE_NOT_ANALYZED; |
| 15387 case "FATAL": | 15868 case "FORMAT_INVALID_FILE": |
| 15388 return FATAL; | 15869 return FORMAT_INVALID_FILE; |
| 15870 case "FORMAT_WITH_ERRORS": |
| 15871 return FORMAT_WITH_ERRORS; |
| 15872 case "GET_ERRORS_INVALID_FILE": |
| 15873 return GET_ERRORS_INVALID_FILE; |
| 15874 case "GET_NAVIGATION_INVALID_FILE": |
| 15875 return GET_NAVIGATION_INVALID_FILE; |
| 15876 case "GET_REACHABLE_SOURCES_INVALID_FILE": |
| 15877 return GET_REACHABLE_SOURCES_INVALID_FILE; |
| 15878 case "INVALID_ANALYSIS_ROOT": |
| 15879 return INVALID_ANALYSIS_ROOT; |
| 15880 case "INVALID_EXECUTION_CONTEXT": |
| 15881 return INVALID_EXECUTION_CONTEXT; |
| 15882 case "INVALID_FILE_PATH_FORMAT": |
| 15883 return INVALID_FILE_PATH_FORMAT; |
| 15884 case "INVALID_OVERLAY_CHANGE": |
| 15885 return INVALID_OVERLAY_CHANGE; |
| 15886 case "INVALID_PARAMETER": |
| 15887 return INVALID_PARAMETER; |
| 15888 case "INVALID_REQUEST": |
| 15889 return INVALID_REQUEST; |
| 15890 case "NO_INDEX_GENERATED": |
| 15891 return NO_INDEX_GENERATED; |
| 15892 case "ORGANIZE_DIRECTIVES_ERROR": |
| 15893 return ORGANIZE_DIRECTIVES_ERROR; |
| 15894 case "REFACTORING_REQUEST_CANCELLED": |
| 15895 return REFACTORING_REQUEST_CANCELLED; |
| 15896 case "SERVER_ALREADY_STARTED": |
| 15897 return SERVER_ALREADY_STARTED; |
| 15898 case "SERVER_ERROR": |
| 15899 return SERVER_ERROR; |
| 15900 case "SORT_MEMBERS_INVALID_FILE": |
| 15901 return SORT_MEMBERS_INVALID_FILE; |
| 15902 case "SORT_MEMBERS_PARSE_ERRORS": |
| 15903 return SORT_MEMBERS_PARSE_ERRORS; |
| 15904 case "UNANALYZED_PRIORITY_FILES": |
| 15905 return UNANALYZED_PRIORITY_FILES; |
| 15906 case "UNKNOWN_REQUEST": |
| 15907 return UNKNOWN_REQUEST; |
| 15908 case "UNKNOWN_SOURCE": |
| 15909 return UNKNOWN_SOURCE; |
| 15910 case "UNSUPPORTED_FEATURE": |
| 15911 return UNSUPPORTED_FEATURE; |
| 15389 } | 15912 } |
| 15390 throw new Exception('Illegal enum value: $name'); | 15913 throw new Exception('Illegal enum value: $name'); |
| 15391 } | 15914 } |
| 15392 | 15915 |
| 15393 factory RefactoringProblemSeverity.fromJson( | 15916 factory RequestErrorCode.fromJson( |
| 15394 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 15917 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 15395 if (json is String) { | 15918 if (json is String) { |
| 15396 try { | 15919 try { |
| 15397 return new RefactoringProblemSeverity(json); | 15920 return new RequestErrorCode(json); |
| 15398 } catch (_) { | 15921 } catch (_) { |
| 15399 // Fall through | 15922 // Fall through |
| 15400 } | 15923 } |
| 15401 } | 15924 } |
| 15402 throw jsonDecoder.mismatch(jsonPath, "RefactoringProblemSeverity", json); | 15925 throw jsonDecoder.mismatch(jsonPath, "RequestErrorCode", json); |
| 15403 } | 15926 } |
| 15404 | 15927 |
| 15405 /** | 15928 @override |
| 15406 * Returns the [RefactoringProblemSeverity] with the maximal severity. | 15929 String toString() => "RequestErrorCode.$name"; |
| 15407 */ | |
| 15408 static RefactoringProblemSeverity max( | |
| 15409 RefactoringProblemSeverity a, RefactoringProblemSeverity b) => | |
| 15410 maxRefactoringProblemSeverity(a, b); | |
| 15411 | |
| 15412 @override | |
| 15413 String toString() => "RefactoringProblemSeverity.$name"; | |
| 15414 | 15930 |
| 15415 String toJson() => name; | 15931 String toJson() => name; |
| 15416 } | 15932 } |
| 15417 | 15933 |
| 15418 /** | 15934 /** |
| 15419 * RemoveContentOverlay | 15935 * search.findElementReferences params |
| 15420 * | 15936 * |
| 15421 * { | 15937 * { |
| 15422 * "type": "remove" | 15938 * "file": FilePath |
| 15939 * "offset": int |
| 15940 * "includePotential": bool |
| 15423 * } | 15941 * } |
| 15424 * | 15942 * |
| 15425 * Clients may not extend, implement or mix-in this class. | 15943 * Clients may not extend, implement or mix-in this class. |
| 15426 */ | 15944 */ |
| 15427 class RemoveContentOverlay implements HasToJson { | 15945 class SearchFindElementReferencesParams implements RequestParams { |
| 15428 RemoveContentOverlay(); | 15946 String _file; |
| 15429 | 15947 |
| 15430 factory RemoveContentOverlay.fromJson( | 15948 int _offset; |
| 15949 |
| 15950 bool _includePotential; |
| 15951 |
| 15952 /** |
| 15953 * The file containing the declaration of or reference to the element used to |
| 15954 * define the search. |
| 15955 */ |
| 15956 String get file => _file; |
| 15957 |
| 15958 /** |
| 15959 * The file containing the declaration of or reference to the element used to |
| 15960 * define the search. |
| 15961 */ |
| 15962 void set file(String value) { |
| 15963 assert(value != null); |
| 15964 this._file = value; |
| 15965 } |
| 15966 |
| 15967 /** |
| 15968 * The offset within the file of the declaration of or reference to the |
| 15969 * element. |
| 15970 */ |
| 15971 int get offset => _offset; |
| 15972 |
| 15973 /** |
| 15974 * The offset within the file of the declaration of or reference to the |
| 15975 * element. |
| 15976 */ |
| 15977 void set offset(int value) { |
| 15978 assert(value != null); |
| 15979 this._offset = value; |
| 15980 } |
| 15981 |
| 15982 /** |
| 15983 * True if potential matches are to be included in the results. |
| 15984 */ |
| 15985 bool get includePotential => _includePotential; |
| 15986 |
| 15987 /** |
| 15988 * True if potential matches are to be included in the results. |
| 15989 */ |
| 15990 void set includePotential(bool value) { |
| 15991 assert(value != null); |
| 15992 this._includePotential = value; |
| 15993 } |
| 15994 |
| 15995 SearchFindElementReferencesParams( |
| 15996 String file, int offset, bool includePotential) { |
| 15997 this.file = file; |
| 15998 this.offset = offset; |
| 15999 this.includePotential = includePotential; |
| 16000 } |
| 16001 |
| 16002 factory SearchFindElementReferencesParams.fromJson( |
| 15431 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 16003 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 15432 if (json == null) { | 16004 if (json == null) { |
| 15433 json = {}; | 16005 json = {}; |
| 15434 } | 16006 } |
| 15435 if (json is Map) { | 16007 if (json is Map) { |
| 15436 if (json["type"] != "remove") { | 16008 String file; |
| 15437 throw jsonDecoder.mismatch(jsonPath, "equal " + "remove", json); | 16009 if (json.containsKey("file")) { |
| 16010 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 16011 } else { |
| 16012 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 15438 } | 16013 } |
| 15439 return new RemoveContentOverlay(); | 16014 int offset; |
| 16015 if (json.containsKey("offset")) { |
| 16016 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 16017 } else { |
| 16018 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 16019 } |
| 16020 bool includePotential; |
| 16021 if (json.containsKey("includePotential")) { |
| 16022 includePotential = jsonDecoder.decodeBool( |
| 16023 jsonPath + ".includePotential", json["includePotential"]); |
| 16024 } else { |
| 16025 throw jsonDecoder.mismatch(jsonPath, "includePotential"); |
| 16026 } |
| 16027 return new SearchFindElementReferencesParams( |
| 16028 file, offset, includePotential); |
| 15440 } else { | 16029 } else { |
| 15441 throw jsonDecoder.mismatch(jsonPath, "RemoveContentOverlay", json); | 16030 throw jsonDecoder.mismatch( |
| 16031 jsonPath, "search.findElementReferences params", json); |
| 15442 } | 16032 } |
| 15443 } | 16033 } |
| 15444 | 16034 |
| 16035 factory SearchFindElementReferencesParams.fromRequest(Request request) { |
| 16036 return new SearchFindElementReferencesParams.fromJson( |
| 16037 new RequestDecoder(request), "params", request.params); |
| 16038 } |
| 16039 |
| 16040 @override |
| 15445 Map<String, dynamic> toJson() { | 16041 Map<String, dynamic> toJson() { |
| 15446 Map<String, dynamic> result = {}; | 16042 Map<String, dynamic> result = {}; |
| 15447 result["type"] = "remove"; | 16043 result["file"] = file; |
| 16044 result["offset"] = offset; |
| 16045 result["includePotential"] = includePotential; |
| 15448 return result; | 16046 return result; |
| 15449 } | 16047 } |
| 15450 | 16048 |
| 15451 @override | 16049 @override |
| 16050 Request toRequest(String id) { |
| 16051 return new Request(id, "search.findElementReferences", toJson()); |
| 16052 } |
| 16053 |
| 16054 @override |
| 15452 String toString() => JSON.encode(toJson()); | 16055 String toString() => JSON.encode(toJson()); |
| 15453 | 16056 |
| 15454 @override | 16057 @override |
| 15455 bool operator ==(other) { | 16058 bool operator ==(other) { |
| 15456 if (other is RemoveContentOverlay) { | 16059 if (other is SearchFindElementReferencesParams) { |
| 15457 return true; | 16060 return file == other.file && |
| 16061 offset == other.offset && |
| 16062 includePotential == other.includePotential; |
| 15458 } | 16063 } |
| 15459 return false; | 16064 return false; |
| 15460 } | 16065 } |
| 15461 | |
| 15462 @override | |
| 15463 int get hashCode { | |
| 15464 int hash = 0; | |
| 15465 hash = JenkinsSmiHash.combine(hash, 114870849); | |
| 15466 return JenkinsSmiHash.finish(hash); | |
| 15467 } | |
| 15468 } | |
| 15469 | |
| 15470 /** | |
| 15471 * RequestError | |
| 15472 * | |
| 15473 * { | |
| 15474 * "code": RequestErrorCode | |
| 15475 * "message": String | |
| 15476 * "stackTrace": optional String | |
| 15477 * } | |
| 15478 * | |
| 15479 * Clients may not extend, implement or mix-in this class. | |
| 15480 */ | |
| 15481 class RequestError implements HasToJson { | |
| 15482 RequestErrorCode _code; | |
| 15483 | |
| 15484 String _message; | |
| 15485 | |
| 15486 String _stackTrace; | |
| 15487 | |
| 15488 /** | |
| 15489 * A code that uniquely identifies the error that occurred. | |
| 15490 */ | |
| 15491 RequestErrorCode get code => _code; | |
| 15492 | |
| 15493 /** | |
| 15494 * A code that uniquely identifies the error that occurred. | |
| 15495 */ | |
| 15496 void set code(RequestErrorCode value) { | |
| 15497 assert(value != null); | |
| 15498 this._code = value; | |
| 15499 } | |
| 15500 | |
| 15501 /** | |
| 15502 * A short description of the error. | |
| 15503 */ | |
| 15504 String get message => _message; | |
| 15505 | |
| 15506 /** | |
| 15507 * A short description of the error. | |
| 15508 */ | |
| 15509 void set message(String value) { | |
| 15510 assert(value != null); | |
| 15511 this._message = value; | |
| 15512 } | |
| 15513 | |
| 15514 /** | |
| 15515 * The stack trace associated with processing the request, used for debugging | |
| 15516 * the server. | |
| 15517 */ | |
| 15518 String get stackTrace => _stackTrace; | |
| 15519 | |
| 15520 /** | |
| 15521 * The stack trace associated with processing the request, used for debugging | |
| 15522 * the server. | |
| 15523 */ | |
| 15524 void set stackTrace(String value) { | |
| 15525 this._stackTrace = value; | |
| 15526 } | |
| 15527 | |
| 15528 RequestError(RequestErrorCode code, String message, {String stackTrace}) { | |
| 15529 this.code = code; | |
| 15530 this.message = message; | |
| 15531 this.stackTrace = stackTrace; | |
| 15532 } | |
| 15533 | |
| 15534 factory RequestError.fromJson( | |
| 15535 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 15536 if (json == null) { | |
| 15537 json = {}; | |
| 15538 } | |
| 15539 if (json is Map) { | |
| 15540 RequestErrorCode code; | |
| 15541 if (json.containsKey("code")) { | |
| 15542 code = new RequestErrorCode.fromJson( | |
| 15543 jsonDecoder, jsonPath + ".code", json["code"]); | |
| 15544 } else { | |
| 15545 throw jsonDecoder.missingKey(jsonPath, "code"); | |
| 15546 } | |
| 15547 String message; | |
| 15548 if (json.containsKey("message")) { | |
| 15549 message = | |
| 15550 jsonDecoder.decodeString(jsonPath + ".message", json["message"]); | |
| 15551 } else { | |
| 15552 throw jsonDecoder.missingKey(jsonPath, "message"); | |
| 15553 } | |
| 15554 String stackTrace; | |
| 15555 if (json.containsKey("stackTrace")) { | |
| 15556 stackTrace = jsonDecoder.decodeString( | |
| 15557 jsonPath + ".stackTrace", json["stackTrace"]); | |
| 15558 } | |
| 15559 return new RequestError(code, message, stackTrace: stackTrace); | |
| 15560 } else { | |
| 15561 throw jsonDecoder.mismatch(jsonPath, "RequestError", json); | |
| 15562 } | |
| 15563 } | |
| 15564 | |
| 15565 Map<String, dynamic> toJson() { | |
| 15566 Map<String, dynamic> result = {}; | |
| 15567 result["code"] = code.toJson(); | |
| 15568 result["message"] = message; | |
| 15569 if (stackTrace != null) { | |
| 15570 result["stackTrace"] = stackTrace; | |
| 15571 } | |
| 15572 return result; | |
| 15573 } | |
| 15574 | |
| 15575 @override | |
| 15576 String toString() => JSON.encode(toJson()); | |
| 15577 | |
| 15578 @override | |
| 15579 bool operator ==(other) { | |
| 15580 if (other is RequestError) { | |
| 15581 return code == other.code && | |
| 15582 message == other.message && | |
| 15583 stackTrace == other.stackTrace; | |
| 15584 } | |
| 15585 return false; | |
| 15586 } | |
| 15587 | 16066 |
| 15588 @override | 16067 @override |
| 15589 int get hashCode { | 16068 int get hashCode { |
| 15590 int hash = 0; | 16069 int hash = 0; |
| 15591 hash = JenkinsSmiHash.combine(hash, code.hashCode); | 16070 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 15592 hash = JenkinsSmiHash.combine(hash, message.hashCode); | 16071 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 15593 hash = JenkinsSmiHash.combine(hash, stackTrace.hashCode); | 16072 hash = JenkinsSmiHash.combine(hash, includePotential.hashCode); |
| 15594 return JenkinsSmiHash.finish(hash); | 16073 return JenkinsSmiHash.finish(hash); |
| 15595 } | 16074 } |
| 15596 } | 16075 } |
| 15597 | 16076 |
| 15598 /** | 16077 /** |
| 15599 * RequestErrorCode | 16078 * search.findElementReferences result |
| 15600 * | 16079 * |
| 15601 * enum { | 16080 * { |
| 15602 * CONTENT_MODIFIED | 16081 * "id": optional SearchId |
| 15603 * DEBUG_PORT_COULD_NOT_BE_OPENED | 16082 * "element": optional Element |
| 15604 * FILE_NOT_ANALYZED | |
| 15605 * FORMAT_INVALID_FILE | |
| 15606 * FORMAT_WITH_ERRORS | |
| 15607 * GET_ERRORS_INVALID_FILE | |
| 15608 * GET_NAVIGATION_INVALID_FILE | |
| 15609 * GET_REACHABLE_SOURCES_INVALID_FILE | |
| 15610 * INVALID_ANALYSIS_ROOT | |
| 15611 * INVALID_EXECUTION_CONTEXT | |
| 15612 * INVALID_FILE_PATH_FORMAT | |
| 15613 * INVALID_OVERLAY_CHANGE | |
| 15614 * INVALID_PARAMETER | |
| 15615 * INVALID_REQUEST | |
| 15616 * NO_INDEX_GENERATED | |
| 15617 * ORGANIZE_DIRECTIVES_ERROR | |
| 15618 * REFACTORING_REQUEST_CANCELLED | |
| 15619 * SERVER_ALREADY_STARTED | |
| 15620 * SERVER_ERROR | |
| 15621 * SORT_MEMBERS_INVALID_FILE | |
| 15622 * SORT_MEMBERS_PARSE_ERRORS | |
| 15623 * UNANALYZED_PRIORITY_FILES | |
| 15624 * UNKNOWN_REQUEST | |
| 15625 * UNKNOWN_SOURCE | |
| 15626 * UNSUPPORTED_FEATURE | |
| 15627 * } | 16083 * } |
| 15628 * | 16084 * |
| 15629 * Clients may not extend, implement or mix-in this class. | 16085 * Clients may not extend, implement or mix-in this class. |
| 15630 */ | 16086 */ |
| 15631 class RequestErrorCode implements Enum { | 16087 class SearchFindElementReferencesResult implements ResponseResult { |
| 15632 /** | 16088 String _id; |
| 15633 * An "analysis.getErrors" or "analysis.getNavigation" request could not be | 16089 |
| 15634 * satisfied because the content of the file changed before the requested | 16090 Element _element; |
| 15635 * results could be computed. | 16091 |
| 15636 */ | 16092 /** |
| 15637 static const RequestErrorCode CONTENT_MODIFIED = | 16093 * The identifier used to associate results with this search request. |
| 15638 const RequestErrorCode._("CONTENT_MODIFIED"); | 16094 * |
| 15639 | 16095 * If no element was found at the given location, this field will be absent, |
| 15640 /** | 16096 * and no results will be reported via the search.results notification. |
| 15641 * The server was unable to open a port for the diagnostic server. | 16097 */ |
| 15642 */ | 16098 String get id => _id; |
| 15643 static const RequestErrorCode DEBUG_PORT_COULD_NOT_BE_OPENED = | 16099 |
| 15644 const RequestErrorCode._("DEBUG_PORT_COULD_NOT_BE_OPENED"); | 16100 /** |
| 15645 | 16101 * The identifier used to associate results with this search request. |
| 15646 /** | 16102 * |
| 15647 * A request specified a FilePath which does not match a file in an analysis | 16103 * If no element was found at the given location, this field will be absent, |
| 15648 * root, or the requested operation is not available for the file. | 16104 * and no results will be reported via the search.results notification. |
| 15649 */ | 16105 */ |
| 15650 static const RequestErrorCode FILE_NOT_ANALYZED = | 16106 void set id(String value) { |
| 15651 const RequestErrorCode._("FILE_NOT_ANALYZED"); | 16107 this._id = value; |
| 15652 | 16108 } |
| 15653 /** | 16109 |
| 15654 * An "edit.format" request specified a FilePath which does not match a Dart | 16110 /** |
| 15655 * file in an analysis root. | 16111 * The element referenced or defined at the given offset and whose references |
| 15656 */ | 16112 * will be returned in the search results. |
| 15657 static const RequestErrorCode FORMAT_INVALID_FILE = | 16113 * |
| 15658 const RequestErrorCode._("FORMAT_INVALID_FILE"); | 16114 * If no element was found at the given location, this field will be absent. |
| 15659 | 16115 */ |
| 15660 /** | 16116 Element get element => _element; |
| 15661 * An "edit.format" request specified a file that contains syntax errors. | 16117 |
| 15662 */ | 16118 /** |
| 15663 static const RequestErrorCode FORMAT_WITH_ERRORS = | 16119 * The element referenced or defined at the given offset and whose references |
| 15664 const RequestErrorCode._("FORMAT_WITH_ERRORS"); | 16120 * will be returned in the search results. |
| 15665 | 16121 * |
| 15666 /** | 16122 * If no element was found at the given location, this field will be absent. |
| 15667 * An "analysis.getErrors" request specified a FilePath which does not match | 16123 */ |
| 15668 * a file currently subject to analysis. | 16124 void set element(Element value) { |
| 15669 */ | 16125 this._element = value; |
| 15670 static const RequestErrorCode GET_ERRORS_INVALID_FILE = | 16126 } |
| 15671 const RequestErrorCode._("GET_ERRORS_INVALID_FILE"); | 16127 |
| 15672 | 16128 SearchFindElementReferencesResult({String id, Element element}) { |
| 15673 /** | 16129 this.id = id; |
| 15674 * An "analysis.getNavigation" request specified a FilePath which does not | 16130 this.element = element; |
| 15675 * match a file currently subject to analysis. | 16131 } |
| 15676 */ | 16132 |
| 15677 static const RequestErrorCode GET_NAVIGATION_INVALID_FILE = | 16133 factory SearchFindElementReferencesResult.fromJson( |
| 15678 const RequestErrorCode._("GET_NAVIGATION_INVALID_FILE"); | |
| 15679 | |
| 15680 /** | |
| 15681 * An "analysis.getReachableSources" request specified a FilePath which does | |
| 15682 * not match a file currently subject to analysis. | |
| 15683 */ | |
| 15684 static const RequestErrorCode GET_REACHABLE_SOURCES_INVALID_FILE = | |
| 15685 const RequestErrorCode._("GET_REACHABLE_SOURCES_INVALID_FILE"); | |
| 15686 | |
| 15687 /** | |
| 15688 * A path passed as an argument to a request (such as analysis.reanalyze) is | |
| 15689 * required to be an analysis root, but isn't. | |
| 15690 */ | |
| 15691 static const RequestErrorCode INVALID_ANALYSIS_ROOT = | |
| 15692 const RequestErrorCode._("INVALID_ANALYSIS_ROOT"); | |
| 15693 | |
| 15694 /** | |
| 15695 * The context root used to create an execution context does not exist. | |
| 15696 */ | |
| 15697 static const RequestErrorCode INVALID_EXECUTION_CONTEXT = | |
| 15698 const RequestErrorCode._("INVALID_EXECUTION_CONTEXT"); | |
| 15699 | |
| 15700 /** | |
| 15701 * The format of the given file path is invalid, e.g. is not absolute and | |
| 15702 * normalized. | |
| 15703 */ | |
| 15704 static const RequestErrorCode INVALID_FILE_PATH_FORMAT = | |
| 15705 const RequestErrorCode._("INVALID_FILE_PATH_FORMAT"); | |
| 15706 | |
| 15707 /** | |
| 15708 * An "analysis.updateContent" request contained a ChangeContentOverlay | |
| 15709 * object which can't be applied, due to an edit having an offset or length | |
| 15710 * that is out of range. | |
| 15711 */ | |
| 15712 static const RequestErrorCode INVALID_OVERLAY_CHANGE = | |
| 15713 const RequestErrorCode._("INVALID_OVERLAY_CHANGE"); | |
| 15714 | |
| 15715 /** | |
| 15716 * One of the method parameters was invalid. | |
| 15717 */ | |
| 15718 static const RequestErrorCode INVALID_PARAMETER = | |
| 15719 const RequestErrorCode._("INVALID_PARAMETER"); | |
| 15720 | |
| 15721 /** | |
| 15722 * A malformed request was received. | |
| 15723 */ | |
| 15724 static const RequestErrorCode INVALID_REQUEST = | |
| 15725 const RequestErrorCode._("INVALID_REQUEST"); | |
| 15726 | |
| 15727 /** | |
| 15728 * The "--no-index" flag was passed when the analysis server created, but | |
| 15729 * this API call requires an index to have been generated. | |
| 15730 */ | |
| 15731 static const RequestErrorCode NO_INDEX_GENERATED = | |
| 15732 const RequestErrorCode._("NO_INDEX_GENERATED"); | |
| 15733 | |
| 15734 /** | |
| 15735 * An "edit.organizeDirectives" request specified a Dart file that cannot be | |
| 15736 * analyzed. The reason is described in the message. | |
| 15737 */ | |
| 15738 static const RequestErrorCode ORGANIZE_DIRECTIVES_ERROR = | |
| 15739 const RequestErrorCode._("ORGANIZE_DIRECTIVES_ERROR"); | |
| 15740 | |
| 15741 /** | |
| 15742 * Another refactoring request was received during processing of this one. | |
| 15743 */ | |
| 15744 static const RequestErrorCode REFACTORING_REQUEST_CANCELLED = | |
| 15745 const RequestErrorCode._("REFACTORING_REQUEST_CANCELLED"); | |
| 15746 | |
| 15747 /** | |
| 15748 * The analysis server has already been started (and hence won't accept new | |
| 15749 * connections). | |
| 15750 * | |
| 15751 * This error is included for future expansion; at present the analysis | |
| 15752 * server can only speak to one client at a time so this error will never | |
| 15753 * occur. | |
| 15754 */ | |
| 15755 static const RequestErrorCode SERVER_ALREADY_STARTED = | |
| 15756 const RequestErrorCode._("SERVER_ALREADY_STARTED"); | |
| 15757 | |
| 15758 /** | |
| 15759 * An internal error occurred in the analysis server. Also see the | |
| 15760 * server.error notification. | |
| 15761 */ | |
| 15762 static const RequestErrorCode SERVER_ERROR = | |
| 15763 const RequestErrorCode._("SERVER_ERROR"); | |
| 15764 | |
| 15765 /** | |
| 15766 * An "edit.sortMembers" request specified a FilePath which does not match a | |
| 15767 * Dart file in an analysis root. | |
| 15768 */ | |
| 15769 static const RequestErrorCode SORT_MEMBERS_INVALID_FILE = | |
| 15770 const RequestErrorCode._("SORT_MEMBERS_INVALID_FILE"); | |
| 15771 | |
| 15772 /** | |
| 15773 * An "edit.sortMembers" request specified a Dart file that has scan or parse | |
| 15774 * errors. | |
| 15775 */ | |
| 15776 static const RequestErrorCode SORT_MEMBERS_PARSE_ERRORS = | |
| 15777 const RequestErrorCode._("SORT_MEMBERS_PARSE_ERRORS"); | |
| 15778 | |
| 15779 /** | |
| 15780 * An "analysis.setPriorityFiles" request includes one or more files that are | |
| 15781 * not being analyzed. | |
| 15782 * | |
| 15783 * This is a legacy error; it will be removed before the API reaches version | |
| 15784 * 1.0. | |
| 15785 */ | |
| 15786 static const RequestErrorCode UNANALYZED_PRIORITY_FILES = | |
| 15787 const RequestErrorCode._("UNANALYZED_PRIORITY_FILES"); | |
| 15788 | |
| 15789 /** | |
| 15790 * A request was received which the analysis server does not recognize, or | |
| 15791 * cannot handle in its current configuration. | |
| 15792 */ | |
| 15793 static const RequestErrorCode UNKNOWN_REQUEST = | |
| 15794 const RequestErrorCode._("UNKNOWN_REQUEST"); | |
| 15795 | |
| 15796 /** | |
| 15797 * The analysis server was requested to perform an action on a source that | |
| 15798 * does not exist. | |
| 15799 */ | |
| 15800 static const RequestErrorCode UNKNOWN_SOURCE = | |
| 15801 const RequestErrorCode._("UNKNOWN_SOURCE"); | |
| 15802 | |
| 15803 /** | |
| 15804 * The analysis server was requested to perform an action which is not | |
| 15805 * supported. | |
| 15806 * | |
| 15807 * This is a legacy error; it will be removed before the API reaches version | |
| 15808 * 1.0. | |
| 15809 */ | |
| 15810 static const RequestErrorCode UNSUPPORTED_FEATURE = | |
| 15811 const RequestErrorCode._("UNSUPPORTED_FEATURE"); | |
| 15812 | |
| 15813 /** | |
| 15814 * A list containing all of the enum values that are defined. | |
| 15815 */ | |
| 15816 static const List<RequestErrorCode> VALUES = const <RequestErrorCode>[ | |
| 15817 CONTENT_MODIFIED, | |
| 15818 DEBUG_PORT_COULD_NOT_BE_OPENED, | |
| 15819 FILE_NOT_ANALYZED, | |
| 15820 FORMAT_INVALID_FILE, | |
| 15821 FORMAT_WITH_ERRORS, | |
| 15822 GET_ERRORS_INVALID_FILE, | |
| 15823 GET_NAVIGATION_INVALID_FILE, | |
| 15824 GET_REACHABLE_SOURCES_INVALID_FILE, | |
| 15825 INVALID_ANALYSIS_ROOT, | |
| 15826 INVALID_EXECUTION_CONTEXT, | |
| 15827 INVALID_FILE_PATH_FORMAT, | |
| 15828 INVALID_OVERLAY_CHANGE, | |
| 15829 INVALID_PARAMETER, | |
| 15830 INVALID_REQUEST, | |
| 15831 NO_INDEX_GENERATED, | |
| 15832 ORGANIZE_DIRECTIVES_ERROR, | |
| 15833 REFACTORING_REQUEST_CANCELLED, | |
| 15834 SERVER_ALREADY_STARTED, | |
| 15835 SERVER_ERROR, | |
| 15836 SORT_MEMBERS_INVALID_FILE, | |
| 15837 SORT_MEMBERS_PARSE_ERRORS, | |
| 15838 UNANALYZED_PRIORITY_FILES, | |
| 15839 UNKNOWN_REQUEST, | |
| 15840 UNKNOWN_SOURCE, | |
| 15841 UNSUPPORTED_FEATURE | |
| 15842 ]; | |
| 15843 | |
| 15844 final String name; | |
| 15845 | |
| 15846 const RequestErrorCode._(this.name); | |
| 15847 | |
| 15848 factory RequestErrorCode(String name) { | |
| 15849 switch (name) { | |
| 15850 case "CONTENT_MODIFIED": | |
| 15851 return CONTENT_MODIFIED; | |
| 15852 case "DEBUG_PORT_COULD_NOT_BE_OPENED": | |
| 15853 return DEBUG_PORT_COULD_NOT_BE_OPENED; | |
| 15854 case "FILE_NOT_ANALYZED": | |
| 15855 return FILE_NOT_ANALYZED; | |
| 15856 case "FORMAT_INVALID_FILE": | |
| 15857 return FORMAT_INVALID_FILE; | |
| 15858 case "FORMAT_WITH_ERRORS": | |
| 15859 return FORMAT_WITH_ERRORS; | |
| 15860 case "GET_ERRORS_INVALID_FILE": | |
| 15861 return GET_ERRORS_INVALID_FILE; | |
| 15862 case "GET_NAVIGATION_INVALID_FILE": | |
| 15863 return GET_NAVIGATION_INVALID_FILE; | |
| 15864 case "GET_REACHABLE_SOURCES_INVALID_FILE": | |
| 15865 return GET_REACHABLE_SOURCES_INVALID_FILE; | |
| 15866 case "INVALID_ANALYSIS_ROOT": | |
| 15867 return INVALID_ANALYSIS_ROOT; | |
| 15868 case "INVALID_EXECUTION_CONTEXT": | |
| 15869 return INVALID_EXECUTION_CONTEXT; | |
| 15870 case "INVALID_FILE_PATH_FORMAT": | |
| 15871 return INVALID_FILE_PATH_FORMAT; | |
| 15872 case "INVALID_OVERLAY_CHANGE": | |
| 15873 return INVALID_OVERLAY_CHANGE; | |
| 15874 case "INVALID_PARAMETER": | |
| 15875 return INVALID_PARAMETER; | |
| 15876 case "INVALID_REQUEST": | |
| 15877 return INVALID_REQUEST; | |
| 15878 case "NO_INDEX_GENERATED": | |
| 15879 return NO_INDEX_GENERATED; | |
| 15880 case "ORGANIZE_DIRECTIVES_ERROR": | |
| 15881 return ORGANIZE_DIRECTIVES_ERROR; | |
| 15882 case "REFACTORING_REQUEST_CANCELLED": | |
| 15883 return REFACTORING_REQUEST_CANCELLED; | |
| 15884 case "SERVER_ALREADY_STARTED": | |
| 15885 return SERVER_ALREADY_STARTED; | |
| 15886 case "SERVER_ERROR": | |
| 15887 return SERVER_ERROR; | |
| 15888 case "SORT_MEMBERS_INVALID_FILE": | |
| 15889 return SORT_MEMBERS_INVALID_FILE; | |
| 15890 case "SORT_MEMBERS_PARSE_ERRORS": | |
| 15891 return SORT_MEMBERS_PARSE_ERRORS; | |
| 15892 case "UNANALYZED_PRIORITY_FILES": | |
| 15893 return UNANALYZED_PRIORITY_FILES; | |
| 15894 case "UNKNOWN_REQUEST": | |
| 15895 return UNKNOWN_REQUEST; | |
| 15896 case "UNKNOWN_SOURCE": | |
| 15897 return UNKNOWN_SOURCE; | |
| 15898 case "UNSUPPORTED_FEATURE": | |
| 15899 return UNSUPPORTED_FEATURE; | |
| 15900 } | |
| 15901 throw new Exception('Illegal enum value: $name'); | |
| 15902 } | |
| 15903 | |
| 15904 factory RequestErrorCode.fromJson( | |
| 15905 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 15906 if (json is String) { | |
| 15907 try { | |
| 15908 return new RequestErrorCode(json); | |
| 15909 } catch (_) { | |
| 15910 // Fall through | |
| 15911 } | |
| 15912 } | |
| 15913 throw jsonDecoder.mismatch(jsonPath, "RequestErrorCode", json); | |
| 15914 } | |
| 15915 | |
| 15916 @override | |
| 15917 String toString() => "RequestErrorCode.$name"; | |
| 15918 | |
| 15919 String toJson() => name; | |
| 15920 } | |
| 15921 | |
| 15922 /** | |
| 15923 * SearchResult | |
| 15924 * | |
| 15925 * { | |
| 15926 * "location": Location | |
| 15927 * "kind": SearchResultKind | |
| 15928 * "isPotential": bool | |
| 15929 * "path": List<Element> | |
| 15930 * } | |
| 15931 * | |
| 15932 * Clients may not extend, implement or mix-in this class. | |
| 15933 */ | |
| 15934 class SearchResult implements HasToJson { | |
| 15935 Location _location; | |
| 15936 | |
| 15937 SearchResultKind _kind; | |
| 15938 | |
| 15939 bool _isPotential; | |
| 15940 | |
| 15941 List<Element> _path; | |
| 15942 | |
| 15943 /** | |
| 15944 * The location of the code that matched the search criteria. | |
| 15945 */ | |
| 15946 Location get location => _location; | |
| 15947 | |
| 15948 /** | |
| 15949 * The location of the code that matched the search criteria. | |
| 15950 */ | |
| 15951 void set location(Location value) { | |
| 15952 assert(value != null); | |
| 15953 this._location = value; | |
| 15954 } | |
| 15955 | |
| 15956 /** | |
| 15957 * The kind of element that was found or the kind of reference that was | |
| 15958 * found. | |
| 15959 */ | |
| 15960 SearchResultKind get kind => _kind; | |
| 15961 | |
| 15962 /** | |
| 15963 * The kind of element that was found or the kind of reference that was | |
| 15964 * found. | |
| 15965 */ | |
| 15966 void set kind(SearchResultKind value) { | |
| 15967 assert(value != null); | |
| 15968 this._kind = value; | |
| 15969 } | |
| 15970 | |
| 15971 /** | |
| 15972 * True if the result is a potential match but cannot be confirmed to be a | |
| 15973 * match. For example, if all references to a method m defined in some class | |
| 15974 * were requested, and a reference to a method m from an unknown class were | |
| 15975 * found, it would be marked as being a potential match. | |
| 15976 */ | |
| 15977 bool get isPotential => _isPotential; | |
| 15978 | |
| 15979 /** | |
| 15980 * True if the result is a potential match but cannot be confirmed to be a | |
| 15981 * match. For example, if all references to a method m defined in some class | |
| 15982 * were requested, and a reference to a method m from an unknown class were | |
| 15983 * found, it would be marked as being a potential match. | |
| 15984 */ | |
| 15985 void set isPotential(bool value) { | |
| 15986 assert(value != null); | |
| 15987 this._isPotential = value; | |
| 15988 } | |
| 15989 | |
| 15990 /** | |
| 15991 * The elements that contain the result, starting with the most immediately | |
| 15992 * enclosing ancestor and ending with the library. | |
| 15993 */ | |
| 15994 List<Element> get path => _path; | |
| 15995 | |
| 15996 /** | |
| 15997 * The elements that contain the result, starting with the most immediately | |
| 15998 * enclosing ancestor and ending with the library. | |
| 15999 */ | |
| 16000 void set path(List<Element> value) { | |
| 16001 assert(value != null); | |
| 16002 this._path = value; | |
| 16003 } | |
| 16004 | |
| 16005 SearchResult(Location location, SearchResultKind kind, bool isPotential, | |
| 16006 List<Element> path) { | |
| 16007 this.location = location; | |
| 16008 this.kind = kind; | |
| 16009 this.isPotential = isPotential; | |
| 16010 this.path = path; | |
| 16011 } | |
| 16012 | |
| 16013 factory SearchResult.fromJson( | |
| 16014 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 16134 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 16015 if (json == null) { | 16135 if (json == null) { |
| 16016 json = {}; | 16136 json = {}; |
| 16017 } | 16137 } |
| 16018 if (json is Map) { | 16138 if (json is Map) { |
| 16019 Location location; | 16139 String id; |
| 16020 if (json.containsKey("location")) { | 16140 if (json.containsKey("id")) { |
| 16021 location = new Location.fromJson( | 16141 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); |
| 16022 jsonDecoder, jsonPath + ".location", json["location"]); | 16142 } |
| 16023 } else { | 16143 Element element; |
| 16024 throw jsonDecoder.missingKey(jsonPath, "location"); | 16144 if (json.containsKey("element")) { |
| 16025 } | 16145 element = new Element.fromJson( |
| 16026 SearchResultKind kind; | 16146 jsonDecoder, jsonPath + ".element", json["element"]); |
| 16027 if (json.containsKey("kind")) { | 16147 } |
| 16028 kind = new SearchResultKind.fromJson( | 16148 return new SearchFindElementReferencesResult(id: id, element: element); |
| 16029 jsonDecoder, jsonPath + ".kind", json["kind"]); | |
| 16030 } else { | |
| 16031 throw jsonDecoder.missingKey(jsonPath, "kind"); | |
| 16032 } | |
| 16033 bool isPotential; | |
| 16034 if (json.containsKey("isPotential")) { | |
| 16035 isPotential = jsonDecoder.decodeBool( | |
| 16036 jsonPath + ".isPotential", json["isPotential"]); | |
| 16037 } else { | |
| 16038 throw jsonDecoder.missingKey(jsonPath, "isPotential"); | |
| 16039 } | |
| 16040 List<Element> path; | |
| 16041 if (json.containsKey("path")) { | |
| 16042 path = jsonDecoder.decodeList( | |
| 16043 jsonPath + ".path", | |
| 16044 json["path"], | |
| 16045 (String jsonPath, Object json) => | |
| 16046 new Element.fromJson(jsonDecoder, jsonPath, json)); | |
| 16047 } else { | |
| 16048 throw jsonDecoder.missingKey(jsonPath, "path"); | |
| 16049 } | |
| 16050 return new SearchResult(location, kind, isPotential, path); | |
| 16051 } else { | 16149 } else { |
| 16052 throw jsonDecoder.mismatch(jsonPath, "SearchResult", json); | 16150 throw jsonDecoder.mismatch( |
| 16053 } | 16151 jsonPath, "search.findElementReferences result", json); |
| 16054 } | 16152 } |
| 16055 | 16153 } |
| 16154 |
| 16155 factory SearchFindElementReferencesResult.fromResponse(Response response) { |
| 16156 return new SearchFindElementReferencesResult.fromJson( |
| 16157 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 16158 "result", |
| 16159 response.result); |
| 16160 } |
| 16161 |
| 16162 @override |
| 16056 Map<String, dynamic> toJson() { | 16163 Map<String, dynamic> toJson() { |
| 16057 Map<String, dynamic> result = {}; | 16164 Map<String, dynamic> result = {}; |
| 16058 result["location"] = location.toJson(); | 16165 if (id != null) { |
| 16059 result["kind"] = kind.toJson(); | 16166 result["id"] = id; |
| 16060 result["isPotential"] = isPotential; | 16167 } |
| 16061 result["path"] = path.map((Element value) => value.toJson()).toList(); | 16168 if (element != null) { |
| 16169 result["element"] = element.toJson(); |
| 16170 } |
| 16062 return result; | 16171 return result; |
| 16063 } | 16172 } |
| 16064 | 16173 |
| 16065 @override | 16174 @override |
| 16175 Response toResponse(String id) { |
| 16176 return new Response(id, result: toJson()); |
| 16177 } |
| 16178 |
| 16179 @override |
| 16066 String toString() => JSON.encode(toJson()); | 16180 String toString() => JSON.encode(toJson()); |
| 16067 | 16181 |
| 16068 @override | 16182 @override |
| 16069 bool operator ==(other) { | 16183 bool operator ==(other) { |
| 16070 if (other is SearchResult) { | 16184 if (other is SearchFindElementReferencesResult) { |
| 16071 return location == other.location && | 16185 return id == other.id && element == other.element; |
| 16072 kind == other.kind && | |
| 16073 isPotential == other.isPotential && | |
| 16074 listEqual(path, other.path, (Element a, Element b) => a == b); | |
| 16075 } | 16186 } |
| 16076 return false; | 16187 return false; |
| 16077 } | 16188 } |
| 16189 |
| 16190 @override |
| 16191 int get hashCode { |
| 16192 int hash = 0; |
| 16193 hash = JenkinsSmiHash.combine(hash, id.hashCode); |
| 16194 hash = JenkinsSmiHash.combine(hash, element.hashCode); |
| 16195 return JenkinsSmiHash.finish(hash); |
| 16196 } |
| 16197 } |
| 16198 |
| 16199 /** |
| 16200 * search.findMemberDeclarations params |
| 16201 * |
| 16202 * { |
| 16203 * "name": String |
| 16204 * } |
| 16205 * |
| 16206 * Clients may not extend, implement or mix-in this class. |
| 16207 */ |
| 16208 class SearchFindMemberDeclarationsParams implements RequestParams { |
| 16209 String _name; |
| 16210 |
| 16211 /** |
| 16212 * The name of the declarations to be found. |
| 16213 */ |
| 16214 String get name => _name; |
| 16215 |
| 16216 /** |
| 16217 * The name of the declarations to be found. |
| 16218 */ |
| 16219 void set name(String value) { |
| 16220 assert(value != null); |
| 16221 this._name = value; |
| 16222 } |
| 16223 |
| 16224 SearchFindMemberDeclarationsParams(String name) { |
| 16225 this.name = name; |
| 16226 } |
| 16227 |
| 16228 factory SearchFindMemberDeclarationsParams.fromJson( |
| 16229 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 16230 if (json == null) { |
| 16231 json = {}; |
| 16232 } |
| 16233 if (json is Map) { |
| 16234 String name; |
| 16235 if (json.containsKey("name")) { |
| 16236 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); |
| 16237 } else { |
| 16238 throw jsonDecoder.mismatch(jsonPath, "name"); |
| 16239 } |
| 16240 return new SearchFindMemberDeclarationsParams(name); |
| 16241 } else { |
| 16242 throw jsonDecoder.mismatch( |
| 16243 jsonPath, "search.findMemberDeclarations params", json); |
| 16244 } |
| 16245 } |
| 16246 |
| 16247 factory SearchFindMemberDeclarationsParams.fromRequest(Request request) { |
| 16248 return new SearchFindMemberDeclarationsParams.fromJson( |
| 16249 new RequestDecoder(request), "params", request.params); |
| 16250 } |
| 16251 |
| 16252 @override |
| 16253 Map<String, dynamic> toJson() { |
| 16254 Map<String, dynamic> result = {}; |
| 16255 result["name"] = name; |
| 16256 return result; |
| 16257 } |
| 16258 |
| 16259 @override |
| 16260 Request toRequest(String id) { |
| 16261 return new Request(id, "search.findMemberDeclarations", toJson()); |
| 16262 } |
| 16263 |
| 16264 @override |
| 16265 String toString() => JSON.encode(toJson()); |
| 16266 |
| 16267 @override |
| 16268 bool operator ==(other) { |
| 16269 if (other is SearchFindMemberDeclarationsParams) { |
| 16270 return name == other.name; |
| 16271 } |
| 16272 return false; |
| 16273 } |
| 16274 |
| 16275 @override |
| 16276 int get hashCode { |
| 16277 int hash = 0; |
| 16278 hash = JenkinsSmiHash.combine(hash, name.hashCode); |
| 16279 return JenkinsSmiHash.finish(hash); |
| 16280 } |
| 16281 } |
| 16282 |
| 16283 /** |
| 16284 * search.findMemberDeclarations result |
| 16285 * |
| 16286 * { |
| 16287 * "id": SearchId |
| 16288 * } |
| 16289 * |
| 16290 * Clients may not extend, implement or mix-in this class. |
| 16291 */ |
| 16292 class SearchFindMemberDeclarationsResult implements ResponseResult { |
| 16293 String _id; |
| 16294 |
| 16295 /** |
| 16296 * The identifier used to associate results with this search request. |
| 16297 */ |
| 16298 String get id => _id; |
| 16299 |
| 16300 /** |
| 16301 * The identifier used to associate results with this search request. |
| 16302 */ |
| 16303 void set id(String value) { |
| 16304 assert(value != null); |
| 16305 this._id = value; |
| 16306 } |
| 16307 |
| 16308 SearchFindMemberDeclarationsResult(String id) { |
| 16309 this.id = id; |
| 16310 } |
| 16311 |
| 16312 factory SearchFindMemberDeclarationsResult.fromJson( |
| 16313 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 16314 if (json == null) { |
| 16315 json = {}; |
| 16316 } |
| 16317 if (json is Map) { |
| 16318 String id; |
| 16319 if (json.containsKey("id")) { |
| 16320 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); |
| 16321 } else { |
| 16322 throw jsonDecoder.mismatch(jsonPath, "id"); |
| 16323 } |
| 16324 return new SearchFindMemberDeclarationsResult(id); |
| 16325 } else { |
| 16326 throw jsonDecoder.mismatch( |
| 16327 jsonPath, "search.findMemberDeclarations result", json); |
| 16328 } |
| 16329 } |
| 16330 |
| 16331 factory SearchFindMemberDeclarationsResult.fromResponse(Response response) { |
| 16332 return new SearchFindMemberDeclarationsResult.fromJson( |
| 16333 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 16334 "result", |
| 16335 response.result); |
| 16336 } |
| 16337 |
| 16338 @override |
| 16339 Map<String, dynamic> toJson() { |
| 16340 Map<String, dynamic> result = {}; |
| 16341 result["id"] = id; |
| 16342 return result; |
| 16343 } |
| 16344 |
| 16345 @override |
| 16346 Response toResponse(String id) { |
| 16347 return new Response(id, result: toJson()); |
| 16348 } |
| 16349 |
| 16350 @override |
| 16351 String toString() => JSON.encode(toJson()); |
| 16352 |
| 16353 @override |
| 16354 bool operator ==(other) { |
| 16355 if (other is SearchFindMemberDeclarationsResult) { |
| 16356 return id == other.id; |
| 16357 } |
| 16358 return false; |
| 16359 } |
| 16078 | 16360 |
| 16079 @override | 16361 @override |
| 16080 int get hashCode { | 16362 int get hashCode { |
| 16081 int hash = 0; | 16363 int hash = 0; |
| 16082 hash = JenkinsSmiHash.combine(hash, location.hashCode); | 16364 hash = JenkinsSmiHash.combine(hash, id.hashCode); |
| 16083 hash = JenkinsSmiHash.combine(hash, kind.hashCode); | |
| 16084 hash = JenkinsSmiHash.combine(hash, isPotential.hashCode); | |
| 16085 hash = JenkinsSmiHash.combine(hash, path.hashCode); | |
| 16086 return JenkinsSmiHash.finish(hash); | 16365 return JenkinsSmiHash.finish(hash); |
| 16087 } | 16366 } |
| 16088 } | 16367 } |
| 16089 | 16368 |
| 16090 /** | 16369 /** |
| 16091 * SearchResultKind | 16370 * search.findMemberReferences params |
| 16092 * | 16371 * |
| 16093 * enum { | 16372 * { |
| 16094 * DECLARATION | 16373 * "name": String |
| 16095 * INVOCATION | |
| 16096 * READ | |
| 16097 * READ_WRITE | |
| 16098 * REFERENCE | |
| 16099 * UNKNOWN | |
| 16100 * WRITE | |
| 16101 * } | 16374 * } |
| 16102 * | 16375 * |
| 16103 * Clients may not extend, implement or mix-in this class. | 16376 * Clients may not extend, implement or mix-in this class. |
| 16104 */ | 16377 */ |
| 16105 class SearchResultKind implements Enum { | 16378 class SearchFindMemberReferencesParams implements RequestParams { |
| 16106 /** | 16379 String _name; |
| 16107 * The declaration of an element. | 16380 |
| 16108 */ | 16381 /** |
| 16109 static const SearchResultKind DECLARATION = | 16382 * The name of the references to be found. |
| 16110 const SearchResultKind._("DECLARATION"); | 16383 */ |
| 16111 | 16384 String get name => _name; |
| 16112 /** | 16385 |
| 16113 * The invocation of a function or method. | 16386 /** |
| 16114 */ | 16387 * The name of the references to be found. |
| 16115 static const SearchResultKind INVOCATION = | 16388 */ |
| 16116 const SearchResultKind._("INVOCATION"); | 16389 void set name(String value) { |
| 16117 | |
| 16118 /** | |
| 16119 * A reference to a field, parameter or variable where it is being read. | |
| 16120 */ | |
| 16121 static const SearchResultKind READ = const SearchResultKind._("READ"); | |
| 16122 | |
| 16123 /** | |
| 16124 * A reference to a field, parameter or variable where it is being read and | |
| 16125 * written. | |
| 16126 */ | |
| 16127 static const SearchResultKind READ_WRITE = | |
| 16128 const SearchResultKind._("READ_WRITE"); | |
| 16129 | |
| 16130 /** | |
| 16131 * A reference to an element. | |
| 16132 */ | |
| 16133 static const SearchResultKind REFERENCE = | |
| 16134 const SearchResultKind._("REFERENCE"); | |
| 16135 | |
| 16136 /** | |
| 16137 * Some other kind of search result. | |
| 16138 */ | |
| 16139 static const SearchResultKind UNKNOWN = const SearchResultKind._("UNKNOWN"); | |
| 16140 | |
| 16141 /** | |
| 16142 * A reference to a field, parameter or variable where it is being written. | |
| 16143 */ | |
| 16144 static const SearchResultKind WRITE = const SearchResultKind._("WRITE"); | |
| 16145 | |
| 16146 /** | |
| 16147 * A list containing all of the enum values that are defined. | |
| 16148 */ | |
| 16149 static const List<SearchResultKind> VALUES = const <SearchResultKind>[ | |
| 16150 DECLARATION, | |
| 16151 INVOCATION, | |
| 16152 READ, | |
| 16153 READ_WRITE, | |
| 16154 REFERENCE, | |
| 16155 UNKNOWN, | |
| 16156 WRITE | |
| 16157 ]; | |
| 16158 | |
| 16159 final String name; | |
| 16160 | |
| 16161 const SearchResultKind._(this.name); | |
| 16162 | |
| 16163 factory SearchResultKind(String name) { | |
| 16164 switch (name) { | |
| 16165 case "DECLARATION": | |
| 16166 return DECLARATION; | |
| 16167 case "INVOCATION": | |
| 16168 return INVOCATION; | |
| 16169 case "READ": | |
| 16170 return READ; | |
| 16171 case "READ_WRITE": | |
| 16172 return READ_WRITE; | |
| 16173 case "REFERENCE": | |
| 16174 return REFERENCE; | |
| 16175 case "UNKNOWN": | |
| 16176 return UNKNOWN; | |
| 16177 case "WRITE": | |
| 16178 return WRITE; | |
| 16179 } | |
| 16180 throw new Exception('Illegal enum value: $name'); | |
| 16181 } | |
| 16182 | |
| 16183 factory SearchResultKind.fromJson( | |
| 16184 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 16185 if (json is String) { | |
| 16186 try { | |
| 16187 return new SearchResultKind(json); | |
| 16188 } catch (_) { | |
| 16189 // Fall through | |
| 16190 } | |
| 16191 } | |
| 16192 throw jsonDecoder.mismatch(jsonPath, "SearchResultKind", json); | |
| 16193 } | |
| 16194 | |
| 16195 @override | |
| 16196 String toString() => "SearchResultKind.$name"; | |
| 16197 | |
| 16198 String toJson() => name; | |
| 16199 } | |
| 16200 | |
| 16201 /** | |
| 16202 * ServerService | |
| 16203 * | |
| 16204 * enum { | |
| 16205 * STATUS | |
| 16206 * } | |
| 16207 * | |
| 16208 * Clients may not extend, implement or mix-in this class. | |
| 16209 */ | |
| 16210 class ServerService implements Enum { | |
| 16211 static const ServerService STATUS = const ServerService._("STATUS"); | |
| 16212 | |
| 16213 /** | |
| 16214 * A list containing all of the enum values that are defined. | |
| 16215 */ | |
| 16216 static const List<ServerService> VALUES = const <ServerService>[STATUS]; | |
| 16217 | |
| 16218 final String name; | |
| 16219 | |
| 16220 const ServerService._(this.name); | |
| 16221 | |
| 16222 factory ServerService(String name) { | |
| 16223 switch (name) { | |
| 16224 case "STATUS": | |
| 16225 return STATUS; | |
| 16226 } | |
| 16227 throw new Exception('Illegal enum value: $name'); | |
| 16228 } | |
| 16229 | |
| 16230 factory ServerService.fromJson( | |
| 16231 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 16232 if (json is String) { | |
| 16233 try { | |
| 16234 return new ServerService(json); | |
| 16235 } catch (_) { | |
| 16236 // Fall through | |
| 16237 } | |
| 16238 } | |
| 16239 throw jsonDecoder.mismatch(jsonPath, "ServerService", json); | |
| 16240 } | |
| 16241 | |
| 16242 @override | |
| 16243 String toString() => "ServerService.$name"; | |
| 16244 | |
| 16245 String toJson() => name; | |
| 16246 } | |
| 16247 | |
| 16248 /** | |
| 16249 * SourceChange | |
| 16250 * | |
| 16251 * { | |
| 16252 * "message": String | |
| 16253 * "edits": List<SourceFileEdit> | |
| 16254 * "linkedEditGroups": List<LinkedEditGroup> | |
| 16255 * "selection": optional Position | |
| 16256 * } | |
| 16257 * | |
| 16258 * Clients may not extend, implement or mix-in this class. | |
| 16259 */ | |
| 16260 class SourceChange implements HasToJson { | |
| 16261 String _message; | |
| 16262 | |
| 16263 List<SourceFileEdit> _edits; | |
| 16264 | |
| 16265 List<LinkedEditGroup> _linkedEditGroups; | |
| 16266 | |
| 16267 Position _selection; | |
| 16268 | |
| 16269 /** | |
| 16270 * A human-readable description of the change to be applied. | |
| 16271 */ | |
| 16272 String get message => _message; | |
| 16273 | |
| 16274 /** | |
| 16275 * A human-readable description of the change to be applied. | |
| 16276 */ | |
| 16277 void set message(String value) { | |
| 16278 assert(value != null); | 16390 assert(value != null); |
| 16279 this._message = value; | 16391 this._name = value; |
| 16280 } | 16392 } |
| 16281 | 16393 |
| 16282 /** | 16394 SearchFindMemberReferencesParams(String name) { |
| 16283 * A list of the edits used to effect the change, grouped by file. | 16395 this.name = name; |
| 16284 */ | 16396 } |
| 16285 List<SourceFileEdit> get edits => _edits; | 16397 |
| 16286 | 16398 factory SearchFindMemberReferencesParams.fromJson( |
| 16287 /** | |
| 16288 * A list of the edits used to effect the change, grouped by file. | |
| 16289 */ | |
| 16290 void set edits(List<SourceFileEdit> value) { | |
| 16291 assert(value != null); | |
| 16292 this._edits = value; | |
| 16293 } | |
| 16294 | |
| 16295 /** | |
| 16296 * A list of the linked editing groups used to customize the changes that | |
| 16297 * were made. | |
| 16298 */ | |
| 16299 List<LinkedEditGroup> get linkedEditGroups => _linkedEditGroups; | |
| 16300 | |
| 16301 /** | |
| 16302 * A list of the linked editing groups used to customize the changes that | |
| 16303 * were made. | |
| 16304 */ | |
| 16305 void set linkedEditGroups(List<LinkedEditGroup> value) { | |
| 16306 assert(value != null); | |
| 16307 this._linkedEditGroups = value; | |
| 16308 } | |
| 16309 | |
| 16310 /** | |
| 16311 * The position that should be selected after the edits have been applied. | |
| 16312 */ | |
| 16313 Position get selection => _selection; | |
| 16314 | |
| 16315 /** | |
| 16316 * The position that should be selected after the edits have been applied. | |
| 16317 */ | |
| 16318 void set selection(Position value) { | |
| 16319 this._selection = value; | |
| 16320 } | |
| 16321 | |
| 16322 SourceChange(String message, | |
| 16323 {List<SourceFileEdit> edits, | |
| 16324 List<LinkedEditGroup> linkedEditGroups, | |
| 16325 Position selection}) { | |
| 16326 this.message = message; | |
| 16327 if (edits == null) { | |
| 16328 this.edits = <SourceFileEdit>[]; | |
| 16329 } else { | |
| 16330 this.edits = edits; | |
| 16331 } | |
| 16332 if (linkedEditGroups == null) { | |
| 16333 this.linkedEditGroups = <LinkedEditGroup>[]; | |
| 16334 } else { | |
| 16335 this.linkedEditGroups = linkedEditGroups; | |
| 16336 } | |
| 16337 this.selection = selection; | |
| 16338 } | |
| 16339 | |
| 16340 factory SourceChange.fromJson( | |
| 16341 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 16399 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 16342 if (json == null) { | 16400 if (json == null) { |
| 16343 json = {}; | 16401 json = {}; |
| 16344 } | 16402 } |
| 16345 if (json is Map) { | 16403 if (json is Map) { |
| 16346 String message; | 16404 String name; |
| 16347 if (json.containsKey("message")) { | 16405 if (json.containsKey("name")) { |
| 16348 message = | 16406 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); |
| 16349 jsonDecoder.decodeString(jsonPath + ".message", json["message"]); | |
| 16350 } else { | 16407 } else { |
| 16351 throw jsonDecoder.missingKey(jsonPath, "message"); | 16408 throw jsonDecoder.mismatch(jsonPath, "name"); |
| 16352 } | 16409 } |
| 16353 List<SourceFileEdit> edits; | 16410 return new SearchFindMemberReferencesParams(name); |
| 16354 if (json.containsKey("edits")) { | |
| 16355 edits = jsonDecoder.decodeList( | |
| 16356 jsonPath + ".edits", | |
| 16357 json["edits"], | |
| 16358 (String jsonPath, Object json) => | |
| 16359 new SourceFileEdit.fromJson(jsonDecoder, jsonPath, json)); | |
| 16360 } else { | |
| 16361 throw jsonDecoder.missingKey(jsonPath, "edits"); | |
| 16362 } | |
| 16363 List<LinkedEditGroup> linkedEditGroups; | |
| 16364 if (json.containsKey("linkedEditGroups")) { | |
| 16365 linkedEditGroups = jsonDecoder.decodeList( | |
| 16366 jsonPath + ".linkedEditGroups", | |
| 16367 json["linkedEditGroups"], | |
| 16368 (String jsonPath, Object json) => | |
| 16369 new LinkedEditGroup.fromJson(jsonDecoder, jsonPath, json)); | |
| 16370 } else { | |
| 16371 throw jsonDecoder.missingKey(jsonPath, "linkedEditGroups"); | |
| 16372 } | |
| 16373 Position selection; | |
| 16374 if (json.containsKey("selection")) { | |
| 16375 selection = new Position.fromJson( | |
| 16376 jsonDecoder, jsonPath + ".selection", json["selection"]); | |
| 16377 } | |
| 16378 return new SourceChange(message, | |
| 16379 edits: edits, | |
| 16380 linkedEditGroups: linkedEditGroups, | |
| 16381 selection: selection); | |
| 16382 } else { | 16411 } else { |
| 16383 throw jsonDecoder.mismatch(jsonPath, "SourceChange", json); | 16412 throw jsonDecoder.mismatch( |
| 16384 } | 16413 jsonPath, "search.findMemberReferences params", json); |
| 16385 } | 16414 } |
| 16386 | 16415 } |
| 16416 |
| 16417 factory SearchFindMemberReferencesParams.fromRequest(Request request) { |
| 16418 return new SearchFindMemberReferencesParams.fromJson( |
| 16419 new RequestDecoder(request), "params", request.params); |
| 16420 } |
| 16421 |
| 16422 @override |
| 16387 Map<String, dynamic> toJson() { | 16423 Map<String, dynamic> toJson() { |
| 16388 Map<String, dynamic> result = {}; | 16424 Map<String, dynamic> result = {}; |
| 16389 result["message"] = message; | 16425 result["name"] = name; |
| 16390 result["edits"] = | |
| 16391 edits.map((SourceFileEdit value) => value.toJson()).toList(); | |
| 16392 result["linkedEditGroups"] = linkedEditGroups | |
| 16393 .map((LinkedEditGroup value) => value.toJson()) | |
| 16394 .toList(); | |
| 16395 if (selection != null) { | |
| 16396 result["selection"] = selection.toJson(); | |
| 16397 } | |
| 16398 return result; | 16426 return result; |
| 16399 } | 16427 } |
| 16400 | 16428 |
| 16401 /** | 16429 @override |
| 16402 * Adds [edit] to the [FileEdit] for the given [file]. | 16430 Request toRequest(String id) { |
| 16403 */ | 16431 return new Request(id, "search.findMemberReferences", toJson()); |
| 16404 void addEdit(String file, int fileStamp, SourceEdit edit) => | 16432 } |
| 16405 addEditToSourceChange(this, file, fileStamp, edit); | |
| 16406 | |
| 16407 /** | |
| 16408 * Adds the given [FileEdit]. | |
| 16409 */ | |
| 16410 void addFileEdit(SourceFileEdit edit) { | |
| 16411 edits.add(edit); | |
| 16412 } | |
| 16413 | |
| 16414 /** | |
| 16415 * Adds the given [LinkedEditGroup]. | |
| 16416 */ | |
| 16417 void addLinkedEditGroup(LinkedEditGroup linkedEditGroup) { | |
| 16418 linkedEditGroups.add(linkedEditGroup); | |
| 16419 } | |
| 16420 | |
| 16421 /** | |
| 16422 * Returns the [FileEdit] for the given [file], maybe `null`. | |
| 16423 */ | |
| 16424 SourceFileEdit getFileEdit(String file) => getChangeFileEdit(this, file); | |
| 16425 | 16433 |
| 16426 @override | 16434 @override |
| 16427 String toString() => JSON.encode(toJson()); | 16435 String toString() => JSON.encode(toJson()); |
| 16428 | 16436 |
| 16429 @override | 16437 @override |
| 16430 bool operator ==(other) { | 16438 bool operator ==(other) { |
| 16431 if (other is SourceChange) { | 16439 if (other is SearchFindMemberReferencesParams) { |
| 16432 return message == other.message && | 16440 return name == other.name; |
| 16433 listEqual(edits, other.edits, | |
| 16434 (SourceFileEdit a, SourceFileEdit b) => a == b) && | |
| 16435 listEqual(linkedEditGroups, other.linkedEditGroups, | |
| 16436 (LinkedEditGroup a, LinkedEditGroup b) => a == b) && | |
| 16437 selection == other.selection; | |
| 16438 } | 16441 } |
| 16439 return false; | 16442 return false; |
| 16440 } | 16443 } |
| 16444 |
| 16445 @override |
| 16446 int get hashCode { |
| 16447 int hash = 0; |
| 16448 hash = JenkinsSmiHash.combine(hash, name.hashCode); |
| 16449 return JenkinsSmiHash.finish(hash); |
| 16450 } |
| 16451 } |
| 16452 |
| 16453 /** |
| 16454 * search.findMemberReferences result |
| 16455 * |
| 16456 * { |
| 16457 * "id": SearchId |
| 16458 * } |
| 16459 * |
| 16460 * Clients may not extend, implement or mix-in this class. |
| 16461 */ |
| 16462 class SearchFindMemberReferencesResult implements ResponseResult { |
| 16463 String _id; |
| 16464 |
| 16465 /** |
| 16466 * The identifier used to associate results with this search request. |
| 16467 */ |
| 16468 String get id => _id; |
| 16469 |
| 16470 /** |
| 16471 * The identifier used to associate results with this search request. |
| 16472 */ |
| 16473 void set id(String value) { |
| 16474 assert(value != null); |
| 16475 this._id = value; |
| 16476 } |
| 16477 |
| 16478 SearchFindMemberReferencesResult(String id) { |
| 16479 this.id = id; |
| 16480 } |
| 16481 |
| 16482 factory SearchFindMemberReferencesResult.fromJson( |
| 16483 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 16484 if (json == null) { |
| 16485 json = {}; |
| 16486 } |
| 16487 if (json is Map) { |
| 16488 String id; |
| 16489 if (json.containsKey("id")) { |
| 16490 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); |
| 16491 } else { |
| 16492 throw jsonDecoder.mismatch(jsonPath, "id"); |
| 16493 } |
| 16494 return new SearchFindMemberReferencesResult(id); |
| 16495 } else { |
| 16496 throw jsonDecoder.mismatch( |
| 16497 jsonPath, "search.findMemberReferences result", json); |
| 16498 } |
| 16499 } |
| 16500 |
| 16501 factory SearchFindMemberReferencesResult.fromResponse(Response response) { |
| 16502 return new SearchFindMemberReferencesResult.fromJson( |
| 16503 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 16504 "result", |
| 16505 response.result); |
| 16506 } |
| 16507 |
| 16508 @override |
| 16509 Map<String, dynamic> toJson() { |
| 16510 Map<String, dynamic> result = {}; |
| 16511 result["id"] = id; |
| 16512 return result; |
| 16513 } |
| 16514 |
| 16515 @override |
| 16516 Response toResponse(String id) { |
| 16517 return new Response(id, result: toJson()); |
| 16518 } |
| 16519 |
| 16520 @override |
| 16521 String toString() => JSON.encode(toJson()); |
| 16522 |
| 16523 @override |
| 16524 bool operator ==(other) { |
| 16525 if (other is SearchFindMemberReferencesResult) { |
| 16526 return id == other.id; |
| 16527 } |
| 16528 return false; |
| 16529 } |
| 16530 |
| 16531 @override |
| 16532 int get hashCode { |
| 16533 int hash = 0; |
| 16534 hash = JenkinsSmiHash.combine(hash, id.hashCode); |
| 16535 return JenkinsSmiHash.finish(hash); |
| 16536 } |
| 16537 } |
| 16538 |
| 16539 /** |
| 16540 * search.findTopLevelDeclarations params |
| 16541 * |
| 16542 * { |
| 16543 * "pattern": String |
| 16544 * } |
| 16545 * |
| 16546 * Clients may not extend, implement or mix-in this class. |
| 16547 */ |
| 16548 class SearchFindTopLevelDeclarationsParams implements RequestParams { |
| 16549 String _pattern; |
| 16550 |
| 16551 /** |
| 16552 * The regular expression used to match the names of the declarations to be |
| 16553 * found. |
| 16554 */ |
| 16555 String get pattern => _pattern; |
| 16556 |
| 16557 /** |
| 16558 * The regular expression used to match the names of the declarations to be |
| 16559 * found. |
| 16560 */ |
| 16561 void set pattern(String value) { |
| 16562 assert(value != null); |
| 16563 this._pattern = value; |
| 16564 } |
| 16565 |
| 16566 SearchFindTopLevelDeclarationsParams(String pattern) { |
| 16567 this.pattern = pattern; |
| 16568 } |
| 16569 |
| 16570 factory SearchFindTopLevelDeclarationsParams.fromJson( |
| 16571 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 16572 if (json == null) { |
| 16573 json = {}; |
| 16574 } |
| 16575 if (json is Map) { |
| 16576 String pattern; |
| 16577 if (json.containsKey("pattern")) { |
| 16578 pattern = |
| 16579 jsonDecoder.decodeString(jsonPath + ".pattern", json["pattern"]); |
| 16580 } else { |
| 16581 throw jsonDecoder.mismatch(jsonPath, "pattern"); |
| 16582 } |
| 16583 return new SearchFindTopLevelDeclarationsParams(pattern); |
| 16584 } else { |
| 16585 throw jsonDecoder.mismatch( |
| 16586 jsonPath, "search.findTopLevelDeclarations params", json); |
| 16587 } |
| 16588 } |
| 16589 |
| 16590 factory SearchFindTopLevelDeclarationsParams.fromRequest(Request request) { |
| 16591 return new SearchFindTopLevelDeclarationsParams.fromJson( |
| 16592 new RequestDecoder(request), "params", request.params); |
| 16593 } |
| 16594 |
| 16595 @override |
| 16596 Map<String, dynamic> toJson() { |
| 16597 Map<String, dynamic> result = {}; |
| 16598 result["pattern"] = pattern; |
| 16599 return result; |
| 16600 } |
| 16601 |
| 16602 @override |
| 16603 Request toRequest(String id) { |
| 16604 return new Request(id, "search.findTopLevelDeclarations", toJson()); |
| 16605 } |
| 16606 |
| 16607 @override |
| 16608 String toString() => JSON.encode(toJson()); |
| 16609 |
| 16610 @override |
| 16611 bool operator ==(other) { |
| 16612 if (other is SearchFindTopLevelDeclarationsParams) { |
| 16613 return pattern == other.pattern; |
| 16614 } |
| 16615 return false; |
| 16616 } |
| 16617 |
| 16618 @override |
| 16619 int get hashCode { |
| 16620 int hash = 0; |
| 16621 hash = JenkinsSmiHash.combine(hash, pattern.hashCode); |
| 16622 return JenkinsSmiHash.finish(hash); |
| 16623 } |
| 16624 } |
| 16625 |
| 16626 /** |
| 16627 * search.findTopLevelDeclarations result |
| 16628 * |
| 16629 * { |
| 16630 * "id": SearchId |
| 16631 * } |
| 16632 * |
| 16633 * Clients may not extend, implement or mix-in this class. |
| 16634 */ |
| 16635 class SearchFindTopLevelDeclarationsResult implements ResponseResult { |
| 16636 String _id; |
| 16637 |
| 16638 /** |
| 16639 * The identifier used to associate results with this search request. |
| 16640 */ |
| 16641 String get id => _id; |
| 16642 |
| 16643 /** |
| 16644 * The identifier used to associate results with this search request. |
| 16645 */ |
| 16646 void set id(String value) { |
| 16647 assert(value != null); |
| 16648 this._id = value; |
| 16649 } |
| 16650 |
| 16651 SearchFindTopLevelDeclarationsResult(String id) { |
| 16652 this.id = id; |
| 16653 } |
| 16654 |
| 16655 factory SearchFindTopLevelDeclarationsResult.fromJson( |
| 16656 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 16657 if (json == null) { |
| 16658 json = {}; |
| 16659 } |
| 16660 if (json is Map) { |
| 16661 String id; |
| 16662 if (json.containsKey("id")) { |
| 16663 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); |
| 16664 } else { |
| 16665 throw jsonDecoder.mismatch(jsonPath, "id"); |
| 16666 } |
| 16667 return new SearchFindTopLevelDeclarationsResult(id); |
| 16668 } else { |
| 16669 throw jsonDecoder.mismatch( |
| 16670 jsonPath, "search.findTopLevelDeclarations result", json); |
| 16671 } |
| 16672 } |
| 16673 |
| 16674 factory SearchFindTopLevelDeclarationsResult.fromResponse(Response response) { |
| 16675 return new SearchFindTopLevelDeclarationsResult.fromJson( |
| 16676 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 16677 "result", |
| 16678 response.result); |
| 16679 } |
| 16680 |
| 16681 @override |
| 16682 Map<String, dynamic> toJson() { |
| 16683 Map<String, dynamic> result = {}; |
| 16684 result["id"] = id; |
| 16685 return result; |
| 16686 } |
| 16687 |
| 16688 @override |
| 16689 Response toResponse(String id) { |
| 16690 return new Response(id, result: toJson()); |
| 16691 } |
| 16692 |
| 16693 @override |
| 16694 String toString() => JSON.encode(toJson()); |
| 16695 |
| 16696 @override |
| 16697 bool operator ==(other) { |
| 16698 if (other is SearchFindTopLevelDeclarationsResult) { |
| 16699 return id == other.id; |
| 16700 } |
| 16701 return false; |
| 16702 } |
| 16441 | 16703 |
| 16442 @override | 16704 @override |
| 16443 int get hashCode { | 16705 int get hashCode { |
| 16444 int hash = 0; | 16706 int hash = 0; |
| 16445 hash = JenkinsSmiHash.combine(hash, message.hashCode); | 16707 hash = JenkinsSmiHash.combine(hash, id.hashCode); |
| 16446 hash = JenkinsSmiHash.combine(hash, edits.hashCode); | |
| 16447 hash = JenkinsSmiHash.combine(hash, linkedEditGroups.hashCode); | |
| 16448 hash = JenkinsSmiHash.combine(hash, selection.hashCode); | |
| 16449 return JenkinsSmiHash.finish(hash); | 16708 return JenkinsSmiHash.finish(hash); |
| 16450 } | 16709 } |
| 16451 } | 16710 } |
| 16452 | 16711 |
| 16453 /** | 16712 /** |
| 16454 * SourceEdit | 16713 * search.getTypeHierarchy params |
| 16455 * | 16714 * |
| 16456 * { | 16715 * { |
| 16716 * "file": FilePath |
| 16457 * "offset": int | 16717 * "offset": int |
| 16458 * "length": int | 16718 * "superOnly": optional bool |
| 16459 * "replacement": String | |
| 16460 * "id": optional String | |
| 16461 * } | 16719 * } |
| 16462 * | 16720 * |
| 16463 * Clients may not extend, implement or mix-in this class. | 16721 * Clients may not extend, implement or mix-in this class. |
| 16464 */ | 16722 */ |
| 16465 class SourceEdit implements HasToJson { | 16723 class SearchGetTypeHierarchyParams implements RequestParams { |
| 16466 /** | 16724 String _file; |
| 16467 * Get the result of applying a set of [edits] to the given [code]. Edits are | |
| 16468 * applied in the order they appear in [edits]. | |
| 16469 */ | |
| 16470 static String applySequence(String code, Iterable<SourceEdit> edits) => | |
| 16471 applySequenceOfEdits(code, edits); | |
| 16472 | 16725 |
| 16473 int _offset; | 16726 int _offset; |
| 16474 | 16727 |
| 16475 int _length; | 16728 bool _superOnly; |
| 16476 | |
| 16477 String _replacement; | |
| 16478 | |
| 16479 String _id; | |
| 16480 | 16729 |
| 16481 /** | 16730 /** |
| 16482 * The offset of the region to be modified. | 16731 * The file containing the declaration or reference to the type for which a |
| 16732 * hierarchy is being requested. |
| 16733 */ |
| 16734 String get file => _file; |
| 16735 |
| 16736 /** |
| 16737 * The file containing the declaration or reference to the type for which a |
| 16738 * hierarchy is being requested. |
| 16739 */ |
| 16740 void set file(String value) { |
| 16741 assert(value != null); |
| 16742 this._file = value; |
| 16743 } |
| 16744 |
| 16745 /** |
| 16746 * The offset of the name of the type within the file. |
| 16483 */ | 16747 */ |
| 16484 int get offset => _offset; | 16748 int get offset => _offset; |
| 16485 | 16749 |
| 16486 /** | 16750 /** |
| 16487 * The offset of the region to be modified. | 16751 * The offset of the name of the type within the file. |
| 16488 */ | 16752 */ |
| 16489 void set offset(int value) { | 16753 void set offset(int value) { |
| 16490 assert(value != null); | 16754 assert(value != null); |
| 16491 this._offset = value; | 16755 this._offset = value; |
| 16492 } | 16756 } |
| 16493 | 16757 |
| 16494 /** | 16758 /** |
| 16495 * The length of the region to be modified. | 16759 * True if the client is only requesting superclasses and interfaces |
| 16760 * hierarchy. |
| 16496 */ | 16761 */ |
| 16497 int get length => _length; | 16762 bool get superOnly => _superOnly; |
| 16498 | 16763 |
| 16499 /** | 16764 /** |
| 16500 * The length of the region to be modified. | 16765 * True if the client is only requesting superclasses and interfaces |
| 16766 * hierarchy. |
| 16501 */ | 16767 */ |
| 16502 void set length(int value) { | 16768 void set superOnly(bool value) { |
| 16503 assert(value != null); | 16769 this._superOnly = value; |
| 16504 this._length = value; | |
| 16505 } | 16770 } |
| 16506 | 16771 |
| 16507 /** | 16772 SearchGetTypeHierarchyParams(String file, int offset, {bool superOnly}) { |
| 16508 * The code that is to replace the specified region in the original code. | 16773 this.file = file; |
| 16509 */ | 16774 this.offset = offset; |
| 16510 String get replacement => _replacement; | 16775 this.superOnly = superOnly; |
| 16511 | |
| 16512 /** | |
| 16513 * The code that is to replace the specified region in the original code. | |
| 16514 */ | |
| 16515 void set replacement(String value) { | |
| 16516 assert(value != null); | |
| 16517 this._replacement = value; | |
| 16518 } | 16776 } |
| 16519 | 16777 |
| 16520 /** | 16778 factory SearchGetTypeHierarchyParams.fromJson( |
| 16521 * An identifier that uniquely identifies this source edit from other edits | |
| 16522 * in the same response. This field is omitted unless a containing structure | |
| 16523 * needs to be able to identify the edit for some reason. | |
| 16524 * | |
| 16525 * For example, some refactoring operations can produce edits that might not | |
| 16526 * be appropriate (referred to as potential edits). Such edits will have an | |
| 16527 * id so that they can be referenced. Edits in the same response that do not | |
| 16528 * need to be referenced will not have an id. | |
| 16529 */ | |
| 16530 String get id => _id; | |
| 16531 | |
| 16532 /** | |
| 16533 * An identifier that uniquely identifies this source edit from other edits | |
| 16534 * in the same response. This field is omitted unless a containing structure | |
| 16535 * needs to be able to identify the edit for some reason. | |
| 16536 * | |
| 16537 * For example, some refactoring operations can produce edits that might not | |
| 16538 * be appropriate (referred to as potential edits). Such edits will have an | |
| 16539 * id so that they can be referenced. Edits in the same response that do not | |
| 16540 * need to be referenced will not have an id. | |
| 16541 */ | |
| 16542 void set id(String value) { | |
| 16543 this._id = value; | |
| 16544 } | |
| 16545 | |
| 16546 SourceEdit(int offset, int length, String replacement, {String id}) { | |
| 16547 this.offset = offset; | |
| 16548 this.length = length; | |
| 16549 this.replacement = replacement; | |
| 16550 this.id = id; | |
| 16551 } | |
| 16552 | |
| 16553 factory SourceEdit.fromJson( | |
| 16554 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 16779 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 16555 if (json == null) { | 16780 if (json == null) { |
| 16556 json = {}; | 16781 json = {}; |
| 16557 } | 16782 } |
| 16558 if (json is Map) { | 16783 if (json is Map) { |
| 16784 String file; |
| 16785 if (json.containsKey("file")) { |
| 16786 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 16787 } else { |
| 16788 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 16789 } |
| 16559 int offset; | 16790 int offset; |
| 16560 if (json.containsKey("offset")) { | 16791 if (json.containsKey("offset")) { |
| 16561 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 16792 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 16562 } else { | 16793 } else { |
| 16563 throw jsonDecoder.missingKey(jsonPath, "offset"); | 16794 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 16564 } | 16795 } |
| 16565 int length; | 16796 bool superOnly; |
| 16566 if (json.containsKey("length")) { | 16797 if (json.containsKey("superOnly")) { |
| 16567 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 16798 superOnly = |
| 16568 } else { | 16799 jsonDecoder.decodeBool(jsonPath + ".superOnly", json["superOnly"]); |
| 16569 throw jsonDecoder.missingKey(jsonPath, "length"); | |
| 16570 } | 16800 } |
| 16571 String replacement; | 16801 return new SearchGetTypeHierarchyParams(file, offset, |
| 16572 if (json.containsKey("replacement")) { | 16802 superOnly: superOnly); |
| 16573 replacement = jsonDecoder.decodeString( | |
| 16574 jsonPath + ".replacement", json["replacement"]); | |
| 16575 } else { | |
| 16576 throw jsonDecoder.missingKey(jsonPath, "replacement"); | |
| 16577 } | |
| 16578 String id; | |
| 16579 if (json.containsKey("id")) { | |
| 16580 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); | |
| 16581 } | |
| 16582 return new SourceEdit(offset, length, replacement, id: id); | |
| 16583 } else { | 16803 } else { |
| 16584 throw jsonDecoder.mismatch(jsonPath, "SourceEdit", json); | 16804 throw jsonDecoder.mismatch( |
| 16805 jsonPath, "search.getTypeHierarchy params", json); |
| 16585 } | 16806 } |
| 16586 } | 16807 } |
| 16587 | 16808 |
| 16588 /** | 16809 factory SearchGetTypeHierarchyParams.fromRequest(Request request) { |
| 16589 * The end of the region to be modified. | 16810 return new SearchGetTypeHierarchyParams.fromJson( |
| 16590 */ | 16811 new RequestDecoder(request), "params", request.params); |
| 16591 int get end => offset + length; | 16812 } |
| 16592 | 16813 |
| 16814 @override |
| 16593 Map<String, dynamic> toJson() { | 16815 Map<String, dynamic> toJson() { |
| 16594 Map<String, dynamic> result = {}; | 16816 Map<String, dynamic> result = {}; |
| 16817 result["file"] = file; |
| 16595 result["offset"] = offset; | 16818 result["offset"] = offset; |
| 16596 result["length"] = length; | 16819 if (superOnly != null) { |
| 16597 result["replacement"] = replacement; | 16820 result["superOnly"] = superOnly; |
| 16598 if (id != null) { | |
| 16599 result["id"] = id; | |
| 16600 } | 16821 } |
| 16601 return result; | 16822 return result; |
| 16602 } | 16823 } |
| 16603 | 16824 |
| 16604 /** | 16825 @override |
| 16605 * Get the result of applying the edit to the given [code]. | 16826 Request toRequest(String id) { |
| 16606 */ | 16827 return new Request(id, "search.getTypeHierarchy", toJson()); |
| 16607 String apply(String code) => applyEdit(code, this); | 16828 } |
| 16608 | 16829 |
| 16609 @override | 16830 @override |
| 16610 String toString() => JSON.encode(toJson()); | 16831 String toString() => JSON.encode(toJson()); |
| 16611 | 16832 |
| 16612 @override | 16833 @override |
| 16613 bool operator ==(other) { | 16834 bool operator ==(other) { |
| 16614 if (other is SourceEdit) { | 16835 if (other is SearchGetTypeHierarchyParams) { |
| 16615 return offset == other.offset && | 16836 return file == other.file && |
| 16616 length == other.length && | 16837 offset == other.offset && |
| 16617 replacement == other.replacement && | 16838 superOnly == other.superOnly; |
| 16618 id == other.id; | |
| 16619 } | 16839 } |
| 16620 return false; | 16840 return false; |
| 16621 } | 16841 } |
| 16622 | 16842 |
| 16623 @override | 16843 @override |
| 16624 int get hashCode { | 16844 int get hashCode { |
| 16625 int hash = 0; | 16845 int hash = 0; |
| 16846 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 16626 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 16847 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 16627 hash = JenkinsSmiHash.combine(hash, length.hashCode); | 16848 hash = JenkinsSmiHash.combine(hash, superOnly.hashCode); |
| 16628 hash = JenkinsSmiHash.combine(hash, replacement.hashCode); | |
| 16629 hash = JenkinsSmiHash.combine(hash, id.hashCode); | |
| 16630 return JenkinsSmiHash.finish(hash); | 16849 return JenkinsSmiHash.finish(hash); |
| 16631 } | 16850 } |
| 16632 } | 16851 } |
| 16633 | 16852 |
| 16634 /** | 16853 /** |
| 16635 * SourceFileEdit | 16854 * search.getTypeHierarchy result |
| 16636 * | 16855 * |
| 16637 * { | 16856 * { |
| 16638 * "file": FilePath | 16857 * "hierarchyItems": optional List<TypeHierarchyItem> |
| 16639 * "fileStamp": long | |
| 16640 * "edits": List<SourceEdit> | |
| 16641 * } | 16858 * } |
| 16642 * | 16859 * |
| 16643 * Clients may not extend, implement or mix-in this class. | 16860 * Clients may not extend, implement or mix-in this class. |
| 16644 */ | 16861 */ |
| 16645 class SourceFileEdit implements HasToJson { | 16862 class SearchGetTypeHierarchyResult implements ResponseResult { |
| 16646 String _file; | 16863 List<TypeHierarchyItem> _hierarchyItems; |
| 16647 | |
| 16648 int _fileStamp; | |
| 16649 | |
| 16650 List<SourceEdit> _edits; | |
| 16651 | 16864 |
| 16652 /** | 16865 /** |
| 16653 * The file containing the code to be modified. | 16866 * A list of the types in the requested hierarchy. The first element of the |
| 16867 * list is the item representing the type for which the hierarchy was |
| 16868 * requested. The index of other elements of the list is unspecified, but |
| 16869 * correspond to the integers used to reference supertype and subtype items |
| 16870 * within the items. |
| 16871 * |
| 16872 * This field will be absent if the code at the given file and offset does |
| 16873 * not represent a type, or if the file has not been sufficiently analyzed to |
| 16874 * allow a type hierarchy to be produced. |
| 16654 */ | 16875 */ |
| 16655 String get file => _file; | 16876 List<TypeHierarchyItem> get hierarchyItems => _hierarchyItems; |
| 16656 | 16877 |
| 16657 /** | 16878 /** |
| 16658 * The file containing the code to be modified. | 16879 * A list of the types in the requested hierarchy. The first element of the |
| 16880 * list is the item representing the type for which the hierarchy was |
| 16881 * requested. The index of other elements of the list is unspecified, but |
| 16882 * correspond to the integers used to reference supertype and subtype items |
| 16883 * within the items. |
| 16884 * |
| 16885 * This field will be absent if the code at the given file and offset does |
| 16886 * not represent a type, or if the file has not been sufficiently analyzed to |
| 16887 * allow a type hierarchy to be produced. |
| 16659 */ | 16888 */ |
| 16660 void set file(String value) { | 16889 void set hierarchyItems(List<TypeHierarchyItem> value) { |
| 16661 assert(value != null); | 16890 this._hierarchyItems = value; |
| 16662 this._file = value; | |
| 16663 } | 16891 } |
| 16664 | 16892 |
| 16665 /** | 16893 SearchGetTypeHierarchyResult({List<TypeHierarchyItem> hierarchyItems}) { |
| 16666 * The modification stamp of the file at the moment when the change was | 16894 this.hierarchyItems = hierarchyItems; |
| 16667 * created, in milliseconds since the "Unix epoch". Will be -1 if the file | |
| 16668 * did not exist and should be created. The client may use this field to make | |
| 16669 * sure that the file was not changed since then, so it is safe to apply the | |
| 16670 * change. | |
| 16671 */ | |
| 16672 int get fileStamp => _fileStamp; | |
| 16673 | |
| 16674 /** | |
| 16675 * The modification stamp of the file at the moment when the change was | |
| 16676 * created, in milliseconds since the "Unix epoch". Will be -1 if the file | |
| 16677 * did not exist and should be created. The client may use this field to make | |
| 16678 * sure that the file was not changed since then, so it is safe to apply the | |
| 16679 * change. | |
| 16680 */ | |
| 16681 void set fileStamp(int value) { | |
| 16682 assert(value != null); | |
| 16683 this._fileStamp = value; | |
| 16684 } | 16895 } |
| 16685 | 16896 |
| 16686 /** | 16897 factory SearchGetTypeHierarchyResult.fromJson( |
| 16687 * A list of the edits used to effect the change. | |
| 16688 */ | |
| 16689 List<SourceEdit> get edits => _edits; | |
| 16690 | |
| 16691 /** | |
| 16692 * A list of the edits used to effect the change. | |
| 16693 */ | |
| 16694 void set edits(List<SourceEdit> value) { | |
| 16695 assert(value != null); | |
| 16696 this._edits = value; | |
| 16697 } | |
| 16698 | |
| 16699 SourceFileEdit(String file, int fileStamp, {List<SourceEdit> edits}) { | |
| 16700 this.file = file; | |
| 16701 this.fileStamp = fileStamp; | |
| 16702 if (edits == null) { | |
| 16703 this.edits = <SourceEdit>[]; | |
| 16704 } else { | |
| 16705 this.edits = edits; | |
| 16706 } | |
| 16707 } | |
| 16708 | |
| 16709 factory SourceFileEdit.fromJson( | |
| 16710 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 16898 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 16711 if (json == null) { | 16899 if (json == null) { |
| 16712 json = {}; | 16900 json = {}; |
| 16713 } | 16901 } |
| 16714 if (json is Map) { | 16902 if (json is Map) { |
| 16715 String file; | 16903 List<TypeHierarchyItem> hierarchyItems; |
| 16716 if (json.containsKey("file")) { | 16904 if (json.containsKey("hierarchyItems")) { |
| 16717 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); | 16905 hierarchyItems = jsonDecoder.decodeList( |
| 16718 } else { | 16906 jsonPath + ".hierarchyItems", |
| 16719 throw jsonDecoder.missingKey(jsonPath, "file"); | 16907 json["hierarchyItems"], |
| 16908 (String jsonPath, Object json) => |
| 16909 new TypeHierarchyItem.fromJson(jsonDecoder, jsonPath, json)); |
| 16720 } | 16910 } |
| 16721 int fileStamp; | 16911 return new SearchGetTypeHierarchyResult(hierarchyItems: hierarchyItems); |
| 16722 if (json.containsKey("fileStamp")) { | |
| 16723 fileStamp = | |
| 16724 jsonDecoder.decodeInt(jsonPath + ".fileStamp", json["fileStamp"]); | |
| 16725 } else { | |
| 16726 throw jsonDecoder.missingKey(jsonPath, "fileStamp"); | |
| 16727 } | |
| 16728 List<SourceEdit> edits; | |
| 16729 if (json.containsKey("edits")) { | |
| 16730 edits = jsonDecoder.decodeList( | |
| 16731 jsonPath + ".edits", | |
| 16732 json["edits"], | |
| 16733 (String jsonPath, Object json) => | |
| 16734 new SourceEdit.fromJson(jsonDecoder, jsonPath, json)); | |
| 16735 } else { | |
| 16736 throw jsonDecoder.missingKey(jsonPath, "edits"); | |
| 16737 } | |
| 16738 return new SourceFileEdit(file, fileStamp, edits: edits); | |
| 16739 } else { | 16912 } else { |
| 16740 throw jsonDecoder.mismatch(jsonPath, "SourceFileEdit", json); | 16913 throw jsonDecoder.mismatch( |
| 16914 jsonPath, "search.getTypeHierarchy result", json); |
| 16741 } | 16915 } |
| 16742 } | 16916 } |
| 16743 | 16917 |
| 16918 factory SearchGetTypeHierarchyResult.fromResponse(Response response) { |
| 16919 return new SearchGetTypeHierarchyResult.fromJson( |
| 16920 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 16921 "result", |
| 16922 response.result); |
| 16923 } |
| 16924 |
| 16925 @override |
| 16744 Map<String, dynamic> toJson() { | 16926 Map<String, dynamic> toJson() { |
| 16745 Map<String, dynamic> result = {}; | 16927 Map<String, dynamic> result = {}; |
| 16746 result["file"] = file; | 16928 if (hierarchyItems != null) { |
| 16747 result["fileStamp"] = fileStamp; | 16929 result["hierarchyItems"] = hierarchyItems |
| 16748 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList(); | 16930 .map((TypeHierarchyItem value) => value.toJson()) |
| 16931 .toList(); |
| 16932 } |
| 16749 return result; | 16933 return result; |
| 16750 } | 16934 } |
| 16751 | 16935 |
| 16752 /** | 16936 @override |
| 16753 * Adds the given [Edit] to the list. | 16937 Response toResponse(String id) { |
| 16754 */ | 16938 return new Response(id, result: toJson()); |
| 16755 void add(SourceEdit edit) => addEditForSource(this, edit); | 16939 } |
| 16756 | |
| 16757 /** | |
| 16758 * Adds the given [Edit]s. | |
| 16759 */ | |
| 16760 void addAll(Iterable<SourceEdit> edits) => addAllEditsForSource(this, edits); | |
| 16761 | 16940 |
| 16762 @override | 16941 @override |
| 16763 String toString() => JSON.encode(toJson()); | 16942 String toString() => JSON.encode(toJson()); |
| 16764 | 16943 |
| 16765 @override | 16944 @override |
| 16766 bool operator ==(other) { | 16945 bool operator ==(other) { |
| 16767 if (other is SourceFileEdit) { | 16946 if (other is SearchGetTypeHierarchyResult) { |
| 16768 return file == other.file && | 16947 return listEqual(hierarchyItems, other.hierarchyItems, |
| 16769 fileStamp == other.fileStamp && | 16948 (TypeHierarchyItem a, TypeHierarchyItem b) => a == b); |
| 16770 listEqual(edits, other.edits, (SourceEdit a, SourceEdit b) => a == b); | |
| 16771 } | 16949 } |
| 16772 return false; | 16950 return false; |
| 16773 } | 16951 } |
| 16774 | 16952 |
| 16775 @override | 16953 @override |
| 16776 int get hashCode { | 16954 int get hashCode { |
| 16777 int hash = 0; | 16955 int hash = 0; |
| 16778 hash = JenkinsSmiHash.combine(hash, file.hashCode); | 16956 hash = JenkinsSmiHash.combine(hash, hierarchyItems.hashCode); |
| 16779 hash = JenkinsSmiHash.combine(hash, fileStamp.hashCode); | |
| 16780 hash = JenkinsSmiHash.combine(hash, edits.hashCode); | |
| 16781 return JenkinsSmiHash.finish(hash); | 16957 return JenkinsSmiHash.finish(hash); |
| 16782 } | 16958 } |
| 16783 } | 16959 } |
| 16784 | 16960 |
| 16785 /** | 16961 /** |
| 16786 * TypeHierarchyItem | 16962 * SearchResult |
| 16787 * | 16963 * |
| 16788 * { | 16964 * { |
| 16789 * "classElement": Element | 16965 * "location": Location |
| 16790 * "displayName": optional String | 16966 * "kind": SearchResultKind |
| 16791 * "memberElement": optional Element | 16967 * "isPotential": bool |
| 16792 * "superclass": optional int | 16968 * "path": List<Element> |
| 16793 * "interfaces": List<int> | |
| 16794 * "mixins": List<int> | |
| 16795 * "subclasses": List<int> | |
| 16796 * } | 16969 * } |
| 16797 * | 16970 * |
| 16798 * Clients may not extend, implement or mix-in this class. | 16971 * Clients may not extend, implement or mix-in this class. |
| 16799 */ | 16972 */ |
| 16800 class TypeHierarchyItem implements HasToJson { | 16973 class SearchResult implements HasToJson { |
| 16801 Element _classElement; | 16974 Location _location; |
| 16802 | 16975 |
| 16803 String _displayName; | 16976 SearchResultKind _kind; |
| 16804 | 16977 |
| 16805 Element _memberElement; | 16978 bool _isPotential; |
| 16806 | 16979 |
| 16807 int _superclass; | 16980 List<Element> _path; |
| 16808 | |
| 16809 List<int> _interfaces; | |
| 16810 | |
| 16811 List<int> _mixins; | |
| 16812 | |
| 16813 List<int> _subclasses; | |
| 16814 | 16981 |
| 16815 /** | 16982 /** |
| 16816 * The class element represented by this item. | 16983 * The location of the code that matched the search criteria. |
| 16817 */ | 16984 */ |
| 16818 Element get classElement => _classElement; | 16985 Location get location => _location; |
| 16819 | 16986 |
| 16820 /** | 16987 /** |
| 16821 * The class element represented by this item. | 16988 * The location of the code that matched the search criteria. |
| 16822 */ | 16989 */ |
| 16823 void set classElement(Element value) { | 16990 void set location(Location value) { |
| 16824 assert(value != null); | 16991 assert(value != null); |
| 16825 this._classElement = value; | 16992 this._location = value; |
| 16826 } | 16993 } |
| 16827 | 16994 |
| 16828 /** | 16995 /** |
| 16829 * The name to be displayed for the class. This field will be omitted if the | 16996 * The kind of element that was found or the kind of reference that was |
| 16830 * display name is the same as the name of the element. The display name is | 16997 * found. |
| 16831 * different if there is additional type information to be displayed, such as | |
| 16832 * type arguments. | |
| 16833 */ | 16998 */ |
| 16834 String get displayName => _displayName; | 16999 SearchResultKind get kind => _kind; |
| 16835 | 17000 |
| 16836 /** | 17001 /** |
| 16837 * The name to be displayed for the class. This field will be omitted if the | 17002 * The kind of element that was found or the kind of reference that was |
| 16838 * display name is the same as the name of the element. The display name is | 17003 * found. |
| 16839 * different if there is additional type information to be displayed, such as | |
| 16840 * type arguments. | |
| 16841 */ | 17004 */ |
| 16842 void set displayName(String value) { | 17005 void set kind(SearchResultKind value) { |
| 16843 this._displayName = value; | 17006 assert(value != null); |
| 17007 this._kind = value; |
| 16844 } | 17008 } |
| 16845 | 17009 |
| 16846 /** | 17010 /** |
| 16847 * The member in the class corresponding to the member on which the hierarchy | 17011 * True if the result is a potential match but cannot be confirmed to be a |
| 16848 * was requested. This field will be omitted if the hierarchy was not | 17012 * match. For example, if all references to a method m defined in some class |
| 16849 * requested for a member or if the class does not have a corresponding | 17013 * were requested, and a reference to a method m from an unknown class were |
| 16850 * member. | 17014 * found, it would be marked as being a potential match. |
| 16851 */ | 17015 */ |
| 16852 Element get memberElement => _memberElement; | 17016 bool get isPotential => _isPotential; |
| 16853 | 17017 |
| 16854 /** | 17018 /** |
| 16855 * The member in the class corresponding to the member on which the hierarchy | 17019 * True if the result is a potential match but cannot be confirmed to be a |
| 16856 * was requested. This field will be omitted if the hierarchy was not | 17020 * match. For example, if all references to a method m defined in some class |
| 16857 * requested for a member or if the class does not have a corresponding | 17021 * were requested, and a reference to a method m from an unknown class were |
| 16858 * member. | 17022 * found, it would be marked as being a potential match. |
| 16859 */ | 17023 */ |
| 16860 void set memberElement(Element value) { | 17024 void set isPotential(bool value) { |
| 16861 this._memberElement = value; | 17025 assert(value != null); |
| 17026 this._isPotential = value; |
| 16862 } | 17027 } |
| 16863 | 17028 |
| 16864 /** | 17029 /** |
| 16865 * The index of the item representing the superclass of this class. This | 17030 * The elements that contain the result, starting with the most immediately |
| 16866 * field will be omitted if this item represents the class Object. | 17031 * enclosing ancestor and ending with the library. |
| 16867 */ | 17032 */ |
| 16868 int get superclass => _superclass; | 17033 List<Element> get path => _path; |
| 16869 | 17034 |
| 16870 /** | 17035 /** |
| 16871 * The index of the item representing the superclass of this class. This | 17036 * The elements that contain the result, starting with the most immediately |
| 16872 * field will be omitted if this item represents the class Object. | 17037 * enclosing ancestor and ending with the library. |
| 16873 */ | 17038 */ |
| 16874 void set superclass(int value) { | 17039 void set path(List<Element> value) { |
| 16875 this._superclass = value; | 17040 assert(value != null); |
| 17041 this._path = value; |
| 16876 } | 17042 } |
| 16877 | 17043 |
| 16878 /** | 17044 SearchResult(Location location, SearchResultKind kind, bool isPotential, |
| 16879 * The indexes of the items representing the interfaces implemented by this | 17045 List<Element> path) { |
| 16880 * class. The list will be empty if there are no implemented interfaces. | 17046 this.location = location; |
| 16881 */ | 17047 this.kind = kind; |
| 16882 List<int> get interfaces => _interfaces; | 17048 this.isPotential = isPotential; |
| 16883 | 17049 this.path = path; |
| 16884 /** | |
| 16885 * The indexes of the items representing the interfaces implemented by this | |
| 16886 * class. The list will be empty if there are no implemented interfaces. | |
| 16887 */ | |
| 16888 void set interfaces(List<int> value) { | |
| 16889 assert(value != null); | |
| 16890 this._interfaces = value; | |
| 16891 } | 17050 } |
| 16892 | 17051 |
| 16893 /** | 17052 factory SearchResult.fromJson( |
| 16894 * The indexes of the items representing the mixins referenced by this class. | |
| 16895 * The list will be empty if there are no classes mixed in to this class. | |
| 16896 */ | |
| 16897 List<int> get mixins => _mixins; | |
| 16898 | |
| 16899 /** | |
| 16900 * The indexes of the items representing the mixins referenced by this class. | |
| 16901 * The list will be empty if there are no classes mixed in to this class. | |
| 16902 */ | |
| 16903 void set mixins(List<int> value) { | |
| 16904 assert(value != null); | |
| 16905 this._mixins = value; | |
| 16906 } | |
| 16907 | |
| 16908 /** | |
| 16909 * The indexes of the items representing the subtypes of this class. The list | |
| 16910 * will be empty if there are no subtypes or if this item represents a | |
| 16911 * supertype of the pivot type. | |
| 16912 */ | |
| 16913 List<int> get subclasses => _subclasses; | |
| 16914 | |
| 16915 /** | |
| 16916 * The indexes of the items representing the subtypes of this class. The list | |
| 16917 * will be empty if there are no subtypes or if this item represents a | |
| 16918 * supertype of the pivot type. | |
| 16919 */ | |
| 16920 void set subclasses(List<int> value) { | |
| 16921 assert(value != null); | |
| 16922 this._subclasses = value; | |
| 16923 } | |
| 16924 | |
| 16925 TypeHierarchyItem(Element classElement, | |
| 16926 {String displayName, | |
| 16927 Element memberElement, | |
| 16928 int superclass, | |
| 16929 List<int> interfaces, | |
| 16930 List<int> mixins, | |
| 16931 List<int> subclasses}) { | |
| 16932 this.classElement = classElement; | |
| 16933 this.displayName = displayName; | |
| 16934 this.memberElement = memberElement; | |
| 16935 this.superclass = superclass; | |
| 16936 if (interfaces == null) { | |
| 16937 this.interfaces = <int>[]; | |
| 16938 } else { | |
| 16939 this.interfaces = interfaces; | |
| 16940 } | |
| 16941 if (mixins == null) { | |
| 16942 this.mixins = <int>[]; | |
| 16943 } else { | |
| 16944 this.mixins = mixins; | |
| 16945 } | |
| 16946 if (subclasses == null) { | |
| 16947 this.subclasses = <int>[]; | |
| 16948 } else { | |
| 16949 this.subclasses = subclasses; | |
| 16950 } | |
| 16951 } | |
| 16952 | |
| 16953 factory TypeHierarchyItem.fromJson( | |
| 16954 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 17053 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 16955 if (json == null) { | 17054 if (json == null) { |
| 16956 json = {}; | 17055 json = {}; |
| 16957 } | 17056 } |
| 16958 if (json is Map) { | 17057 if (json is Map) { |
| 16959 Element classElement; | 17058 Location location; |
| 16960 if (json.containsKey("classElement")) { | 17059 if (json.containsKey("location")) { |
| 16961 classElement = new Element.fromJson( | 17060 location = new Location.fromJson( |
| 16962 jsonDecoder, jsonPath + ".classElement", json["classElement"]); | 17061 jsonDecoder, jsonPath + ".location", json["location"]); |
| 16963 } else { | 17062 } else { |
| 16964 throw jsonDecoder.missingKey(jsonPath, "classElement"); | 17063 throw jsonDecoder.mismatch(jsonPath, "location"); |
| 16965 } | 17064 } |
| 16966 String displayName; | 17065 SearchResultKind kind; |
| 16967 if (json.containsKey("displayName")) { | 17066 if (json.containsKey("kind")) { |
| 16968 displayName = jsonDecoder.decodeString( | 17067 kind = new SearchResultKind.fromJson( |
| 16969 jsonPath + ".displayName", json["displayName"]); | 17068 jsonDecoder, jsonPath + ".kind", json["kind"]); |
| 17069 } else { |
| 17070 throw jsonDecoder.mismatch(jsonPath, "kind"); |
| 16970 } | 17071 } |
| 16971 Element memberElement; | 17072 bool isPotential; |
| 16972 if (json.containsKey("memberElement")) { | 17073 if (json.containsKey("isPotential")) { |
| 16973 memberElement = new Element.fromJson( | 17074 isPotential = jsonDecoder.decodeBool( |
| 16974 jsonDecoder, jsonPath + ".memberElement", json["memberElement"]); | 17075 jsonPath + ".isPotential", json["isPotential"]); |
| 17076 } else { |
| 17077 throw jsonDecoder.mismatch(jsonPath, "isPotential"); |
| 16975 } | 17078 } |
| 16976 int superclass; | 17079 List<Element> path; |
| 16977 if (json.containsKey("superclass")) { | 17080 if (json.containsKey("path")) { |
| 16978 superclass = | 17081 path = jsonDecoder.decodeList( |
| 16979 jsonDecoder.decodeInt(jsonPath + ".superclass", json["superclass"]); | 17082 jsonPath + ".path", |
| 17083 json["path"], |
| 17084 (String jsonPath, Object json) => |
| 17085 new Element.fromJson(jsonDecoder, jsonPath, json)); |
| 17086 } else { |
| 17087 throw jsonDecoder.mismatch(jsonPath, "path"); |
| 16980 } | 17088 } |
| 16981 List<int> interfaces; | 17089 return new SearchResult(location, kind, isPotential, path); |
| 16982 if (json.containsKey("interfaces")) { | |
| 16983 interfaces = jsonDecoder.decodeList(jsonPath + ".interfaces", | |
| 16984 json["interfaces"], jsonDecoder.decodeInt); | |
| 16985 } else { | |
| 16986 throw jsonDecoder.missingKey(jsonPath, "interfaces"); | |
| 16987 } | |
| 16988 List<int> mixins; | |
| 16989 if (json.containsKey("mixins")) { | |
| 16990 mixins = jsonDecoder.decodeList( | |
| 16991 jsonPath + ".mixins", json["mixins"], jsonDecoder.decodeInt); | |
| 16992 } else { | |
| 16993 throw jsonDecoder.missingKey(jsonPath, "mixins"); | |
| 16994 } | |
| 16995 List<int> subclasses; | |
| 16996 if (json.containsKey("subclasses")) { | |
| 16997 subclasses = jsonDecoder.decodeList(jsonPath + ".subclasses", | |
| 16998 json["subclasses"], jsonDecoder.decodeInt); | |
| 16999 } else { | |
| 17000 throw jsonDecoder.missingKey(jsonPath, "subclasses"); | |
| 17001 } | |
| 17002 return new TypeHierarchyItem(classElement, | |
| 17003 displayName: displayName, | |
| 17004 memberElement: memberElement, | |
| 17005 superclass: superclass, | |
| 17006 interfaces: interfaces, | |
| 17007 mixins: mixins, | |
| 17008 subclasses: subclasses); | |
| 17009 } else { | 17090 } else { |
| 17010 throw jsonDecoder.mismatch(jsonPath, "TypeHierarchyItem", json); | 17091 throw jsonDecoder.mismatch(jsonPath, "SearchResult", json); |
| 17011 } | 17092 } |
| 17012 } | 17093 } |
| 17013 | 17094 |
| 17095 @override |
| 17014 Map<String, dynamic> toJson() { | 17096 Map<String, dynamic> toJson() { |
| 17015 Map<String, dynamic> result = {}; | 17097 Map<String, dynamic> result = {}; |
| 17016 result["classElement"] = classElement.toJson(); | 17098 result["location"] = location.toJson(); |
| 17017 if (displayName != null) { | 17099 result["kind"] = kind.toJson(); |
| 17018 result["displayName"] = displayName; | 17100 result["isPotential"] = isPotential; |
| 17019 } | 17101 result["path"] = path.map((Element value) => value.toJson()).toList(); |
| 17020 if (memberElement != null) { | |
| 17021 result["memberElement"] = memberElement.toJson(); | |
| 17022 } | |
| 17023 if (superclass != null) { | |
| 17024 result["superclass"] = superclass; | |
| 17025 } | |
| 17026 result["interfaces"] = interfaces; | |
| 17027 result["mixins"] = mixins; | |
| 17028 result["subclasses"] = subclasses; | |
| 17029 return result; | 17102 return result; |
| 17030 } | 17103 } |
| 17031 | 17104 |
| 17032 @override | 17105 @override |
| 17033 String toString() => JSON.encode(toJson()); | 17106 String toString() => JSON.encode(toJson()); |
| 17034 | 17107 |
| 17035 @override | 17108 @override |
| 17036 bool operator ==(other) { | 17109 bool operator ==(other) { |
| 17037 if (other is TypeHierarchyItem) { | 17110 if (other is SearchResult) { |
| 17038 return classElement == other.classElement && | 17111 return location == other.location && |
| 17039 displayName == other.displayName && | 17112 kind == other.kind && |
| 17040 memberElement == other.memberElement && | 17113 isPotential == other.isPotential && |
| 17041 superclass == other.superclass && | 17114 listEqual(path, other.path, (Element a, Element b) => a == b); |
| 17042 listEqual(interfaces, other.interfaces, (int a, int b) => a == b) && | |
| 17043 listEqual(mixins, other.mixins, (int a, int b) => a == b) && | |
| 17044 listEqual(subclasses, other.subclasses, (int a, int b) => a == b); | |
| 17045 } | 17115 } |
| 17046 return false; | 17116 return false; |
| 17047 } | 17117 } |
| 17048 | 17118 |
| 17049 @override | 17119 @override |
| 17050 int get hashCode { | 17120 int get hashCode { |
| 17051 int hash = 0; | 17121 int hash = 0; |
| 17052 hash = JenkinsSmiHash.combine(hash, classElement.hashCode); | 17122 hash = JenkinsSmiHash.combine(hash, location.hashCode); |
| 17053 hash = JenkinsSmiHash.combine(hash, displayName.hashCode); | 17123 hash = JenkinsSmiHash.combine(hash, kind.hashCode); |
| 17054 hash = JenkinsSmiHash.combine(hash, memberElement.hashCode); | 17124 hash = JenkinsSmiHash.combine(hash, isPotential.hashCode); |
| 17055 hash = JenkinsSmiHash.combine(hash, superclass.hashCode); | 17125 hash = JenkinsSmiHash.combine(hash, path.hashCode); |
| 17056 hash = JenkinsSmiHash.combine(hash, interfaces.hashCode); | |
| 17057 hash = JenkinsSmiHash.combine(hash, mixins.hashCode); | |
| 17058 hash = JenkinsSmiHash.combine(hash, subclasses.hashCode); | |
| 17059 return JenkinsSmiHash.finish(hash); | 17126 return JenkinsSmiHash.finish(hash); |
| 17060 } | 17127 } |
| 17061 } | 17128 } |
| 17062 | 17129 |
| 17063 /** | 17130 /** |
| 17064 * convertGetterToMethod feedback | 17131 * SearchResultKind |
| 17132 * |
| 17133 * enum { |
| 17134 * DECLARATION |
| 17135 * INVOCATION |
| 17136 * READ |
| 17137 * READ_WRITE |
| 17138 * REFERENCE |
| 17139 * UNKNOWN |
| 17140 * WRITE |
| 17141 * } |
| 17065 * | 17142 * |
| 17066 * Clients may not extend, implement or mix-in this class. | 17143 * Clients may not extend, implement or mix-in this class. |
| 17067 */ | 17144 */ |
| 17068 class ConvertGetterToMethodFeedback extends RefactoringFeedback { | 17145 class SearchResultKind implements Enum { |
| 17069 @override | 17146 /** |
| 17070 bool operator ==(other) { | 17147 * The declaration of an element. |
| 17071 if (other is ConvertGetterToMethodFeedback) { | 17148 */ |
| 17072 return true; | 17149 static const SearchResultKind DECLARATION = |
| 17073 } | 17150 const SearchResultKind._("DECLARATION"); |
| 17074 return false; | 17151 |
| 17075 } | 17152 /** |
| 17076 | 17153 * The invocation of a function or method. |
| 17077 @override | 17154 */ |
| 17078 int get hashCode { | 17155 static const SearchResultKind INVOCATION = |
| 17079 return 616032599; | 17156 const SearchResultKind._("INVOCATION"); |
| 17080 } | 17157 |
| 17158 /** |
| 17159 * A reference to a field, parameter or variable where it is being read. |
| 17160 */ |
| 17161 static const SearchResultKind READ = const SearchResultKind._("READ"); |
| 17162 |
| 17163 /** |
| 17164 * A reference to a field, parameter or variable where it is being read and |
| 17165 * written. |
| 17166 */ |
| 17167 static const SearchResultKind READ_WRITE = |
| 17168 const SearchResultKind._("READ_WRITE"); |
| 17169 |
| 17170 /** |
| 17171 * A reference to an element. |
| 17172 */ |
| 17173 static const SearchResultKind REFERENCE = |
| 17174 const SearchResultKind._("REFERENCE"); |
| 17175 |
| 17176 /** |
| 17177 * Some other kind of search result. |
| 17178 */ |
| 17179 static const SearchResultKind UNKNOWN = const SearchResultKind._("UNKNOWN"); |
| 17180 |
| 17181 /** |
| 17182 * A reference to a field, parameter or variable where it is being written. |
| 17183 */ |
| 17184 static const SearchResultKind WRITE = const SearchResultKind._("WRITE"); |
| 17185 |
| 17186 /** |
| 17187 * A list containing all of the enum values that are defined. |
| 17188 */ |
| 17189 static const List<SearchResultKind> VALUES = const <SearchResultKind>[ |
| 17190 DECLARATION, |
| 17191 INVOCATION, |
| 17192 READ, |
| 17193 READ_WRITE, |
| 17194 REFERENCE, |
| 17195 UNKNOWN, |
| 17196 WRITE |
| 17197 ]; |
| 17198 |
| 17199 @override |
| 17200 final String name; |
| 17201 |
| 17202 const SearchResultKind._(this.name); |
| 17203 |
| 17204 factory SearchResultKind(String name) { |
| 17205 switch (name) { |
| 17206 case "DECLARATION": |
| 17207 return DECLARATION; |
| 17208 case "INVOCATION": |
| 17209 return INVOCATION; |
| 17210 case "READ": |
| 17211 return READ; |
| 17212 case "READ_WRITE": |
| 17213 return READ_WRITE; |
| 17214 case "REFERENCE": |
| 17215 return REFERENCE; |
| 17216 case "UNKNOWN": |
| 17217 return UNKNOWN; |
| 17218 case "WRITE": |
| 17219 return WRITE; |
| 17220 } |
| 17221 throw new Exception('Illegal enum value: $name'); |
| 17222 } |
| 17223 |
| 17224 factory SearchResultKind.fromJson( |
| 17225 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 17226 if (json is String) { |
| 17227 try { |
| 17228 return new SearchResultKind(json); |
| 17229 } catch (_) { |
| 17230 // Fall through |
| 17231 } |
| 17232 } |
| 17233 throw jsonDecoder.mismatch(jsonPath, "SearchResultKind", json); |
| 17234 } |
| 17235 |
| 17236 @override |
| 17237 String toString() => "SearchResultKind.$name"; |
| 17238 |
| 17239 String toJson() => name; |
| 17081 } | 17240 } |
| 17082 | 17241 |
| 17083 /** | 17242 /** |
| 17084 * convertGetterToMethod options | 17243 * search.results params |
| 17244 * |
| 17245 * { |
| 17246 * "id": SearchId |
| 17247 * "results": List<SearchResult> |
| 17248 * "isLast": bool |
| 17249 * } |
| 17085 * | 17250 * |
| 17086 * Clients may not extend, implement or mix-in this class. | 17251 * Clients may not extend, implement or mix-in this class. |
| 17087 */ | 17252 */ |
| 17088 class ConvertGetterToMethodOptions extends RefactoringOptions { | 17253 class SearchResultsParams implements HasToJson { |
| 17089 @override | 17254 String _id; |
| 17090 bool operator ==(other) { | 17255 |
| 17091 if (other is ConvertGetterToMethodOptions) { | 17256 List<SearchResult> _results; |
| 17092 return true; | 17257 |
| 17093 } | 17258 bool _isLast; |
| 17094 return false; | 17259 |
| 17095 } | 17260 /** |
| 17096 | 17261 * The id associated with the search. |
| 17097 @override | 17262 */ |
| 17098 int get hashCode { | 17263 String get id => _id; |
| 17099 return 488848400; | 17264 |
| 17100 } | 17265 /** |
| 17101 } | 17266 * The id associated with the search. |
| 17102 | 17267 */ |
| 17103 /** | 17268 void set id(String value) { |
| 17104 * convertMethodToGetter feedback | |
| 17105 * | |
| 17106 * Clients may not extend, implement or mix-in this class. | |
| 17107 */ | |
| 17108 class ConvertMethodToGetterFeedback extends RefactoringFeedback { | |
| 17109 @override | |
| 17110 bool operator ==(other) { | |
| 17111 if (other is ConvertMethodToGetterFeedback) { | |
| 17112 return true; | |
| 17113 } | |
| 17114 return false; | |
| 17115 } | |
| 17116 | |
| 17117 @override | |
| 17118 int get hashCode { | |
| 17119 return 165291526; | |
| 17120 } | |
| 17121 } | |
| 17122 | |
| 17123 /** | |
| 17124 * convertMethodToGetter options | |
| 17125 * | |
| 17126 * Clients may not extend, implement or mix-in this class. | |
| 17127 */ | |
| 17128 class ConvertMethodToGetterOptions extends RefactoringOptions { | |
| 17129 @override | |
| 17130 bool operator ==(other) { | |
| 17131 if (other is ConvertMethodToGetterOptions) { | |
| 17132 return true; | |
| 17133 } | |
| 17134 return false; | |
| 17135 } | |
| 17136 | |
| 17137 @override | |
| 17138 int get hashCode { | |
| 17139 return 27952290; | |
| 17140 } | |
| 17141 } | |
| 17142 | |
| 17143 /** | |
| 17144 * extractLocalVariable feedback | |
| 17145 * | |
| 17146 * { | |
| 17147 * "coveringExpressionOffsets": optional List<int> | |
| 17148 * "coveringExpressionLengths": optional List<int> | |
| 17149 * "names": List<String> | |
| 17150 * "offsets": List<int> | |
| 17151 * "lengths": List<int> | |
| 17152 * } | |
| 17153 * | |
| 17154 * Clients may not extend, implement or mix-in this class. | |
| 17155 */ | |
| 17156 class ExtractLocalVariableFeedback extends RefactoringFeedback { | |
| 17157 List<int> _coveringExpressionOffsets; | |
| 17158 | |
| 17159 List<int> _coveringExpressionLengths; | |
| 17160 | |
| 17161 List<String> _names; | |
| 17162 | |
| 17163 List<int> _offsets; | |
| 17164 | |
| 17165 List<int> _lengths; | |
| 17166 | |
| 17167 /** | |
| 17168 * The offsets of the expressions that cover the specified selection, from | |
| 17169 * the down most to the up most. | |
| 17170 */ | |
| 17171 List<int> get coveringExpressionOffsets => _coveringExpressionOffsets; | |
| 17172 | |
| 17173 /** | |
| 17174 * The offsets of the expressions that cover the specified selection, from | |
| 17175 * the down most to the up most. | |
| 17176 */ | |
| 17177 void set coveringExpressionOffsets(List<int> value) { | |
| 17178 this._coveringExpressionOffsets = value; | |
| 17179 } | |
| 17180 | |
| 17181 /** | |
| 17182 * The lengths of the expressions that cover the specified selection, from | |
| 17183 * the down most to the up most. | |
| 17184 */ | |
| 17185 List<int> get coveringExpressionLengths => _coveringExpressionLengths; | |
| 17186 | |
| 17187 /** | |
| 17188 * The lengths of the expressions that cover the specified selection, from | |
| 17189 * the down most to the up most. | |
| 17190 */ | |
| 17191 void set coveringExpressionLengths(List<int> value) { | |
| 17192 this._coveringExpressionLengths = value; | |
| 17193 } | |
| 17194 | |
| 17195 /** | |
| 17196 * The proposed names for the local variable. | |
| 17197 */ | |
| 17198 List<String> get names => _names; | |
| 17199 | |
| 17200 /** | |
| 17201 * The proposed names for the local variable. | |
| 17202 */ | |
| 17203 void set names(List<String> value) { | |
| 17204 assert(value != null); | 17269 assert(value != null); |
| 17205 this._names = value; | 17270 this._id = value; |
| 17206 } | 17271 } |
| 17207 | 17272 |
| 17208 /** | 17273 /** |
| 17209 * The offsets of the expressions that would be replaced by a reference to | 17274 * The search results being reported. |
| 17210 * the variable. | 17275 */ |
| 17211 */ | 17276 List<SearchResult> get results => _results; |
| 17212 List<int> get offsets => _offsets; | 17277 |
| 17213 | 17278 /** |
| 17214 /** | 17279 * The search results being reported. |
| 17215 * The offsets of the expressions that would be replaced by a reference to | 17280 */ |
| 17216 * the variable. | 17281 void set results(List<SearchResult> value) { |
| 17217 */ | |
| 17218 void set offsets(List<int> value) { | |
| 17219 assert(value != null); | 17282 assert(value != null); |
| 17220 this._offsets = value; | 17283 this._results = value; |
| 17221 } | 17284 } |
| 17222 | 17285 |
| 17223 /** | 17286 /** |
| 17224 * The lengths of the expressions that would be replaced by a reference to | 17287 * True if this is that last set of results that will be returned for the |
| 17225 * the variable. The lengths correspond to the offsets. In other words, for a | 17288 * indicated search. |
| 17226 * given expression, if the offset of that expression is offsets[i], then the | 17289 */ |
| 17227 * length of that expression is lengths[i]. | 17290 bool get isLast => _isLast; |
| 17228 */ | 17291 |
| 17229 List<int> get lengths => _lengths; | 17292 /** |
| 17230 | 17293 * True if this is that last set of results that will be returned for the |
| 17231 /** | 17294 * indicated search. |
| 17232 * The lengths of the expressions that would be replaced by a reference to | 17295 */ |
| 17233 * the variable. The lengths correspond to the offsets. In other words, for a | 17296 void set isLast(bool value) { |
| 17234 * given expression, if the offset of that expression is offsets[i], then the | |
| 17235 * length of that expression is lengths[i]. | |
| 17236 */ | |
| 17237 void set lengths(List<int> value) { | |
| 17238 assert(value != null); | 17297 assert(value != null); |
| 17239 this._lengths = value; | 17298 this._isLast = value; |
| 17240 } | 17299 } |
| 17241 | 17300 |
| 17242 ExtractLocalVariableFeedback( | 17301 SearchResultsParams(String id, List<SearchResult> results, bool isLast) { |
| 17243 List<String> names, List<int> offsets, List<int> lengths, | 17302 this.id = id; |
| 17244 {List<int> coveringExpressionOffsets, | 17303 this.results = results; |
| 17245 List<int> coveringExpressionLengths}) { | 17304 this.isLast = isLast; |
| 17246 this.coveringExpressionOffsets = coveringExpressionOffsets; | 17305 } |
| 17247 this.coveringExpressionLengths = coveringExpressionLengths; | 17306 |
| 17248 this.names = names; | 17307 factory SearchResultsParams.fromJson( |
| 17249 this.offsets = offsets; | |
| 17250 this.lengths = lengths; | |
| 17251 } | |
| 17252 | |
| 17253 factory ExtractLocalVariableFeedback.fromJson( | |
| 17254 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 17308 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 17255 if (json == null) { | 17309 if (json == null) { |
| 17256 json = {}; | 17310 json = {}; |
| 17257 } | 17311 } |
| 17258 if (json is Map) { | 17312 if (json is Map) { |
| 17259 List<int> coveringExpressionOffsets; | 17313 String id; |
| 17260 if (json.containsKey("coveringExpressionOffsets")) { | 17314 if (json.containsKey("id")) { |
| 17261 coveringExpressionOffsets = jsonDecoder.decodeList( | 17315 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); |
| 17262 jsonPath + ".coveringExpressionOffsets", | |
| 17263 json["coveringExpressionOffsets"], | |
| 17264 jsonDecoder.decodeInt); | |
| 17265 } | |
| 17266 List<int> coveringExpressionLengths; | |
| 17267 if (json.containsKey("coveringExpressionLengths")) { | |
| 17268 coveringExpressionLengths = jsonDecoder.decodeList( | |
| 17269 jsonPath + ".coveringExpressionLengths", | |
| 17270 json["coveringExpressionLengths"], | |
| 17271 jsonDecoder.decodeInt); | |
| 17272 } | |
| 17273 List<String> names; | |
| 17274 if (json.containsKey("names")) { | |
| 17275 names = jsonDecoder.decodeList( | |
| 17276 jsonPath + ".names", json["names"], jsonDecoder.decodeString); | |
| 17277 } else { | 17316 } else { |
| 17278 throw jsonDecoder.missingKey(jsonPath, "names"); | 17317 throw jsonDecoder.mismatch(jsonPath, "id"); |
| 17279 } | 17318 } |
| 17280 List<int> offsets; | 17319 List<SearchResult> results; |
| 17281 if (json.containsKey("offsets")) { | 17320 if (json.containsKey("results")) { |
| 17282 offsets = jsonDecoder.decodeList( | 17321 results = jsonDecoder.decodeList( |
| 17283 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt); | 17322 jsonPath + ".results", |
| 17323 json["results"], |
| 17324 (String jsonPath, Object json) => |
| 17325 new SearchResult.fromJson(jsonDecoder, jsonPath, json)); |
| 17284 } else { | 17326 } else { |
| 17285 throw jsonDecoder.missingKey(jsonPath, "offsets"); | 17327 throw jsonDecoder.mismatch(jsonPath, "results"); |
| 17286 } | 17328 } |
| 17287 List<int> lengths; | 17329 bool isLast; |
| 17288 if (json.containsKey("lengths")) { | 17330 if (json.containsKey("isLast")) { |
| 17289 lengths = jsonDecoder.decodeList( | 17331 isLast = jsonDecoder.decodeBool(jsonPath + ".isLast", json["isLast"]); |
| 17290 jsonPath + ".lengths", json["lengths"], jsonDecoder.decodeInt); | |
| 17291 } else { | 17332 } else { |
| 17292 throw jsonDecoder.missingKey(jsonPath, "lengths"); | 17333 throw jsonDecoder.mismatch(jsonPath, "isLast"); |
| 17293 } | 17334 } |
| 17294 return new ExtractLocalVariableFeedback(names, offsets, lengths, | 17335 return new SearchResultsParams(id, results, isLast); |
| 17295 coveringExpressionOffsets: coveringExpressionOffsets, | |
| 17296 coveringExpressionLengths: coveringExpressionLengths); | |
| 17297 } else { | 17336 } else { |
| 17298 throw jsonDecoder.mismatch( | 17337 throw jsonDecoder.mismatch(jsonPath, "search.results params", json); |
| 17299 jsonPath, "extractLocalVariable feedback", json); | 17338 } |
| 17300 } | 17339 } |
| 17301 } | 17340 |
| 17302 | 17341 factory SearchResultsParams.fromNotification(Notification notification) { |
| 17342 return new SearchResultsParams.fromJson( |
| 17343 new ResponseDecoder(null), "params", notification.params); |
| 17344 } |
| 17345 |
| 17346 @override |
| 17303 Map<String, dynamic> toJson() { | 17347 Map<String, dynamic> toJson() { |
| 17304 Map<String, dynamic> result = {}; | 17348 Map<String, dynamic> result = {}; |
| 17305 if (coveringExpressionOffsets != null) { | 17349 result["id"] = id; |
| 17306 result["coveringExpressionOffsets"] = coveringExpressionOffsets; | 17350 result["results"] = |
| 17307 } | 17351 results.map((SearchResult value) => value.toJson()).toList(); |
| 17308 if (coveringExpressionLengths != null) { | 17352 result["isLast"] = isLast; |
| 17309 result["coveringExpressionLengths"] = coveringExpressionLengths; | |
| 17310 } | |
| 17311 result["names"] = names; | |
| 17312 result["offsets"] = offsets; | |
| 17313 result["lengths"] = lengths; | |
| 17314 return result; | 17353 return result; |
| 17315 } | 17354 } |
| 17316 | 17355 |
| 17317 @override | 17356 Notification toNotification() { |
| 17357 return new Notification("search.results", toJson()); |
| 17358 } |
| 17359 |
| 17360 @override |
| 17318 String toString() => JSON.encode(toJson()); | 17361 String toString() => JSON.encode(toJson()); |
| 17319 | 17362 |
| 17320 @override | 17363 @override |
| 17321 bool operator ==(other) { | 17364 bool operator ==(other) { |
| 17322 if (other is ExtractLocalVariableFeedback) { | 17365 if (other is SearchResultsParams) { |
| 17323 return listEqual(coveringExpressionOffsets, | 17366 return id == other.id && |
| 17324 other.coveringExpressionOffsets, (int a, int b) => a == b) && | 17367 listEqual(results, other.results, |
| 17325 listEqual(coveringExpressionLengths, other.coveringExpressionLengths, | 17368 (SearchResult a, SearchResult b) => a == b) && |
| 17326 (int a, int b) => a == b) && | 17369 isLast == other.isLast; |
| 17327 listEqual(names, other.names, (String a, String b) => a == b) && | |
| 17328 listEqual(offsets, other.offsets, (int a, int b) => a == b) && | |
| 17329 listEqual(lengths, other.lengths, (int a, int b) => a == b); | |
| 17330 } | 17370 } |
| 17331 return false; | 17371 return false; |
| 17332 } | 17372 } |
| 17333 | 17373 |
| 17334 @override | 17374 @override |
| 17335 int get hashCode { | 17375 int get hashCode { |
| 17336 int hash = 0; | 17376 int hash = 0; |
| 17337 hash = JenkinsSmiHash.combine(hash, coveringExpressionOffsets.hashCode); | 17377 hash = JenkinsSmiHash.combine(hash, id.hashCode); |
| 17338 hash = JenkinsSmiHash.combine(hash, coveringExpressionLengths.hashCode); | 17378 hash = JenkinsSmiHash.combine(hash, results.hashCode); |
| 17339 hash = JenkinsSmiHash.combine(hash, names.hashCode); | 17379 hash = JenkinsSmiHash.combine(hash, isLast.hashCode); |
| 17340 hash = JenkinsSmiHash.combine(hash, offsets.hashCode); | |
| 17341 hash = JenkinsSmiHash.combine(hash, lengths.hashCode); | |
| 17342 return JenkinsSmiHash.finish(hash); | 17380 return JenkinsSmiHash.finish(hash); |
| 17343 } | 17381 } |
| 17344 } | 17382 } |
| 17345 | 17383 |
| 17346 /** | 17384 /** |
| 17347 * extractLocalVariable options | 17385 * server.connected params |
| 17348 * | 17386 * |
| 17349 * { | 17387 * { |
| 17350 * "name": String | 17388 * "version": String |
| 17351 * "extractAll": bool | 17389 * "pid": int |
| 17390 * "sessionId": optional String |
| 17352 * } | 17391 * } |
| 17353 * | 17392 * |
| 17354 * Clients may not extend, implement or mix-in this class. | 17393 * Clients may not extend, implement or mix-in this class. |
| 17355 */ | 17394 */ |
| 17356 class ExtractLocalVariableOptions extends RefactoringOptions { | 17395 class ServerConnectedParams implements HasToJson { |
| 17357 String _name; | 17396 String _version; |
| 17358 | 17397 |
| 17359 bool _extractAll; | 17398 int _pid; |
| 17399 |
| 17400 String _sessionId; |
| 17360 | 17401 |
| 17361 /** | 17402 /** |
| 17362 * The name that the local variable should be given. | 17403 * The version number of the analysis server. |
| 17363 */ | 17404 */ |
| 17364 String get name => _name; | 17405 String get version => _version; |
| 17365 | 17406 |
| 17366 /** | 17407 /** |
| 17367 * The name that the local variable should be given. | 17408 * The version number of the analysis server. |
| 17368 */ | 17409 */ |
| 17369 void set name(String value) { | 17410 void set version(String value) { |
| 17370 assert(value != null); | 17411 assert(value != null); |
| 17371 this._name = value; | 17412 this._version = value; |
| 17372 } | 17413 } |
| 17373 | 17414 |
| 17374 /** | 17415 /** |
| 17375 * True if all occurrences of the expression within the scope in which the | 17416 * The process id of the analysis server process. |
| 17376 * variable will be defined should be replaced by a reference to the local | |
| 17377 * variable. The expression used to initiate the refactoring will always be | |
| 17378 * replaced. | |
| 17379 */ | 17417 */ |
| 17380 bool get extractAll => _extractAll; | 17418 int get pid => _pid; |
| 17381 | 17419 |
| 17382 /** | 17420 /** |
| 17383 * True if all occurrences of the expression within the scope in which the | 17421 * The process id of the analysis server process. |
| 17384 * variable will be defined should be replaced by a reference to the local | |
| 17385 * variable. The expression used to initiate the refactoring will always be | |
| 17386 * replaced. | |
| 17387 */ | 17422 */ |
| 17388 void set extractAll(bool value) { | 17423 void set pid(int value) { |
| 17389 assert(value != null); | 17424 assert(value != null); |
| 17390 this._extractAll = value; | 17425 this._pid = value; |
| 17391 } | 17426 } |
| 17392 | 17427 |
| 17393 ExtractLocalVariableOptions(String name, bool extractAll) { | 17428 /** |
| 17394 this.name = name; | 17429 * The session id for this session. |
| 17395 this.extractAll = extractAll; | 17430 */ |
| 17431 String get sessionId => _sessionId; |
| 17432 |
| 17433 /** |
| 17434 * The session id for this session. |
| 17435 */ |
| 17436 void set sessionId(String value) { |
| 17437 this._sessionId = value; |
| 17396 } | 17438 } |
| 17397 | 17439 |
| 17398 factory ExtractLocalVariableOptions.fromJson( | 17440 ServerConnectedParams(String version, int pid, {String sessionId}) { |
| 17441 this.version = version; |
| 17442 this.pid = pid; |
| 17443 this.sessionId = sessionId; |
| 17444 } |
| 17445 |
| 17446 factory ServerConnectedParams.fromJson( |
| 17399 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 17447 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 17400 if (json == null) { | 17448 if (json == null) { |
| 17401 json = {}; | 17449 json = {}; |
| 17402 } | 17450 } |
| 17403 if (json is Map) { | 17451 if (json is Map) { |
| 17404 String name; | 17452 String version; |
| 17405 if (json.containsKey("name")) { | 17453 if (json.containsKey("version")) { |
| 17406 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | 17454 version = |
| 17455 jsonDecoder.decodeString(jsonPath + ".version", json["version"]); |
| 17407 } else { | 17456 } else { |
| 17408 throw jsonDecoder.missingKey(jsonPath, "name"); | 17457 throw jsonDecoder.mismatch(jsonPath, "version"); |
| 17409 } | 17458 } |
| 17410 bool extractAll; | 17459 int pid; |
| 17411 if (json.containsKey("extractAll")) { | 17460 if (json.containsKey("pid")) { |
| 17412 extractAll = jsonDecoder.decodeBool( | 17461 pid = jsonDecoder.decodeInt(jsonPath + ".pid", json["pid"]); |
| 17413 jsonPath + ".extractAll", json["extractAll"]); | |
| 17414 } else { | 17462 } else { |
| 17415 throw jsonDecoder.missingKey(jsonPath, "extractAll"); | 17463 throw jsonDecoder.mismatch(jsonPath, "pid"); |
| 17416 } | 17464 } |
| 17417 return new ExtractLocalVariableOptions(name, extractAll); | 17465 String sessionId; |
| 17466 if (json.containsKey("sessionId")) { |
| 17467 sessionId = jsonDecoder.decodeString( |
| 17468 jsonPath + ".sessionId", json["sessionId"]); |
| 17469 } |
| 17470 return new ServerConnectedParams(version, pid, sessionId: sessionId); |
| 17418 } else { | 17471 } else { |
| 17419 throw jsonDecoder.mismatch( | 17472 throw jsonDecoder.mismatch(jsonPath, "server.connected params", json); |
| 17420 jsonPath, "extractLocalVariable options", json); | |
| 17421 } | 17473 } |
| 17422 } | 17474 } |
| 17423 | 17475 |
| 17424 factory ExtractLocalVariableOptions.fromRefactoringParams( | 17476 factory ServerConnectedParams.fromNotification(Notification notification) { |
| 17425 EditGetRefactoringParams refactoringParams, Request request) { | 17477 return new ServerConnectedParams.fromJson( |
| 17426 return new ExtractLocalVariableOptions.fromJson( | 17478 new ResponseDecoder(null), "params", notification.params); |
| 17427 new RequestDecoder(request), "options", refactoringParams.options); | |
| 17428 } | 17479 } |
| 17429 | 17480 |
| 17481 @override |
| 17430 Map<String, dynamic> toJson() { | 17482 Map<String, dynamic> toJson() { |
| 17431 Map<String, dynamic> result = {}; | 17483 Map<String, dynamic> result = {}; |
| 17432 result["name"] = name; | 17484 result["version"] = version; |
| 17433 result["extractAll"] = extractAll; | 17485 result["pid"] = pid; |
| 17486 if (sessionId != null) { |
| 17487 result["sessionId"] = sessionId; |
| 17488 } |
| 17434 return result; | 17489 return result; |
| 17435 } | 17490 } |
| 17436 | 17491 |
| 17492 Notification toNotification() { |
| 17493 return new Notification("server.connected", toJson()); |
| 17494 } |
| 17495 |
| 17437 @override | 17496 @override |
| 17438 String toString() => JSON.encode(toJson()); | 17497 String toString() => JSON.encode(toJson()); |
| 17439 | 17498 |
| 17440 @override | 17499 @override |
| 17441 bool operator ==(other) { | 17500 bool operator ==(other) { |
| 17442 if (other is ExtractLocalVariableOptions) { | 17501 if (other is ServerConnectedParams) { |
| 17443 return name == other.name && extractAll == other.extractAll; | 17502 return version == other.version && |
| 17503 pid == other.pid && |
| 17504 sessionId == other.sessionId; |
| 17444 } | 17505 } |
| 17445 return false; | 17506 return false; |
| 17446 } | 17507 } |
| 17447 | 17508 |
| 17448 @override | 17509 @override |
| 17449 int get hashCode { | 17510 int get hashCode { |
| 17450 int hash = 0; | 17511 int hash = 0; |
| 17451 hash = JenkinsSmiHash.combine(hash, name.hashCode); | 17512 hash = JenkinsSmiHash.combine(hash, version.hashCode); |
| 17452 hash = JenkinsSmiHash.combine(hash, extractAll.hashCode); | 17513 hash = JenkinsSmiHash.combine(hash, pid.hashCode); |
| 17514 hash = JenkinsSmiHash.combine(hash, sessionId.hashCode); |
| 17453 return JenkinsSmiHash.finish(hash); | 17515 return JenkinsSmiHash.finish(hash); |
| 17454 } | 17516 } |
| 17455 } | 17517 } |
| 17456 | 17518 |
| 17457 /** | 17519 /** |
| 17458 * extractMethod feedback | 17520 * server.error params |
| 17459 * | 17521 * |
| 17460 * { | 17522 * { |
| 17461 * "offset": int | 17523 * "isFatal": bool |
| 17462 * "length": int | 17524 * "message": String |
| 17463 * "returnType": String | 17525 * "stackTrace": String |
| 17464 * "names": List<String> | |
| 17465 * "canCreateGetter": bool | |
| 17466 * "parameters": List<RefactoringMethodParameter> | |
| 17467 * "offsets": List<int> | |
| 17468 * "lengths": List<int> | |
| 17469 * } | 17526 * } |
| 17470 * | 17527 * |
| 17471 * Clients may not extend, implement or mix-in this class. | 17528 * Clients may not extend, implement or mix-in this class. |
| 17472 */ | 17529 */ |
| 17473 class ExtractMethodFeedback extends RefactoringFeedback { | 17530 class ServerErrorParams implements HasToJson { |
| 17474 int _offset; | 17531 bool _isFatal; |
| 17475 | 17532 |
| 17476 int _length; | 17533 String _message; |
| 17477 | 17534 |
| 17478 String _returnType; | 17535 String _stackTrace; |
| 17479 | 17536 |
| 17480 List<String> _names; | 17537 /** |
| 17481 | 17538 * True if the error is a fatal error, meaning that the server will shutdown |
| 17482 bool _canCreateGetter; | 17539 * automatically after sending this notification. |
| 17483 | 17540 */ |
| 17484 List<RefactoringMethodParameter> _parameters; | 17541 bool get isFatal => _isFatal; |
| 17485 | 17542 |
| 17486 List<int> _offsets; | 17543 /** |
| 17487 | 17544 * True if the error is a fatal error, meaning that the server will shutdown |
| 17488 List<int> _lengths; | 17545 * automatically after sending this notification. |
| 17489 | 17546 */ |
| 17490 /** | 17547 void set isFatal(bool value) { |
| 17491 * The offset to the beginning of the expression or statements that will be | 17548 assert(value != null); |
| 17492 * extracted. | 17549 this._isFatal = value; |
| 17493 */ | 17550 } |
| 17494 int get offset => _offset; | 17551 |
| 17495 | 17552 /** |
| 17496 /** | 17553 * The error message indicating what kind of error was encountered. |
| 17497 * The offset to the beginning of the expression or statements that will be | 17554 */ |
| 17498 * extracted. | 17555 String get message => _message; |
| 17499 */ | 17556 |
| 17500 void set offset(int value) { | 17557 /** |
| 17501 assert(value != null); | 17558 * The error message indicating what kind of error was encountered. |
| 17502 this._offset = value; | 17559 */ |
| 17503 } | 17560 void set message(String value) { |
| 17504 | 17561 assert(value != null); |
| 17505 /** | 17562 this._message = value; |
| 17506 * The length of the expression or statements that will be extracted. | 17563 } |
| 17507 */ | 17564 |
| 17508 int get length => _length; | 17565 /** |
| 17509 | 17566 * The stack trace associated with the generation of the error, used for |
| 17510 /** | 17567 * debugging the server. |
| 17511 * The length of the expression or statements that will be extracted. | 17568 */ |
| 17512 */ | 17569 String get stackTrace => _stackTrace; |
| 17513 void set length(int value) { | 17570 |
| 17514 assert(value != null); | 17571 /** |
| 17515 this._length = value; | 17572 * The stack trace associated with the generation of the error, used for |
| 17516 } | 17573 * debugging the server. |
| 17517 | 17574 */ |
| 17518 /** | 17575 void set stackTrace(String value) { |
| 17519 * The proposed return type for the method. If the returned element does not | 17576 assert(value != null); |
| 17520 * have a declared return type, this field will contain an empty string. | 17577 this._stackTrace = value; |
| 17521 */ | 17578 } |
| 17522 String get returnType => _returnType; | 17579 |
| 17523 | 17580 ServerErrorParams(bool isFatal, String message, String stackTrace) { |
| 17524 /** | 17581 this.isFatal = isFatal; |
| 17525 * The proposed return type for the method. If the returned element does not | 17582 this.message = message; |
| 17526 * have a declared return type, this field will contain an empty string. | 17583 this.stackTrace = stackTrace; |
| 17527 */ | 17584 } |
| 17528 void set returnType(String value) { | 17585 |
| 17529 assert(value != null); | 17586 factory ServerErrorParams.fromJson( |
| 17530 this._returnType = value; | |
| 17531 } | |
| 17532 | |
| 17533 /** | |
| 17534 * The proposed names for the method. | |
| 17535 */ | |
| 17536 List<String> get names => _names; | |
| 17537 | |
| 17538 /** | |
| 17539 * The proposed names for the method. | |
| 17540 */ | |
| 17541 void set names(List<String> value) { | |
| 17542 assert(value != null); | |
| 17543 this._names = value; | |
| 17544 } | |
| 17545 | |
| 17546 /** | |
| 17547 * True if a getter could be created rather than a method. | |
| 17548 */ | |
| 17549 bool get canCreateGetter => _canCreateGetter; | |
| 17550 | |
| 17551 /** | |
| 17552 * True if a getter could be created rather than a method. | |
| 17553 */ | |
| 17554 void set canCreateGetter(bool value) { | |
| 17555 assert(value != null); | |
| 17556 this._canCreateGetter = value; | |
| 17557 } | |
| 17558 | |
| 17559 /** | |
| 17560 * The proposed parameters for the method. | |
| 17561 */ | |
| 17562 List<RefactoringMethodParameter> get parameters => _parameters; | |
| 17563 | |
| 17564 /** | |
| 17565 * The proposed parameters for the method. | |
| 17566 */ | |
| 17567 void set parameters(List<RefactoringMethodParameter> value) { | |
| 17568 assert(value != null); | |
| 17569 this._parameters = value; | |
| 17570 } | |
| 17571 | |
| 17572 /** | |
| 17573 * The offsets of the expressions or statements that would be replaced by an | |
| 17574 * invocation of the method. | |
| 17575 */ | |
| 17576 List<int> get offsets => _offsets; | |
| 17577 | |
| 17578 /** | |
| 17579 * The offsets of the expressions or statements that would be replaced by an | |
| 17580 * invocation of the method. | |
| 17581 */ | |
| 17582 void set offsets(List<int> value) { | |
| 17583 assert(value != null); | |
| 17584 this._offsets = value; | |
| 17585 } | |
| 17586 | |
| 17587 /** | |
| 17588 * The lengths of the expressions or statements that would be replaced by an | |
| 17589 * invocation of the method. The lengths correspond to the offsets. In other | |
| 17590 * words, for a given expression (or block of statements), if the offset of | |
| 17591 * that expression is offsets[i], then the length of that expression is | |
| 17592 * lengths[i]. | |
| 17593 */ | |
| 17594 List<int> get lengths => _lengths; | |
| 17595 | |
| 17596 /** | |
| 17597 * The lengths of the expressions or statements that would be replaced by an | |
| 17598 * invocation of the method. The lengths correspond to the offsets. In other | |
| 17599 * words, for a given expression (or block of statements), if the offset of | |
| 17600 * that expression is offsets[i], then the length of that expression is | |
| 17601 * lengths[i]. | |
| 17602 */ | |
| 17603 void set lengths(List<int> value) { | |
| 17604 assert(value != null); | |
| 17605 this._lengths = value; | |
| 17606 } | |
| 17607 | |
| 17608 ExtractMethodFeedback( | |
| 17609 int offset, | |
| 17610 int length, | |
| 17611 String returnType, | |
| 17612 List<String> names, | |
| 17613 bool canCreateGetter, | |
| 17614 List<RefactoringMethodParameter> parameters, | |
| 17615 List<int> offsets, | |
| 17616 List<int> lengths) { | |
| 17617 this.offset = offset; | |
| 17618 this.length = length; | |
| 17619 this.returnType = returnType; | |
| 17620 this.names = names; | |
| 17621 this.canCreateGetter = canCreateGetter; | |
| 17622 this.parameters = parameters; | |
| 17623 this.offsets = offsets; | |
| 17624 this.lengths = lengths; | |
| 17625 } | |
| 17626 | |
| 17627 factory ExtractMethodFeedback.fromJson( | |
| 17628 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 17587 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 17629 if (json == null) { | 17588 if (json == null) { |
| 17630 json = {}; | 17589 json = {}; |
| 17631 } | 17590 } |
| 17632 if (json is Map) { | 17591 if (json is Map) { |
| 17633 int offset; | 17592 bool isFatal; |
| 17634 if (json.containsKey("offset")) { | 17593 if (json.containsKey("isFatal")) { |
| 17635 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 17594 isFatal = |
| 17636 } else { | 17595 jsonDecoder.decodeBool(jsonPath + ".isFatal", json["isFatal"]); |
| 17637 throw jsonDecoder.missingKey(jsonPath, "offset"); | 17596 } else { |
| 17638 } | 17597 throw jsonDecoder.mismatch(jsonPath, "isFatal"); |
| 17639 int length; | 17598 } |
| 17640 if (json.containsKey("length")) { | 17599 String message; |
| 17641 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 17600 if (json.containsKey("message")) { |
| 17642 } else { | 17601 message = |
| 17643 throw jsonDecoder.missingKey(jsonPath, "length"); | 17602 jsonDecoder.decodeString(jsonPath + ".message", json["message"]); |
| 17644 } | 17603 } else { |
| 17645 String returnType; | 17604 throw jsonDecoder.mismatch(jsonPath, "message"); |
| 17646 if (json.containsKey("returnType")) { | 17605 } |
| 17647 returnType = jsonDecoder.decodeString( | 17606 String stackTrace; |
| 17648 jsonPath + ".returnType", json["returnType"]); | 17607 if (json.containsKey("stackTrace")) { |
| 17649 } else { | 17608 stackTrace = jsonDecoder.decodeString( |
| 17650 throw jsonDecoder.missingKey(jsonPath, "returnType"); | 17609 jsonPath + ".stackTrace", json["stackTrace"]); |
| 17651 } | 17610 } else { |
| 17652 List<String> names; | 17611 throw jsonDecoder.mismatch(jsonPath, "stackTrace"); |
| 17653 if (json.containsKey("names")) { | 17612 } |
| 17654 names = jsonDecoder.decodeList( | 17613 return new ServerErrorParams(isFatal, message, stackTrace); |
| 17655 jsonPath + ".names", json["names"], jsonDecoder.decodeString); | |
| 17656 } else { | |
| 17657 throw jsonDecoder.missingKey(jsonPath, "names"); | |
| 17658 } | |
| 17659 bool canCreateGetter; | |
| 17660 if (json.containsKey("canCreateGetter")) { | |
| 17661 canCreateGetter = jsonDecoder.decodeBool( | |
| 17662 jsonPath + ".canCreateGetter", json["canCreateGetter"]); | |
| 17663 } else { | |
| 17664 throw jsonDecoder.missingKey(jsonPath, "canCreateGetter"); | |
| 17665 } | |
| 17666 List<RefactoringMethodParameter> parameters; | |
| 17667 if (json.containsKey("parameters")) { | |
| 17668 parameters = jsonDecoder.decodeList( | |
| 17669 jsonPath + ".parameters", | |
| 17670 json["parameters"], | |
| 17671 (String jsonPath, Object json) => | |
| 17672 new RefactoringMethodParameter.fromJson( | |
| 17673 jsonDecoder, jsonPath, json)); | |
| 17674 } else { | |
| 17675 throw jsonDecoder.missingKey(jsonPath, "parameters"); | |
| 17676 } | |
| 17677 List<int> offsets; | |
| 17678 if (json.containsKey("offsets")) { | |
| 17679 offsets = jsonDecoder.decodeList( | |
| 17680 jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt); | |
| 17681 } else { | |
| 17682 throw jsonDecoder.missingKey(jsonPath, "offsets"); | |
| 17683 } | |
| 17684 List<int> lengths; | |
| 17685 if (json.containsKey("lengths")) { | |
| 17686 lengths = jsonDecoder.decodeList( | |
| 17687 jsonPath + ".lengths", json["lengths"], jsonDecoder.decodeInt); | |
| 17688 } else { | |
| 17689 throw jsonDecoder.missingKey(jsonPath, "lengths"); | |
| 17690 } | |
| 17691 return new ExtractMethodFeedback(offset, length, returnType, names, | |
| 17692 canCreateGetter, parameters, offsets, lengths); | |
| 17693 } else { | 17614 } else { |
| 17694 throw jsonDecoder.mismatch(jsonPath, "extractMethod feedback", json); | 17615 throw jsonDecoder.mismatch(jsonPath, "server.error params", json); |
| 17695 } | 17616 } |
| 17696 } | 17617 } |
| 17697 | 17618 |
| 17619 factory ServerErrorParams.fromNotification(Notification notification) { |
| 17620 return new ServerErrorParams.fromJson( |
| 17621 new ResponseDecoder(null), "params", notification.params); |
| 17622 } |
| 17623 |
| 17624 @override |
| 17698 Map<String, dynamic> toJson() { | 17625 Map<String, dynamic> toJson() { |
| 17699 Map<String, dynamic> result = {}; | 17626 Map<String, dynamic> result = {}; |
| 17700 result["offset"] = offset; | 17627 result["isFatal"] = isFatal; |
| 17701 result["length"] = length; | 17628 result["message"] = message; |
| 17702 result["returnType"] = returnType; | 17629 result["stackTrace"] = stackTrace; |
| 17703 result["names"] = names; | |
| 17704 result["canCreateGetter"] = canCreateGetter; | |
| 17705 result["parameters"] = parameters | |
| 17706 .map((RefactoringMethodParameter value) => value.toJson()) | |
| 17707 .toList(); | |
| 17708 result["offsets"] = offsets; | |
| 17709 result["lengths"] = lengths; | |
| 17710 return result; | 17630 return result; |
| 17711 } | 17631 } |
| 17712 | 17632 |
| 17633 Notification toNotification() { |
| 17634 return new Notification("server.error", toJson()); |
| 17635 } |
| 17636 |
| 17713 @override | 17637 @override |
| 17714 String toString() => JSON.encode(toJson()); | 17638 String toString() => JSON.encode(toJson()); |
| 17715 | 17639 |
| 17716 @override | 17640 @override |
| 17717 bool operator ==(other) { | 17641 bool operator ==(other) { |
| 17718 if (other is ExtractMethodFeedback) { | 17642 if (other is ServerErrorParams) { |
| 17719 return offset == other.offset && | 17643 return isFatal == other.isFatal && |
| 17720 length == other.length && | 17644 message == other.message && |
| 17721 returnType == other.returnType && | 17645 stackTrace == other.stackTrace; |
| 17722 listEqual(names, other.names, (String a, String b) => a == b) && | |
| 17723 canCreateGetter == other.canCreateGetter && | |
| 17724 listEqual( | |
| 17725 parameters, | |
| 17726 other.parameters, | |
| 17727 (RefactoringMethodParameter a, RefactoringMethodParameter b) => | |
| 17728 a == b) && | |
| 17729 listEqual(offsets, other.offsets, (int a, int b) => a == b) && | |
| 17730 listEqual(lengths, other.lengths, (int a, int b) => a == b); | |
| 17731 } | 17646 } |
| 17732 return false; | 17647 return false; |
| 17733 } | 17648 } |
| 17649 |
| 17650 @override |
| 17651 int get hashCode { |
| 17652 int hash = 0; |
| 17653 hash = JenkinsSmiHash.combine(hash, isFatal.hashCode); |
| 17654 hash = JenkinsSmiHash.combine(hash, message.hashCode); |
| 17655 hash = JenkinsSmiHash.combine(hash, stackTrace.hashCode); |
| 17656 return JenkinsSmiHash.finish(hash); |
| 17657 } |
| 17658 } |
| 17659 |
| 17660 /** |
| 17661 * server.getVersion params |
| 17662 * |
| 17663 * Clients may not extend, implement or mix-in this class. |
| 17664 */ |
| 17665 class ServerGetVersionParams implements RequestParams { |
| 17666 @override |
| 17667 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 17668 |
| 17669 @override |
| 17670 Request toRequest(String id) { |
| 17671 return new Request(id, "server.getVersion", null); |
| 17672 } |
| 17673 |
| 17674 @override |
| 17675 bool operator ==(other) { |
| 17676 if (other is ServerGetVersionParams) { |
| 17677 return true; |
| 17678 } |
| 17679 return false; |
| 17680 } |
| 17681 |
| 17682 @override |
| 17683 int get hashCode { |
| 17684 return 55877452; |
| 17685 } |
| 17686 } |
| 17687 |
| 17688 /** |
| 17689 * server.getVersion result |
| 17690 * |
| 17691 * { |
| 17692 * "version": String |
| 17693 * } |
| 17694 * |
| 17695 * Clients may not extend, implement or mix-in this class. |
| 17696 */ |
| 17697 class ServerGetVersionResult implements ResponseResult { |
| 17698 String _version; |
| 17699 |
| 17700 /** |
| 17701 * The version number of the analysis server. |
| 17702 */ |
| 17703 String get version => _version; |
| 17704 |
| 17705 /** |
| 17706 * The version number of the analysis server. |
| 17707 */ |
| 17708 void set version(String value) { |
| 17709 assert(value != null); |
| 17710 this._version = value; |
| 17711 } |
| 17712 |
| 17713 ServerGetVersionResult(String version) { |
| 17714 this.version = version; |
| 17715 } |
| 17716 |
| 17717 factory ServerGetVersionResult.fromJson( |
| 17718 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 17719 if (json == null) { |
| 17720 json = {}; |
| 17721 } |
| 17722 if (json is Map) { |
| 17723 String version; |
| 17724 if (json.containsKey("version")) { |
| 17725 version = |
| 17726 jsonDecoder.decodeString(jsonPath + ".version", json["version"]); |
| 17727 } else { |
| 17728 throw jsonDecoder.mismatch(jsonPath, "version"); |
| 17729 } |
| 17730 return new ServerGetVersionResult(version); |
| 17731 } else { |
| 17732 throw jsonDecoder.mismatch(jsonPath, "server.getVersion result", json); |
| 17733 } |
| 17734 } |
| 17735 |
| 17736 factory ServerGetVersionResult.fromResponse(Response response) { |
| 17737 return new ServerGetVersionResult.fromJson( |
| 17738 new ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), |
| 17739 "result", |
| 17740 response.result); |
| 17741 } |
| 17742 |
| 17743 @override |
| 17744 Map<String, dynamic> toJson() { |
| 17745 Map<String, dynamic> result = {}; |
| 17746 result["version"] = version; |
| 17747 return result; |
| 17748 } |
| 17749 |
| 17750 @override |
| 17751 Response toResponse(String id) { |
| 17752 return new Response(id, result: toJson()); |
| 17753 } |
| 17754 |
| 17755 @override |
| 17756 String toString() => JSON.encode(toJson()); |
| 17757 |
| 17758 @override |
| 17759 bool operator ==(other) { |
| 17760 if (other is ServerGetVersionResult) { |
| 17761 return version == other.version; |
| 17762 } |
| 17763 return false; |
| 17764 } |
| 17734 | 17765 |
| 17735 @override | 17766 @override |
| 17736 int get hashCode { | 17767 int get hashCode { |
| 17737 int hash = 0; | 17768 int hash = 0; |
| 17738 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | 17769 hash = JenkinsSmiHash.combine(hash, version.hashCode); |
| 17739 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
| 17740 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); | |
| 17741 hash = JenkinsSmiHash.combine(hash, names.hashCode); | |
| 17742 hash = JenkinsSmiHash.combine(hash, canCreateGetter.hashCode); | |
| 17743 hash = JenkinsSmiHash.combine(hash, parameters.hashCode); | |
| 17744 hash = JenkinsSmiHash.combine(hash, offsets.hashCode); | |
| 17745 hash = JenkinsSmiHash.combine(hash, lengths.hashCode); | |
| 17746 return JenkinsSmiHash.finish(hash); | 17770 return JenkinsSmiHash.finish(hash); |
| 17747 } | 17771 } |
| 17748 } | 17772 } |
| 17749 | 17773 |
| 17750 /** | 17774 /** |
| 17751 * extractMethod options | 17775 * ServerService |
| 17776 * |
| 17777 * enum { |
| 17778 * STATUS |
| 17779 * } |
| 17780 * |
| 17781 * Clients may not extend, implement or mix-in this class. |
| 17782 */ |
| 17783 class ServerService implements Enum { |
| 17784 static const ServerService STATUS = const ServerService._("STATUS"); |
| 17785 |
| 17786 /** |
| 17787 * A list containing all of the enum values that are defined. |
| 17788 */ |
| 17789 static const List<ServerService> VALUES = const <ServerService>[STATUS]; |
| 17790 |
| 17791 @override |
| 17792 final String name; |
| 17793 |
| 17794 const ServerService._(this.name); |
| 17795 |
| 17796 factory ServerService(String name) { |
| 17797 switch (name) { |
| 17798 case "STATUS": |
| 17799 return STATUS; |
| 17800 } |
| 17801 throw new Exception('Illegal enum value: $name'); |
| 17802 } |
| 17803 |
| 17804 factory ServerService.fromJson( |
| 17805 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 17806 if (json is String) { |
| 17807 try { |
| 17808 return new ServerService(json); |
| 17809 } catch (_) { |
| 17810 // Fall through |
| 17811 } |
| 17812 } |
| 17813 throw jsonDecoder.mismatch(jsonPath, "ServerService", json); |
| 17814 } |
| 17815 |
| 17816 @override |
| 17817 String toString() => "ServerService.$name"; |
| 17818 |
| 17819 String toJson() => name; |
| 17820 } |
| 17821 |
| 17822 /** |
| 17823 * server.setSubscriptions params |
| 17752 * | 17824 * |
| 17753 * { | 17825 * { |
| 17754 * "returnType": String | 17826 * "subscriptions": List<ServerService> |
| 17755 * "createGetter": bool | |
| 17756 * "name": String | |
| 17757 * "parameters": List<RefactoringMethodParameter> | |
| 17758 * "extractAll": bool | |
| 17759 * } | 17827 * } |
| 17760 * | 17828 * |
| 17761 * Clients may not extend, implement or mix-in this class. | 17829 * Clients may not extend, implement or mix-in this class. |
| 17762 */ | 17830 */ |
| 17763 class ExtractMethodOptions extends RefactoringOptions { | 17831 class ServerSetSubscriptionsParams implements RequestParams { |
| 17764 String _returnType; | 17832 List<ServerService> _subscriptions; |
| 17765 | 17833 |
| 17766 bool _createGetter; | 17834 /** |
| 17767 | 17835 * A list of the services being subscribed to. |
| 17768 String _name; | 17836 */ |
| 17769 | 17837 List<ServerService> get subscriptions => _subscriptions; |
| 17770 List<RefactoringMethodParameter> _parameters; | 17838 |
| 17771 | 17839 /** |
| 17772 bool _extractAll; | 17840 * A list of the services being subscribed to. |
| 17773 | 17841 */ |
| 17774 /** | 17842 void set subscriptions(List<ServerService> value) { |
| 17775 * The return type that should be defined for the method. | |
| 17776 */ | |
| 17777 String get returnType => _returnType; | |
| 17778 | |
| 17779 /** | |
| 17780 * The return type that should be defined for the method. | |
| 17781 */ | |
| 17782 void set returnType(String value) { | |
| 17783 assert(value != null); | 17843 assert(value != null); |
| 17784 this._returnType = value; | 17844 this._subscriptions = value; |
| 17785 } | 17845 } |
| 17786 | 17846 |
| 17787 /** | 17847 ServerSetSubscriptionsParams(List<ServerService> subscriptions) { |
| 17788 * True if a getter should be created rather than a method. It is an error if | 17848 this.subscriptions = subscriptions; |
| 17789 * this field is true and the list of parameters is non-empty. | 17849 } |
| 17790 */ | 17850 |
| 17791 bool get createGetter => _createGetter; | 17851 factory ServerSetSubscriptionsParams.fromJson( |
| 17792 | |
| 17793 /** | |
| 17794 * True if a getter should be created rather than a method. It is an error if | |
| 17795 * this field is true and the list of parameters is non-empty. | |
| 17796 */ | |
| 17797 void set createGetter(bool value) { | |
| 17798 assert(value != null); | |
| 17799 this._createGetter = value; | |
| 17800 } | |
| 17801 | |
| 17802 /** | |
| 17803 * The name that the method should be given. | |
| 17804 */ | |
| 17805 String get name => _name; | |
| 17806 | |
| 17807 /** | |
| 17808 * The name that the method should be given. | |
| 17809 */ | |
| 17810 void set name(String value) { | |
| 17811 assert(value != null); | |
| 17812 this._name = value; | |
| 17813 } | |
| 17814 | |
| 17815 /** | |
| 17816 * The parameters that should be defined for the method. | |
| 17817 * | |
| 17818 * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL | |
| 17819 * parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a | |
| 17820 * NAMED parameter. | |
| 17821 * | |
| 17822 * - To change the order and/or update proposed parameters, add parameters | |
| 17823 * with the same identifiers as proposed. | |
| 17824 * - To add new parameters, omit their identifier. | |
| 17825 * - To remove some parameters, omit them in this list. | |
| 17826 */ | |
| 17827 List<RefactoringMethodParameter> get parameters => _parameters; | |
| 17828 | |
| 17829 /** | |
| 17830 * The parameters that should be defined for the method. | |
| 17831 * | |
| 17832 * It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL | |
| 17833 * parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a | |
| 17834 * NAMED parameter. | |
| 17835 * | |
| 17836 * - To change the order and/or update proposed parameters, add parameters | |
| 17837 * with the same identifiers as proposed. | |
| 17838 * - To add new parameters, omit their identifier. | |
| 17839 * - To remove some parameters, omit them in this list. | |
| 17840 */ | |
| 17841 void set parameters(List<RefactoringMethodParameter> value) { | |
| 17842 assert(value != null); | |
| 17843 this._parameters = value; | |
| 17844 } | |
| 17845 | |
| 17846 /** | |
| 17847 * True if all occurrences of the expression or statements should be replaced | |
| 17848 * by an invocation of the method. The expression or statements used to | |
| 17849 * initiate the refactoring will always be replaced. | |
| 17850 */ | |
| 17851 bool get extractAll => _extractAll; | |
| 17852 | |
| 17853 /** | |
| 17854 * True if all occurrences of the expression or statements should be replaced | |
| 17855 * by an invocation of the method. The expression or statements used to | |
| 17856 * initiate the refactoring will always be replaced. | |
| 17857 */ | |
| 17858 void set extractAll(bool value) { | |
| 17859 assert(value != null); | |
| 17860 this._extractAll = value; | |
| 17861 } | |
| 17862 | |
| 17863 ExtractMethodOptions(String returnType, bool createGetter, String name, | |
| 17864 List<RefactoringMethodParameter> parameters, bool extractAll) { | |
| 17865 this.returnType = returnType; | |
| 17866 this.createGetter = createGetter; | |
| 17867 this.name = name; | |
| 17868 this.parameters = parameters; | |
| 17869 this.extractAll = extractAll; | |
| 17870 } | |
| 17871 | |
| 17872 factory ExtractMethodOptions.fromJson( | |
| 17873 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 17852 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 17874 if (json == null) { | 17853 if (json == null) { |
| 17875 json = {}; | 17854 json = {}; |
| 17876 } | 17855 } |
| 17877 if (json is Map) { | 17856 if (json is Map) { |
| 17878 String returnType; | 17857 List<ServerService> subscriptions; |
| 17879 if (json.containsKey("returnType")) { | 17858 if (json.containsKey("subscriptions")) { |
| 17880 returnType = jsonDecoder.decodeString( | 17859 subscriptions = jsonDecoder.decodeList( |
| 17881 jsonPath + ".returnType", json["returnType"]); | 17860 jsonPath + ".subscriptions", |
| 17861 json["subscriptions"], |
| 17862 (String jsonPath, Object json) => |
| 17863 new ServerService.fromJson(jsonDecoder, jsonPath, json)); |
| 17882 } else { | 17864 } else { |
| 17883 throw jsonDecoder.missingKey(jsonPath, "returnType"); | 17865 throw jsonDecoder.mismatch(jsonPath, "subscriptions"); |
| 17884 } | 17866 } |
| 17885 bool createGetter; | 17867 return new ServerSetSubscriptionsParams(subscriptions); |
| 17886 if (json.containsKey("createGetter")) { | |
| 17887 createGetter = jsonDecoder.decodeBool( | |
| 17888 jsonPath + ".createGetter", json["createGetter"]); | |
| 17889 } else { | |
| 17890 throw jsonDecoder.missingKey(jsonPath, "createGetter"); | |
| 17891 } | |
| 17892 String name; | |
| 17893 if (json.containsKey("name")) { | |
| 17894 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | |
| 17895 } else { | |
| 17896 throw jsonDecoder.missingKey(jsonPath, "name"); | |
| 17897 } | |
| 17898 List<RefactoringMethodParameter> parameters; | |
| 17899 if (json.containsKey("parameters")) { | |
| 17900 parameters = jsonDecoder.decodeList( | |
| 17901 jsonPath + ".parameters", | |
| 17902 json["parameters"], | |
| 17903 (String jsonPath, Object json) => | |
| 17904 new RefactoringMethodParameter.fromJson( | |
| 17905 jsonDecoder, jsonPath, json)); | |
| 17906 } else { | |
| 17907 throw jsonDecoder.missingKey(jsonPath, "parameters"); | |
| 17908 } | |
| 17909 bool extractAll; | |
| 17910 if (json.containsKey("extractAll")) { | |
| 17911 extractAll = jsonDecoder.decodeBool( | |
| 17912 jsonPath + ".extractAll", json["extractAll"]); | |
| 17913 } else { | |
| 17914 throw jsonDecoder.missingKey(jsonPath, "extractAll"); | |
| 17915 } | |
| 17916 return new ExtractMethodOptions( | |
| 17917 returnType, createGetter, name, parameters, extractAll); | |
| 17918 } else { | 17868 } else { |
| 17919 throw jsonDecoder.mismatch(jsonPath, "extractMethod options", json); | 17869 throw jsonDecoder.mismatch( |
| 17920 } | 17870 jsonPath, "server.setSubscriptions params", json); |
| 17921 } | 17871 } |
| 17922 | 17872 } |
| 17923 factory ExtractMethodOptions.fromRefactoringParams( | 17873 |
| 17924 EditGetRefactoringParams refactoringParams, Request request) { | 17874 factory ServerSetSubscriptionsParams.fromRequest(Request request) { |
| 17925 return new ExtractMethodOptions.fromJson( | 17875 return new ServerSetSubscriptionsParams.fromJson( |
| 17926 new RequestDecoder(request), "options", refactoringParams.options); | 17876 new RequestDecoder(request), "params", request.params); |
| 17927 } | 17877 } |
| 17928 | 17878 |
| 17879 @override |
| 17929 Map<String, dynamic> toJson() { | 17880 Map<String, dynamic> toJson() { |
| 17930 Map<String, dynamic> result = {}; | 17881 Map<String, dynamic> result = {}; |
| 17931 result["returnType"] = returnType; | 17882 result["subscriptions"] = |
| 17932 result["createGetter"] = createGetter; | 17883 subscriptions.map((ServerService value) => value.toJson()).toList(); |
| 17933 result["name"] = name; | |
| 17934 result["parameters"] = parameters | |
| 17935 .map((RefactoringMethodParameter value) => value.toJson()) | |
| 17936 .toList(); | |
| 17937 result["extractAll"] = extractAll; | |
| 17938 return result; | 17884 return result; |
| 17939 } | 17885 } |
| 17940 | 17886 |
| 17941 @override | 17887 @override |
| 17888 Request toRequest(String id) { |
| 17889 return new Request(id, "server.setSubscriptions", toJson()); |
| 17890 } |
| 17891 |
| 17892 @override |
| 17942 String toString() => JSON.encode(toJson()); | 17893 String toString() => JSON.encode(toJson()); |
| 17943 | 17894 |
| 17944 @override | 17895 @override |
| 17945 bool operator ==(other) { | 17896 bool operator ==(other) { |
| 17946 if (other is ExtractMethodOptions) { | 17897 if (other is ServerSetSubscriptionsParams) { |
| 17947 return returnType == other.returnType && | 17898 return listEqual(subscriptions, other.subscriptions, |
| 17948 createGetter == other.createGetter && | 17899 (ServerService a, ServerService b) => a == b); |
| 17949 name == other.name && | |
| 17950 listEqual( | |
| 17951 parameters, | |
| 17952 other.parameters, | |
| 17953 (RefactoringMethodParameter a, RefactoringMethodParameter b) => | |
| 17954 a == b) && | |
| 17955 extractAll == other.extractAll; | |
| 17956 } | 17900 } |
| 17957 return false; | 17901 return false; |
| 17958 } | 17902 } |
| 17959 | 17903 |
| 17960 @override | 17904 @override |
| 17961 int get hashCode { | 17905 int get hashCode { |
| 17962 int hash = 0; | 17906 int hash = 0; |
| 17963 hash = JenkinsSmiHash.combine(hash, returnType.hashCode); | 17907 hash = JenkinsSmiHash.combine(hash, subscriptions.hashCode); |
| 17964 hash = JenkinsSmiHash.combine(hash, createGetter.hashCode); | |
| 17965 hash = JenkinsSmiHash.combine(hash, name.hashCode); | |
| 17966 hash = JenkinsSmiHash.combine(hash, parameters.hashCode); | |
| 17967 hash = JenkinsSmiHash.combine(hash, extractAll.hashCode); | |
| 17968 return JenkinsSmiHash.finish(hash); | 17908 return JenkinsSmiHash.finish(hash); |
| 17969 } | 17909 } |
| 17970 } | 17910 } |
| 17971 | 17911 |
| 17972 /** | 17912 /** |
| 17973 * inlineLocalVariable feedback | 17913 * server.setSubscriptions result |
| 17914 * |
| 17915 * Clients may not extend, implement or mix-in this class. |
| 17916 */ |
| 17917 class ServerSetSubscriptionsResult implements ResponseResult { |
| 17918 @override |
| 17919 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 17920 |
| 17921 @override |
| 17922 Response toResponse(String id) { |
| 17923 return new Response(id, result: null); |
| 17924 } |
| 17925 |
| 17926 @override |
| 17927 bool operator ==(other) { |
| 17928 if (other is ServerSetSubscriptionsResult) { |
| 17929 return true; |
| 17930 } |
| 17931 return false; |
| 17932 } |
| 17933 |
| 17934 @override |
| 17935 int get hashCode { |
| 17936 return 748820900; |
| 17937 } |
| 17938 } |
| 17939 |
| 17940 /** |
| 17941 * server.shutdown params |
| 17942 * |
| 17943 * Clients may not extend, implement or mix-in this class. |
| 17944 */ |
| 17945 class ServerShutdownParams implements RequestParams { |
| 17946 @override |
| 17947 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 17948 |
| 17949 @override |
| 17950 Request toRequest(String id) { |
| 17951 return new Request(id, "server.shutdown", null); |
| 17952 } |
| 17953 |
| 17954 @override |
| 17955 bool operator ==(other) { |
| 17956 if (other is ServerShutdownParams) { |
| 17957 return true; |
| 17958 } |
| 17959 return false; |
| 17960 } |
| 17961 |
| 17962 @override |
| 17963 int get hashCode { |
| 17964 return 366630911; |
| 17965 } |
| 17966 } |
| 17967 |
| 17968 /** |
| 17969 * server.shutdown result |
| 17970 * |
| 17971 * Clients may not extend, implement or mix-in this class. |
| 17972 */ |
| 17973 class ServerShutdownResult implements ResponseResult { |
| 17974 @override |
| 17975 Map<String, dynamic> toJson() => <String, dynamic>{}; |
| 17976 |
| 17977 @override |
| 17978 Response toResponse(String id) { |
| 17979 return new Response(id, result: null); |
| 17980 } |
| 17981 |
| 17982 @override |
| 17983 bool operator ==(other) { |
| 17984 if (other is ServerShutdownResult) { |
| 17985 return true; |
| 17986 } |
| 17987 return false; |
| 17988 } |
| 17989 |
| 17990 @override |
| 17991 int get hashCode { |
| 17992 return 193626532; |
| 17993 } |
| 17994 } |
| 17995 |
| 17996 /** |
| 17997 * server.status params |
| 17974 * | 17998 * |
| 17975 * { | 17999 * { |
| 17976 * "name": String | 18000 * "analysis": optional AnalysisStatus |
| 17977 * "occurrences": int | 18001 * "pub": optional PubStatus |
| 17978 * } | 18002 * } |
| 17979 * | 18003 * |
| 17980 * Clients may not extend, implement or mix-in this class. | 18004 * Clients may not extend, implement or mix-in this class. |
| 17981 */ | 18005 */ |
| 17982 class InlineLocalVariableFeedback extends RefactoringFeedback { | 18006 class ServerStatusParams implements HasToJson { |
| 17983 String _name; | 18007 AnalysisStatus _analysis; |
| 17984 | 18008 |
| 17985 int _occurrences; | 18009 PubStatus _pub; |
| 17986 | 18010 |
| 17987 /** | 18011 /** |
| 17988 * The name of the variable being inlined. | 18012 * The current status of analysis, including whether analysis is being |
| 17989 */ | 18013 * performed and if so what is being analyzed. |
| 17990 String get name => _name; | 18014 */ |
| 17991 | 18015 AnalysisStatus get analysis => _analysis; |
| 17992 /** | 18016 |
| 17993 * The name of the variable being inlined. | 18017 /** |
| 17994 */ | 18018 * The current status of analysis, including whether analysis is being |
| 17995 void set name(String value) { | 18019 * performed and if so what is being analyzed. |
| 17996 assert(value != null); | 18020 */ |
| 17997 this._name = value; | 18021 void set analysis(AnalysisStatus value) { |
| 17998 } | 18022 this._analysis = value; |
| 17999 | 18023 } |
| 18000 /** | 18024 |
| 18001 * The number of times the variable occurs. | 18025 /** |
| 18002 */ | 18026 * The current status of pub execution, indicating whether we are currently |
| 18003 int get occurrences => _occurrences; | 18027 * running pub. |
| 18004 | 18028 */ |
| 18005 /** | 18029 PubStatus get pub => _pub; |
| 18006 * The number of times the variable occurs. | 18030 |
| 18007 */ | 18031 /** |
| 18008 void set occurrences(int value) { | 18032 * The current status of pub execution, indicating whether we are currently |
| 18009 assert(value != null); | 18033 * running pub. |
| 18010 this._occurrences = value; | 18034 */ |
| 18011 } | 18035 void set pub(PubStatus value) { |
| 18012 | 18036 this._pub = value; |
| 18013 InlineLocalVariableFeedback(String name, int occurrences) { | 18037 } |
| 18014 this.name = name; | 18038 |
| 18015 this.occurrences = occurrences; | 18039 ServerStatusParams({AnalysisStatus analysis, PubStatus pub}) { |
| 18016 } | 18040 this.analysis = analysis; |
| 18017 | 18041 this.pub = pub; |
| 18018 factory InlineLocalVariableFeedback.fromJson( | 18042 } |
| 18043 |
| 18044 factory ServerStatusParams.fromJson( |
| 18019 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 18045 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 18020 if (json == null) { | 18046 if (json == null) { |
| 18021 json = {}; | 18047 json = {}; |
| 18022 } | 18048 } |
| 18023 if (json is Map) { | 18049 if (json is Map) { |
| 18024 String name; | 18050 AnalysisStatus analysis; |
| 18025 if (json.containsKey("name")) { | 18051 if (json.containsKey("analysis")) { |
| 18026 name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]); | 18052 analysis = new AnalysisStatus.fromJson( |
| 18027 } else { | 18053 jsonDecoder, jsonPath + ".analysis", json["analysis"]); |
| 18028 throw jsonDecoder.missingKey(jsonPath, "name"); | |
| 18029 } | 18054 } |
| 18030 int occurrences; | 18055 PubStatus pub; |
| 18031 if (json.containsKey("occurrences")) { | 18056 if (json.containsKey("pub")) { |
| 18032 occurrences = jsonDecoder.decodeInt( | 18057 pub = |
| 18033 jsonPath + ".occurrences", json["occurrences"]); | 18058 new PubStatus.fromJson(jsonDecoder, jsonPath + ".pub", json["pub"]); |
| 18034 } else { | |
| 18035 throw jsonDecoder.missingKey(jsonPath, "occurrences"); | |
| 18036 } | 18059 } |
| 18037 return new InlineLocalVariableFeedback(name, occurrences); | 18060 return new ServerStatusParams(analysis: analysis, pub: pub); |
| 18038 } else { | 18061 } else { |
| 18039 throw jsonDecoder.mismatch( | 18062 throw jsonDecoder.mismatch(jsonPath, "server.status params", json); |
| 18040 jsonPath, "inlineLocalVariable feedback", json); | 18063 } |
| 18041 } | 18064 } |
| 18042 } | 18065 |
| 18043 | 18066 factory ServerStatusParams.fromNotification(Notification notification) { |
| 18067 return new ServerStatusParams.fromJson( |
| 18068 new ResponseDecoder(null), "params", notification.params); |
| 18069 } |
| 18070 |
| 18071 @override |
| 18044 Map<String, dynamic> toJson() { | 18072 Map<String, dynamic> toJson() { |
| 18045 Map<String, dynamic> result = {}; | 18073 Map<String, dynamic> result = {}; |
| 18046 result["name"] = name; | 18074 if (analysis != null) { |
| 18047 result["occurrences"] = occurrences; | 18075 result["analysis"] = analysis.toJson(); |
| 18076 } |
| 18077 if (pub != null) { |
| 18078 result["pub"] = pub.toJson(); |
| 18079 } |
| 18048 return result; | 18080 return result; |
| 18049 } | 18081 } |
| 18050 | 18082 |
| 18083 Notification toNotification() { |
| 18084 return new Notification("server.status", toJson()); |
| 18085 } |
| 18086 |
| 18051 @override | 18087 @override |
| 18052 String toString() => JSON.encode(toJson()); | 18088 String toString() => JSON.encode(toJson()); |
| 18053 | 18089 |
| 18054 @override | 18090 @override |
| 18055 bool operator ==(other) { | 18091 bool operator ==(other) { |
| 18056 if (other is InlineLocalVariableFeedback) { | 18092 if (other is ServerStatusParams) { |
| 18057 return name == other.name && occurrences == other.occurrences; | 18093 return analysis == other.analysis && pub == other.pub; |
| 18058 } | 18094 } |
| 18059 return false; | 18095 return false; |
| 18060 } | 18096 } |
| 18061 | 18097 |
| 18062 @override | 18098 @override |
| 18063 int get hashCode { | 18099 int get hashCode { |
| 18064 int hash = 0; | 18100 int hash = 0; |
| 18065 hash = JenkinsSmiHash.combine(hash, name.hashCode); | 18101 hash = JenkinsSmiHash.combine(hash, analysis.hashCode); |
| 18066 hash = JenkinsSmiHash.combine(hash, occurrences.hashCode); | 18102 hash = JenkinsSmiHash.combine(hash, pub.hashCode); |
| 18067 return JenkinsSmiHash.finish(hash); | 18103 return JenkinsSmiHash.finish(hash); |
| 18068 } | 18104 } |
| 18069 } | 18105 } |
| 18070 | 18106 |
| 18071 /** | 18107 /** |
| 18072 * inlineLocalVariable options | 18108 * SourceChange |
| 18073 * | |
| 18074 * Clients may not extend, implement or mix-in this class. | |
| 18075 */ | |
| 18076 class InlineLocalVariableOptions extends RefactoringOptions { | |
| 18077 @override | |
| 18078 bool operator ==(other) { | |
| 18079 if (other is InlineLocalVariableOptions) { | |
| 18080 return true; | |
| 18081 } | |
| 18082 return false; | |
| 18083 } | |
| 18084 | |
| 18085 @override | |
| 18086 int get hashCode { | |
| 18087 return 540364977; | |
| 18088 } | |
| 18089 } | |
| 18090 | |
| 18091 /** | |
| 18092 * inlineMethod feedback | |
| 18093 * | 18109 * |
| 18094 * { | 18110 * { |
| 18095 * "className": optional String | 18111 * "message": String |
| 18096 * "methodName": String | 18112 * "edits": List<SourceFileEdit> |
| 18097 * "isDeclaration": bool | 18113 * "linkedEditGroups": List<LinkedEditGroup> |
| 18114 * "selection": optional Position |
| 18098 * } | 18115 * } |
| 18099 * | 18116 * |
| 18100 * Clients may not extend, implement or mix-in this class. | 18117 * Clients may not extend, implement or mix-in this class. |
| 18101 */ | 18118 */ |
| 18102 class InlineMethodFeedback extends RefactoringFeedback { | 18119 class SourceChange implements HasToJson { |
| 18103 String _className; | 18120 String _message; |
| 18104 | 18121 |
| 18105 String _methodName; | 18122 List<SourceFileEdit> _edits; |
| 18106 | 18123 |
| 18107 bool _isDeclaration; | 18124 List<LinkedEditGroup> _linkedEditGroups; |
| 18108 | 18125 |
| 18109 /** | 18126 Position _selection; |
| 18110 * The name of the class enclosing the method being inlined. If not a class | 18127 |
| 18111 * member is being inlined, this field will be absent. | 18128 /** |
| 18112 */ | 18129 * A human-readable description of the change to be applied. |
| 18113 String get className => _className; | 18130 */ |
| 18114 | 18131 String get message => _message; |
| 18115 /** | 18132 |
| 18116 * The name of the class enclosing the method being inlined. If not a class | 18133 /** |
| 18117 * member is being inlined, this field will be absent. | 18134 * A human-readable description of the change to be applied. |
| 18118 */ | 18135 */ |
| 18119 void set className(String value) { | 18136 void set message(String value) { |
| 18120 this._className = value; | |
| 18121 } | |
| 18122 | |
| 18123 /** | |
| 18124 * The name of the method (or function) being inlined. | |
| 18125 */ | |
| 18126 String get methodName => _methodName; | |
| 18127 | |
| 18128 /** | |
| 18129 * The name of the method (or function) being inlined. | |
| 18130 */ | |
| 18131 void set methodName(String value) { | |
| 18132 assert(value != null); | 18137 assert(value != null); |
| 18133 this._methodName = value; | 18138 this._message = value; |
| 18134 } | 18139 } |
| 18135 | 18140 |
| 18136 /** | 18141 /** |
| 18137 * True if the declaration of the method is selected. So all references | 18142 * A list of the edits used to effect the change, grouped by file. |
| 18138 * should be inlined. | 18143 */ |
| 18139 */ | 18144 List<SourceFileEdit> get edits => _edits; |
| 18140 bool get isDeclaration => _isDeclaration; | 18145 |
| 18141 | 18146 /** |
| 18142 /** | 18147 * A list of the edits used to effect the change, grouped by file. |
| 18143 * True if the declaration of the method is selected. So all references | 18148 */ |
| 18144 * should be inlined. | 18149 void set edits(List<SourceFileEdit> value) { |
| 18145 */ | |
| 18146 void set isDeclaration(bool value) { | |
| 18147 assert(value != null); | 18150 assert(value != null); |
| 18148 this._isDeclaration = value; | 18151 this._edits = value; |
| 18149 } | 18152 } |
| 18150 | 18153 |
| 18151 InlineMethodFeedback(String methodName, bool isDeclaration, | 18154 /** |
| 18152 {String className}) { | 18155 * A list of the linked editing groups used to customize the changes that |
| 18153 this.className = className; | 18156 * were made. |
| 18154 this.methodName = methodName; | 18157 */ |
| 18155 this.isDeclaration = isDeclaration; | 18158 List<LinkedEditGroup> get linkedEditGroups => _linkedEditGroups; |
| 18156 } | 18159 |
| 18157 | 18160 /** |
| 18158 factory InlineMethodFeedback.fromJson( | 18161 * A list of the linked editing groups used to customize the changes that |
| 18162 * were made. |
| 18163 */ |
| 18164 void set linkedEditGroups(List<LinkedEditGroup> value) { |
| 18165 assert(value != null); |
| 18166 this._linkedEditGroups = value; |
| 18167 } |
| 18168 |
| 18169 /** |
| 18170 * The position that should be selected after the edits have been applied. |
| 18171 */ |
| 18172 Position get selection => _selection; |
| 18173 |
| 18174 /** |
| 18175 * The position that should be selected after the edits have been applied. |
| 18176 */ |
| 18177 void set selection(Position value) { |
| 18178 this._selection = value; |
| 18179 } |
| 18180 |
| 18181 SourceChange(String message, |
| 18182 {List<SourceFileEdit> edits, |
| 18183 List<LinkedEditGroup> linkedEditGroups, |
| 18184 Position selection}) { |
| 18185 this.message = message; |
| 18186 if (edits == null) { |
| 18187 this.edits = <SourceFileEdit>[]; |
| 18188 } else { |
| 18189 this.edits = edits; |
| 18190 } |
| 18191 if (linkedEditGroups == null) { |
| 18192 this.linkedEditGroups = <LinkedEditGroup>[]; |
| 18193 } else { |
| 18194 this.linkedEditGroups = linkedEditGroups; |
| 18195 } |
| 18196 this.selection = selection; |
| 18197 } |
| 18198 |
| 18199 factory SourceChange.fromJson( |
| 18159 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 18200 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 18160 if (json == null) { | 18201 if (json == null) { |
| 18161 json = {}; | 18202 json = {}; |
| 18162 } | 18203 } |
| 18163 if (json is Map) { | 18204 if (json is Map) { |
| 18164 String className; | 18205 String message; |
| 18165 if (json.containsKey("className")) { | 18206 if (json.containsKey("message")) { |
| 18166 className = jsonDecoder.decodeString( | 18207 message = |
| 18167 jsonPath + ".className", json["className"]); | 18208 jsonDecoder.decodeString(jsonPath + ".message", json["message"]); |
| 18168 } | |
| 18169 String methodName; | |
| 18170 if (json.containsKey("methodName")) { | |
| 18171 methodName = jsonDecoder.decodeString( | |
| 18172 jsonPath + ".methodName", json["methodName"]); | |
| 18173 } else { | 18209 } else { |
| 18174 throw jsonDecoder.missingKey(jsonPath, "methodName"); | 18210 throw jsonDecoder.mismatch(jsonPath, "message"); |
| 18175 } | 18211 } |
| 18176 bool isDeclaration; | 18212 List<SourceFileEdit> edits; |
| 18177 if (json.containsKey("isDeclaration")) { | 18213 if (json.containsKey("edits")) { |
| 18178 isDeclaration = jsonDecoder.decodeBool( | 18214 edits = jsonDecoder.decodeList( |
| 18179 jsonPath + ".isDeclaration", json["isDeclaration"]); | 18215 jsonPath + ".edits", |
| 18216 json["edits"], |
| 18217 (String jsonPath, Object json) => |
| 18218 new SourceFileEdit.fromJson(jsonDecoder, jsonPath, json)); |
| 18180 } else { | 18219 } else { |
| 18181 throw jsonDecoder.missingKey(jsonPath, "isDeclaration"); | 18220 throw jsonDecoder.mismatch(jsonPath, "edits"); |
| 18182 } | 18221 } |
| 18183 return new InlineMethodFeedback(methodName, isDeclaration, | 18222 List<LinkedEditGroup> linkedEditGroups; |
| 18184 className: className); | 18223 if (json.containsKey("linkedEditGroups")) { |
| 18224 linkedEditGroups = jsonDecoder.decodeList( |
| 18225 jsonPath + ".linkedEditGroups", |
| 18226 json["linkedEditGroups"], |
| 18227 (String jsonPath, Object json) => |
| 18228 new LinkedEditGroup.fromJson(jsonDecoder, jsonPath, json)); |
| 18229 } else { |
| 18230 throw jsonDecoder.mismatch(jsonPath, "linkedEditGroups"); |
| 18231 } |
| 18232 Position selection; |
| 18233 if (json.containsKey("selection")) { |
| 18234 selection = new Position.fromJson( |
| 18235 jsonDecoder, jsonPath + ".selection", json["selection"]); |
| 18236 } |
| 18237 return new SourceChange(message, |
| 18238 edits: edits, |
| 18239 linkedEditGroups: linkedEditGroups, |
| 18240 selection: selection); |
| 18185 } else { | 18241 } else { |
| 18186 throw jsonDecoder.mismatch(jsonPath, "inlineMethod feedback", json); | 18242 throw jsonDecoder.mismatch(jsonPath, "SourceChange", json); |
| 18187 } | 18243 } |
| 18188 } | 18244 } |
| 18189 | 18245 |
| 18246 @override |
| 18190 Map<String, dynamic> toJson() { | 18247 Map<String, dynamic> toJson() { |
| 18191 Map<String, dynamic> result = {}; | 18248 Map<String, dynamic> result = {}; |
| 18192 if (className != null) { | 18249 result["message"] = message; |
| 18193 result["className"] = className; | 18250 result["edits"] = |
| 18194 } | 18251 edits.map((SourceFileEdit value) => value.toJson()).toList(); |
| 18195 result["methodName"] = methodName; | 18252 result["linkedEditGroups"] = linkedEditGroups |
| 18196 result["isDeclaration"] = isDeclaration; | 18253 .map((LinkedEditGroup value) => value.toJson()) |
| 18254 .toList(); |
| 18255 if (selection != null) { |
| 18256 result["selection"] = selection.toJson(); |
| 18257 } |
| 18197 return result; | 18258 return result; |
| 18198 } | 18259 } |
| 18199 | 18260 |
| 18261 /** |
| 18262 * Adds [edit] to the [FileEdit] for the given [file]. |
| 18263 */ |
| 18264 void addEdit(String file, int fileStamp, SourceEdit edit) => |
| 18265 addEditToSourceChange(this, file, fileStamp, edit); |
| 18266 |
| 18267 /** |
| 18268 * Adds the given [FileEdit]. |
| 18269 */ |
| 18270 void addFileEdit(SourceFileEdit edit) { |
| 18271 edits.add(edit); |
| 18272 } |
| 18273 |
| 18274 /** |
| 18275 * Adds the given [LinkedEditGroup]. |
| 18276 */ |
| 18277 void addLinkedEditGroup(LinkedEditGroup linkedEditGroup) { |
| 18278 linkedEditGroups.add(linkedEditGroup); |
| 18279 } |
| 18280 |
| 18281 /** |
| 18282 * Returns the [FileEdit] for the given [file], maybe `null`. |
| 18283 */ |
| 18284 SourceFileEdit getFileEdit(String file) => getChangeFileEdit(this, file); |
| 18285 |
| 18200 @override | 18286 @override |
| 18201 String toString() => JSON.encode(toJson()); | 18287 String toString() => JSON.encode(toJson()); |
| 18202 | 18288 |
| 18203 @override | 18289 @override |
| 18204 bool operator ==(other) { | 18290 bool operator ==(other) { |
| 18205 if (other is InlineMethodFeedback) { | 18291 if (other is SourceChange) { |
| 18206 return className == other.className && | 18292 return message == other.message && |
| 18207 methodName == other.methodName && | 18293 listEqual(edits, other.edits, |
| 18208 isDeclaration == other.isDeclaration; | 18294 (SourceFileEdit a, SourceFileEdit b) => a == b) && |
| 18295 listEqual(linkedEditGroups, other.linkedEditGroups, |
| 18296 (LinkedEditGroup a, LinkedEditGroup b) => a == b) && |
| 18297 selection == other.selection; |
| 18209 } | 18298 } |
| 18210 return false; | 18299 return false; |
| 18211 } | 18300 } |
| 18212 | 18301 |
| 18213 @override | 18302 @override |
| 18214 int get hashCode { | 18303 int get hashCode { |
| 18215 int hash = 0; | 18304 int hash = 0; |
| 18216 hash = JenkinsSmiHash.combine(hash, className.hashCode); | 18305 hash = JenkinsSmiHash.combine(hash, message.hashCode); |
| 18217 hash = JenkinsSmiHash.combine(hash, methodName.hashCode); | 18306 hash = JenkinsSmiHash.combine(hash, edits.hashCode); |
| 18218 hash = JenkinsSmiHash.combine(hash, isDeclaration.hashCode); | 18307 hash = JenkinsSmiHash.combine(hash, linkedEditGroups.hashCode); |
| 18308 hash = JenkinsSmiHash.combine(hash, selection.hashCode); |
| 18219 return JenkinsSmiHash.finish(hash); | 18309 return JenkinsSmiHash.finish(hash); |
| 18220 } | 18310 } |
| 18221 } | 18311 } |
| 18222 | 18312 |
| 18223 /** | 18313 /** |
| 18224 * inlineMethod options | 18314 * SourceEdit |
| 18225 * | 18315 * |
| 18226 * { | 18316 * { |
| 18227 * "deleteSource": bool | 18317 * "offset": int |
| 18228 * "inlineAll": bool | 18318 * "length": int |
| 18319 * "replacement": String |
| 18320 * "id": optional String |
| 18229 * } | 18321 * } |
| 18230 * | 18322 * |
| 18231 * Clients may not extend, implement or mix-in this class. | 18323 * Clients may not extend, implement or mix-in this class. |
| 18232 */ | 18324 */ |
| 18233 class InlineMethodOptions extends RefactoringOptions { | 18325 class SourceEdit implements HasToJson { |
| 18234 bool _deleteSource; | 18326 /** |
| 18327 * Get the result of applying a set of [edits] to the given [code]. Edits are |
| 18328 * applied in the order they appear in [edits]. |
| 18329 */ |
| 18330 static String applySequence(String code, Iterable<SourceEdit> edits) => |
| 18331 applySequenceOfEdits(code, edits); |
| 18235 | 18332 |
| 18236 bool _inlineAll; | 18333 int _offset; |
| 18334 |
| 18335 int _length; |
| 18336 |
| 18337 String _replacement; |
| 18338 |
| 18339 String _id; |
| 18237 | 18340 |
| 18238 /** | 18341 /** |
| 18239 * True if the method being inlined should be removed. It is an error if this | 18342 * The offset of the region to be modified. |
| 18240 * field is true and inlineAll is false. | |
| 18241 */ | 18343 */ |
| 18242 bool get deleteSource => _deleteSource; | 18344 int get offset => _offset; |
| 18243 | 18345 |
| 18244 /** | 18346 /** |
| 18245 * True if the method being inlined should be removed. It is an error if this | 18347 * The offset of the region to be modified. |
| 18246 * field is true and inlineAll is false. | |
| 18247 */ | 18348 */ |
| 18248 void set deleteSource(bool value) { | 18349 void set offset(int value) { |
| 18249 assert(value != null); | 18350 assert(value != null); |
| 18250 this._deleteSource = value; | 18351 this._offset = value; |
| 18251 } | 18352 } |
| 18252 | 18353 |
| 18253 /** | 18354 /** |
| 18254 * True if all invocations of the method should be inlined, or false if only | 18355 * The length of the region to be modified. |
| 18255 * the invocation site used to create this refactoring should be inlined. | |
| 18256 */ | 18356 */ |
| 18257 bool get inlineAll => _inlineAll; | 18357 int get length => _length; |
| 18258 | 18358 |
| 18259 /** | 18359 /** |
| 18260 * True if all invocations of the method should be inlined, or false if only | 18360 * The length of the region to be modified. |
| 18261 * the invocation site used to create this refactoring should be inlined. | |
| 18262 */ | 18361 */ |
| 18263 void set inlineAll(bool value) { | 18362 void set length(int value) { |
| 18264 assert(value != null); | 18363 assert(value != null); |
| 18265 this._inlineAll = value; | 18364 this._length = value; |
| 18266 } | 18365 } |
| 18267 | 18366 |
| 18268 InlineMethodOptions(bool deleteSource, bool inlineAll) { | 18367 /** |
| 18269 this.deleteSource = deleteSource; | 18368 * The code that is to replace the specified region in the original code. |
| 18270 this.inlineAll = inlineAll; | 18369 */ |
| 18370 String get replacement => _replacement; |
| 18371 |
| 18372 /** |
| 18373 * The code that is to replace the specified region in the original code. |
| 18374 */ |
| 18375 void set replacement(String value) { |
| 18376 assert(value != null); |
| 18377 this._replacement = value; |
| 18271 } | 18378 } |
| 18272 | 18379 |
| 18273 factory InlineMethodOptions.fromJson( | 18380 /** |
| 18381 * An identifier that uniquely identifies this source edit from other edits |
| 18382 * in the same response. This field is omitted unless a containing structure |
| 18383 * needs to be able to identify the edit for some reason. |
| 18384 * |
| 18385 * For example, some refactoring operations can produce edits that might not |
| 18386 * be appropriate (referred to as potential edits). Such edits will have an |
| 18387 * id so that they can be referenced. Edits in the same response that do not |
| 18388 * need to be referenced will not have an id. |
| 18389 */ |
| 18390 String get id => _id; |
| 18391 |
| 18392 /** |
| 18393 * An identifier that uniquely identifies this source edit from other edits |
| 18394 * in the same response. This field is omitted unless a containing structure |
| 18395 * needs to be able to identify the edit for some reason. |
| 18396 * |
| 18397 * For example, some refactoring operations can produce edits that might not |
| 18398 * be appropriate (referred to as potential edits). Such edits will have an |
| 18399 * id so that they can be referenced. Edits in the same response that do not |
| 18400 * need to be referenced will not have an id. |
| 18401 */ |
| 18402 void set id(String value) { |
| 18403 this._id = value; |
| 18404 } |
| 18405 |
| 18406 SourceEdit(int offset, int length, String replacement, {String id}) { |
| 18407 this.offset = offset; |
| 18408 this.length = length; |
| 18409 this.replacement = replacement; |
| 18410 this.id = id; |
| 18411 } |
| 18412 |
| 18413 factory SourceEdit.fromJson( |
| 18274 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 18414 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 18275 if (json == null) { | 18415 if (json == null) { |
| 18276 json = {}; | 18416 json = {}; |
| 18277 } | 18417 } |
| 18278 if (json is Map) { | 18418 if (json is Map) { |
| 18279 bool deleteSource; | 18419 int offset; |
| 18280 if (json.containsKey("deleteSource")) { | 18420 if (json.containsKey("offset")) { |
| 18281 deleteSource = jsonDecoder.decodeBool( | 18421 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); |
| 18282 jsonPath + ".deleteSource", json["deleteSource"]); | |
| 18283 } else { | 18422 } else { |
| 18284 throw jsonDecoder.missingKey(jsonPath, "deleteSource"); | 18423 throw jsonDecoder.mismatch(jsonPath, "offset"); |
| 18285 } | 18424 } |
| 18286 bool inlineAll; | 18425 int length; |
| 18287 if (json.containsKey("inlineAll")) { | 18426 if (json.containsKey("length")) { |
| 18288 inlineAll = | 18427 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); |
| 18289 jsonDecoder.decodeBool(jsonPath + ".inlineAll", json["inlineAll"]); | |
| 18290 } else { | 18428 } else { |
| 18291 throw jsonDecoder.missingKey(jsonPath, "inlineAll"); | 18429 throw jsonDecoder.mismatch(jsonPath, "length"); |
| 18292 } | 18430 } |
| 18293 return new InlineMethodOptions(deleteSource, inlineAll); | 18431 String replacement; |
| 18432 if (json.containsKey("replacement")) { |
| 18433 replacement = jsonDecoder.decodeString( |
| 18434 jsonPath + ".replacement", json["replacement"]); |
| 18435 } else { |
| 18436 throw jsonDecoder.mismatch(jsonPath, "replacement"); |
| 18437 } |
| 18438 String id; |
| 18439 if (json.containsKey("id")) { |
| 18440 id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]); |
| 18441 } |
| 18442 return new SourceEdit(offset, length, replacement, id: id); |
| 18294 } else { | 18443 } else { |
| 18295 throw jsonDecoder.mismatch(jsonPath, "inlineMethod options", json); | 18444 throw jsonDecoder.mismatch(jsonPath, "SourceEdit", json); |
| 18296 } | 18445 } |
| 18297 } | 18446 } |
| 18298 | 18447 |
| 18299 factory InlineMethodOptions.fromRefactoringParams( | 18448 /** |
| 18300 EditGetRefactoringParams refactoringParams, Request request) { | 18449 * The end of the region to be modified. |
| 18301 return new InlineMethodOptions.fromJson( | 18450 */ |
| 18302 new RequestDecoder(request), "options", refactoringParams.options); | 18451 int get end => offset + length; |
| 18452 |
| 18453 @override |
| 18454 Map<String, dynamic> toJson() { |
| 18455 Map<String, dynamic> result = {}; |
| 18456 result["offset"] = offset; |
| 18457 result["length"] = length; |
| 18458 result["replacement"] = replacement; |
| 18459 if (id != null) { |
| 18460 result["id"] = id; |
| 18461 } |
| 18462 return result; |
| 18303 } | 18463 } |
| 18304 | 18464 |
| 18305 Map<String, dynamic> toJson() { | 18465 /** |
| 18306 Map<String, dynamic> result = {}; | 18466 * Get the result of applying the edit to the given [code]. |
| 18307 result["deleteSource"] = deleteSource; | 18467 */ |
| 18308 result["inlineAll"] = inlineAll; | 18468 String apply(String code) => applyEdit(code, this); |
| 18309 return result; | |
| 18310 } | |
| 18311 | 18469 |
| 18312 @override | 18470 @override |
| 18313 String toString() => JSON.encode(toJson()); | 18471 String toString() => JSON.encode(toJson()); |
| 18314 | 18472 |
| 18315 @override | 18473 @override |
| 18316 bool operator ==(other) { | 18474 bool operator ==(other) { |
| 18317 if (other is InlineMethodOptions) { | 18475 if (other is SourceEdit) { |
| 18318 return deleteSource == other.deleteSource && inlineAll == other.inlineAll; | 18476 return offset == other.offset && |
| 18477 length == other.length && |
| 18478 replacement == other.replacement && |
| 18479 id == other.id; |
| 18319 } | 18480 } |
| 18320 return false; | 18481 return false; |
| 18321 } | 18482 } |
| 18322 | 18483 |
| 18323 @override | 18484 @override |
| 18324 int get hashCode { | 18485 int get hashCode { |
| 18325 int hash = 0; | 18486 int hash = 0; |
| 18326 hash = JenkinsSmiHash.combine(hash, deleteSource.hashCode); | 18487 hash = JenkinsSmiHash.combine(hash, offset.hashCode); |
| 18327 hash = JenkinsSmiHash.combine(hash, inlineAll.hashCode); | 18488 hash = JenkinsSmiHash.combine(hash, length.hashCode); |
| 18489 hash = JenkinsSmiHash.combine(hash, replacement.hashCode); |
| 18490 hash = JenkinsSmiHash.combine(hash, id.hashCode); |
| 18328 return JenkinsSmiHash.finish(hash); | 18491 return JenkinsSmiHash.finish(hash); |
| 18329 } | 18492 } |
| 18330 } | 18493 } |
| 18331 | 18494 |
| 18332 /** | 18495 /** |
| 18333 * moveFile feedback | 18496 * SourceFileEdit |
| 18334 * | |
| 18335 * Clients may not extend, implement or mix-in this class. | |
| 18336 */ | |
| 18337 class MoveFileFeedback extends RefactoringFeedback { | |
| 18338 @override | |
| 18339 bool operator ==(other) { | |
| 18340 if (other is MoveFileFeedback) { | |
| 18341 return true; | |
| 18342 } | |
| 18343 return false; | |
| 18344 } | |
| 18345 | |
| 18346 @override | |
| 18347 int get hashCode { | |
| 18348 return 438975893; | |
| 18349 } | |
| 18350 } | |
| 18351 | |
| 18352 /** | |
| 18353 * moveFile options | |
| 18354 * | 18497 * |
| 18355 * { | 18498 * { |
| 18356 * "newFile": FilePath | 18499 * "file": FilePath |
| 18500 * "fileStamp": long |
| 18501 * "edits": List<SourceEdit> |
| 18357 * } | 18502 * } |
| 18358 * | 18503 * |
| 18359 * Clients may not extend, implement or mix-in this class. | 18504 * Clients may not extend, implement or mix-in this class. |
| 18360 */ | 18505 */ |
| 18361 class MoveFileOptions extends RefactoringOptions { | 18506 class SourceFileEdit implements HasToJson { |
| 18362 String _newFile; | 18507 String _file; |
| 18508 |
| 18509 int _fileStamp; |
| 18510 |
| 18511 List<SourceEdit> _edits; |
| 18363 | 18512 |
| 18364 /** | 18513 /** |
| 18365 * The new file path to which the given file is being moved. | 18514 * The file containing the code to be modified. |
| 18366 */ | 18515 */ |
| 18367 String get newFile => _newFile; | 18516 String get file => _file; |
| 18368 | 18517 |
| 18369 /** | 18518 /** |
| 18370 * The new file path to which the given file is being moved. | 18519 * The file containing the code to be modified. |
| 18371 */ | 18520 */ |
| 18372 void set newFile(String value) { | 18521 void set file(String value) { |
| 18373 assert(value != null); | 18522 assert(value != null); |
| 18374 this._newFile = value; | 18523 this._file = value; |
| 18375 } | 18524 } |
| 18376 | 18525 |
| 18377 MoveFileOptions(String newFile) { | 18526 /** |
| 18378 this.newFile = newFile; | 18527 * The modification stamp of the file at the moment when the change was |
| 18528 * created, in milliseconds since the "Unix epoch". Will be -1 if the file |
| 18529 * did not exist and should be created. The client may use this field to make |
| 18530 * sure that the file was not changed since then, so it is safe to apply the |
| 18531 * change. |
| 18532 */ |
| 18533 int get fileStamp => _fileStamp; |
| 18534 |
| 18535 /** |
| 18536 * The modification stamp of the file at the moment when the change was |
| 18537 * created, in milliseconds since the "Unix epoch". Will be -1 if the file |
| 18538 * did not exist and should be created. The client may use this field to make |
| 18539 * sure that the file was not changed since then, so it is safe to apply the |
| 18540 * change. |
| 18541 */ |
| 18542 void set fileStamp(int value) { |
| 18543 assert(value != null); |
| 18544 this._fileStamp = value; |
| 18379 } | 18545 } |
| 18380 | 18546 |
| 18381 factory MoveFileOptions.fromJson( | 18547 /** |
| 18548 * A list of the edits used to effect the change. |
| 18549 */ |
| 18550 List<SourceEdit> get edits => _edits; |
| 18551 |
| 18552 /** |
| 18553 * A list of the edits used to effect the change. |
| 18554 */ |
| 18555 void set edits(List<SourceEdit> value) { |
| 18556 assert(value != null); |
| 18557 this._edits = value; |
| 18558 } |
| 18559 |
| 18560 SourceFileEdit(String file, int fileStamp, {List<SourceEdit> edits}) { |
| 18561 this.file = file; |
| 18562 this.fileStamp = fileStamp; |
| 18563 if (edits == null) { |
| 18564 this.edits = <SourceEdit>[]; |
| 18565 } else { |
| 18566 this.edits = edits; |
| 18567 } |
| 18568 } |
| 18569 |
| 18570 factory SourceFileEdit.fromJson( |
| 18382 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 18571 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 18383 if (json == null) { | 18572 if (json == null) { |
| 18384 json = {}; | 18573 json = {}; |
| 18385 } | 18574 } |
| 18386 if (json is Map) { | 18575 if (json is Map) { |
| 18387 String newFile; | 18576 String file; |
| 18388 if (json.containsKey("newFile")) { | 18577 if (json.containsKey("file")) { |
| 18389 newFile = | 18578 file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]); |
| 18390 jsonDecoder.decodeString(jsonPath + ".newFile", json["newFile"]); | |
| 18391 } else { | 18579 } else { |
| 18392 throw jsonDecoder.missingKey(jsonPath, "newFile"); | 18580 throw jsonDecoder.mismatch(jsonPath, "file"); |
| 18393 } | 18581 } |
| 18394 return new MoveFileOptions(newFile); | 18582 int fileStamp; |
| 18583 if (json.containsKey("fileStamp")) { |
| 18584 fileStamp = |
| 18585 jsonDecoder.decodeInt(jsonPath + ".fileStamp", json["fileStamp"]); |
| 18586 } else { |
| 18587 throw jsonDecoder.mismatch(jsonPath, "fileStamp"); |
| 18588 } |
| 18589 List<SourceEdit> edits; |
| 18590 if (json.containsKey("edits")) { |
| 18591 edits = jsonDecoder.decodeList( |
| 18592 jsonPath + ".edits", |
| 18593 json["edits"], |
| 18594 (String jsonPath, Object json) => |
| 18595 new SourceEdit.fromJson(jsonDecoder, jsonPath, json)); |
| 18596 } else { |
| 18597 throw jsonDecoder.mismatch(jsonPath, "edits"); |
| 18598 } |
| 18599 return new SourceFileEdit(file, fileStamp, edits: edits); |
| 18395 } else { | 18600 } else { |
| 18396 throw jsonDecoder.mismatch(jsonPath, "moveFile options", json); | 18601 throw jsonDecoder.mismatch(jsonPath, "SourceFileEdit", json); |
| 18397 } | 18602 } |
| 18398 } | 18603 } |
| 18399 | 18604 |
| 18400 factory MoveFileOptions.fromRefactoringParams( | 18605 @override |
| 18401 EditGetRefactoringParams refactoringParams, Request request) { | 18606 Map<String, dynamic> toJson() { |
| 18402 return new MoveFileOptions.fromJson( | 18607 Map<String, dynamic> result = {}; |
| 18403 new RequestDecoder(request), "options", refactoringParams.options); | 18608 result["file"] = file; |
| 18609 result["fileStamp"] = fileStamp; |
| 18610 result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList(); |
| 18611 return result; |
| 18404 } | 18612 } |
| 18405 | 18613 |
| 18406 Map<String, dynamic> toJson() { | 18614 /** |
| 18407 Map<String, dynamic> result = {}; | 18615 * Adds the given [Edit] to the list. |
| 18408 result["newFile"] = newFile; | 18616 */ |
| 18409 return result; | 18617 void add(SourceEdit edit) => addEditForSource(this, edit); |
| 18410 } | 18618 |
| 18619 /** |
| 18620 * Adds the given [Edit]s. |
| 18621 */ |
| 18622 void addAll(Iterable<SourceEdit> edits) => addAllEditsForSource(this, edits); |
| 18411 | 18623 |
| 18412 @override | 18624 @override |
| 18413 String toString() => JSON.encode(toJson()); | 18625 String toString() => JSON.encode(toJson()); |
| 18414 | 18626 |
| 18415 @override | 18627 @override |
| 18416 bool operator ==(other) { | 18628 bool operator ==(other) { |
| 18417 if (other is MoveFileOptions) { | 18629 if (other is SourceFileEdit) { |
| 18418 return newFile == other.newFile; | 18630 return file == other.file && |
| 18631 fileStamp == other.fileStamp && |
| 18632 listEqual(edits, other.edits, (SourceEdit a, SourceEdit b) => a == b); |
| 18419 } | 18633 } |
| 18420 return false; | 18634 return false; |
| 18421 } | 18635 } |
| 18422 | 18636 |
| 18423 @override | 18637 @override |
| 18424 int get hashCode { | 18638 int get hashCode { |
| 18425 int hash = 0; | 18639 int hash = 0; |
| 18426 hash = JenkinsSmiHash.combine(hash, newFile.hashCode); | 18640 hash = JenkinsSmiHash.combine(hash, file.hashCode); |
| 18641 hash = JenkinsSmiHash.combine(hash, fileStamp.hashCode); |
| 18642 hash = JenkinsSmiHash.combine(hash, edits.hashCode); |
| 18427 return JenkinsSmiHash.finish(hash); | 18643 return JenkinsSmiHash.finish(hash); |
| 18428 } | 18644 } |
| 18429 } | 18645 } |
| 18430 | 18646 |
| 18431 /** | 18647 /** |
| 18432 * rename feedback | 18648 * TypeHierarchyItem |
| 18433 * | 18649 * |
| 18434 * { | 18650 * { |
| 18435 * "offset": int | 18651 * "classElement": Element |
| 18436 * "length": int | 18652 * "displayName": optional String |
| 18437 * "elementKindName": String | 18653 * "memberElement": optional Element |
| 18438 * "oldName": String | 18654 * "superclass": optional int |
| 18655 * "interfaces": List<int> |
| 18656 * "mixins": List<int> |
| 18657 * "subclasses": List<int> |
| 18439 * } | 18658 * } |
| 18440 * | 18659 * |
| 18441 * Clients may not extend, implement or mix-in this class. | 18660 * Clients may not extend, implement or mix-in this class. |
| 18442 */ | 18661 */ |
| 18443 class RenameFeedback extends RefactoringFeedback { | 18662 class TypeHierarchyItem implements HasToJson { |
| 18444 int _offset; | 18663 Element _classElement; |
| 18445 | 18664 |
| 18446 int _length; | 18665 String _displayName; |
| 18447 | 18666 |
| 18448 String _elementKindName; | 18667 Element _memberElement; |
| 18449 | 18668 |
| 18450 String _oldName; | 18669 int _superclass; |
| 18451 | 18670 |
| 18452 /** | 18671 List<int> _interfaces; |
| 18453 * The offset to the beginning of the name selected to be renamed. | 18672 |
| 18454 */ | 18673 List<int> _mixins; |
| 18455 int get offset => _offset; | 18674 |
| 18456 | 18675 List<int> _subclasses; |
| 18457 /** | 18676 |
| 18458 * The offset to the beginning of the name selected to be renamed. | 18677 /** |
| 18459 */ | 18678 * The class element represented by this item. |
| 18460 void set offset(int value) { | 18679 */ |
| 18461 assert(value != null); | 18680 Element get classElement => _classElement; |
| 18462 this._offset = value; | 18681 |
| 18463 } | 18682 /** |
| 18464 | 18683 * The class element represented by this item. |
| 18465 /** | 18684 */ |
| 18466 * The length of the name selected to be renamed. | 18685 void set classElement(Element value) { |
| 18467 */ | 18686 assert(value != null); |
| 18468 int get length => _length; | 18687 this._classElement = value; |
| 18469 | 18688 } |
| 18470 /** | 18689 |
| 18471 * The length of the name selected to be renamed. | 18690 /** |
| 18472 */ | 18691 * The name to be displayed for the class. This field will be omitted if the |
| 18473 void set length(int value) { | 18692 * display name is the same as the name of the element. The display name is |
| 18474 assert(value != null); | 18693 * different if there is additional type information to be displayed, such as |
| 18475 this._length = value; | 18694 * type arguments. |
| 18476 } | 18695 */ |
| 18477 | 18696 String get displayName => _displayName; |
| 18478 /** | 18697 |
| 18479 * The human-readable description of the kind of element being renamed (such | 18698 /** |
| 18480 * as "class" or "function type alias"). | 18699 * The name to be displayed for the class. This field will be omitted if the |
| 18481 */ | 18700 * display name is the same as the name of the element. The display name is |
| 18482 String get elementKindName => _elementKindName; | 18701 * different if there is additional type information to be displayed, such as |
| 18483 | 18702 * type arguments. |
| 18484 /** | 18703 */ |
| 18485 * The human-readable description of the kind of element being renamed (such | 18704 void set displayName(String value) { |
| 18486 * as "class" or "function type alias"). | 18705 this._displayName = value; |
| 18487 */ | 18706 } |
| 18488 void set elementKindName(String value) { | 18707 |
| 18489 assert(value != null); | 18708 /** |
| 18490 this._elementKindName = value; | 18709 * The member in the class corresponding to the member on which the hierarchy |
| 18491 } | 18710 * was requested. This field will be omitted if the hierarchy was not |
| 18492 | 18711 * requested for a member or if the class does not have a corresponding |
| 18493 /** | 18712 * member. |
| 18494 * The old name of the element before the refactoring. | 18713 */ |
| 18495 */ | 18714 Element get memberElement => _memberElement; |
| 18496 String get oldName => _oldName; | 18715 |
| 18497 | 18716 /** |
| 18498 /** | 18717 * The member in the class corresponding to the member on which the hierarchy |
| 18499 * The old name of the element before the refactoring. | 18718 * was requested. This field will be omitted if the hierarchy was not |
| 18500 */ | 18719 * requested for a member or if the class does not have a corresponding |
| 18501 void set oldName(String value) { | 18720 * member. |
| 18502 assert(value != null); | 18721 */ |
| 18503 this._oldName = value; | 18722 void set memberElement(Element value) { |
| 18504 } | 18723 this._memberElement = value; |
| 18505 | 18724 } |
| 18506 RenameFeedback( | 18725 |
| 18507 int offset, int length, String elementKindName, String oldName) { | 18726 /** |
| 18508 this.offset = offset; | 18727 * The index of the item representing the superclass of this class. This |
| 18509 this.length = length; | 18728 * field will be omitted if this item represents the class Object. |
| 18510 this.elementKindName = elementKindName; | 18729 */ |
| 18511 this.oldName = oldName; | 18730 int get superclass => _superclass; |
| 18512 } | 18731 |
| 18513 | 18732 /** |
| 18514 factory RenameFeedback.fromJson( | 18733 * The index of the item representing the superclass of this class. This |
| 18734 * field will be omitted if this item represents the class Object. |
| 18735 */ |
| 18736 void set superclass(int value) { |
| 18737 this._superclass = value; |
| 18738 } |
| 18739 |
| 18740 /** |
| 18741 * The indexes of the items representing the interfaces implemented by this |
| 18742 * class. The list will be empty if there are no implemented interfaces. |
| 18743 */ |
| 18744 List<int> get interfaces => _interfaces; |
| 18745 |
| 18746 /** |
| 18747 * The indexes of the items representing the interfaces implemented by this |
| 18748 * class. The list will be empty if there are no implemented interfaces. |
| 18749 */ |
| 18750 void set interfaces(List<int> value) { |
| 18751 assert(value != null); |
| 18752 this._interfaces = value; |
| 18753 } |
| 18754 |
| 18755 /** |
| 18756 * The indexes of the items representing the mixins referenced by this class. |
| 18757 * The list will be empty if there are no classes mixed in to this class. |
| 18758 */ |
| 18759 List<int> get mixins => _mixins; |
| 18760 |
| 18761 /** |
| 18762 * The indexes of the items representing the mixins referenced by this class. |
| 18763 * The list will be empty if there are no classes mixed in to this class. |
| 18764 */ |
| 18765 void set mixins(List<int> value) { |
| 18766 assert(value != null); |
| 18767 this._mixins = value; |
| 18768 } |
| 18769 |
| 18770 /** |
| 18771 * The indexes of the items representing the subtypes of this class. The list |
| 18772 * will be empty if there are no subtypes or if this item represents a |
| 18773 * supertype of the pivot type. |
| 18774 */ |
| 18775 List<int> get subclasses => _subclasses; |
| 18776 |
| 18777 /** |
| 18778 * The indexes of the items representing the subtypes of this class. The list |
| 18779 * will be empty if there are no subtypes or if this item represents a |
| 18780 * supertype of the pivot type. |
| 18781 */ |
| 18782 void set subclasses(List<int> value) { |
| 18783 assert(value != null); |
| 18784 this._subclasses = value; |
| 18785 } |
| 18786 |
| 18787 TypeHierarchyItem(Element classElement, |
| 18788 {String displayName, |
| 18789 Element memberElement, |
| 18790 int superclass, |
| 18791 List<int> interfaces, |
| 18792 List<int> mixins, |
| 18793 List<int> subclasses}) { |
| 18794 this.classElement = classElement; |
| 18795 this.displayName = displayName; |
| 18796 this.memberElement = memberElement; |
| 18797 this.superclass = superclass; |
| 18798 if (interfaces == null) { |
| 18799 this.interfaces = <int>[]; |
| 18800 } else { |
| 18801 this.interfaces = interfaces; |
| 18802 } |
| 18803 if (mixins == null) { |
| 18804 this.mixins = <int>[]; |
| 18805 } else { |
| 18806 this.mixins = mixins; |
| 18807 } |
| 18808 if (subclasses == null) { |
| 18809 this.subclasses = <int>[]; |
| 18810 } else { |
| 18811 this.subclasses = subclasses; |
| 18812 } |
| 18813 } |
| 18814 |
| 18815 factory TypeHierarchyItem.fromJson( |
| 18515 JsonDecoder jsonDecoder, String jsonPath, Object json) { | 18816 JsonDecoder jsonDecoder, String jsonPath, Object json) { |
| 18516 if (json == null) { | 18817 if (json == null) { |
| 18517 json = {}; | 18818 json = {}; |
| 18518 } | 18819 } |
| 18519 if (json is Map) { | 18820 if (json is Map) { |
| 18520 int offset; | 18821 Element classElement; |
| 18521 if (json.containsKey("offset")) { | 18822 if (json.containsKey("classElement")) { |
| 18522 offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]); | 18823 classElement = new Element.fromJson( |
| 18523 } else { | 18824 jsonDecoder, jsonPath + ".classElement", json["classElement"]); |
| 18524 throw jsonDecoder.missingKey(jsonPath, "offset"); | 18825 } else { |
| 18525 } | 18826 throw jsonDecoder.mismatch(jsonPath, "classElement"); |
| 18526 int length; | 18827 } |
| 18527 if (json.containsKey("length")) { | 18828 String displayName; |
| 18528 length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]); | 18829 if (json.containsKey("displayName")) { |
| 18529 } else { | 18830 displayName = jsonDecoder.decodeString( |
| 18530 throw jsonDecoder.missingKey(jsonPath, "length"); | 18831 jsonPath + ".displayName", json["displayName"]); |
| 18531 } | 18832 } |
| 18532 String elementKindName; | 18833 Element memberElement; |
| 18533 if (json.containsKey("elementKindName")) { | 18834 if (json.containsKey("memberElement")) { |
| 18534 elementKindName = jsonDecoder.decodeString( | 18835 memberElement = new Element.fromJson( |
| 18535 jsonPath + ".elementKindName", json["elementKindName"]); | 18836 jsonDecoder, jsonPath + ".memberElement", json["memberElement"]); |
| 18536 } else { | 18837 } |
| 18537 throw jsonDecoder.missingKey(jsonPath, "elementKindName"); | 18838 int superclass; |
| 18538 } | 18839 if (json.containsKey("superclass")) { |
| 18539 String oldName; | 18840 superclass = |
| 18540 if (json.containsKey("oldName")) { | 18841 jsonDecoder.decodeInt(jsonPath + ".superclass", json["superclass"]); |
| 18541 oldName = | 18842 } |
| 18542 jsonDecoder.decodeString(jsonPath + ".oldName", json["oldName"]); | 18843 List<int> interfaces; |
| 18543 } else { | 18844 if (json.containsKey("interfaces")) { |
| 18544 throw jsonDecoder.missingKey(jsonPath, "oldName"); | 18845 interfaces = jsonDecoder.decodeList(jsonPath + ".interfaces", |
| 18545 } | 18846 json["interfaces"], jsonDecoder.decodeInt); |
| 18546 return new RenameFeedback(offset, length, elementKindName, oldName); | 18847 } else { |
| 18547 } else { | 18848 throw jsonDecoder.mismatch(jsonPath, "interfaces"); |
| 18548 throw jsonDecoder.mismatch(jsonPath, "rename feedback", json); | 18849 } |
| 18549 } | 18850 List<int> mixins; |
| 18550 } | 18851 if (json.containsKey("mixins")) { |
| 18551 | 18852 mixins = jsonDecoder.decodeList( |
| 18853 jsonPath + ".mixins", json["mixins"], jsonDecoder.decodeInt); |
| 18854 } else { |
| 18855 throw jsonDecoder.mismatch(jsonPath, "mixins"); |
| 18856 } |
| 18857 List<int> subclasses; |
| 18858 if (json.containsKey("subclasses")) { |
| 18859 subclasses = jsonDecoder.decodeList(jsonPath + ".subclasses", |
| 18860 json["subclasses"], jsonDecoder.decodeInt); |
| 18861 } else { |
| 18862 throw jsonDecoder.mismatch(jsonPath, "subclasses"); |
| 18863 } |
| 18864 return new TypeHierarchyItem(classElement, |
| 18865 displayName: displayName, |
| 18866 memberElement: memberElement, |
| 18867 superclass: superclass, |
| 18868 interfaces: interfaces, |
| 18869 mixins: mixins, |
| 18870 subclasses: subclasses); |
| 18871 } else { |
| 18872 throw jsonDecoder.mismatch(jsonPath, "TypeHierarchyItem", json); |
| 18873 } |
| 18874 } |
| 18875 |
| 18876 @override |
| 18552 Map<String, dynamic> toJson() { | 18877 Map<String, dynamic> toJson() { |
| 18553 Map<String, dynamic> result = {}; | 18878 Map<String, dynamic> result = {}; |
| 18554 result["offset"] = offset; | 18879 result["classElement"] = classElement.toJson(); |
| 18555 result["length"] = length; | 18880 if (displayName != null) { |
| 18556 result["elementKindName"] = elementKindName; | 18881 result["displayName"] = displayName; |
| 18557 result["oldName"] = oldName; | 18882 } |
| 18883 if (memberElement != null) { |
| 18884 result["memberElement"] = memberElement.toJson(); |
| 18885 } |
| 18886 if (superclass != null) { |
| 18887 result["superclass"] = superclass; |
| 18888 } |
| 18889 result["interfaces"] = interfaces; |
| 18890 result["mixins"] = mixins; |
| 18891 result["subclasses"] = subclasses; |
| 18558 return result; | 18892 return result; |
| 18559 } | 18893 } |
| 18560 | 18894 |
| 18561 @override | |
| 18562 String toString() => JSON.encode(toJson()); | |
| 18563 | |
| 18564 @override | |
| 18565 bool operator ==(other) { | |
| 18566 if (other is RenameFeedback) { | |
| 18567 return offset == other.offset && | |
| 18568 length == other.length && | |
| 18569 elementKindName == other.elementKindName && | |
| 18570 oldName == other.oldName; | |
| 18571 } | |
| 18572 return false; | |
| 18573 } | |
| 18574 | |
| 18575 @override | |
| 18576 int get hashCode { | |
| 18577 int hash = 0; | |
| 18578 hash = JenkinsSmiHash.combine(hash, offset.hashCode); | |
| 18579 hash = JenkinsSmiHash.combine(hash, length.hashCode); | |
| 18580 hash = JenkinsSmiHash.combine(hash, elementKindName.hashCode); | |
| 18581 hash = JenkinsSmiHash.combine(hash, oldName.hashCode); | |
| 18582 return JenkinsSmiHash.finish(hash); | |
| 18583 } | |
| 18584 } | |
| 18585 | |
| 18586 /** | |
| 18587 * rename options | |
| 18588 * | |
| 18589 * { | |
| 18590 * "newName": String | |
| 18591 * } | |
| 18592 * | |
| 18593 * Clients may not extend, implement or mix-in this class. | |
| 18594 */ | |
| 18595 class RenameOptions extends RefactoringOptions { | |
| 18596 String _newName; | |
| 18597 | |
| 18598 /** | |
| 18599 * The name that the element should have after the refactoring. | |
| 18600 */ | |
| 18601 String get newName => _newName; | |
| 18602 | |
| 18603 /** | |
| 18604 * The name that the element should have after the refactoring. | |
| 18605 */ | |
| 18606 void set newName(String value) { | |
| 18607 assert(value != null); | |
| 18608 this._newName = value; | |
| 18609 } | |
| 18610 | |
| 18611 RenameOptions(String newName) { | |
| 18612 this.newName = newName; | |
| 18613 } | |
| 18614 | |
| 18615 factory RenameOptions.fromJson( | |
| 18616 JsonDecoder jsonDecoder, String jsonPath, Object json) { | |
| 18617 if (json == null) { | |
| 18618 json = {}; | |
| 18619 } | |
| 18620 if (json is Map) { | |
| 18621 String newName; | |
| 18622 if (json.containsKey("newName")) { | |
| 18623 newName = | |
| 18624 jsonDecoder.decodeString(jsonPath + ".newName", json["newName"]); | |
| 18625 } else { | |
| 18626 throw jsonDecoder.missingKey(jsonPath, "newName"); | |
| 18627 } | |
| 18628 return new RenameOptions(newName); | |
| 18629 } else { | |
| 18630 throw jsonDecoder.mismatch(jsonPath, "rename options", json); | |
| 18631 } | |
| 18632 } | |
| 18633 | |
| 18634 factory RenameOptions.fromRefactoringParams( | |
| 18635 EditGetRefactoringParams refactoringParams, Request request) { | |
| 18636 return new RenameOptions.fromJson( | |
| 18637 new RequestDecoder(request), "options", refactoringParams.options); | |
| 18638 } | |
| 18639 | |
| 18640 Map<String, dynamic> toJson() { | |
| 18641 Map<String, dynamic> result = {}; | |
| 18642 result["newName"] = newName; | |
| 18643 return result; | |
| 18644 } | |
| 18645 | |
| 18646 @override | 18895 @override |
| 18647 String toString() => JSON.encode(toJson()); | 18896 String toString() => JSON.encode(toJson()); |
| 18648 | 18897 |
| 18649 @override | 18898 @override |
| 18650 bool operator ==(other) { | 18899 bool operator ==(other) { |
| 18651 if (other is RenameOptions) { | 18900 if (other is TypeHierarchyItem) { |
| 18652 return newName == other.newName; | 18901 return classElement == other.classElement && |
| 18902 displayName == other.displayName && |
| 18903 memberElement == other.memberElement && |
| 18904 superclass == other.superclass && |
| 18905 listEqual(interfaces, other.interfaces, (int a, int b) => a == b) && |
| 18906 listEqual(mixins, other.mixins, (int a, int b) => a == b) && |
| 18907 listEqual(subclasses, other.subclasses, (int a, int b) => a == b); |
| 18653 } | 18908 } |
| 18654 return false; | 18909 return false; |
| 18655 } | 18910 } |
| 18656 | 18911 |
| 18657 @override | 18912 @override |
| 18658 int get hashCode { | 18913 int get hashCode { |
| 18659 int hash = 0; | 18914 int hash = 0; |
| 18660 hash = JenkinsSmiHash.combine(hash, newName.hashCode); | 18915 hash = JenkinsSmiHash.combine(hash, classElement.hashCode); |
| 18916 hash = JenkinsSmiHash.combine(hash, displayName.hashCode); |
| 18917 hash = JenkinsSmiHash.combine(hash, memberElement.hashCode); |
| 18918 hash = JenkinsSmiHash.combine(hash, superclass.hashCode); |
| 18919 hash = JenkinsSmiHash.combine(hash, interfaces.hashCode); |
| 18920 hash = JenkinsSmiHash.combine(hash, mixins.hashCode); |
| 18921 hash = JenkinsSmiHash.combine(hash, subclasses.hashCode); |
| 18661 return JenkinsSmiHash.finish(hash); | 18922 return JenkinsSmiHash.finish(hash); |
| 18662 } | 18923 } |
| 18663 } | 18924 } |
| OLD | NEW |