Topojsons have all been formatted with jsonlint
Added topojson files for all supportted maps, optimised the countries topojson files to remove unused properties.

Added Javadocs for UiTopoMap

Refactored Topo Maps to use UiTopoMapFactory, UiTopoMap classes.

Change-Id: I976137baa7f62a81e48231e1612b967d39dc641d

Refactored Topo Maps to use UiTopoMapFactory, UiTopoMap classes.

Change-Id: I976137baa7f62a81e48231e1612b967d39dc641d

Added Copyright

Change-Id: Ie62171ba6ab08bbf955bc444cd2db41d0c30baaa

Added file path for topojson or svg

Change-Id: Ib1fc79672079ec4c6e2cd35bc39a28abeafca297

Line break to account for the soft limit

Change-Id: Ib2b57ceee139b20a73d7ad0110b37fc1b5326ed7

Added File Path to the Map Class

Change-Id: Ic6ae4ca507e58155bb106ad46be14e048dc3a95c

Added File Path to the Map Class

Change-Id: Ib2200b0bf315f9dccb581447ddb4b6f6669e34ff
diff --git a/core/api/src/main/java/org/onosproject/ui/UiExtension.java b/core/api/src/main/java/org/onosproject/ui/UiExtension.java
index 06c6e3b..1528db2 100644
--- a/core/api/src/main/java/org/onosproject/ui/UiExtension.java
+++ b/core/api/src/main/java/org/onosproject/ui/UiExtension.java
@@ -44,18 +44,21 @@
     private final List<UiView> views;
     private final UiMessageHandlerFactory messageHandlerFactory;
     private final UiTopoOverlayFactory topoOverlayFactory;
+    private final UiTopoMapFactory topoMapFactory;
 
     private boolean isValid = true;
 
     // private constructor - only the builder calls this
     private UiExtension(ClassLoader cl, String path, List<UiView> views,
                         UiMessageHandlerFactory mhFactory,
-                        UiTopoOverlayFactory toFactory) {
+                        UiTopoOverlayFactory toFactory,
+                        UiTopoMapFactory tmFactory) {
         this.classLoader = cl;
         this.resourcePath = path;
         this.views = views;
         this.messageHandlerFactory = mhFactory;
         this.topoOverlayFactory = toFactory;
+        this.topoMapFactory = tmFactory;
     }
 
 
@@ -115,6 +118,15 @@
         return topoOverlayFactory;
     }
 
+    /**
+     * Returns the topology map factory, if one was defined.
+     *
+     * @return topology map factory
+     */
+    public UiTopoMapFactory topoMapFactory() {
+        return topoMapFactory;
+    }
+
 
     // Returns the resource input stream from the specified class-loader.
     private InputStream getStream(String path) {
@@ -137,6 +149,7 @@
         private List<UiView> views = new ArrayList<>();
         private UiMessageHandlerFactory messageHandlerFactory = null;
         private UiTopoOverlayFactory topoOverlayFactory = null;
+        private UiTopoMapFactory topoMapFactory = null;
 
         /**
          * Create a builder with the given class loader.
@@ -189,13 +202,25 @@
         }
 
         /**
+         * Sets the topology map factory for this extension.
+         *
+         * @param tmFactory topology map factory
+         * @return self, for chaining
+         */
+        public Builder topoMapFactory(UiTopoMapFactory tmFactory) {
+            this.topoMapFactory = tmFactory;
+            return this;
+        }
+
+        /**
          * Builds the UI extension.
          *
          * @return UI extension instance
          */
         public UiExtension build() {
             return new UiExtension(classLoader, resourcePath, views,
-                                   messageHandlerFactory, topoOverlayFactory);
+                                    messageHandlerFactory, topoOverlayFactory,
+                                    topoMapFactory);
         }
 
     }
diff --git a/core/api/src/main/java/org/onosproject/ui/UiTopoMap.java b/core/api/src/main/java/org/onosproject/ui/UiTopoMap.java
new file mode 100644
index 0000000..9ba67ab
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/ui/UiTopoMap.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.ui;
+
+/**
+ * Represents user interface topology view overlay.
+ */
+public class UiTopoMap {
+
+    private final String id;
+    private final String description;
+    private final String filePath;
+    private final double scale;
+
+
+    /**
+     * Creates a new topology map.
+     *
+     * @param id map identifier
+     * @param description map description
+     * @param filePath map filePath,
+     * @param scale map scale,
+     */
+    public UiTopoMap(String id, String description, String filePath, double scale) {
+        this.id = id;
+        this.description = description;
+        this.filePath = filePath;
+        this.scale = scale;
+    }
+
+    /**
+     * Returns the identifier for this map.
+     *
+     * @return the identifier
+     */
+    public String getId() {
+        return this.id;
+    }
+
+    /**
+     * Returns the description for this map.
+     *
+     * @return the description
+     */
+    public String getDescription() {
+        return this.description;
+    }
+
+    /**
+     * Returns the filePath for this map.
+     *
+     * @return the filePath
+     */
+    public String getFilePath() {
+        return this.filePath;
+    }
+
+    /**
+     * Returns the scale for this map.
+     *
+     * @return the scale
+     */
+    public double getScale() {
+        return this.scale;
+    }
+
+}
diff --git a/core/api/src/main/java/org/onosproject/ui/UiTopoMapFactory.java b/core/api/src/main/java/org/onosproject/ui/UiTopoMapFactory.java
new file mode 100644
index 0000000..5e787d4
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/ui/UiTopoMapFactory.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.ui;
+
+import java.util.List;
+
+/**
+ * Abstraction of an entity capable of producing one or more topology
+ * map topologies.
+ */
+public interface UiTopoMapFactory {
+
+    /**
+     * Produces a list of new maps.
+     *
+     * @return list of new maps
+     */
+    List<UiTopoMap> newMaps();
+}
\ No newline at end of file