Implementing the UiLayoutManager.

Change-Id: I0a3424f7e3b13a3c18e668a5eed5151755bce4f9
diff --git a/core/api/src/main/java/org/onosproject/ui/UiTopoLayoutService.java b/core/api/src/main/java/org/onosproject/ui/UiTopoLayoutService.java
index 0aa7db0..989c807 100644
--- a/core/api/src/main/java/org/onosproject/ui/UiTopoLayoutService.java
+++ b/core/api/src/main/java/org/onosproject/ui/UiTopoLayoutService.java
@@ -16,8 +16,9 @@
 package org.onosproject.ui;
 
 import org.onosproject.ui.model.topo.UiTopoLayout;
+import org.onosproject.ui.model.topo.UiTopoLayoutId;
 
-import java.util.List;
+import java.util.Set;
 
 /**
  * Service for managing {@link UiTopoLayout} instances.
@@ -25,20 +26,28 @@
 public interface UiTopoLayoutService {
 
     /**
-     * Returns the list of available layouts.
+     * Returns the set of available layouts.
      *
-     * @return available layouts
+     * @return set of available layouts
      */
-    List<UiTopoLayout> getLayouts();
+    Set<UiTopoLayout> getLayouts();
 
     /**
-     * Adds a layout to the system.
+     * Adds a layout to the system or updates an existing one.
      *
-     * @param layout the layout to add
+     * @param layout the layout to add or update
      * @return an indication of success
      */
     boolean addLayout(UiTopoLayout layout);
 
+
+    /**
+     * Returns the layout with the specified identifier.
+     * @param layoutId layout identifier
+     * @return layout or null if no such layout is found
+     */
+    UiTopoLayout getLayout(UiTopoLayoutId layoutId);
+
     /**
      * Removes a layout from the system.
      *