[ONOS-5003][ONOS-5004][ONOS-5005]Generated Code modification for YangUtils+added interface for augmentation method and other api changes.

Change-Id: I954b9c99e182f21d01fcc5cd76fbac7d61a6c3aa
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 64c13ed..13e43ac 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
@@ -83,7 +83,7 @@
 public class YangAugment
         extends YangNode
         implements YangLeavesHolder, YangCommonInfo, Parsable, CollisionDetector, YangAugmentedInfo, Resolvable,
-        YangXPathResolver, YangWhenHolder, YangIfFeatureHolder {
+        YangXPathResolver, YangWhenHolder, YangIfFeatureHolder, YangTranslatorOperatorNode {
 
     private static final long serialVersionUID = 806201602L;
 
@@ -254,7 +254,7 @@
     @Override
     public void addLeaf(YangLeaf leaf) {
         if (getListOfLeaf() == null) {
-            setListOfLeaf(new LinkedList<YangLeaf>());
+            setListOfLeaf(new LinkedList<>());
         }
 
         getListOfLeaf().add(leaf);
@@ -288,7 +288,7 @@
     @Override
     public void addLeafList(YangLeafList leafList) {
         if (getListOfLeafList() == null) {
-            setListOfLeafList(new LinkedList<YangLeafList>());
+            setListOfLeafList(new LinkedList<>());
         }
 
         getListOfLeafList().add(leafList);
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangCase.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangCase.java
index 6677a8c..e1e037a 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangCase.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangCase.java
@@ -96,7 +96,7 @@
 public class YangCase
         extends YangNode
         implements YangLeavesHolder, YangCommonInfo, Parsable, CollisionDetector, YangAugmentableNode,
-        YangWhenHolder, YangIfFeatureHolder {
+        YangWhenHolder, YangIfFeatureHolder, YangIsFilterContentNodes {
 
     private static final long serialVersionUID = 806201603L;
 
@@ -149,6 +149,8 @@
      */
     public YangCase() {
         super(YangNodeType.CASE_NODE);
+        listOfLeaf = new LinkedList<>();
+        listOfLeafList = new LinkedList<>();
     }
 
     /**
@@ -239,7 +241,7 @@
     @Override
     public void addLeaf(YangLeaf leaf) {
         if (getListOfLeaf() == null) {
-            setListOfLeaf(new LinkedList<YangLeaf>());
+            setListOfLeaf(new LinkedList<>());
         }
 
         getListOfLeaf().add(leaf);
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 bc3c72e..ddace18 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
@@ -91,7 +91,7 @@
 public class YangContainer
         extends YangNode
         implements YangLeavesHolder, YangCommonInfo, Parsable, CollisionDetector,
-        YangAugmentableNode, YangMustHolder, YangWhenHolder, YangIfFeatureHolder {
+        YangAugmentableNode, YangMustHolder, YangWhenHolder, YangIfFeatureHolder, YangIsFilterContentNodes {
 
     private static final long serialVersionUID = 806201605L;
 
@@ -158,6 +158,8 @@
      */
     public YangContainer() {
         super(YangNodeType.CONTAINER_NODE);
+        listOfLeaf = new LinkedList<>();
+        listOfLeafList = new LinkedList<>();
     }
 
     /**
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 25e11b6..272a6e2 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
@@ -71,7 +71,7 @@
  */
 public class YangInput
         extends YangNode
-        implements YangLeavesHolder, Parsable, CollisionDetector, YangAugmentableNode {
+        implements YangLeavesHolder, Parsable, CollisionDetector, YangAugmentableNode, YangIsFilterContentNodes {
 
     private static final long serialVersionUID = 806201608L;
 
@@ -97,8 +97,8 @@
      */
     public YangInput() {
         super(YangNodeType.INPUT_NODE);
-        listOfLeaf = new LinkedList<YangLeaf>();
-        listOfLeafList = new LinkedList<YangLeafList>();
+        listOfLeaf = new LinkedList<>();
+        listOfLeafList = new LinkedList<>();
     }
 
     @Override
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangIsFilterContentNodes.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangIsFilterContentNodes.java
new file mode 100644
index 0000000..196305c
--- /dev/null
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangIsFilterContentNodes.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.yangutils.datamodel;
+
+/**
+ * Represent the YANG nodes which can contain is filter content match.
+ */
+public interface YangIsFilterContentNodes {
+}
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangList.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangList.java
index b86911a..e2bd8b5 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangList.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangList.java
@@ -19,6 +19,7 @@
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
+
 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
 import org.onosproject.yangutils.datamodel.utils.Parsable;
 import org.onosproject.yangutils.datamodel.utils.YangConstructType;
@@ -71,7 +72,8 @@
 public class YangList
         extends YangNode
         implements YangLeavesHolder, YangCommonInfo, Parsable, CollisionDetector,
-        YangAugmentableNode, YangMustHolder, YangWhenHolder, YangIfFeatureHolder, YangDataNode {
+        YangAugmentableNode, YangMustHolder, YangWhenHolder, YangIfFeatureHolder, YangDataNode,
+        YangIsFilterContentNodes {
 
     private static final long serialVersionUID = 806201609L;
 
@@ -92,7 +94,7 @@
 
     /**
      * Reference RFC 6020.
-     *
+     * <p>
      * The "key" statement, which MUST be present if the list represents
      * configuration, and MAY be present otherwise, takes as an argument a
      * string that specifies a space-separated list of leaf identifiers of this
@@ -100,39 +102,39 @@
      * such leaf identifier MUST refer to a child leaf of the list. The leafs
      * can be defined directly in sub-statements to the list, or in groupings
      * used in the list.
-     *
+     * <p>
      * The combined values of all the leafs specified in the key are used to
      * uniquely identify a list entry. All key leafs MUST be given values when a
      * list entry is created. Thus, any default values in the key leafs or their
      * types are ignored. It also implies that any mandatory statement in the
      * key leafs are ignored.
-     *
+     * <p>
      * A leaf that is part of the key can be of any built-in or derived type,
      * except it MUST NOT be the built-in type "empty".
-     *
+     * <p>
      * All key leafs in a list MUST have the same value for their "config" as
      * the list itself.
-     *
+     * <p>
      * List of key leaf names.
      */
     private List<String> keyList;
 
     /**
      * Reference RFC 6020.
-     *
+     * <p>
      * The "unique" statement is used to put constraints on valid list
      * entries.  It takes as an argument a string that contains a space-
      * separated list of schema node identifiers, which MUST be given in the
      * descendant form.  Each such schema node identifier MUST refer to a leaf.
-     *
+     * <p>
      * If one of the referenced leafs represents configuration data, then
      * all of the referenced leafs MUST represent configuration data.
-     *
+     * <p>
      * The "unique" constraint specifies that the combined values of all the
      * leaf instances specified in the argument string, including leafs with
      * default values, MUST be unique within all list entry instances in
      * which all referenced leafs exist.
-     *
+     * <p>
      * List of unique leaf/leaf-list names
      */
     private List<String> uniqueList;
@@ -151,32 +153,32 @@
 
     /**
      * Reference RFC 6020.
-     *
+     * <p>
      * The "max-elements" statement, which is optional, takes as an argument a
      * positive integer or the string "unbounded", which puts a constraint on
      * valid list entries. A valid leaf-list or list always has at most
      * max-elements entries.
-     *
+     * <p>
      * If no "max-elements" statement is present, it defaults to "unbounded".
      */
     private YangMaxElement maxElements;
 
     /**
      * Reference RFC 6020.
-     *
+     * <p>
      * The "min-elements" statement, which is optional, takes as an argument a
      * non-negative integer that puts a constraint on valid list entries. A
      * valid leaf-list or list MUST have at least min-elements entries.
-     *
+     * <p>
      * If no "min-elements" statement is present, it defaults to zero.
-     *
+     * <p>
      * The behavior of the constraint depends on the type of the leaf-list's or
      * list's closest ancestor node in the schema tree that is not a non-
      * presence container:
-     *
+     * <p>
      * o If this ancestor is a case node, the constraint is enforced if any
      * other node from the case exists.
-     *
+     * <p>
      * o Otherwise, it is enforced if the ancestor node exists.
      */
     private YangMinElement minElements;
@@ -211,6 +213,8 @@
      */
     public YangList() {
         super(YangNodeType.LIST_NODE);
+        listOfLeaf = new LinkedList<>();
+        listOfLeafList = new LinkedList<>();
     }
 
     /**
@@ -624,8 +628,8 @@
     /**
      * Validates key statement of list.
      *
-     * @param leaves    list of leaf attributes of list
-     * @param keys      list of key attributes of list
+     * @param leaves list of leaf attributes of list
+     * @param keys   list of key attributes of list
      * @throws DataModelException a violation of data model rules
      */
     private void validateKey(List<YangLeaf> leaves, List<String> keys)
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangModule.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangModule.java
index 8e5de36..c2df52f 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangModule.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangModule.java
@@ -74,7 +74,7 @@
 public class YangModule
         extends YangNode
         implements YangLeavesHolder, YangDesc, YangReference, Parsable, CollisionDetector, YangReferenceResolver,
-        RpcNotificationContainer, YangFeatureHolder {
+        RpcNotificationContainer, YangFeatureHolder, YangIsFilterContentNodes {
 
     private static final long serialVersionUID = 806201610L;
 
@@ -85,7 +85,7 @@
 
     /**
      * Reference:RFC 6020.
-     *
+     * <p>
      * The "contact" statement provides contact information for the module. The
      * argument is a string that is used to specify contact information for the
      * person or persons to whom technical queries concerning this module should
@@ -96,7 +96,7 @@
 
     /**
      * Reference:RFC 6020.
-     *
+     * <p>
      * The "description" statement takes as an argument a string that contains a
      * human-readable textual description of this definition. The text is
      * provided in a language (or languages) chosen by the module developer; for
@@ -136,7 +136,7 @@
 
     /**
      * Reference:RFC 6020.
-     *
+     * <p>
      * The "organization" statement defines the party responsible for this
      * module. The argument is a string that is used to specify a textual
      * description of the organization(s) under whose auspices this module was
@@ -211,9 +211,9 @@
     private List<YangResolutionInfo> ifFeatureResolutionList;
 
     /**
-     * Leafref resolution list.
+     * LeafRef resolution list.
      */
-    private List<YangResolutionInfo> leafrefResolutionList;
+    private List<YangResolutionInfo> leafRefResolutionList;
 
     /**
      * Base resolution list.
@@ -221,9 +221,9 @@
     private List<YangResolutionInfo> baseResolutionList;
 
     /**
-     * Identityref resolution list.
+     * IdentityRef resolution list.
      */
-    private List<YangResolutionInfo> identityrefResolutionList;
+    private List<YangResolutionInfo> identityRefResolutionList;
 
     /**
      * Augment resolution list.
@@ -250,15 +250,15 @@
         augmentResolutionList = new LinkedList<>();
         usesResolutionList = new LinkedList<>();
         ifFeatureResolutionList = new LinkedList<>();
-        leafrefResolutionList = new LinkedList<>();
+        leafRefResolutionList = new LinkedList<>();
         baseResolutionList = new LinkedList<>();
-        identityrefResolutionList = new LinkedList<>();
+        identityRefResolutionList = new LinkedList<>();
         compilerAnnotationList = new LinkedList<>();
-        importList = new LinkedList<YangImport>();
-        includeList = new LinkedList<YangInclude>();
-        listOfLeaf = new LinkedList<YangLeaf>();
-        listOfLeafList = new LinkedList<YangLeafList>();
-        extensionList = new LinkedList<YangExtension>();
+        importList = new LinkedList<>();
+        includeList = new LinkedList<>();
+        listOfLeaf = new LinkedList<>();
+        listOfLeafList = new LinkedList<>();
+        extensionList = new LinkedList<>();
     }
 
     /**
@@ -684,11 +684,11 @@
         } else if (type == ResolvableType.YANG_IF_FEATURE) {
             return ifFeatureResolutionList;
         } else if (type == ResolvableType.YANG_LEAFREF) {
-            return leafrefResolutionList;
+            return leafRefResolutionList;
         } else if (type == ResolvableType.YANG_BASE) {
             return baseResolutionList;
         } else {
-            return identityrefResolutionList;
+            return identityRefResolutionList;
         }
     }
 
@@ -702,13 +702,13 @@
         } else if (type == ResolvableType.YANG_IF_FEATURE) {
             ifFeatureResolutionList.add(resolutionInfo);
         } else if (type == ResolvableType.YANG_LEAFREF) {
-            leafrefResolutionList.add(resolutionInfo);
+            leafRefResolutionList.add(resolutionInfo);
         } else if (type == ResolvableType.YANG_BASE) {
             baseResolutionList.add(resolutionInfo);
         } else if (type == ResolvableType.YANG_AUGMENT) {
             augmentResolutionList.add(resolutionInfo);
         } else if (type == ResolvableType.YANG_IDENTITYREF) {
-            identityrefResolutionList.add(resolutionInfo);
+            identityRefResolutionList.add(resolutionInfo);
         }
     }
 
@@ -722,13 +722,13 @@
         } else if (type == ResolvableType.YANG_IF_FEATURE) {
             ifFeatureResolutionList.add((YangResolutionInfo) resolutionList);
         } else if (type == ResolvableType.YANG_LEAFREF) {
-            leafrefResolutionList = resolutionList;
+            leafRefResolutionList = resolutionList;
         } else if (type == ResolvableType.YANG_BASE) {
             baseResolutionList = resolutionList;
         } else if (type == ResolvableType.YANG_AUGMENT) {
             augmentResolutionList = resolutionList;
         } else if (type == ResolvableType.YANG_IDENTITYREF) {
-            identityrefResolutionList = resolutionList;
+            identityRefResolutionList = resolutionList;
         }
 
     }
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangNode.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangNode.java
index 0c72c61..d501b0b 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangNode.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangNode.java
@@ -16,6 +16,7 @@
 package org.onosproject.yangutils.datamodel;
 
 import java.io.Serializable;
+
 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
 import org.onosproject.yangutils.datamodel.utils.Parsable;
 
@@ -185,7 +186,7 @@
      *
      * @param sibling YANG node
      */
-    private void setNextSibling(YangNode sibling) {
+    public void setNextSibling(YangNode sibling) {
         nextSibling = sibling;
     }
 
@@ -203,7 +204,7 @@
      *
      * @param previousSibling points to predecessor sibling
      */
-    private void setPreviousSibling(YangNode previousSibling) {
+    public void setPreviousSibling(YangNode previousSibling) {
         this.previousSibling = previousSibling;
     }
 
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangNotification.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangNotification.java
index b08fb03..0484b0e 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangNotification.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangNotification.java
@@ -124,8 +124,8 @@
      */
     public YangNotification() {
         super(YangNodeType.NOTIFICATION_NODE);
-        listOfLeaf = new LinkedList<YangLeaf>();
-        listOfLeafList = new LinkedList<YangLeafList>();
+        listOfLeaf = new LinkedList<>();
+        listOfLeafList = new LinkedList<>();
     }
 
     @Override
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 810a206..0e496bb 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
@@ -70,7 +70,7 @@
  */
 public class YangOutput
         extends YangNode
-        implements YangLeavesHolder, Parsable, CollisionDetector, YangAugmentableNode {
+        implements YangLeavesHolder, Parsable, CollisionDetector, YangAugmentableNode, YangIsFilterContentNodes {
 
     private static final long serialVersionUID = 806201612L;
 
@@ -96,8 +96,8 @@
      */
     public YangOutput() {
         super(YangNodeType.OUTPUT_NODE);
-        listOfLeaf = new LinkedList<YangLeaf>();
-        listOfLeafList = new LinkedList<YangLeafList>();
+        listOfLeaf = new LinkedList<>();
+        listOfLeafList = new LinkedList<>();
     }
 
     @Override
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangSubModule.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangSubModule.java
index 800e062..a58eb7d 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangSubModule.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangSubModule.java
@@ -82,7 +82,7 @@
 public class YangSubModule
         extends YangNode
         implements YangLeavesHolder, YangDesc, YangReference, Parsable, CollisionDetector, YangReferenceResolver,
-        RpcNotificationContainer, YangFeatureHolder {
+        RpcNotificationContainer, YangFeatureHolder, YangIsFilterContentNodes {
 
     private static final long serialVersionUID = 806201614L;
 
@@ -209,9 +209,9 @@
     private List<YangResolutionInfo> ifFeatureResolutionList;
 
     /**
-     * Leafref resolution list.
+     * LeafRef resolution list.
      */
-    private List<YangResolutionInfo> leafrefResolutionList;
+    private List<YangResolutionInfo> leafRefResolutionList;
 
     /**
      * Base resolution list.
@@ -219,9 +219,9 @@
     private List<YangResolutionInfo> baseResolutionList;
 
     /**
-     * Identityref resolution list.
+     * IdentityRef resolution list.
      */
-    private List<YangResolutionInfo> identityrefResolutionList;
+    private List<YangResolutionInfo> identityRefResolutionList;
 
     /**
      * Compiler annotation list.
@@ -247,15 +247,15 @@
         augmentResolutionList = new LinkedList<>();
         usesResolutionList = new LinkedList<>();
         ifFeatureResolutionList = new LinkedList<>();
-        leafrefResolutionList = new LinkedList<>();
+        leafRefResolutionList = new LinkedList<>();
         baseResolutionList = new LinkedList<>();
-        identityrefResolutionList = new LinkedList<>();
+        identityRefResolutionList = new LinkedList<>();
         compilerAnnotationList = new LinkedList<>();
-        importList = new LinkedList<YangImport>();
-        includeList = new LinkedList<YangInclude>();
-        listOfLeaf = new LinkedList<YangLeaf>();
-        listOfLeafList = new LinkedList<YangLeafList>();
-        extensionList = new LinkedList<YangExtension>();
+        importList = new LinkedList<>();
+        includeList = new LinkedList<>();
+        listOfLeaf = new LinkedList<>();
+        listOfLeafList = new LinkedList<>();
+        extensionList = new LinkedList<>();
     }
 
     /**
@@ -592,11 +592,11 @@
         } else if (type == ResolvableType.YANG_IF_FEATURE) {
             return ifFeatureResolutionList;
         } else if (type == ResolvableType.YANG_LEAFREF) {
-            return leafrefResolutionList;
+            return leafRefResolutionList;
         } else if (type == ResolvableType.YANG_BASE) {
             return baseResolutionList;
         } else {
-            return identityrefResolutionList;
+            return identityRefResolutionList;
         }
     }
 
@@ -610,13 +610,13 @@
         } else if (type == ResolvableType.YANG_IF_FEATURE) {
             ifFeatureResolutionList.add(resolutionInfo);
         } else if (type == ResolvableType.YANG_LEAFREF) {
-            leafrefResolutionList.add(resolutionInfo);
+            leafRefResolutionList.add(resolutionInfo);
         } else if (type == ResolvableType.YANG_BASE) {
             baseResolutionList.add(resolutionInfo);
         } else if (type == ResolvableType.YANG_AUGMENT) {
             augmentResolutionList.add(resolutionInfo);
         } else if (type == ResolvableType.YANG_IDENTITYREF) {
-            identityrefResolutionList.add(resolutionInfo);
+            identityRefResolutionList.add(resolutionInfo);
         }
     }
 
@@ -630,13 +630,13 @@
         } else if (type == ResolvableType.YANG_IF_FEATURE) {
             ifFeatureResolutionList.add((YangResolutionInfo) resolutionList);
         } else if (type == ResolvableType.YANG_LEAFREF) {
-            leafrefResolutionList = resolutionList;
+            leafRefResolutionList = resolutionList;
         } else if (type == ResolvableType.YANG_BASE) {
             baseResolutionList = resolutionList;
         } else if (type == ResolvableType.YANG_AUGMENT) {
             augmentResolutionList = resolutionList;
         } else if (type == ResolvableType.YANG_IDENTITYREF) {
-            identityrefResolutionList = resolutionList;
+            identityRefResolutionList = resolutionList;
         }
 
     }
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangType.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangType.java
index 45f0df6..ca442e6 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangType.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangType.java
@@ -276,7 +276,7 @@
      * @param value input data value
      * @throws DataModelException a violation of data model rules
      */
-    public void isValidValue(String value) throws DataModelException {
+    void isValidValue(String value) throws DataModelException {
         switch (getDataType()) {
             case INT8:
             case INT16:
@@ -291,7 +291,7 @@
                 } else {
                     if (!((YangRangeRestriction) getDataTypeExtendedInfo()).isValidValueString(value)) {
                         throw new DataTypeException("YANG file error : Input value \"" + value + "\" is not a valid " +
-                                                            getDataType());
+                                getDataType());
                     }
                 }
                 break;
@@ -301,7 +301,7 @@
                 YangDecimal64<YangRangeRestriction> decimal64 =
                         (YangDecimal64<YangRangeRestriction>) getDataTypeExtendedInfo();
                 validateDecimal64(value, decimal64.getFractionDigit(),
-                                        decimal64.getRangeRestrictedExtendedInfo());
+                        decimal64.getRangeRestrictedExtendedInfo());
                 break;
             }
             case STRING: {
@@ -311,14 +311,14 @@
                         && ((YangStringRestriction) getDataTypeExtendedInfo())
                         .isValidStringOnPatternRestriction(value))) {
                     throw new DataTypeException("YANG file error : Input value \"" + value + "\" is not a valid " +
-                                                        getDataType());
+                            getDataType());
                 }
                 break;
             }
             case BOOLEAN:
                 if (!(value.equals(DataModelUtils.TRUE) || value.equals(DataModelUtils.FALSE))) {
                     throw new DataTypeException("YANG file error : Input value \"" + value + "\" is not a valid " +
-                                                        getDataType());
+                            getDataType());
                 }
                 break;
             case ENUMERATION: {
@@ -334,7 +334,7 @@
 
                 if (!isValidated) {
                     throw new DataTypeException("YANG file error : Input value \"" + value + "\" is not a valid " +
-                                                        getDataType());
+                            getDataType());
                 }
                 break;
             }
@@ -342,14 +342,14 @@
                 YangBits bits = (YangBits) getDataTypeExtendedInfo();
                 if (bits.fromString(value) == null) {
                     throw new DataTypeException("YANG file error : Input value \"" + value + "\" is not a valid " +
-                                                        getDataType());
+                            getDataType());
                 }
                 break;
             }
             case BINARY: {
                 if (!isValidBinary(value, (YangRangeRestriction) getDataTypeExtendedInfo())) {
                     throw new DataTypeException("YANG file error : Input value \"" + value + "\" is not a valid " +
-                                                        getDataType());
+                            getDataType());
                 }
                 break;
             }
@@ -365,13 +365,13 @@
             case EMPTY: {
                 if (value.length() > 0) {
                     throw new DataTypeException("YANG file error : Input value \"" + value
-                                                        + "\" is not allowed for a data type " + getDataType());
+                            + "\" is not allowed for a data type " + getDataType());
                 }
                 break;
             }
             case UNION: {
                 ListIterator<YangType<?>> listIterator = ((YangUnion) getDataTypeExtendedInfo()).getTypeList()
-                                                                                                .listIterator();
+                        .listIterator();
                 boolean isValidated = false;
                 while (listIterator.hasNext()) {
                     YangType<?> type = (YangType<?>) listIterator.next();
@@ -386,7 +386,7 @@
 
                 if (!isValidated) {
                     throw new DataTypeException("YANG file error : Input value \"" + value + "\" is not a valid " +
-                                                        getDataType());
+                            getDataType());
                 }
                 break;
             }
@@ -399,13 +399,13 @@
                 if (isOfRangeRestrictedType(dataType)) {
                     if (((YangDerivedInfo) getDataTypeExtendedInfo()).getResolvedExtendedInfo() == null) {
                         getDataObjectFromString(value,
-                                                ((YangDerivedInfo) getDataTypeExtendedInfo())
-                                                        .getEffectiveBuiltInType());
+                                ((YangDerivedInfo) getDataTypeExtendedInfo())
+                                        .getEffectiveBuiltInType());
                     } else {
                         if (!((YangRangeRestriction) ((YangDerivedInfo) getDataTypeExtendedInfo())
                                 .getResolvedExtendedInfo()).isValidValueString(value)) {
                             throw new DataTypeException("YANG file error : Input value \"" + value
-                                                                + "\" is not a valid " + dataType);
+                                    + "\" is not a valid " + dataType);
                         }
                     }
                 } else if (dataType == YangDataTypes.STRING) {
@@ -416,20 +416,20 @@
                         if (!(stringRestriction.isValidStringOnLengthRestriction(value) &&
                                 stringRestriction.isValidStringOnPatternRestriction(value))) {
                             throw new DataTypeException("YANG file error : Input value \"" + value
-                                                                + "\" is not a valid " + dataType);
+                                    + "\" is not a valid " + dataType);
                         }
                     }
                 } else if (dataType == YangDataTypes.BITS) {
                     YangBits bits = (YangBits) getDataTypeExtendedInfo();
                     if (bits.fromString(value) == null) {
                         throw new DataTypeException("YANG file error : Input value \"" + value + "\" is not a valid " +
-                                                            dataType);
+                                dataType);
                     }
                 } else if (dataType == YangDataTypes.BINARY) {
                     if (!isValidBinary(value, (YangRangeRestriction) ((YangDerivedInfo)
                             getDataTypeExtendedInfo()).getResolvedExtendedInfo())) {
                         throw new DataTypeException("YANG file error : Input value \"" + value + "\" is not a valid " +
-                                                            dataType);
+                                dataType);
                     }
                 } else if (dataType == YangDataTypes.DECIMAL64) {
                     YangDerivedInfo derivedInfo = (YangDerivedInfo) getDataTypeExtendedInfo();
@@ -439,13 +439,13 @@
                     YangDecimal64<YangRangeRestriction> decimal64 = decimal64Type.getDataTypeExtendedInfo();
                     // Fraction-Digits and range needs to get it from yang
                     validateDecimal64(value, decimal64.getFractionDigit(),
-                                            decimal64.getRangeRestrictedExtendedInfo());
+                            decimal64.getRangeRestrictedExtendedInfo());
                 }
                 break;
             }
             default: {
                 throw new DataTypeException("YANG file error : Input value \"" + value + "\" received for " +
-                                                    "unsupported data type " + getDataType());
+                        "unsupported data type " + getDataType());
             }
         }
     }
