| OLD | NEW | 
|    1 // Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file |    1 // Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file | 
|    2 // for details. All rights reserved. Use of this source code is governed by a |    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 /** |    5 /** | 
|    6  * Support for client code that needs to interact with the requests, responses |    6  * Support for client code that needs to interact with the requests, responses | 
|    7  * and notifications that are part of the analysis server's wire protocol. |    7  * and notifications that are part of the analysis server's wire protocol. | 
|    8  */ |    8  */ | 
|    9 library analysis_server.plugin.protocol.protocol; |    9 library analysis_server.plugin.protocol.protocol; | 
|   10  |   10  | 
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   80    * Initialize a newly created [Notification] to have the given [event] name. |   80    * Initialize a newly created [Notification] to have the given [event] name. | 
|   81    * If [_params] is provided, it will be used as the params; otherwise no |   81    * If [_params] is provided, it will be used as the params; otherwise no | 
|   82    * params will be used. |   82    * params will be used. | 
|   83    */ |   83    */ | 
|   84   Notification(this.event, [this._params]); |   84   Notification(this.event, [this._params]); | 
|   85  |   85  | 
|   86   /** |   86   /** | 
|   87    * Initialize a newly created instance based on the given JSON data. |   87    * Initialize a newly created instance based on the given JSON data. | 
|   88    */ |   88    */ | 
|   89   factory Notification.fromJson(Map<String, Object> json) { |   89   factory Notification.fromJson(Map<String, Object> json) { | 
|   90     return new Notification( |   90     return new Notification(json[Notification.EVENT], | 
|   91         json[Notification.EVENT], json[Notification.PARAMS]); |   91         json[Notification.PARAMS] as Map<String, Object>); | 
|   92   } |   92   } | 
|   93  |   93  | 
|   94   /** |   94   /** | 
|   95    * Return a table representing the structure of the Json object that will be |   95    * Return a table representing the structure of the Json object that will be | 
|   96    * sent to the client to represent this response. |   96    * sent to the client to represent this response. | 
|   97    */ |   97    */ | 
|   98   Map<String, Object> toJson() { |   98   Map<String, Object> toJson() { | 
|   99     Map<String, Object> jsonObject = {}; |   99     Map<String, Object> jsonObject = {}; | 
|  100     jsonObject[EVENT] = event; |  100     jsonObject[EVENT] = event; | 
|  101     if (_params != null) { |  101     if (_params != null) { | 
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  187     var method = result[Request.METHOD]; |  187     var method = result[Request.METHOD]; | 
|  188     if (id is! String || method is! String) { |  188     if (id is! String || method is! String) { | 
|  189       return null; |  189       return null; | 
|  190     } |  190     } | 
|  191     var time = result[Request.CLIENT_REQUEST_TIME]; |  191     var time = result[Request.CLIENT_REQUEST_TIME]; | 
|  192     if (time != null && time is! int) { |  192     if (time != null && time is! int) { | 
|  193       return null; |  193       return null; | 
|  194     } |  194     } | 
|  195     var params = result[Request.PARAMS]; |  195     var params = result[Request.PARAMS]; | 
|  196     if (params is Map || params == null) { |  196     if (params is Map || params == null) { | 
|  197       return new Request(id, method, params, time); |  197       return new Request(id, method, params as Map<String, Object>, time); | 
|  198     } else { |  198     } else { | 
|  199       return null; |  199       return null; | 
|  200     } |  200     } | 
|  201   } |  201   } | 
|  202  |  202  | 
|  203   /** |  203   /** | 
|  204    * Return a request parsed from the given [data], or `null` if the [data] is |  204    * Return a request parsed from the given [data], or `null` if the [data] is | 
|  205    * not a valid json representation of a request. The [data] is expected to |  205    * not a valid json representation of a request. The [data] is expected to | 
|  206    * have the following format: |  206    * have the following format: | 
|  207    * |  207    * | 
|  208    *   { |  208    *   { | 
|  209    *     'clientRequestTime': millisecondsSinceEpoch |  209    *     'clientRequestTime': millisecondsSinceEpoch | 
|  210    *     'id': String, |  210    *     'id': String, | 
|  211    *     'method': methodName, |  211    *     'method': methodName, | 
|  212    *     'params': { |  212    *     'params': { | 
|  213    *       paramter_name: value |  213    *       paramter_name: value | 
|  214    *     } |  214    *     } | 
|  215    *   } |  215    *   } | 
|  216    * |  216    * | 
|  217    * where both the parameters and clientRequestTime are optional. |  217    * where both the parameters and clientRequestTime are optional. | 
|  218    * |  218    * | 
|  219    * The parameters can contain any number of name/value pairs. The |  219    * The parameters can contain any number of name/value pairs. The | 
|  220    * clientRequestTime must be an int representing the time at which the client |  220    * clientRequestTime must be an int representing the time at which the client | 
|  221    * issued the request (milliseconds since epoch). |  221    * issued the request (milliseconds since epoch). | 
|  222    */ |  222    */ | 
|  223   factory Request.fromString(String data) { |  223   factory Request.fromString(String data) { | 
|  224     try { |  224     try { | 
|  225       var result = JSON.decode(data); |  225       var result = JSON.decode(data); | 
|  226       if (result is Map) { |  226       if (result is Map) { | 
|  227         return new Request.fromJson(result); |  227         return new Request.fromJson(result as Map<String, dynamic>); | 
|  228       } |  228       } | 
|  229       return null; |  229       return null; | 
|  230     } catch (exception) { |  230     } catch (exception) { | 
|  231       return null; |  231       return null; | 
|  232     } |  232     } | 
|  233   } |  233   } | 
|  234  |  234  | 
|  235   /** |  235   /** | 
|  236    * Return a table representing the structure of the Json object that will be |  236    * Return a table representing the structure of the Json object that will be | 
|  237    * sent to the client to represent this response. |  237    * sent to the client to represent this response. | 
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  376       } |  376       } | 
|  377       Object error = json[Response.ERROR]; |  377       Object error = json[Response.ERROR]; | 
|  378       RequestError decodedError; |  378       RequestError decodedError; | 
|  379       if (error is Map) { |  379       if (error is Map) { | 
|  380         decodedError = new RequestError.fromJson( |  380         decodedError = new RequestError.fromJson( | 
|  381             new ResponseDecoder(null), '.error', error); |  381             new ResponseDecoder(null), '.error', error); | 
|  382       } |  382       } | 
|  383       Object result = json[Response.RESULT]; |  383       Object result = json[Response.RESULT]; | 
|  384       Map<String, Object> decodedResult; |  384       Map<String, Object> decodedResult; | 
|  385       if (result is Map) { |  385       if (result is Map) { | 
|  386         decodedResult = result; |  386         decodedResult = result as Map<String, Object>; | 
|  387       } |  387       } | 
|  388       return new Response(id, error: decodedError, result: decodedResult); |  388       return new Response(id, error: decodedError, result: decodedResult); | 
|  389     } catch (exception) { |  389     } catch (exception) { | 
|  390       return null; |  390       return null; | 
|  391     } |  391     } | 
|  392   } |  392   } | 
|  393  |  393  | 
|  394   /** |  394   /** | 
|  395    * Initialize a newly created instance to represent the |  395    * Initialize a newly created instance to represent the | 
|  396    * GET_ERRORS_INVALID_FILE error condition. |  396    * GET_ERRORS_INVALID_FILE error condition. | 
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  575     jsonObject[ID] = id; |  575     jsonObject[ID] = id; | 
|  576     if (error != null) { |  576     if (error != null) { | 
|  577       jsonObject[ERROR] = error.toJson(); |  577       jsonObject[ERROR] = error.toJson(); | 
|  578     } |  578     } | 
|  579     if (_result != null) { |  579     if (_result != null) { | 
|  580       jsonObject[RESULT] = _result; |  580       jsonObject[RESULT] = _result; | 
|  581     } |  581     } | 
|  582     return jsonObject; |  582     return jsonObject; | 
|  583   } |  583   } | 
|  584 } |  584 } | 
| OLD | NEW |