[ONOS-7301] ValueNamespace addition to leaf node.

Change-Id: I5a54ceb7e2d65d7ebabe1132c8bb047caf709b9f
diff --git a/model/src/main/java/org/onosproject/yang/model/LeafNode.java b/model/src/main/java/org/onosproject/yang/model/LeafNode.java
index d66cb10..3dab637 100644
--- a/model/src/main/java/org/onosproject/yang/model/LeafNode.java
+++ b/model/src/main/java/org/onosproject/yang/model/LeafNode.java
@@ -30,6 +30,12 @@
     private Object value;
 
     /**
+     * Leaf value namespace, it will be non null only if leaf type is
+     * identityref.
+     */
+    private String valueNamespace;
+
+    /**
      * Returns value contained in leaf node.
      *
      * @return value contained in leaf node
@@ -39,6 +45,15 @@
     }
 
     /**
+     * Returns value namespace contained in leaf node.
+     *
+     * @return value namespace contained in leaf node
+     */
+    public String valueNamespace() {
+        return valueNamespace;
+    }
+
+    /**
      * Returns value as string, for usage in serializers.
      *
      * @return string representation of value
@@ -52,6 +67,7 @@
         return "{" +
                     "key=" + key() + ", " +
                     "value=" + asString() +
+                    "valueNamespace=" + valueNamespace() +
                "}";
     }
 
@@ -63,6 +79,7 @@
     public LeafNode(Builder builder) {
         super(builder);
         value = builder.value;
+        valueNamespace = builder.valueNamespace;
     }
 
     /**
@@ -99,6 +116,12 @@
         private Object value;
 
         /**
+         * Leaf value namespace, it will be non null only if leaf type is
+         * identityref.
+         */
+        private String valueNamespace;
+
+        /**
          * Creates an instance of data node builder.
          *
          * @param name      name of node
@@ -116,6 +139,7 @@
         public Builder(LeafNode node) {
             super(node);
             value = node.value;
+            valueNamespace = node.valueNamespace;
         }
 
         /**
@@ -129,6 +153,17 @@
             return this;
         }
 
+        /**
+         * Sets valueNamepsace of leaf node builder.
+         *
+         * @param valueNamespace value namespace
+         * @return leaf node builder
+         */
+        public Builder valueNamespace(String valueNamespace) {
+            this.valueNamespace = valueNamespace;
+            return this;
+        }
+
         @Override
         public InnerNode.Builder createChildBuilder(String name, String nameSpace) {
             throw new IllegalStateException("leaf node can't have a child " +
@@ -154,7 +189,6 @@
                                                     "node");
         }
 
-
         @Override
         public InnerNode.Builder addKeyLeaf(String name, String nameSpace, Object val) {
             throw new IllegalStateException("leaf node can't have a key " +