GUI -- Added facility to upload and track various sprite JSON definitions. WIP

Change-Id: I5629e07d84b91d2d885737a9011acc4e13538cf2
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
index e818071..66138e7 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
@@ -15,7 +15,9 @@
  */
 package org.onosproject.ui.impl;
 
+import com.fasterxml.jackson.databind.JsonNode;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.felix.scr.annotations.Activate;
@@ -31,6 +33,7 @@
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import static com.google.common.collect.ImmutableList.of;
 import static java.util.stream.Collectors.toSet;
@@ -40,7 +43,7 @@
  */
 @Component(immediate = true)
 @Service
-public class UiExtensionManager implements UiExtensionService {
+public class UiExtensionManager implements UiExtensionService, SpriteService {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
 
@@ -115,4 +118,25 @@
     public synchronized UiExtension getViewExtension(String viewId) {
         return views.get(viewId);
     }
+
+
+    // Provisional tracking of sprite definitions
+    private Map<String, JsonNode> sprites = Maps.newHashMap();
+
+    @Override
+    public Set<String> getNames() {
+        return ImmutableSet.copyOf(sprites.keySet());
+    }
+
+    @Override
+    public void put(String name, JsonNode spriteData) {
+        log.info("Registered sprite definition {}", name);
+        sprites.put(name, spriteData);
+    }
+
+    @Override
+    public JsonNode get(String name) {
+        return sprites.get(name);
+    }
+
 }