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

Side by Side Diff: pkg/analyzer_plugin/lib/src/protocol/protocol_internal.dart

Issue 2967683002: Clean up some code in plugins (Closed)
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'dart:collection'; 5 import 'dart:collection';
6 import 'dart:convert' hide JsonDecoder; 6 import 'dart:convert' hide JsonDecoder;
7 7
8 import 'package:analyzer_plugin/protocol/protocol.dart'; 8 import 'package:analyzer_plugin/protocol/protocol.dart';
9 import 'package:analyzer_plugin/protocol/protocol_common.dart'; 9 import 'package:analyzer_plugin/protocol/protocol_common.dart';
10 import 'package:analyzer_plugin/protocol/protocol_generated.dart'; 10 import 'package:analyzer_plugin/protocol/protocol_generated.dart';
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 return false; 124 return false;
125 } 125 }
126 } 126 }
127 return true; 127 return true;
128 } 128 }
129 129
130 /** 130 /**
131 * Translate the input [map], applying [keyCallback] to all its keys, and 131 * Translate the input [map], applying [keyCallback] to all its keys, and
132 * [valueCallback] to all its values. 132 * [valueCallback] to all its values.
133 */ 133 */
134 Map/*<KR, VR>*/ mapMap/*<KP, VP, KR, VR>*/(Map/*<KP, VP>*/ map, 134 Map<KR, VR> mapMap<KP, VP, KR, VR>(Map<KP, VP> map,
135 {dynamic/*=KR*/ keyCallback(/*<KP>*/ key), 135 {KR keyCallback(KP key), VR valueCallback(VP value)}) {
136 dynamic/*=VR*/ valueCallback(/*<VP>*/ value)}) { 136 Map<KR, VR> result = new HashMap<KR, VR>();
137 Map/*<KR, VR>*/ result = new HashMap/*<KR, VR>*/();
138 map.forEach((key, value) { 137 map.forEach((key, value) {
139 Object/*=KR*/ resultKey; 138 KR resultKey;
140 Object/*=VR*/ resultValue; 139 VR resultValue;
141 if (keyCallback != null) { 140 if (keyCallback != null) {
142 resultKey = keyCallback(key); 141 resultKey = keyCallback(key);
143 } else { 142 } else {
144 resultKey = key as Object/*=KR*/; 143 resultKey = key as KR;
145 } 144 }
146 if (valueCallback != null) { 145 if (valueCallback != null) {
147 resultValue = valueCallback(value); 146 resultValue = valueCallback(value);
148 } else { 147 } else {
149 resultValue = value as Object/*=VR*/; 148 resultValue = value as VR;
150 } 149 }
151 result[resultKey] = resultValue; 150 result[resultKey] = resultValue;
152 }); 151 });
153 return result; 152 return result;
154 } 153 }
155 154
156 RefactoringProblemSeverity maxRefactoringProblemSeverity( 155 RefactoringProblemSeverity maxRefactoringProblemSeverity(
157 RefactoringProblemSeverity a, RefactoringProblemSeverity b) { 156 RefactoringProblemSeverity a, RefactoringProblemSeverity b) {
158 if (b == null) { 157 if (b == null) {
159 return a; 158 return a;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 } 217 }
219 if (kind == RefactoringKind.MOVE_FILE) { 218 if (kind == RefactoringKind.MOVE_FILE) {
220 return new MoveFileOptions.fromJson(jsonDecoder, jsonPath, json); 219 return new MoveFileOptions.fromJson(jsonDecoder, jsonPath, json);
221 } 220 }
222 if (kind == RefactoringKind.RENAME) { 221 if (kind == RefactoringKind.RENAME) {
223 return new RenameOptions.fromJson(jsonDecoder, jsonPath, json); 222 return new RenameOptions.fromJson(jsonDecoder, jsonPath, json);
224 } 223 }
225 return null; 224 return null;
226 } 225 }
227 226
228 ///**
229 // * Create a [RefactoringFeedback] corresponding the given [kind].
230 // */
231 //RefactoringFeedback refactoringFeedbackFromJson(
232 // JsonDecoder jsonDecoder, String jsonPath, Object json, Map feedbackJson) {
233 // RefactoringKind kind = jsonDecoder.refactoringKind;
234 // if (kind == RefactoringKind.EXTRACT_LOCAL_VARIABLE) {
235 // return new ExtractLocalVariableFeedback.fromJson(
236 // jsonDecoder, jsonPath, json);
237 // }
238 // if (kind == RefactoringKind.EXTRACT_METHOD) {
239 // return new ExtractMethodFeedback.fromJson(jsonDecoder, jsonPath, json);
240 // }
241 // if (kind == RefactoringKind.INLINE_LOCAL_VARIABLE) {
242 // return new InlineLocalVariableFeedback.fromJson(
243 // jsonDecoder, jsonPath, json);
244 // }
245 // if (kind == RefactoringKind.INLINE_METHOD) {
246 // return new InlineMethodFeedback.fromJson(jsonDecoder, jsonPath, json);
247 // }
248 // if (kind == RefactoringKind.RENAME) {
249 // return new RenameFeedback.fromJson(jsonDecoder, jsonPath, json);
250 // }
251 // return null;
252 //}
253 //
254 ///**
255 // * Create a [RefactoringOptions] corresponding the given [kind].
256 // */
257 //RefactoringOptions refactoringOptionsFromJson(JsonDecoder jsonDecoder,
258 // String jsonPath, Object json, RefactoringKind kind) {
259 // if (kind == RefactoringKind.EXTRACT_LOCAL_VARIABLE) {
260 // return new ExtractLocalVariableOptions.fromJson(
261 // jsonDecoder, jsonPath, json);
262 // }
263 // if (kind == RefactoringKind.EXTRACT_METHOD) {
264 // return new ExtractMethodOptions.fromJson(jsonDecoder, jsonPath, json);
265 // }
266 // if (kind == RefactoringKind.INLINE_METHOD) {
267 // return new InlineMethodOptions.fromJson(jsonDecoder, jsonPath, json);
268 // }
269 // if (kind == RefactoringKind.MOVE_FILE) {
270 // return new MoveFileOptions.fromJson(jsonDecoder, jsonPath, json);
271 // }
272 // if (kind == RefactoringKind.RENAME) {
273 // return new RenameOptions.fromJson(jsonDecoder, jsonPath, json);
274 // }
275 // return null;
276 //}
277
278 /** 227 /**
279 * Type of callbacks used to decode parts of JSON objects. [jsonPath] is a 228 * Type of callbacks used to decode parts of JSON objects. [jsonPath] is a
280 * string describing the part of the JSON object being decoded, and [value] is 229 * string describing the part of the JSON object being decoded, and [value] is
281 * the part to decode. 230 * the part to decode.
282 */ 231 */
283 typedef E JsonDecoderCallback<E>(String jsonPath, Object value); 232 typedef E JsonDecoderCallback<E>(String jsonPath, Object value);
284 233
285 /** 234 /**
286 * Instances of the class [HasToJson] implement [toJson] method that returns 235 * Instances of the class [HasToJson] implement [toJson] method that returns
287 * a JSON presentation. 236 * a JSON presentation.
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 } 283 }
335 throw mismatch(jsonPath, 'int', json); 284 throw mismatch(jsonPath, 'int', json);
336 } 285 }
337 286
338 /** 287 /**
339 * Decode a JSON object that is expected to be a List. The [decoder] is used 288 * Decode a JSON object that is expected to be a List. The [decoder] is used
340 * to decode the items in the list. 289 * to decode the items in the list.
341 * 290 *
342 * The type parameter [E] is the expected type of the elements in the list. 291 * The type parameter [E] is the expected type of the elements in the list.
343 */ 292 */
344 List/*<E>*/ decodeList/*<E>*/(String jsonPath, Object json, 293 List<E> decodeList<E>(String jsonPath, Object json,
345 [JsonDecoderCallback/*<E>*/ decoder]) { 294 [JsonDecoderCallback<E> decoder]) {
346 if (json == null) { 295 if (json == null) {
347 return/*<E>*/ []; 296 return <E>[];
348 } else if (json is List) { 297 } else if (json is List) {
349 List/*<E>*/ result = /*<E>*/ []; 298 List<E> result = <E>[];
350 for (int i = 0; i < json.length; i++) { 299 for (int i = 0; i < json.length; i++) {
351 result.add(decoder('$jsonPath[$i]', json[i])); 300 result.add(decoder('$jsonPath[$i]', json[i]));
352 } 301 }
353 return result; 302 return result;
354 } else { 303 } else {
355 throw mismatch(jsonPath, 'List', json); 304 throw mismatch(jsonPath, 'List', json);
356 } 305 }
357 } 306 }
358 307
359 /** 308 /**
360 * Decode a JSON object that is expected to be a Map. [keyDecoder] is used 309 * Decode a JSON object that is expected to be a Map. [keyDecoder] is used
361 * to decode the keys, and [valueDecoder] is used to decode the values. 310 * to decode the keys, and [valueDecoder] is used to decode the values.
362 */ 311 */
363 Map/*<K, V>*/ decodeMap/*<K, V>*/(String jsonPath, Object json, 312 Map<K, V> decodeMap<K, V>(String jsonPath, Object json,
364 {JsonDecoderCallback/*<K>*/ keyDecoder, 313 {JsonDecoderCallback<K> keyDecoder,
365 JsonDecoderCallback/*<V>*/ valueDecoder}) { 314 JsonDecoderCallback<V> valueDecoder}) {
366 if (json == null) { 315 if (json == null) {
367 return {}; 316 return {};
368 } else if (json is Map) { 317 } else if (json is Map) {
369 Map/*<K, V>*/ result = /*<K, V>*/ {}; 318 Map<K, V> result = <K, V>{};
370 json.forEach((String key, value) { 319 json.forEach((String key, value) {
371 Object/*=K*/ decodedKey; 320 K decodedKey;
372 if (keyDecoder != null) { 321 if (keyDecoder != null) {
373 decodedKey = keyDecoder('$jsonPath.key', key); 322 decodedKey = keyDecoder('$jsonPath.key', key);
374 } else { 323 } else {
375 decodedKey = key as Object/*=K*/; 324 decodedKey = key as K;
376 } 325 }
377 if (valueDecoder != null) { 326 if (valueDecoder != null) {
378 value = valueDecoder('$jsonPath[${JSON.encode(key)}]', value); 327 value = valueDecoder('$jsonPath[${JSON.encode(key)}]', value);
379 } 328 }
380 result[decodedKey] = value as Object/*=V*/; 329 result[decodedKey] = value as V;
381 }); 330 });
382 return result; 331 return result;
383 } else { 332 } else {
384 throw mismatch(jsonPath, 'Map', json); 333 throw mismatch(jsonPath, 'Map', json);
385 } 334 }
386 } 335 }
387 336
388 /** 337 /**
389 * Decode a JSON object that is expected to be a string. 338 * Decode a JSON object that is expected to be a string.
390 */ 339 */
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 /** 463 /**
515 * The result data associated with a response. 464 * The result data associated with a response.
516 */ 465 */
517 abstract class ResponseResult implements HasToJson { 466 abstract class ResponseResult implements HasToJson {
518 /** 467 /**
519 * Return a response whose result data is this object for the request with the 468 * Return a response whose result data is this object for the request with the
520 * given [id], where the request was received at the given [requestTime]. 469 * given [id], where the request was received at the given [requestTime].
521 */ 470 */
522 Response toResponse(String id, int requestTime); 471 Response toResponse(String id, int requestTime);
523 } 472 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698