[ONOS-4829] Augmented data method generator implmentation.

Change-Id: I0cb68dd10a748e5b66eec0b832574f408a23ba5c
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangAugment.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangAugment.java
index 9d37d46..6d475cb 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangAugment.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangAugment.java
@@ -15,8 +15,10 @@
  */
 package org.onosproject.yangutils.datamodel;
 
+import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Map;
 
 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
 import org.onosproject.yangutils.datamodel.utils.Parsable;
@@ -83,7 +85,7 @@
 public class YangAugment
         extends YangNode
         implements YangLeavesHolder, YangCommonInfo, Parsable, CollisionDetector, YangAugmentedInfo, Resolvable,
-        YangXPathResolver, YangWhenHolder, YangIfFeatureHolder  {
+        YangXPathResolver, YangWhenHolder, YangIfFeatureHolder {
 
     private static final long serialVersionUID = 806201602L;
 
@@ -128,9 +130,13 @@
     private YangNode augmentedNode;
 
     /**
-     * Status of resolution. If completely resolved enum value is "RESOLVED",
-     * if not enum value is "UNRESOLVED", in case reference of grouping/typedef
-     * is added to uses/type but it's not resolved value of enum should be
+     * All resolved nodes in given xPath.
+     */
+    private Map<YangAtomicPath, YangNode> resolveNodeInPath;
+
+    /**
+     * Status of resolution. If completely resolved enum value is "RESOLVED", if not enum value is "UNRESOLVED", in case
+     * reference of grouping/typedef is added to uses/type but it's not resolved value of enum should be
      * "INTRA_FILE_RESOLVED".
      */
     private ResolvableStatus resolvableStatus;
@@ -150,6 +156,7 @@
      */
     public YangAugment() {
         super(YangNodeType.AUGMENT_NODE);
+        resolveNodeInPath = new HashMap<>();
         resolvableStatus = ResolvableStatus.UNRESOLVED;
     }
 
@@ -411,6 +418,11 @@
     }
 
     @Override
+    public void setIfFeatureList(List<YangIfFeature> ifFeatureList) {
+        this.ifFeatureList = ifFeatureList;
+    }
+
+    @Override
     public void addIfFeatureList(YangIfFeature ifFeature) {
         if (getIfFeatureList() == null) {
             setIfFeatureList(new LinkedList<>());
@@ -419,11 +431,6 @@
     }
 
     @Override
-    public void setIfFeatureList(List<YangIfFeature> ifFeatureList) {
-        this.ifFeatureList = ifFeatureList;
-    }
-
-    @Override
     public ResolvableStatus getResolvableStatus() {
         return resolvableStatus;
     }
@@ -438,4 +445,22 @@
     public void resolve() throws DataModelException {
         // Resolving of target node is being done in XPathLinker.
     }
+
+    /**
+     * Returns all resolved node in path.
+     *
+     * @return all resolved node in path
+     */
+    public Map<YangAtomicPath, YangNode> getResolveNodeInPath() {
+        return resolveNodeInPath;
+    }
+
+    /**
+     * Sets all resolved node in path.
+     *
+     * @param resolveNodeInPath all resolved node in path
+     */
+    public void setResolveNodeInPath(Map<YangAtomicPath, YangNode> resolveNodeInPath) {
+        this.resolveNodeInPath = resolveNodeInPath;
+    }
 }
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangContainer.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangContainer.java
index 65261cc..bc3c72e 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangContainer.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangContainer.java
@@ -406,7 +406,7 @@
      * Sets the config's value to all leaf if leaf's config statement is not
      * specified.
      *
-     * @param leaves list of leaf attributes of container
+     * @param leaves    list of leaf attributes of container
      * @param leafLists list of leaf-list attributes of container
      */
     private void setDefaultConfigValueToChild(List<YangLeaf> leaves, List<YangLeafList> leafLists) {
@@ -439,7 +439,7 @@
     /**
      * Validates config statement of container.
      *
-     * @param leaves list of leaf attributes of container
+     * @param leaves    list of leaf attributes of container
      * @param leafLists list of leaf-list attributes of container
      * @throws DataModelException a violation of data model rules
      */
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangInput.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangInput.java
index 091a15f..25e11b6 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangInput.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangInput.java
@@ -144,7 +144,6 @@
         listOfLeaf = leafsList;
     }
 
-
     @Override
     public void addLeaf(YangLeaf leaf) {
         getListOfLeaf().add(leaf);
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangOutput.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangOutput.java
index 7e14bc8..810a206 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangOutput.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangOutput.java
@@ -158,7 +158,6 @@
         this.listOfLeafList = listOfLeafList;
     }
 
-
     @Override
     public void addLeafList(YangLeafList leafList) {
         getListOfLeafList().add(leafList);
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/utils/DataModelUtils.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/utils/DataModelUtils.java
index 1e15d1d..64f2c78 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/utils/DataModelUtils.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/utils/DataModelUtils.java
@@ -349,6 +349,7 @@
      * type info needs to be updated to the cloned new type node.
      *
      * @param leavesHolder cloned leaves holder, for whom the leaves reference needs to be updated
+     * @throws DataModelException when fails to do data model operations
      */
     public static void updateClonedLeavesUnionEnumRef(YangLeavesHolder leavesHolder) throws DataModelException {
         List<YangLeaf> currentListOfLeaves = leavesHolder.getListOfLeaf();