[ONOS-7318] JSON serializer implementation for value namespace encoding.

Change-Id: Ib3c5a2c88675754118a12694c43b01d9c9216861
diff --git a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DataNodeJsonVisitor.java b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DataNodeJsonVisitor.java
index 6f16735..054f3cf 100644
--- a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DataNodeJsonVisitor.java
+++ b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DataNodeJsonVisitor.java
@@ -52,6 +52,7 @@
     public void enterDataNode(DataNode dataNode,
                               DataNodeSiblingPositionType siblingType) {
         String nodeName = getNodeName(dataNode);
+        String valNamespace = null;
         switch (dataNode.type()) {
             case SINGLE_INSTANCE_NODE:
                 jsonBuilder.addNodeTopHalf(nodeName, JsonNodeType.OBJECT);
@@ -65,8 +66,13 @@
                 break;
             case SINGLE_INSTANCE_LEAF_VALUE_NODE:
                 LeafNode sLeafNode = (LeafNode) dataNode;
+                if (sLeafNode.valueNamespace() != null) {
+                    valNamespace = getModuleNameFromNameSpace(
+                            jsonSerializerContext, sLeafNode.valueNamespace());
+                }
                 jsonBuilder.addNodeWithValueTopHalf(nodeName,
-                                                    sLeafNode.asString());
+                                                    sLeafNode.asString(),
+                                                    valNamespace);
                 break;
             case MULTI_INSTANCE_LEAF_VALUE_NODE:
                 if (siblingType == FIRST_INSTANCE ||
@@ -74,7 +80,12 @@
                     jsonBuilder.addNodeTopHalf(nodeName, JsonNodeType.ARRAY);
                 }
                 LeafNode mLeafNode = (LeafNode) dataNode;
-                jsonBuilder.addValueToLeafListNode(mLeafNode.asString());
+                if (mLeafNode.valueNamespace() != null) {
+                    valNamespace = getModuleNameFromNameSpace(
+                            jsonSerializerContext, mLeafNode.valueNamespace());
+                }
+                jsonBuilder.addValueToLeafListNode(mLeafNode.asString(),
+                                                   valNamespace);
                 break;
             default:
                 break;
diff --git a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DefaultJsonBuilder.java b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DefaultJsonBuilder.java
index e240a50..8a02804 100644
--- a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DefaultJsonBuilder.java
+++ b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DefaultJsonBuilder.java
@@ -75,13 +75,18 @@
     }
 
     @Override
-    public void addNodeWithValueTopHalf(String nodeName, String value) {
+    public void addNodeWithValueTopHalf(String nodeName, String value,
+                                        String valNamespace) {
         if (isNullOrEmpty(nodeName)) {
             return;
         }
         appendField(nodeName);
         treeString.append(QUOTE);
         treeString.append(value);
+        if (valNamespace != null) {
+            treeString.append(COLON);
+            treeString.append(valNamespace);
+        }
         treeString.append(QUOTE);
         treeString.append(COMMA);
     }
@@ -102,13 +107,17 @@
     }
 
     @Override
-    public void addValueToLeafListNode(String value) {
+    public void addValueToLeafListNode(String value, String valNamespace) {
         if (isNullOrEmpty(value)) {
             return;
         }
 
         treeString.append(QUOTE);
         treeString.append(value);
+        if (valNamespace != null) {
+            treeString.append(COLON);
+            treeString.append(valNamespace);
+        }
         treeString.append(QUOTE);
         treeString.append(COMMA);
     }
diff --git a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/JsonBuilder.java b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/JsonBuilder.java
index f50fd60..3405a39 100644
--- a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/JsonBuilder.java
+++ b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/JsonBuilder.java
@@ -45,8 +45,10 @@
      *
      * @param nodeName name of child to be added
      * @param value    value of the child node
+     * @param valNamespace value namespace
      */
-    void addNodeWithValueTopHalf(String nodeName, String value);
+    void addNodeWithValueTopHalf(String nodeName, String value,
+                                 String valNamespace);
 
     /**
      * Adds a child with list of values to JSON data tree. This method is
@@ -62,8 +64,9 @@
      * Adds value to a leaf list node.
      *
      * @param value value to be added
+     * @param valNamespace value namespace
      */
-    void addValueToLeafListNode(String value);
+    void addValueToLeafListNode(String value, String valNamespace);
 
     /**
      * Adds the bottom half(a right brace/bracket) of a JSON