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

Unified Diff: editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/internal/remote/processor/LibraryDependenciesProcessor.java

Issue 874373003: Library dependencies server API updates (to pass package maps). (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/internal/remote/processor/LibraryDependenciesProcessor.java
===================================================================
--- editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/internal/remote/processor/LibraryDependenciesProcessor.java (revision 43154)
+++ editor/tools/plugins/com.google.dart.server/src/com/google/dart/server/internal/remote/processor/LibraryDependenciesProcessor.java (working copy)
@@ -13,10 +13,17 @@
*/
package com.google.dart.server.internal.remote.processor;
+import com.google.common.reflect.TypeToken;
import com.google.dart.server.GetLibraryDependenciesConsumer;
import com.google.dart.server.generated.types.RequestError;
+import com.google.gson.Gson;
+import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
/**
* Instances of {@code LibraryDependenciesProcessor} translate JSON result objects for a given
* {@link GetLibraryDependenciesConsumer}.
@@ -24,6 +31,17 @@
* @coverage dart.server.remote
*/
public class LibraryDependenciesProcessor extends ResultProcessor {
+
+ private static final Map<String, Map<String, List<String>>> EMPTY_MAP = Collections.<String, Map<String, List<String>>> emptyMap();
+
+ private static Map<String, Map<String, List<String>>> constructPackageMap(JsonElement jsonMap) {
+ if (jsonMap == null) {
+ return EMPTY_MAP;
+ }
+ return new Gson().fromJson(jsonMap, new TypeToken<Map<String, Map<String, List<String>>>>() {
+ }.getType());
+ }
+
private final GetLibraryDependenciesConsumer consumer;
public LibraryDependenciesProcessor(GetLibraryDependenciesConsumer consumer) {
@@ -34,7 +52,8 @@
if (resultObject != null) {
try {
String[] libraries = constructStringArray(resultObject.get("libraries").getAsJsonArray());
- consumer.computedDependencies(libraries);
+ Map<String, Map<String, List<String>>> packageMap = constructPackageMap(resultObject.get("packageMap"));
+ consumer.computedDependencies(libraries, packageMap);
} catch (Exception exception) {
// catch any exceptions in the formatting of this response
requestError = generateRequestError(exception);
@@ -44,4 +63,5 @@
consumer.onError(requestError);
}
}
+
}

Powered by Google App Engine
This is Rietveld 408576698