CORD Subscriber GUI - XosFunction mementos now stored inside each SubscriberUser to capture the parameter state per user.

Change-Id: I678249f63a68172db66a5d3faa0b1747c670bf6e
diff --git a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/SubscriberUser.java b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/SubscriberUser.java
index 151df57..88dd3d8 100644
--- a/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/SubscriberUser.java
+++ b/apps/demo/cord-gui/src/main/java/org/onosproject/cord/gui/model/SubscriberUser.java
@@ -17,6 +17,9 @@
 
 package org.onosproject.cord.gui.model;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * Designates a user of a subscriber's account.
  */
@@ -25,6 +28,9 @@
     private final String name;
     private final String mac;
 
+    private final Map<XosFunctionDescriptor, XosFunction.Memento> mementos =
+            new HashMap<XosFunctionDescriptor, XosFunction.Memento>();
+
     /**
      * Constructs a subscriber user from the given parameters.
      *
@@ -64,4 +70,33 @@
     public String mac() {
         return mac;
     }
+
+    /**
+     * Stores a memento for the given XOS function.
+     *
+     * @param f XOS function
+     * @param m memento
+     */
+    public void setMemento(XosFunctionDescriptor f, XosFunction.Memento m) {
+        if (m != null) {
+            mementos.put(f, m);
+        }
+    }
+
+    /**
+     * Returns the memento stored on this user, for the given XOS function.
+     *
+     * @param f XOS function
+     * @return memento
+     */
+    public XosFunction.Memento getMemento(XosFunctionDescriptor f) {
+        return mementos.get(f);
+    }
+
+    /**
+     * Clears the memento map.
+     */
+    public void clearMementos() {
+        mementos.clear();
+    }
 }