Index: pkg/analysis_server/lib/src/protocol.dart |
diff --git a/pkg/analysis_server/lib/src/protocol.dart b/pkg/analysis_server/lib/src/protocol.dart |
index 8a15ebe9e9418a6863555ef60c323afff56e7e8f..f633eb8d7460738887d4b29067ea0e32c59a9ce4 100644 |
--- a/pkg/analysis_server/lib/src/protocol.dart |
+++ b/pkg/analysis_server/lib/src/protocol.dart |
@@ -513,7 +513,7 @@ class Request { |
: _params = params != null ? params : new HashMap<String, Object>(); |
/** |
- * Return a request parsed from the given [data], or `null` if the [data] is |
+ * Return a request parsed from the given json, or `null` if the [data] is |
* not a valid json representation of a request. The [data] is expected to |
* have the following format: |
* |
@@ -531,20 +531,26 @@ class Request { |
* The clientRequestTime must be an int representing the time at which |
* the client issued the request (milliseconds since epoch). |
*/ |
- factory Request.fromString(String data) { |
- try { |
- var result = JSON.decode(data); |
- if (result is Map) { |
- return new Request.fromJson(result); |
- } |
+ factory Request.fromJson(Map<String, dynamic> result) { |
+ var id = result[Request.ID]; |
+ var method = result[Request.METHOD]; |
+ if (id is! String || method is! String) { |
return null; |
- } catch (exception) { |
+ } |
+ var time = result[Request.CLIENT_REQUEST_TIME]; |
+ if (time != null && time is! int) { |
+ return null; |
+ } |
+ var params = result[Request.PARAMS]; |
+ if (params is Map || params == null) { |
+ return new Request(id, method, params, time); |
+ } else { |
return null; |
} |
} |
/** |
- * Return a request parsed from the given json, or `null` if the [data] is |
+ * Return a request parsed from the given [data], or `null` if the [data] is |
* not a valid json representation of a request. The [data] is expected to |
* have the following format: |
* |
@@ -562,20 +568,14 @@ class Request { |
* The clientRequestTime must be an int representing the time at which |
* the client issued the request (milliseconds since epoch). |
*/ |
- factory Request.fromJson(Map<String, dynamic> result) { |
- var id = result[Request.ID]; |
- var method = result[Request.METHOD]; |
- if (id is! String || method is! String) { |
- return null; |
- } |
- var time = result[Request.CLIENT_REQUEST_TIME]; |
- if (time != null && time is! int) { |
+ factory Request.fromString(String data) { |
+ try { |
+ var result = JSON.decode(data); |
+ if (result is Map) { |
+ return new Request.fromJson(result); |
+ } |
return null; |
- } |
- var params = result[Request.PARAMS]; |
- if (params is Map || params == null) { |
- return new Request(id, method, params, time); |
- } else { |
+ } catch (exception) { |
return null; |
} |
} |
@@ -763,6 +763,14 @@ class Response { |
'Error during `analysis.getErrors`: invalid file.')); |
/** |
+ * Initialize a newly created instance to represent the |
+ * GET_NAVIGATION_INVALID_FILE error condition. |
+ */ |
+ Response.getNavigationInvalidFile(Request request) : this(request.id, |
+ error: new RequestError(RequestErrorCode.GET_NAVIGATION_INVALID_FILE, |
+ 'Error during `analysis.getNavigation`: invalid file.')); |
+ |
+ /** |
* Initialize a newly created instance to represent an error condition caused |
* by an analysis.reanalyze [request] that specifies an analysis root that is |
* not in the current list of analysis roots. |