@@ -456,7 +456,7 @@
      *
      * @param value decimal64 value
      */
-    private  void validateDecimal64(String value, int fractionDigit, YangRangeRestriction rangeRestriction)
+    private void validateDecimal64(String value, int fractionDigit, YangRangeRestriction rangeRestriction)
             throws DataModelException {
         YangDecimal64<YangRangeRestriction> decimal64 = YangDecimal64.fromString(value);
         decimal64.setFractionDigit(fractionDigit);
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangUses.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangUses.java
index 6b76dfd..957000d 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangUses.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangUses.java
@@ -17,6 +17,7 @@
 
 import java.util.LinkedList;
 import java.util.List;
+
 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
 import org.onosproject.yangutils.datamodel.utils.Parsable;
 import org.onosproject.yangutils.datamodel.utils.ResolvableStatus;
@@ -68,7 +69,7 @@
 public class YangUses
         extends YangNode
         implements YangCommonInfo, Parsable, Resolvable, CollisionDetector, YangWhenHolder,
-        YangIfFeatureHolder {
+        YangIfFeatureHolder, YangTranslatorOperatorNode {
 
     private static final long serialVersionUID = 806201617L;
 
diff --git a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/javadatamodel/YangPluginConfig.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/javadatamodel/YangPluginConfig.java
index 44ce306..353d025 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/javadatamodel/YangPluginConfig.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/javadatamodel/YangPluginConfig.java
@@ -27,27 +27,22 @@
     private String codeGenDir;
 
     /**
-     * Contains the code generation directory.
-     */
-    private String managerCodeGenDir;
-
-    /**
      * Contains information of naming conflicts that can be resolved.
      */
     private YangToJavaNamingConflictUtil conflictResolver;
 
     /**
+     * Java code generation is for sbi.
+     */
+    private String codeGenerateForsbi;
+
+    /**
      * Creates an object for YANG plugin config.
      */
     public YangPluginConfig() {
     }
 
     /**
-     * Java code generation is for sbi.
-     */
-    private String codeGenerateForsbi;
-
-    /**
      * Returns the string for code generation.
      *
      * @return returns the string for code generation.
@@ -101,21 +96,4 @@
         return conflictResolver;
     }
 
-    /**
-     * Returns manager's code generation directory.
-     *
-     * @return manager's code generation directory
-     */
-    public String getManagerCodeGenDir() {
-        return managerCodeGenDir;
-    }
-
-    /**
-     * Sets manager's code generation directory.
-     *
-     * @param moduleCodeGenDir manager's code generation directory
-     */
-    public void setManagerCodeGenDir(String moduleCodeGenDir) {
-        this.managerCodeGenDir = moduleCodeGenDir;
-    }
 }
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 d6e7217..1da8a1a 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
@@ -16,6 +16,22 @@
 
 package org.onosproject.yangutils.datamodel.utils;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
 import org.onosproject.yangutils.datamodel.CollisionDetector;
 import org.onosproject.yangutils.datamodel.ResolvableType;
 import org.onosproject.yangutils.datamodel.YangAtomicPath;
@@ -41,22 +57,13 @@
 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
 import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes;
 
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
 /**
  * Represents utilities for data model tree.
  */
 public final class DataModelUtils {
     public static final String TRUE = "true";
     public static final String FALSE = "false";
+    private static final String SLASH = File.separator;
 
     /**
      * Creates a new data model tree utility.
@@ -103,7 +110,7 @@
      * @param node           node instance of calling node
      * @throws DataModelException a violation of data model rules
      */
-    public static void detectCollidingForUsesGrouping(String identifierName, YangConstructType dataType, YangNode node)
+    private static void detectCollidingForUsesGrouping(String identifierName, YangConstructType dataType, YangNode node)
             throws DataModelException {
 
         node = node.getChild();
@@ -297,27 +304,24 @@
     /**
      * Returns de-serializes YANG data-model nodes.
      *
-     * @param serializableInfoSet YANG file info set
+     * @param serializedFileInfo serialized File Info
      * @return de-serializes YANG data-model nodes
      * @throws IOException when fails do IO operations
      */
-    public static List<YangNode> deSerializeDataModel(List<String> serializableInfoSet) throws IOException {
+    public static YangNode deSerializeDataModel(String serializedFileInfo) throws IOException {
 
-        List<YangNode> nodes = new ArrayList<>();
-        for (String fileInfo : serializableInfoSet) {
-            YangNode node = null;
-            try {
-                FileInputStream fileInputStream = new FileInputStream(fileInfo);
-                ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
-                node = (YangNode) objectInputStream.readObject();
-                nodes.add(node);
-                objectInputStream.close();
-                fileInputStream.close();
-            } catch (IOException | ClassNotFoundException e) {
-                throw new IOException(fileInfo + " not found.");
-            }
+        YangNode node;
+        try {
+            FileInputStream fileInputStream = new FileInputStream(serializedFileInfo);
+            ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
+            node = (YangNode) objectInputStream.readObject();
+            objectInputStream.close();
+            fileInputStream.close();
+        } catch (IOException | ClassNotFoundException e) {
+            throw new IOException(serializedFileInfo + " not found.");
         }
-        return nodes;
+
+        return node;
     }
 
     /**
@@ -332,7 +336,7 @@
             throws CloneNotSupportedException, DataModelException {
         List<YangLeaf> currentListOfLeaves = leavesHolder.getListOfLeaf();
         if (currentListOfLeaves != null) {
-            List<YangLeaf> clonedLeavesList = new LinkedList<YangLeaf>();
+            List<YangLeaf> clonedLeavesList = new LinkedList<>();
             for (YangLeaf leaf : currentListOfLeaves) {
                 YangLeaf clonedLeaf = leaf.clone();
                 if (yangUses.getCurrentGroupingDepth() == 0) {
@@ -350,7 +354,7 @@
 
         List<YangLeafList> currentListOfLeafList = leavesHolder.getListOfLeafList();
         if (currentListOfLeafList != null) {
-            List<YangLeafList> clonedListOfLeafList = new LinkedList<YangLeafList>();
+            List<YangLeafList> clonedListOfLeafList = new LinkedList<>();
             for (YangLeafList leafList : currentListOfLeafList) {
                 YangLeafList clonedLeafList = leafList.clone();
                 if (yangUses.getCurrentGroupingDepth() == 0) {
@@ -410,11 +414,9 @@
             while (atomicPathIterator.hasNext()) {
                 YangAtomicPath atomicPath = atomicPathIterator.next();
                 Map<String, String> prefixesAndItsImportNameNode = leafrefForCloning.getPrefixAndItsImportedModule();
-                if (!prefixesAndItsImportNameNode.isEmpty() || prefixesAndItsImportNameNode != null) {
-                    String prefixInPath = atomicPath.getNodeIdentifier().getPrefix();
-                    String importedNodeName = prefixesAndItsImportNameNode.get(prefixInPath);
-                    assignCurrentLeafrefWithNewPrefixes(importedNodeName, atomicPath, yangUses);
-                }
+                String prefixInPath = atomicPath.getNodeIdentifier().getPrefix();
+                String importedNodeName = prefixesAndItsImportNameNode.get(prefixInPath);
+                assignCurrentLeafedWithNewPrefixes(importedNodeName, atomicPath, yangUses);
             }
         }
     }
@@ -427,8 +429,8 @@
      * @param node             instance of YANG uses where cloning is done
      * @throws DataModelException data model error
      */
-    private static void assignCurrentLeafrefWithNewPrefixes(String importedNodeName, YangAtomicPath atomicPath,
-                                                            YangNode node) throws DataModelException {
+    private static void assignCurrentLeafedWithNewPrefixes(String importedNodeName, YangAtomicPath atomicPath,
+                                                           YangNode node) throws DataModelException {
         while (!(node instanceof YangReferenceResolver)) {
             node = node.getParent();
             if (node == null) {
@@ -534,7 +536,7 @@
                 dataTypeName = unionNode.getName();
             }
             if (potentialTypeNode.getName().contentEquals(dataTypeName)) {
-                dataType.setDataTypeExtendedInfo((Object) potentialTypeNode);
+                dataType.setDataTypeExtendedInfo(potentialTypeNode);
                 return;
             }
             potentialTypeNode = potentialTypeNode.getNextSibling();
@@ -542,4 +544,52 @@
 
         throw new DataModelException("Data model error: cloned leaves type is not found");
     }
+
+    /**
+     * Parses jar file and returns list of serialized file names.
+     *
+     * @param jarFile   jar file to be parsed
+     * @param directory directory where to search
+     * @return list of serialized files
+     * @throws IOException when fails to do IO operations
+     */
+    public static List<YangNode> parseJarFile(String jarFile, String directory)
+            throws IOException {
+
+        List<YangNode> nodes = new ArrayList<>();
+        JarFile jar = new JarFile(jarFile);
+        Enumeration<?> enumEntries = jar.entries();
+
+        while (enumEntries.hasMoreElements()) {
+            JarEntry file = (JarEntry) enumEntries.nextElement();
+            if (file.getName().endsWith(".ser")) {
+
+                if (file.getName().contains(SLASH)) {
+                    String[] strArray = file.getName().split(SLASH);
+                    String tempPath = "";
+                    for (int i = 0; i < strArray.length - 1; i++) {
+                        tempPath = SLASH + tempPath + SLASH + strArray[i];
+                    }
+                    File dir = new File(directory + tempPath);
+                    dir.mkdirs();
+                }
+                File serializedFile = new File(directory + SLASH + file.getName());
+                if (file.isDirectory()) {
+                    serializedFile.mkdirs();
+                    continue;
+                }
+                InputStream inputStream = jar.getInputStream(file);
+
+                FileOutputStream fileOutputStream = new FileOutputStream(serializedFile);
+                while (inputStream.available() > 0) {
+                    fileOutputStream.write(inputStream.read());
+                }
+                fileOutputStream.close();
+                inputStream.close();
+                nodes.add(deSerializeDataModel(serializedFile.toString()));
+            }
+        }
+        jar.close();
+        return nodes;
+    }
 }