TOOL bug fix for attribute name and operation type generation

Change-Id: I63eb679d69378e422a329569d1021241af5aeb26
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoTranslator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoTranslator.java
index 420dc27..a0e7b93 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoTranslator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfoTranslator.java
@@ -123,6 +123,8 @@
             }
             importInfo.setClassInfo(dataTypeName);
         }
+
+        leaf.getJavaQualifiedInfo().setJavaAttributeName(leaf.getJavaName(null));
     }
 
     /**
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
index 37ce7ee..14fcdc1 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
@@ -521,7 +521,7 @@
      * @throws IOException IO operation exception
      */
     static void addCurNodeInfoInParentTempFile(YangNode curNode,
-            boolean isList, YangPluginConfig pluginConfig)
+                                               boolean isList, YangPluginConfig pluginConfig)
             throws IOException {
         YangNode parent = getParentNodeInGenCode(curNode);
         if (!(parent instanceof JavaCodeGenerator)) {
@@ -554,8 +554,8 @@
      * @return AttributeInfo attribute details required to add in temporary files
      */
     public static JavaAttributeInfo getCurNodeAsAttributeInTarget(YangNode curNode,
-            YangNode targetNode, boolean isListNode,
-            TempJavaFragmentFiles tempJavaFragmentFiles) {
+                                                                  YangNode targetNode, boolean isListNode,
+                                                                  TempJavaFragmentFiles tempJavaFragmentFiles) {
         String curNodeName = ((JavaFileInfoContainer) curNode).getJavaFileInfo().getJavaName();
         if (curNodeName == null) {
             updateJavaFileInfo(curNode, null);
@@ -632,7 +632,7 @@
      * @return java attribute for leaf
      */
     private static JavaAttributeInfo getJavaAttributeOfLeaf(TempJavaFragmentFiles tempJavaFragmentFiles, YangLeaf leaf,
-            YangPluginConfig yangPluginConfig) {
+                                                            YangPluginConfig yangPluginConfig) {
         JavaLeafInfoContainer javaLeaf = (JavaLeafInfoContainer) leaf;
         javaLeaf.setConflictResolveConfig(yangPluginConfig.getConflictResolver());
         javaLeaf.updateJavaQualifiedInfo();
@@ -653,8 +653,8 @@
      * @return java attribute for leaf-list
      */
     private static JavaAttributeInfo getJavaAttributeOfLeafList(TempJavaFragmentFiles tempJavaFragmentFiles,
-            YangLeafList leafList,
-            YangPluginConfig yangPluginConfig) {
+                                                                YangLeafList leafList,
+                                                                YangPluginConfig yangPluginConfig) {
         JavaLeafInfoContainer javaLeaf = (JavaLeafInfoContainer) leafList;
         javaLeaf.setConflictResolveConfig(yangPluginConfig.getConflictResolver());
         javaLeaf.updateJavaQualifiedInfo();
@@ -1301,7 +1301,7 @@
      * @throws IOException when fails to append to temporary file
      */
     void addFromStringMethod(JavaAttributeInfo javaAttributeInfo,
-            JavaAttributeInfo fromStringAttributeInfo)
+                             JavaAttributeInfo fromStringAttributeInfo)
             throws IOException {
         appendToFile(getFromStringImplTempFileHandle(), getFromStringMethod(javaAttributeInfo,
                 fromStringAttributeInfo) + NEW_LINE);
@@ -1460,7 +1460,7 @@
      * @throws IOException IO operation fail
      */
     private void addLeavesInfoToTempFiles(List<YangLeaf> listOfLeaves,
-            YangPluginConfig yangPluginConfig, YangNode curNode)
+                                          YangPluginConfig yangPluginConfig, YangNode curNode)
             throws IOException {
         if (listOfLeaves != null) {
             for (YangLeaf leaf : listOfLeaves) {
@@ -1489,7 +1489,7 @@
      * @throws IOException IO operation fail
      */
     private void addLeafListInfoToTempFiles(List<YangLeafList> listOfLeafList, YangPluginConfig yangPluginConfig,
-            YangNode curNode)
+                                            YangNode curNode)
             throws IOException {
         if (listOfLeafList != null) {
             for (YangLeafList leafList : listOfLeafList) {
@@ -1517,7 +1517,7 @@
      * @throws IOException IO operation fail
      */
     void addCurNodeLeavesInfoToTempFiles(YangNode curNode,
-            YangPluginConfig yangPluginConfig)
+                                         YangPluginConfig yangPluginConfig)
             throws IOException {
         if (!(curNode instanceof YangLeavesHolder)) {
             throw new TranslatorException("Data model node does not have any leaves");
@@ -1762,7 +1762,7 @@
      * @param curNode         current node
      */
     private void addImportsForAugmentableClass(List<String> imports, boolean operations, boolean isInterfaceFile,
-            YangNode curNode) {
+                                               YangNode curNode) {
         if (operations) {
             if (!isInterfaceFile) {
                 imports.add(getJavaImportData().getHashMapImport());
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/YangJavaModelUtils.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/YangJavaModelUtils.java
index 1ea7f48..f89ad3d 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/YangJavaModelUtils.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/YangJavaModelUtils.java
@@ -32,13 +32,13 @@
 import org.onosproject.yangutils.datamodel.YangSubModule;
 import org.onosproject.yangutils.datamodel.YangTranslatorOperatorNode;
 import org.onosproject.yangutils.datamodel.YangTypeHolder;
-import org.onosproject.yangutils.utils.io.YangPluginConfig;
 import org.onosproject.yangutils.datamodel.utils.DataModelUtils;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaAugmentTranslator;
 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumerationTranslator;
 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModuleTranslator;
 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModuleTranslator;
+import org.onosproject.yangutils.utils.io.YangPluginConfig;
 
 import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.isRpcChildNodePresent;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
@@ -78,6 +78,8 @@
             javaCodeGeneratorInfo.getJavaFileInfo()
                     .setJavaName(getCamelCase(((YangNode) javaCodeGeneratorInfo).getName(),
                             yangPluginConfig.getConflictResolver()));
+            javaCodeGeneratorInfo.getJavaFileInfo().setJavaAttributeName(javaCodeGeneratorInfo
+                    .getJavaFileInfo().getJavaName());
             javaCodeGeneratorInfo.getJavaFileInfo().setPackage(getCurNodePackage((YangNode) javaCodeGeneratorInfo));
         }
         javaCodeGeneratorInfo.getJavaFileInfo().setPackageFilePath(
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGen.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGen.java
index ca0dd02..5c7f463 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGen.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGen.java
@@ -74,6 +74,7 @@
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.ENUM_ATTRIBUTE;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
 import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
+
 import static java.util.Collections.sort;
 
 /**
@@ -350,12 +351,13 @@
                 "     * Specify the node specific operation in protocols like NETCONF.\n" +
                 "     * Applicable in protocol edit operation, not applicable in query operation\n" +
                 "     */\n" +
-                "    public enum OperationType {\n" +
+                "    public enum OnosYangNodeOperationType {\n" +
                 "        MERGE,\n" +
                 "        REPLACE,\n" +
                 "        CREATE,\n" +
                 "        DELETE,\n" +
-                "        REMOVE\n" +
+                "        REMOVE,\n" +
+                "        NONE\n" +
                 "    }\n";
     }
 
@@ -387,7 +389,7 @@
                 "     * Specify the node specific operation in protocols like NETCONF.\n" +
                 "     * Applicable in protocol edit operation, will be ignored in query operation\n" +
                 "     */\n" +
-                "    private OperationType operationType;\n" +
+                "    private OnosYangNodeOperationType onosYangNodeOperationType;\n" +
                 "\n";
     }
 
@@ -407,7 +409,7 @@
      * @return operation type enum, leaf value set attribute and select leaf attribute for constructor
      */
     static String getOperationTypeForConstructor() {
-        return "        this.operationType = builderObject.getOperationType();\n";
+        return "        this.onosYangNodeOperationType = builderObject.onosYangNodeOperationType();\n";
     }
 
 }
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
index 43946f7..ec671aa 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
@@ -37,112 +37,197 @@
 import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
-import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator;
-import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
-import org.onosproject.yangutils.translator.tojava.TempJavaEnumerationFragmentFiles;
+import org.onosproject.yangutils.translator.tojava
+        .JavaQualifiedTypeInfoTranslator;
+import org.onosproject.yangutils.translator.tojava
+        .TempJavaCodeFragmentFilesContainer;
+import org.onosproject.yangutils.translator.tojava
+        .TempJavaEnumerationFragmentFiles;
 import org.onosproject.yangutils.translator.tojava.TempJavaEventFragmentFiles;
 import org.onosproject.yangutils.translator.tojava.TempJavaServiceFragmentFiles;
 import org.onosproject.yangutils.translator.tojava.TempJavaTypeFragmentFiles;
 import org.onosproject.yangutils.utils.io.YangPluginConfig;
 
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BINARY;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.BITS;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.DEFAULT_CLASS_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_CLASS;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPEDEF_CLASS;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_UNION_CLASS;
-import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ADD_TO_LIST_IMPL_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ADD_TO_LIST_INTERFACE_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ATTRIBUTES_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_FOR_TYPE_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_IMPL_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ENUM_IMPL_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EQUALS_IMPL_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_ENUM_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_METHOD_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_SUBJECT_ATTRIBUTE_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_SUBJECT_GETTER_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.EVENT_SUBJECT_SETTER_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.FROM_STRING_IMPL_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_CLASS_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.GETTER_FOR_INTERFACE_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.HASH_CODE_IMPL_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.LEAF_IDENTIFIER_ENUM_ATTRIBUTES_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.OF_STRING_IMPL_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.RPC_INTERFACE_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_CLASS_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.TO_STRING_IMPL_MASK;
-import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData;
-import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoTranslator.getQualifiedTypeInfoOfCurNode;
-import static org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles.getCurNodeAsAttributeInTarget;
-import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils.getQualifierInfoForCasesParent;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getEnumsValueAttribute;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getEventEnumTypeStart;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getOperationAttributeForConstructor;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getOperationAttributes;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getOperationTypeAttr;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getOperationTypeEnum;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getOperationTypeForConstructor;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getDataFromTempFileHandle;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.initiateJavaFileGeneration;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.builderMethod;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAddAugmentInfoMethodImpl;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAddAugmentInfoMethodInterface;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAugmentsDataMethodForService;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getConstructorStart;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEnumsConstructor;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEnumsOfMethod;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEqualsMethodClose;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getEqualsMethodOpen;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getFromStringMethodClose;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getFromStringMethodSignature;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetter;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForOperationType;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterString;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGettersForValueAndSelectLeaf;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethodClose;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getHashCodeMethodOpen;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getInterfaceLeafIdEnumMethods;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getInterfaceLeafIdEnumSignature;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOmitNullValueString;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOperationAttributesGetters;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOverRideString;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRangeValidatorMethodForUnion;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForOperationType;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterForSelectLeaf;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getSetterString;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethodClose;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getToStringMethodOpen;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getYangAugmentInfoImpl;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getYangAugmentInfoInterface;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getYangAugmentInfoMapImpl;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getYangAugmentInfoMapInterface;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.isLeafValueSetInterface;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.isSelectLeafSetInterface;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.processSubtreeFilteringInterface;
-import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.setSelectLeafSetInterface;
-import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator
-        .getAugmentableSubTreeFiltering;
-import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator
-        .getProcessChildNodeSubtreeFiltering;
-import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator
-        .getProcessLeafListSubtreeFiltering;
-import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator
-        .getProcessLeafSubtreeFiltering;
-import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator
-        .getProcessSubTreeFilteringEnd;
-import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator
-        .getProcessSubtreeFilteringStart;
-import static org.onosproject.yangutils.translator.tojava.utils.SubtreeFilteringMethodsGenerator
-        .getProcessSubtreeFunctionBody;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype
+        .YangDataTypes.BINARY;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype
+        .YangDataTypes.BITS;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedJavaFileType.BUILDER_CLASS_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedJavaFileType.BUILDER_INTERFACE_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedJavaFileType.DEFAULT_CLASS_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedJavaFileType.GENERATE_ENUM_CLASS;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedJavaFileType.GENERATE_EVENT_CLASS;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedJavaFileType.GENERATE_TYPEDEF_CLASS;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedJavaFileType.GENERATE_UNION_CLASS;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedJavaFileType.INTERFACE_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.ADD_TO_LIST_IMPL_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.ADD_TO_LIST_INTERFACE_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.ATTRIBUTES_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.CONSTRUCTOR_FOR_TYPE_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.CONSTRUCTOR_IMPL_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.ENUM_IMPL_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.EQUALS_IMPL_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.EVENT_ENUM_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.EVENT_METHOD_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.EVENT_SUBJECT_ATTRIBUTE_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.EVENT_SUBJECT_GETTER_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.EVENT_SUBJECT_SETTER_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.FROM_STRING_IMPL_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.GETTER_FOR_CLASS_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.GETTER_FOR_INTERFACE_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.HASH_CODE_IMPL_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.LEAF_IDENTIFIER_ENUM_ATTRIBUTES_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.OF_STRING_IMPL_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.RPC_INTERFACE_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.SETTER_FOR_CLASS_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.TO_STRING_IMPL_MASK;
+import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo
+        .getAttributeInfoForTheData;
+import static org.onosproject.yangutils.translator.tojava
+        .JavaQualifiedTypeInfoTranslator.getQualifiedTypeInfoOfCurNode;
+import static org.onosproject.yangutils.translator.tojava
+        .TempJavaFragmentFiles.getCurNodeAsAttributeInTarget;
+import static org.onosproject.yangutils.translator.tojava.YangJavaModelUtils
+        .getQualifierInfoForCasesParent;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .JavaCodeSnippetGen.addAugmentationAttribute;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .JavaCodeSnippetGen.getEnumsValueAttribute;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .JavaCodeSnippetGen.getEventEnumTypeStart;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .JavaCodeSnippetGen.getOperationAttributeForConstructor;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .JavaCodeSnippetGen.getOperationAttributes;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .JavaCodeSnippetGen.getOperationTypeAttr;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .JavaCodeSnippetGen.getOperationTypeEnum;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .JavaCodeSnippetGen.getOperationTypeForConstructor;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .JavaFileGeneratorUtils.getDataFromTempFileHandle;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .JavaFileGeneratorUtils.initiateJavaFileGeneration;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.builderMethod;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getAddAugmentInfoMethodImpl;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getAddAugmentInfoMethodInterface;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getAugmentsDataMethodForService;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getConstructorStart;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getEnumsConstructor;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getEnumsOfMethod;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getEqualsMethodClose;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getEqualsMethodOpen;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getFromStringMethodClose;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getFromStringMethodSignature;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getGetter;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getGetterForOperationType;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getGettersForValueAndSelectLeaf;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getHashCodeMethodClose;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getHashCodeMethodOpen;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getInterfaceLeafIdEnumMethods;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getInterfaceLeafIdEnumSignature;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getOmitNullValueString;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getOperationAttributesGetters;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getOverRideString;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getRangeValidatorMethodForUnion;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getSetterForOperationType;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getSetterForSelectLeaf;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getToStringMethodClose;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getToStringMethodOpen;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getYangAugmentInfoImpl;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getYangAugmentInfoInterface;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getYangAugmentInfoMapImpl;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.getYangAugmentInfoMapInterface;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.isLeafValueSetInterface;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.isSelectLeafSetInterface;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.processSubtreeFilteringInterface;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .MethodsGenerator.setSelectLeafSetInterface;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .SubtreeFilteringMethodsGenerator.getAugmentableSubTreeFiltering;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .SubtreeFilteringMethodsGenerator.getProcessChildNodeSubtreeFiltering;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .SubtreeFilteringMethodsGenerator.getProcessLeafListSubtreeFiltering;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .SubtreeFilteringMethodsGenerator.getProcessLeafSubtreeFiltering;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .SubtreeFilteringMethodsGenerator.getProcessSubTreeFilteringEnd;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .SubtreeFilteringMethodsGenerator.getProcessSubtreeFilteringStart;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .SubtreeFilteringMethodsGenerator.getProcessSubtreeFunctionBody;
 import static org.onosproject.yangutils.utils.UtilConstants.BASE64;
 import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER;
 import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
@@ -150,18 +235,24 @@
 import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS;
 import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
 import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT;
-import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .EIGHT_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.ENCODE_TO_STRING;
-import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .EVENT_LISTENER_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.EVENT_STRING;
-import static org.onosproject.yangutils.utils.UtilConstants.EVENT_SUBJECT_NAME_SUFFIX;
-import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .EVENT_SUBJECT_NAME_SUFFIX;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .FOUR_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.GET_ENCODER;
 import static org.onosproject.yangutils.utils.UtilConstants.IMPORT;
 import static org.onosproject.yangutils.utils.UtilConstants.INT;
-import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_IMPORT_BASE64_CLASS;
-import static org.onosproject.yangutils.utils.UtilConstants.JAVA_UTIL_OBJECTS_IMPORT_PKG;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .JAVA_UTIL_IMPORT_BASE64_CLASS;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .JAVA_UTIL_OBJECTS_IMPORT_PKG;
 import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
 import static org.onosproject.yangutils.utils.UtilConstants.OPEN_CURLY_BRACKET;
 import static org.onosproject.yangutils.utils.UtilConstants.OPEN_PARENTHESIS;
@@ -172,18 +263,24 @@
 import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC;
 import static org.onosproject.yangutils.utils.UtilConstants.RETURN;
 import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
-import static org.onosproject.yangutils.utils.UtilConstants.SERVICE_METHOD_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .SERVICE_METHOD_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
 import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
 import static org.onosproject.yangutils.utils.UtilConstants.TO;
-import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD;
-import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.TYPE_CONSTRUCTOR;
+import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType
+        .GETTER_METHOD;
+import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType
+        .TYPE_CONSTRUCTOR;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
-import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
-import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.insertDataIntoJavaFile;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils
+        .getCapitalCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils
+        .insertDataIntoJavaFile;
 import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.replaceLast;
 import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.trimAtLast;
-import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.validateLineLength;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils
+        .validateLineLength;
 
 import static java.util.Collections.sort;
 
@@ -205,17 +302,21 @@
      * @return interface file
      * @throws IOException when fails to write in file
      */
-    public static File generateInterfaceFile(File file, List<String> imports, YangNode curNode,
+    public static File generateInterfaceFile(File file, List<String> imports,
+                                             YangNode curNode,
                                              boolean isAttrPresent)
             throws IOException {
 
-        JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+        JavaFileInfoTranslator javaFileInfo =
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo();
 
         String path;
         if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
-            path = javaFileInfo.getPluginConfig().getCodeGenDir() + javaFileInfo.getPackageFilePath();
+            path = javaFileInfo.getPluginConfig().getCodeGenDir() +
+                    javaFileInfo.getPackageFilePath();
         } else {
-            path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
+            path = javaFileInfo.getBaseCodeGenPath() +
+                    javaFileInfo.getPackageFilePath();
         }
 
         String className = getCapitalCase(javaFileInfo.getJavaName());
@@ -224,47 +325,67 @@
         YangLeavesHolder leavesHolder;
         if (curNode instanceof YangLeavesHolder) {
             leavesHolder = (YangLeavesHolder) curNode;
-            isLeavesPresent = leavesHolder.getListOfLeaf() != null && !leavesHolder.getListOfLeaf().isEmpty()
-                    || leavesHolder.getListOfLeafList() != null && !leavesHolder.getListOfLeafList().isEmpty();
+            isLeavesPresent = leavesHolder.getListOfLeaf() != null &&
+                    !leavesHolder.getListOfLeaf().isEmpty()
+                    || leavesHolder.getListOfLeafList() != null &&
+                    !leavesHolder.getListOfLeafList().isEmpty();
         } else {
             isLeavesPresent = false;
         }
 
-        initiateJavaFileGeneration(file, INTERFACE_MASK, imports, curNode, className);
+        initiateJavaFileGeneration(file, INTERFACE_MASK, imports, curNode,
+                                   className);
         List<String> methods = new ArrayList<>();
         if (isAttrPresent) {
             // Add getter methods to interface file.
             try {
                 //Leaf identifier enum.
                 if (isLeavesPresent) {
-                    insertDataIntoJavaFile(file, NEW_LINE + getInterfaceLeafIdEnumSignature(className) + NEW_LINE +
-                            trimAtLast(replaceLast(
-                                    getDataFromTempFileHandle(LEAF_IDENTIFIER_ENUM_ATTRIBUTES_MASK,
-                                            ((TempJavaCodeFragmentFilesContainer) curNode)
-                                                    .getTempJavaCodeFragmentFiles()
-                                                    .getBeanTempFiles(), path), COMMA, SEMI_COLAN), NEW_LINE) +
-                            NEW_LINE + NEW_LINE + getInterfaceLeafIdEnumMethods());
+                    insertDataIntoJavaFile(file, NEW_LINE +
+                            getInterfaceLeafIdEnumSignature(className) +
+                            NEW_LINE +
+                            trimAtLast(replaceLast(getDataFromTempFileHandle(
+                                    LEAF_IDENTIFIER_ENUM_ATTRIBUTES_MASK,
+                                    ((TempJavaCodeFragmentFilesContainer)
+                                            curNode)
+                                            .getTempJavaCodeFragmentFiles()
+                                            .getBeanTempFiles(), path),
+                                                   COMMA, SEMI_COLAN),
+                                       NEW_LINE) +
+                            NEW_LINE + NEW_LINE +
+                            getInterfaceLeafIdEnumMethods());
                 }
 
                 //Getter methods.
-                insertDataIntoJavaFile(file, getDataFromTempFileHandle(GETTER_FOR_INTERFACE_MASK,
-                        ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
+                insertDataIntoJavaFile(file, getDataFromTempFileHandle(
+                        GETTER_FOR_INTERFACE_MASK,
+                        ((TempJavaCodeFragmentFilesContainer) curNode)
+                                .getTempJavaCodeFragmentFiles()
                                 .getBeanTempFiles(), path));
             } catch (IOException e) {
-                throw new IOException("No data found in temporary java code fragment files for " + className
-                        + " while interface file generation");
+                throw new IOException(
+                        "No data found in temporary java code fragment files " +
+                                "for " +
+                                className
+                                + " while interface file generation");
             }
         }
 
-        if (curNode instanceof YangAugmentableNode && !(curNode instanceof YangChoice)) {
+        if (curNode instanceof YangAugmentableNode &&
+                !(curNode instanceof YangChoice)) {
             methods.add(getYangAugmentInfoInterface());
-            methods.add(getYangAugmentInfoMapInterface(javaFileInfo.getPluginConfig()));
+            methods.add(getYangAugmentInfoMapInterface(
+                    javaFileInfo.getPluginConfig()));
         }
+
         if (curNode instanceof YangCase) {
             YangNode caseParent = curNode.getParent();
-            JavaQualifiedTypeInfo qualifiedTypeInfo = getQualifierInfoForCasesParent(caseParent,
-                    javaFileInfo.getPluginConfig());
-            methods.add(NEW_LINE + processSubtreeFilteringInterface(qualifiedTypeInfo.getClassInfo()));
+            JavaQualifiedTypeInfo qualifiedTypeInfo =
+                    getQualifierInfoForCasesParent(caseParent,
+                                                   javaFileInfo
+                                                           .getPluginConfig());
+            methods.add(NEW_LINE + processSubtreeFilteringInterface
+                    (qualifiedTypeInfo.getClassInfo()));
         } else {
             methods.add(NEW_LINE + processSubtreeFilteringInterface(className));
         }
@@ -289,18 +410,22 @@
      * @return builder interface file
      * @throws IOException when fails to write in file
      */
-    public static File generateBuilderInterfaceFile(File file, YangNode curNode, boolean isAttrPresent)
+    public static File generateBuilderInterfaceFile(File file, YangNode curNode,
+                                                    boolean isAttrPresent)
             throws IOException {
 
-        JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+        JavaFileInfoTranslator javaFileInfo =
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo();
         YangPluginConfig pluginConfig = javaFileInfo.getPluginConfig();
 
         boolean isLeavesPresent;
         YangLeavesHolder leavesHolder;
         if (curNode instanceof YangLeavesHolder) {
             leavesHolder = (YangLeavesHolder) curNode;
-            isLeavesPresent = leavesHolder.getListOfLeaf() != null && !leavesHolder.getListOfLeaf().isEmpty()
-                    || leavesHolder.getListOfLeafList() != null && !leavesHolder.getListOfLeafList().isEmpty();
+            isLeavesPresent = leavesHolder.getListOfLeaf() != null &&
+                    !leavesHolder.getListOfLeaf().isEmpty()
+                    || leavesHolder.getListOfLeafList() != null &&
+                    !leavesHolder.getListOfLeafList().isEmpty();
         } else {
             isLeavesPresent = false;
         }
@@ -308,43 +433,59 @@
         String className = getCapitalCase(javaFileInfo.getJavaName());
         String path;
         if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
-            path = javaFileInfo.getPluginConfig().getCodeGenDir() + javaFileInfo.getPackageFilePath();
+            path = javaFileInfo.getPluginConfig().getCodeGenDir() +
+                    javaFileInfo.getPackageFilePath();
         } else {
-            path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
+            path = javaFileInfo.getBaseCodeGenPath() +
+                    javaFileInfo.getPackageFilePath();
         }
 
-        initiateJavaFileGeneration(file, BUILDER_INTERFACE_MASK, null, curNode, className);
+        initiateJavaFileGeneration(file, BUILDER_INTERFACE_MASK, null, curNode,
+                                   className);
         List<String> methods = new ArrayList<>();
         if (isAttrPresent) {
             try {
 
                 //Getter methods.
-                methods.add(FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(GETTER_FOR_INTERFACE_MASK,
-                        ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
+                methods.add(FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(
+                        GETTER_FOR_INTERFACE_MASK,
+                        ((TempJavaCodeFragmentFilesContainer)
+                                curNode)
+                                .getTempJavaCodeFragmentFiles()
                                 .getBeanTempFiles(), path));
 
                 //Setter methods.
                 methods.add(NEW_LINE);
-                methods.add(FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(SETTER_FOR_INTERFACE_MASK,
-                        ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
+                methods.add(FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(
+                        SETTER_FOR_INTERFACE_MASK,
+                        ((TempJavaCodeFragmentFilesContainer)
+                                curNode)
+                                .getTempJavaCodeFragmentFiles()
                                 .getBeanTempFiles(), path));
 
                 //Add to list method.
                 methods.add(NEW_LINE);
-                insertDataIntoJavaFile(file, getDataFromTempFileHandle(ADD_TO_LIST_INTERFACE_MASK,
-                        ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
+                insertDataIntoJavaFile(file, getDataFromTempFileHandle(
+                        ADD_TO_LIST_INTERFACE_MASK,
+                        ((TempJavaCodeFragmentFilesContainer) curNode)
+                                .getTempJavaCodeFragmentFiles()
                                 .getBeanTempFiles(), path));
 
             } catch (IOException e) {
-                throw new IOException("No data found in temporary java code fragment files for " + className
-                        + " while builder interface file generation");
+                throw new IOException(
+                        "No data found in temporary java code fragment files " +
+                                "for " +
+                                className
+                                + " while builder interface file generation");
             }
         }
 
-        if (curNode instanceof YangAugmentableNode && !(curNode instanceof YangChoice)) {
+        if (curNode instanceof YangAugmentableNode &&
+                !(curNode instanceof YangChoice)) {
             methods.add(getAddAugmentInfoMethodInterface());
             methods.add(getYangAugmentInfoInterface());
-            methods.add(getYangAugmentInfoMapInterface(javaFileInfo.getPluginConfig()));
+            methods.add(getYangAugmentInfoMapInterface(
+                    javaFileInfo.getPluginConfig()));
         }
 
         if (isLeavesPresent) {
@@ -352,7 +493,8 @@
         }
         //Add build method to builder interface file.
         methods.add(
-                ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
+                ((TempJavaCodeFragmentFilesContainer) curNode)
+                        .getTempJavaCodeFragmentFiles()
                         .addBuildMethodForInterface(pluginConfig));
 
 
@@ -379,15 +521,18 @@
                                                 boolean isAttrPresent)
             throws IOException {
 
-        JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+        JavaFileInfoTranslator javaFileInfo =
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo();
         YangPluginConfig pluginConfig = javaFileInfo.getPluginConfig();
 
         boolean isLeavesPresent;
         YangLeavesHolder leavesHolder;
         if (curNode instanceof YangLeavesHolder) {
             leavesHolder = (YangLeavesHolder) curNode;
-            isLeavesPresent = leavesHolder.getListOfLeaf() != null && !leavesHolder.getListOfLeaf().isEmpty()
-                    || leavesHolder.getListOfLeafList() != null && !leavesHolder.getListOfLeafList().isEmpty();
+            isLeavesPresent = leavesHolder.getListOfLeaf() != null &&
+                    !leavesHolder.getListOfLeaf().isEmpty()
+                    || leavesHolder.getListOfLeafList() != null &&
+                    !leavesHolder.getListOfLeafList().isEmpty();
         } else {
             isLeavesPresent = false;
         }
@@ -397,28 +542,37 @@
         String path;
         if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
             isRootNode = true;
-            path = javaFileInfo.getPluginConfig().getCodeGenDir() + javaFileInfo.getPackageFilePath();
+            path = javaFileInfo.getPluginConfig().getCodeGenDir() +
+                    javaFileInfo.getPackageFilePath();
         } else {
-            path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
+            path = javaFileInfo.getBaseCodeGenPath() +
+                    javaFileInfo.getPackageFilePath();
         }
 
-        initiateJavaFileGeneration(file, BUILDER_CLASS_MASK, null, curNode, className);
+        initiateJavaFileGeneration(file, BUILDER_CLASS_MASK, null, curNode,
+                                   className);
         List<String> methods = new ArrayList<>();
 
         if (curNode instanceof YangAugmentableNode) {
-            insertDataIntoJavaFile(file, JavaCodeSnippetGen.addAugmentationAttribute());
+            insertDataIntoJavaFile(file, addAugmentationAttribute());
         }
         if (isAttrPresent) {
 
             //Add attribute strings.
             try {
                 insertDataIntoJavaFile(file,
-                        NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
-                                ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                        .getBeanTempFiles(), path));
+                                       NEW_LINE + FOUR_SPACE_INDENTATION +
+                                               getDataFromTempFileHandle(
+                                                       ATTRIBUTES_MASK,
+                                                       ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                               .getTempJavaCodeFragmentFiles()
+                                                               .getBeanTempFiles(),
+                                                       path));
             } catch (IOException e) {
-                throw new IOException("No data found in temporary java code fragment files for " + className
-                        + " while builder class file generation");
+                throw new IOException(
+                        "No data found in temporary java code fragment files " +
+                                "for " + className +
+                                " while builder class file generation");
             }
 
             insertDataIntoJavaFile(file, getOperationTypeAttr());
@@ -428,17 +582,23 @@
             try {
                 //Getter methods.
                 methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
-                        ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                .getBeanTempFiles(), path));
+                                                      ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                              .getTempJavaCodeFragmentFiles()
+                                                              .getBeanTempFiles(),
+                                                      path));
                 // Setter methods.
                 methods.add(getDataFromTempFileHandle(SETTER_FOR_CLASS_MASK,
-                        ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                .getBeanTempFiles(), path));
+                                                      ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                              .getTempJavaCodeFragmentFiles()
+                                                              .getBeanTempFiles(),
+                                                      path));
 
                 //Add to list impl method.
                 methods.add(getDataFromTempFileHandle(ADD_TO_LIST_IMPL_MASK,
-                        ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                .getBeanTempFiles(), path));
+                                                      ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                              .getTempJavaCodeFragmentFiles()
+                                                              .getBeanTempFiles(),
+                                                      path));
 
                 insertDataIntoJavaFile(file, NEW_LINE);
 
@@ -450,8 +610,10 @@
                     methods.add(getSetterForSelectLeaf(className, isRootNode));
                 }
             } catch (IOException e) {
-                throw new IOException("No data found in temporary java code fragment files for " + className
-                        + " while builder class file generation");
+                throw new IOException(
+                        "No data found in temporary java code fragment files " +
+                                "for " + className +
+                                " while builder class file generation");
             }
         } else {
             insertDataIntoJavaFile(file, NEW_LINE);
@@ -464,10 +626,13 @@
         }
 
         // Add default constructor and build method impl.
-        methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                .addBuildMethodImpl(curNode));
-        methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                .addDefaultConstructor(PUBLIC, BUILDER, pluginConfig, curNode));
+        methods.add(((TempJavaCodeFragmentFilesContainer) curNode)
+                            .getTempJavaCodeFragmentFiles()
+                            .addBuildMethodImpl(curNode));
+        methods.add(((TempJavaCodeFragmentFilesContainer) curNode)
+                            .getTempJavaCodeFragmentFiles()
+                            .addDefaultConstructor(PUBLIC, BUILDER,
+                                                   pluginConfig, curNode));
 
 
         //Add methods in builder class.
@@ -489,19 +654,23 @@
      * @return impl class file
      * @throws IOException when fails to write in file
      */
-    public static File generateDefaultClassFile(File file, YangNode curNode, boolean isAttrPresent,
+    public static File generateDefaultClassFile(File file, YangNode curNode,
+                                                boolean isAttrPresent,
                                                 List<String> imports)
             throws IOException {
 
-        JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+        JavaFileInfoTranslator javaFileInfo =
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo();
         YangPluginConfig pluginConfig = javaFileInfo.getPluginConfig();
 
         boolean isLeavesPresent;
         YangLeavesHolder leavesHolder;
         if (curNode instanceof YangLeavesHolder) {
             leavesHolder = (YangLeavesHolder) curNode;
-            isLeavesPresent = leavesHolder.getListOfLeaf() != null && !leavesHolder.getListOfLeaf().isEmpty()
-                    || leavesHolder.getListOfLeafList() != null && !leavesHolder.getListOfLeafList().isEmpty();
+            isLeavesPresent = leavesHolder.getListOfLeaf() != null &&
+                    !leavesHolder.getListOfLeaf().isEmpty() ||
+                    leavesHolder.getListOfLeafList() != null &&
+                            !leavesHolder.getListOfLeafList().isEmpty();
         } else {
             isLeavesPresent = false;
         }
@@ -514,28 +683,37 @@
         if (curNode instanceof YangModule || curNode instanceof YangSubModule) {
             opParamClassName = className + OP_PARAM;
             isRootNode = true;
-            path = javaFileInfo.getPluginConfig().getCodeGenDir() + javaFileInfo.getPackageFilePath();
+            path = javaFileInfo.getPluginConfig().getCodeGenDir() +
+                    javaFileInfo.getPackageFilePath();
         } else {
-            path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
+            path = javaFileInfo.getBaseCodeGenPath() +
+                    javaFileInfo.getPackageFilePath();
         }
 
-        initiateJavaFileGeneration(file, DEFAULT_CLASS_MASK, imports, curNode, className);
+        initiateJavaFileGeneration(file, DEFAULT_CLASS_MASK, imports, curNode,
+                                   className);
 
         List<String> methods = new ArrayList<>();
         if (curNode instanceof YangAugmentableNode) {
-            insertDataIntoJavaFile(file, JavaCodeSnippetGen.addAugmentationAttribute());
+            insertDataIntoJavaFile(file, addAugmentationAttribute());
         }
         if (isAttrPresent) {
 
             //Add attribute strings.
             try {
                 insertDataIntoJavaFile(file,
-                        NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
-                                ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                        .getBeanTempFiles(), path));
+                                       NEW_LINE + FOUR_SPACE_INDENTATION +
+                                               getDataFromTempFileHandle(
+                                                       ATTRIBUTES_MASK,
+                                                       ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                               .getTempJavaCodeFragmentFiles()
+                                                               .getBeanTempFiles(),
+                                                       path));
             } catch (IOException e) {
-                throw new IOException("No data found in temporary java code fragment files for " + className
-                        + " while impl class file generation");
+                throw new IOException(
+                        "No data found in temporary java code fragment files " +
+                                "for " + className +
+                                " while impl class file generation");
             }
 
             //Add operation attributes
@@ -548,37 +726,59 @@
             try {
                 //Getter methods.
                 methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
-                        ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                .getBeanTempFiles(), path));
+                                                      ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                              .getTempJavaCodeFragmentFiles()
+                                                              .getBeanTempFiles(),
+                                                      path));
+
+                methods.add(getGetterForOperationType());
 
                 // Hash code method.
                 methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() +
-                        getDataFromTempFileHandle(HASH_CODE_IMPL_MASK,
-                                ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                        .getBeanTempFiles(), path).replace(NEW_LINE, EMPTY_STRING)));
+                                                           getDataFromTempFileHandle(
+                                                                   HASH_CODE_IMPL_MASK,
+                                                                   ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                                           .getTempJavaCodeFragmentFiles()
+                                                                           .getBeanTempFiles(),
+                                                                   path)
+                                                                   .replace(
+                                                                           NEW_LINE,
+                                                                           EMPTY_STRING)));
 
                 //Equals method.
                 if (isRootNode) {
-                    methods.add(getEqualsMethodClose(getEqualsMethodOpen(opParamClassName)
-                            + getDataFromTempFileHandle(EQUALS_IMPL_MASK,
-                            ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                    .getBeanTempFiles(), path)));
+                    methods.add(getEqualsMethodClose(
+                            getEqualsMethodOpen(opParamClassName) +
+                                    getDataFromTempFileHandle(EQUALS_IMPL_MASK,
+                                                              ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                                      .getTempJavaCodeFragmentFiles()
+                                                                      .getBeanTempFiles(),
+                                                              path)));
                 } else {
-                    methods.add(getEqualsMethodClose(getEqualsMethodOpen(getCapitalCase(DEFAULT) + className)
-                            + getDataFromTempFileHandle(EQUALS_IMPL_MASK,
-                            ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                    .getBeanTempFiles(), path)));
+                    methods.add(getEqualsMethodClose(getEqualsMethodOpen(
+                            getCapitalCase(DEFAULT) + className) +
+                                                             getDataFromTempFileHandle(
+                                                                     EQUALS_IMPL_MASK,
+                                                                     ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                                             .getTempJavaCodeFragmentFiles()
+                                                                             .getBeanTempFiles(),
+                                                                     path)));
                 }
                 // To string method.
-                methods.add(getToStringMethodOpen() + getDataFromTempFileHandle(TO_STRING_IMPL_MASK,
-                        ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                .getBeanTempFiles(), path)
-                        + getToStringMethodClose());
+                methods.add(getToStringMethodOpen() + getDataFromTempFileHandle(
+                        TO_STRING_IMPL_MASK,
+                        ((TempJavaCodeFragmentFilesContainer)
+                                curNode)
+                                .getTempJavaCodeFragmentFiles()
+                                .getBeanTempFiles(), path) +
+                                    getToStringMethodClose());
 
 
             } catch (IOException e) {
-                throw new IOException("No data found in temporary java code fragment files for " + className
-                        + " while impl class file generation");
+                throw new IOException(
+                        "No data found in temporary java code fragment files " +
+                                "for " + className +
+                                " while impl class file generation");
             }
         } else {
             insertDataIntoJavaFile(file, NEW_LINE);
@@ -590,38 +790,75 @@
         }
         try {
             //Constructor.
-            String constructor = getConstructorStart(className, pluginConfig, isRootNode);
-            constructor = constructor + getDataFromTempFileHandle(CONSTRUCTOR_IMPL_MASK,
-                    ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                            .getBeanTempFiles(), path);
+            String constructor =
+                    getConstructorStart(className, pluginConfig, isRootNode);
+            constructor = constructor +
+                    getDataFromTempFileHandle(CONSTRUCTOR_IMPL_MASK,
+                                              ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                      .getTempJavaCodeFragmentFiles()
+                                                      .getBeanTempFiles(),
+                                              path);
 
             if (isAttrPresent) {
                 constructor = constructor + getOperationTypeForConstructor();
             }
             if (isLeavesPresent) {
-                constructor = constructor + getOperationAttributeForConstructor();
+                constructor =
+                        constructor + getOperationAttributeForConstructor();
             }
-            methods.add(constructor + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE);
+            methods.add(
+                    constructor + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+                            NEW_LINE);
 
             // add is filter content match.
             String augmentableSubTreeFiltering = "";
             if (curNode instanceof YangAugmentableNode) {
                 augmentableSubTreeFiltering = getAugmentableSubTreeFiltering();
             }
+
             methods.add(getProcessSubtreeFilteringStart(curNode, pluginConfig)
-                    + getProcessSubtreeFunctionBody()
-                    + augmentableSubTreeFiltering
-                    + getProcessSubTreeFilteringEnd()
-                    + getProcessLeafSubtreeFiltering(curNode, pluginConfig, path)
-                    + getProcessLeafListSubtreeFiltering(curNode, pluginConfig, path)
-                    + getProcessChildNodeSubtreeFiltering(curNode, pluginConfig, path));
+                                + getProcessSubtreeFunctionBody(curNode)
+                                + augmentableSubTreeFiltering
+                                + getProcessSubTreeFilteringEnd());
+
+            if (curNode instanceof YangLeavesHolder) {
+                if (((YangLeavesHolder) curNode).getListOfLeaf() != null
+                        && !((YangLeavesHolder) curNode).getListOfLeaf()
+                        .isEmpty()) {
+                    methods.add(getProcessLeafSubtreeFiltering(curNode,
+                                                               pluginConfig,
+                                                               path));
+                }
+            }
+
+
+            if (curNode instanceof YangLeavesHolder) {
+                if (((YangLeavesHolder) curNode).getListOfLeafList() != null
+                        && !((YangLeavesHolder) curNode).getListOfLeafList()
+                        .isEmpty()) {
+                    methods.add(getProcessLeafListSubtreeFiltering(curNode,
+                                                                   pluginConfig,
+                                                                   path));
+                }
+            }
+
+            if (curNode.getChild() != null) {
+                methods.add(getProcessChildNodeSubtreeFiltering(curNode,
+                                                                pluginConfig,
+                                                                path));
+            }
+
+
         } catch (IOException e) {
-            throw new IOException("No data found in temporary java code fragment files for " + className
-                    + " while impl class file generation");
+            throw new IOException(
+                    "No data found in temporary java code fragment files for " +
+                            className + " while impl class file generation");
         }
 
-        methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                .addDefaultConstructor(PROTECTED, DEFAULT, pluginConfig, curNode));
+        methods.add(((TempJavaCodeFragmentFilesContainer) curNode)
+                            .getTempJavaCodeFragmentFiles()
+                            .addDefaultConstructor(PROTECTED, DEFAULT,
+                                                   pluginConfig, curNode));
 
         methods.add(builderMethod(className) + NEW_LINE);
         if (isLeavesPresent) {
@@ -645,116 +882,166 @@
      * @return type def class file
      * @throws IOException when fails to generate class file
      */
-    public static File generateTypeDefClassFile(File file, YangNode curNode, List<String> imports)
+    public static File generateTypeDefClassFile(File file, YangNode curNode,
+                                                List<String> imports)
             throws IOException {
 
-        JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+        JavaFileInfoTranslator javaFileInfo =
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo();
         YangPluginConfig pluginConfig = javaFileInfo.getPluginConfig();
 
         // import
         String className = getCapitalCase(javaFileInfo.getJavaName());
-        String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
+        String path = javaFileInfo.getBaseCodeGenPath() +
+                javaFileInfo.getPackageFilePath();
         YangTypeDef typeDef = (YangTypeDef) curNode;
         List<YangType<?>> types = typeDef.getTypeList();
         YangType type = types.get(0);
         YangDataTypes yangDataTypes = type.getDataType();
         if (type.getDataType().equals(BINARY)) {
-            imports.add(IMPORT + JAVA_UTIL_OBJECTS_IMPORT_PKG + PERIOD + JAVA_UTIL_IMPORT_BASE64_CLASS);
+            imports.add(IMPORT + JAVA_UTIL_OBJECTS_IMPORT_PKG + PERIOD +
+                                JAVA_UTIL_IMPORT_BASE64_CLASS);
         }
 
-        initiateJavaFileGeneration(file, className, GENERATE_TYPEDEF_CLASS, imports, path, pluginConfig);
+        initiateJavaFileGeneration(file, className, GENERATE_TYPEDEF_CLASS,
+                                   imports, path, pluginConfig);
 
         List<String> methods = new ArrayList<>();
 
 
         //Add attribute strings.
         try {
-            insertDataIntoJavaFile(file,
-                    NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
-                            ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                    .getTypeTempFiles(), path));
+            insertDataIntoJavaFile(file, NEW_LINE + FOUR_SPACE_INDENTATION +
+                    getDataFromTempFileHandle(ATTRIBUTES_MASK,
+                                              ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                      .getTempJavaCodeFragmentFiles()
+                                                      .getTypeTempFiles(),
+                                              path));
         } catch (IOException e) {
-            throw new IOException("No data found in temporary java code fragment files for " + className
-                    + " while type def class file generation");
+            throw new IOException(
+                    "No data found in temporary java code fragment files for " +
+                            className + " while type def class file " +
+                            "generation");
         }
 
 
         //Default constructor.
-        methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                .addDefaultConstructor(PRIVATE, EMPTY_STRING, pluginConfig, curNode));
+        methods.add(((TempJavaCodeFragmentFilesContainer) curNode)
+                            .getTempJavaCodeFragmentFiles()
+                            .addDefaultConstructor(PRIVATE, EMPTY_STRING,
+                                                   pluginConfig, curNode));
 
         try {
 
             //Type constructor.
             methods.add(getDataFromTempFileHandle(CONSTRUCTOR_FOR_TYPE_MASK,
-                    ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
-                    path));
+                                                  ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                          .getTempJavaCodeFragmentFiles()
+                                                          .getTypeTempFiles(),
+                                                  path));
 
 
             //Of method.
             methods.add(getDataFromTempFileHandle(OF_STRING_IMPL_MASK,
-                    ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
-                    path));
+                                                  ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                          .getTempJavaCodeFragmentFiles()
+                                                          .getTypeTempFiles(),
+                                                  path));
 
             //Getter methods.
             methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
-                    ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
-                    path));
+                                                  ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                          .getTempJavaCodeFragmentFiles()
+                                                          .getTypeTempFiles(),
+                                                  path));
 
             // Hash code method.
             methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() +
-                    getDataFromTempFileHandle(HASH_CODE_IMPL_MASK,
-                            ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                    .getTypeTempFiles(), path)
-                            .replace(NEW_LINE, EMPTY_STRING)));
+                                                       getDataFromTempFileHandle(
+                                                               HASH_CODE_IMPL_MASK,
+                                                               ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                                       .getTempJavaCodeFragmentFiles()
+                                                                       .getTypeTempFiles(),
+                                                               path)
+                                                               .replace(
+                                                                       NEW_LINE,
+                                                                       EMPTY_STRING)));
 
 
             //Equals method.
-            methods.add(getEqualsMethodClose(getEqualsMethodOpen(className + EMPTY_STRING)
-                    + getDataFromTempFileHandle(EQUALS_IMPL_MASK,
-                    ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                            .getTypeTempFiles(), path)));
+            methods.add(getEqualsMethodClose(
+                    getEqualsMethodOpen(className + EMPTY_STRING)
+                            + getDataFromTempFileHandle(EQUALS_IMPL_MASK,
+                                                        ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                                .getTempJavaCodeFragmentFiles()
+                                                                .getTypeTempFiles(),
+                                                        path)));
 
 
             //To string method.
             if (type.getDataType().equals(BINARY)) {
-                JavaQualifiedTypeInfoTranslator qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode,
-                        getCapitalCase("binary"));
+                JavaQualifiedTypeInfoTranslator qualifiedTypeInfo =
+                        getQualifiedTypeInfoOfCurNode(curNode, getCapitalCase(
+                                "binary"));
 
-                JavaAttributeInfo attr = getAttributeInfoForTheData(qualifiedTypeInfo, "binary", null, false,
-                        false);
+                JavaAttributeInfo attr =
+                        getAttributeInfoForTheData(qualifiedTypeInfo, "binary",
+                                                   null, false, false);
                 String attributeName = attr.getAttributeName();
-                String bitsToStringMethod = getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC
-                        + SPACE + STRING_DATA_TYPE + SPACE + TO + STRING_DATA_TYPE + OPEN_PARENTHESIS
-                        + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION
-                        + RETURN + SPACE + BASE64 + PERIOD + GET_ENCODER + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
-                        + PERIOD + ENCODE_TO_STRING + OPEN_PARENTHESIS + attributeName + CLOSE_PARENTHESIS
-                        + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
+                String bitsToStringMethod =
+                        getOverRideString() + FOUR_SPACE_INDENTATION +
+                                PUBLIC + SPACE + STRING_DATA_TYPE + SPACE + TO +
+                                STRING_DATA_TYPE + OPEN_PARENTHESIS +
+                                CLOSE_PARENTHESIS + SPACE +
+                                OPEN_CURLY_BRACKET + NEW_LINE +
+                                EIGHT_SPACE_INDENTATION + RETURN + SPACE +
+                                BASE64 + PERIOD + GET_ENCODER +
+                                OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
+                                PERIOD + ENCODE_TO_STRING + OPEN_PARENTHESIS +
+                                attributeName + CLOSE_PARENTHESIS +
+                                SEMI_COLAN + NEW_LINE +
+                                FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+                                NEW_LINE;
                 methods.add(bitsToStringMethod);
             } else if (type.getDataType().equals(BITS)) {
-                JavaQualifiedTypeInfoTranslator qualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(curNode,
-                        getCapitalCase("bits"));
+                JavaQualifiedTypeInfoTranslator qualifiedTypeInfo =
+                        getQualifiedTypeInfoOfCurNode(curNode,
+                                                      getCapitalCase(
+                                                              "bits"));
 
-                JavaAttributeInfo attr = getAttributeInfoForTheData(qualifiedTypeInfo, "bits", null, false, false);
+                JavaAttributeInfo attr =
+                        getAttributeInfoForTheData(qualifiedTypeInfo, "bits",
+                                                   null, false, false);
                 String attributeName = attr.getAttributeName();
-                String bitsToStringMethod = getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC
-                        + SPACE + STRING_DATA_TYPE + SPACE + TO + STRING_DATA_TYPE + OPEN_PARENTHESIS
-                        + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION
-                        + RETURN + SPACE + attributeName + PERIOD + TO + STRING_DATA_TYPE + OPEN_PARENTHESIS
-                        + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET
-                        + NEW_LINE;
+                String bitsToStringMethod =
+                        getOverRideString() + FOUR_SPACE_INDENTATION +
+                                PUBLIC + SPACE + STRING_DATA_TYPE + SPACE + TO +
+                                STRING_DATA_TYPE + OPEN_PARENTHESIS +
+                                CLOSE_PARENTHESIS + SPACE +
+                                OPEN_CURLY_BRACKET + NEW_LINE +
+                                EIGHT_SPACE_INDENTATION + RETURN + SPACE +
+                                attributeName + PERIOD + TO +
+                                STRING_DATA_TYPE + OPEN_PARENTHESIS +
+                                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+                                FOUR_SPACE_INDENTATION +
+                                CLOSE_CURLY_BRACKET + NEW_LINE;
                 methods.add(bitsToStringMethod);
             } else {
-                methods.add(getToStringMethodOpen() + getDataFromTempFileHandle(TO_STRING_IMPL_MASK,
-                        ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                .getTypeTempFiles(), path) + getToStringMethodClose());
+                methods.add(getToStringMethodOpen() + getDataFromTempFileHandle(
+                        TO_STRING_IMPL_MASK,
+                        ((TempJavaCodeFragmentFilesContainer)
+                                curNode)
+                                .getTempJavaCodeFragmentFiles()
+                                .getTypeTempFiles(), path) +
+                                    getToStringMethodClose());
             }
 
             JavaCodeGeneratorInfo javaGenInfo = (JavaCodeGeneratorInfo) curNode;
 
             //From string method.
             if ((type.getDataType().equals(YangDataTypes.DERIVED))
-                    && (((YangDerivedInfo) type.getDataTypeExtendedInfo()).getEffectiveBuiltInType()
+                    && (((YangDerivedInfo) type.getDataTypeExtendedInfo())
+                    .getEffectiveBuiltInType()
                     .equals(YangDataTypes.IDENTITYREF))) {
                 yangDataTypes = YangDataTypes.IDENTITYREF;
             }
@@ -764,15 +1051,21 @@
             }
 
             if (!yangDataTypes.equals(YangDataTypes.IDENTITYREF)) {
-                methods.add(getFromStringMethodSignature(className, pluginConfig)
-                        + getDataFromTempFileHandle(FROM_STRING_IMPL_MASK, javaGenInfo.getTempJavaCodeFragmentFiles()
-                        .getTypeTempFiles(), path)
-                        + getFromStringMethodClose());
+                methods.add(
+                        getFromStringMethodSignature(className, pluginConfig) +
+                                getDataFromTempFileHandle(FROM_STRING_IMPL_MASK,
+                                                          javaGenInfo
+                                                                  .getTempJavaCodeFragmentFiles()
+                                                                  .getTypeTempFiles(),
+                                                          path) +
+                                getFromStringMethodClose());
             }
 
         } catch (IOException e) {
-            throw new IOException("No data found in temporary java code fragment files for " + className
-                    + " while type def class file generation");
+            throw new IOException(
+                    "No data found in temporary java code fragment files for " +
+                            className + " while type def class file " +
+                            "generation");
         }
 
         for (String method : methods) {
@@ -792,17 +1085,21 @@
      * @return type def class file
      * @throws IOException when fails to generate class file
      */
-    public static File generateUnionClassFile(File file, YangNode curNode, List<String> imports)
+    public static File generateUnionClassFile(File file, YangNode curNode,
+                                              List<String> imports)
             throws IOException {
 
-        JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+        JavaFileInfoTranslator javaFileInfo =
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo();
         YangPluginConfig pluginConfig = javaFileInfo.getPluginConfig();
 
         String className = getCapitalCase(javaFileInfo.getJavaName());
-        String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
+        String path = javaFileInfo.getBaseCodeGenPath() +
+                javaFileInfo.getPackageFilePath();
 
-        TempJavaTypeFragmentFiles tempJavaTypeFragmentFiles = ((JavaCodeGeneratorInfo) curNode)
-                .getTempJavaCodeFragmentFiles().getTypeTempFiles();
+        TempJavaTypeFragmentFiles tempJavaTypeFragmentFiles =
+                ((JavaCodeGeneratorInfo) curNode)
+                        .getTempJavaCodeFragmentFiles().getTypeTempFiles();
 
         boolean isIntConflict = false;
         boolean isLongConflict = false;
@@ -812,12 +1109,14 @@
             intAttr = tempJavaTypeFragmentFiles.getUIntAttribute();
         }
 
-        JavaAttributeInfo longAttr = tempJavaTypeFragmentFiles.getLongAttribute();
+        JavaAttributeInfo longAttr =
+                tempJavaTypeFragmentFiles.getLongAttribute();
         if (longAttr == null) {
             longAttr = tempJavaTypeFragmentFiles.getULongAttribute();
         }
 
-        JavaAttributeInfo shortAttr = tempJavaTypeFragmentFiles.getShortAttribute();
+        JavaAttributeInfo shortAttr =
+                tempJavaTypeFragmentFiles.getShortAttribute();
         if (shortAttr == null) {
             shortAttr = tempJavaTypeFragmentFiles.getUInt8Attribute();
         }
@@ -832,11 +1131,13 @@
             isShortConflict = shortAttr.isShortConflict();
         }
         if (isLongConflict) {
-            imports.add(tempJavaTypeFragmentFiles.getJavaImportData().getBigIntegerImport());
+            imports.add(tempJavaTypeFragmentFiles.getJavaImportData()
+                                .getBigIntegerImport());
             sort(imports);
         }
 
-        initiateJavaFileGeneration(file, className, GENERATE_UNION_CLASS, imports, path, pluginConfig);
+        initiateJavaFileGeneration(file, className, GENERATE_UNION_CLASS,
+                                   imports, path, pluginConfig);
 
         List<String> methods = new ArrayList<>();
 
@@ -844,82 +1145,118 @@
         // Add attribute strings.
         try {
             if (isIntConflict) {
-                insertDataIntoJavaFile(file, JavaCodeSnippetGen.addStaticAttributeIntRange(PRIVATE,
-                        tempJavaTypeFragmentFiles.getIntIndex() < tempJavaTypeFragmentFiles.getUIntIndex()));
+                insertDataIntoJavaFile(file, JavaCodeSnippetGen
+                        .addStaticAttributeIntRange(PRIVATE,
+                                                    tempJavaTypeFragmentFiles
+                                                            .getIntIndex() <
+                                                            tempJavaTypeFragmentFiles
+                                                                    .getUIntIndex()));
             }
 
             if (isLongConflict) {
-                insertDataIntoJavaFile(file, JavaCodeSnippetGen.addStaticAttributeLongRange(PRIVATE,
-                        tempJavaTypeFragmentFiles.getLongIndex() < tempJavaTypeFragmentFiles.getULongIndex()));
+                insertDataIntoJavaFile(file, JavaCodeSnippetGen
+                        .addStaticAttributeLongRange(PRIVATE,
+                                                     tempJavaTypeFragmentFiles
+                                                             .getLongIndex() <
+                                                             tempJavaTypeFragmentFiles
+                                                                     .getULongIndex()));
             }
 
             if (isShortConflict) {
-                insertDataIntoJavaFile(file, JavaCodeSnippetGen.addStaticAttributeShortRange(PRIVATE,
-                        tempJavaTypeFragmentFiles.getShortIndex() < tempJavaTypeFragmentFiles.getUInt8Index()));
+                insertDataIntoJavaFile(file, JavaCodeSnippetGen
+                        .addStaticAttributeShortRange(PRIVATE,
+                                                      tempJavaTypeFragmentFiles
+                                                              .getShortIndex() <
+                                                              tempJavaTypeFragmentFiles
+                                                                      .getUInt8Index()));
             }
 
             insertDataIntoJavaFile(file,
-                    NEW_LINE + FOUR_SPACE_INDENTATION + getDataFromTempFileHandle(ATTRIBUTES_MASK,
-                            ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                    .getTypeTempFiles(), path));
+                                   NEW_LINE + FOUR_SPACE_INDENTATION +
+                                           getDataFromTempFileHandle(
+                                                   ATTRIBUTES_MASK,
+                                                   ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                           .getTempJavaCodeFragmentFiles()
+                                                           .getTypeTempFiles(),
+                                                   path));
         } catch (IOException e) {
-            throw new IOException("No data found in temporary java code fragment files for " + className
-                    + " while union class file generation");
+            throw new IOException(
+                    "No data found in temporary java code fragment files for " +
+                            className + " while union class file generation");
         }
 
 
         //Default constructor.
-        methods.add(((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                .addDefaultConstructor(PRIVATE, EMPTY_STRING, pluginConfig, curNode));
+        methods.add(((TempJavaCodeFragmentFilesContainer) curNode)
+                            .getTempJavaCodeFragmentFiles()
+                            .addDefaultConstructor(PRIVATE, EMPTY_STRING,
+                                                   pluginConfig, curNode));
 
         try {
 
 
             //Type constructor.
             methods.add(getDataFromTempFileHandle(CONSTRUCTOR_FOR_TYPE_MASK,
-                    ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
-                    path));
+                                                  ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                          .getTempJavaCodeFragmentFiles()
+                                                          .getTypeTempFiles(),
+                                                  path));
 
 
             // Of string method.
             methods.add(getDataFromTempFileHandle(OF_STRING_IMPL_MASK,
-                    ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
-                    path));
+                                                  ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                          .getTempJavaCodeFragmentFiles()
+                                                          .getTypeTempFiles(),
+                                                  path));
 
             //Getter methods.
             methods.add(getDataFromTempFileHandle(GETTER_FOR_CLASS_MASK,
-                    ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles().getTypeTempFiles(),
-                    path));
+                                                  ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                          .getTempJavaCodeFragmentFiles()
+                                                          .getTypeTempFiles(),
+                                                  path));
 
 
             //Hash code method.
             methods.add(getHashCodeMethodClose(getHashCodeMethodOpen() +
-                    getDataFromTempFileHandle(HASH_CODE_IMPL_MASK,
-                            ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                    .getTypeTempFiles(), path)
-                            .replace(NEW_LINE, EMPTY_STRING)));
+                                                       getDataFromTempFileHandle(
+                                                               HASH_CODE_IMPL_MASK,
+                                                               ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                                       .getTempJavaCodeFragmentFiles()
+                                                                       .getTypeTempFiles(),
+                                                               path).replace(
+                                                               NEW_LINE,
+                                                               EMPTY_STRING)));
 
             //Equals method.
-            methods.add(getEqualsMethodClose(getEqualsMethodOpen(className + EMPTY_STRING)
-                    + getDataFromTempFileHandle(EQUALS_IMPL_MASK,
-                    ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                            .getTypeTempFiles(), path)));
+            methods.add(getEqualsMethodClose(
+                    getEqualsMethodOpen(className + EMPTY_STRING)
+                            + getDataFromTempFileHandle(EQUALS_IMPL_MASK,
+                                                        ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                                .getTempJavaCodeFragmentFiles()
+                                                                .getTypeTempFiles(),
+                                                        path)));
 
 
             //To string method.
             methods.add(getToStringMethodOpen() + getOmitNullValueString() +
-                    getDataFromTempFileHandle(TO_STRING_IMPL_MASK,
-                            ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                                    .getTypeTempFiles(), path)
-                    + getToStringMethodClose());
+                                getDataFromTempFileHandle(TO_STRING_IMPL_MASK,
+                                                          ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                                  .getTempJavaCodeFragmentFiles()
+                                                                  .getTypeTempFiles(),
+                                                          path) +
+                                getToStringMethodClose());
 
 
             //From string method.
-            methods.add(getFromStringMethodSignature(className, pluginConfig)
-                    + getDataFromTempFileHandle(FROM_STRING_IMPL_MASK,
-                    ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                            .getTypeTempFiles(), path)
-                    + getFromStringMethodClose());
+            methods.add(getFromStringMethodSignature(className, pluginConfig) +
+                                getDataFromTempFileHandle(FROM_STRING_IMPL_MASK,
+                                                          ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                                  .getTempJavaCodeFragmentFiles()
+                                                                  .getTypeTempFiles(),
+                                                          path) +
+                                getFromStringMethodClose());
 
             if (isIntConflict) {
                 methods.add(getRangeValidatorMethodForUnion(INT));
@@ -927,13 +1264,14 @@
             if (isLongConflict) {
                 methods.add(getRangeValidatorMethodForUnion(BIG_INTEGER));
             }
-            if (isShortConflict) {
+            if (isShortConflict && !isIntConflict) {
                 methods.add(getRangeValidatorMethodForUnion(INT));
             }
 
         } catch (IOException e) {
-            throw new IOException("No data found in temporary java code fragment files for " + className
-                    + " while union class file generation");
+            throw new IOException(
+                    "No data found in temporary java code fragment files for " +
+                            className + " while union class file generation");
         }
 
         for (String method : methods) {
@@ -955,56 +1293,82 @@
     public static File generateEnumClassFile(File file, YangNode curNode)
             throws IOException {
 
-        JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+        JavaFileInfoTranslator javaFileInfo =
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo();
         YangPluginConfig pluginConfig = javaFileInfo.getPluginConfig();
 
         String className = javaFileInfo.getJavaName();
-        String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
+        String path = javaFileInfo.getBaseCodeGenPath() +
+                javaFileInfo.getPackageFilePath();
 
-        initiateJavaFileGeneration(file, getCapitalCase(className), GENERATE_ENUM_CLASS, null, path, pluginConfig);
+        initiateJavaFileGeneration(file, getCapitalCase(className),
+                                   GENERATE_ENUM_CLASS, null, path,
+                                   pluginConfig);
 
         //Add attribute strings.
         try {
             JavaCodeGeneratorInfo javaGenInfo = (JavaCodeGeneratorInfo) curNode;
             insertDataIntoJavaFile(file,
-                    trimAtLast(trimAtLast(getDataFromTempFileHandle(ENUM_IMPL_MASK, javaGenInfo
-                            .getTempJavaCodeFragmentFiles().getEnumerationTempFiles(), path), COMMA), NEW_LINE)
-                            + SEMI_COLAN + NEW_LINE);
+                                   trimAtLast(trimAtLast(
+                                           getDataFromTempFileHandle(
+                                                   ENUM_IMPL_MASK, javaGenInfo
+                                                           .getTempJavaCodeFragmentFiles()
+                                                           .getEnumerationTempFiles(),
+                                                   path), COMMA),
+                                              NEW_LINE) + SEMI_COLAN +
+                                           NEW_LINE);
         } catch (IOException e) {
-            throw new IOException("No data found in temporary java code fragment files for " + getCapitalCase(className)
-                    + " while enum class file generation");
+            throw new IOException(
+                    "No data found in temporary java code fragment files for " +
+                            getCapitalCase(className) + " while enum class " +
+                            "file generation");
         }
 
 
         // Add an attribute to get the enum's values.
-        insertDataIntoJavaFile(file, getEnumsValueAttribute(getCapitalCase(className)));
+        insertDataIntoJavaFile(file, getEnumsValueAttribute(
+                getCapitalCase(className)));
 
         // Add a constructor for enum.
-        insertDataIntoJavaFile(file, getJavaDoc(TYPE_CONSTRUCTOR, className, false, pluginConfig, null)
-                + getEnumsConstructor(getCapitalCase(className)) + NEW_LINE);
+        insertDataIntoJavaFile(file,
+                               getJavaDoc(TYPE_CONSTRUCTOR, className, false,
+                                          pluginConfig, null)
+                                       + getEnumsConstructor(
+                                       getCapitalCase(className)) + NEW_LINE);
 
-        TempJavaEnumerationFragmentFiles enumFragFiles = ((TempJavaCodeFragmentFilesContainer) curNode)
-                .getTempJavaCodeFragmentFiles()
-                .getEnumerationTempFiles();
-        insertDataIntoJavaFile(file, getEnumsOfMethod(className,
-                enumFragFiles.getJavaAttributeForEnum(pluginConfig),
-                enumFragFiles.getEnumSetJavaMap(),
-                enumFragFiles.getEnumStringList(), pluginConfig)
-                + NEW_LINE);
+        TempJavaEnumerationFragmentFiles enumFragFiles =
+                ((TempJavaCodeFragmentFilesContainer) curNode)
+                        .getTempJavaCodeFragmentFiles()
+                        .getEnumerationTempFiles();
+        insertDataIntoJavaFile(file,
+                               getEnumsOfMethod(className, enumFragFiles
+                                                        .getJavaAttributeForEnum(
+                                                                pluginConfig),
+                                                enumFragFiles
+                                                        .getEnumSetJavaMap(),
+                                                enumFragFiles
+                                                        .getEnumStringList(),
+                                                pluginConfig) + NEW_LINE);
 
         // Add a getter method for enum.
-        insertDataIntoJavaFile(file, getJavaDoc(GETTER_METHOD, className, false, pluginConfig, null)
-                + getGetter(INT, className, GENERATE_ENUM_CLASS) + NEW_LINE);
+        insertDataIntoJavaFile(file, getJavaDoc(GETTER_METHOD, className, false,
+                                                pluginConfig, null) +
+                getGetter(INT, className, GENERATE_ENUM_CLASS) + NEW_LINE);
 
         try {
-            insertDataIntoJavaFile(file, getFromStringMethodSignature(getCapitalCase(className), pluginConfig)
-                    + getDataFromTempFileHandle(FROM_STRING_IMPL_MASK,
-                    ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                            .getEnumerationTempFiles(), path)
-                    + getFromStringMethodClose());
+            insertDataIntoJavaFile(file, getFromStringMethodSignature(
+                    getCapitalCase(className), pluginConfig) +
+                    getDataFromTempFileHandle(FROM_STRING_IMPL_MASK,
+                                              ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                      .getTempJavaCodeFragmentFiles()
+                                                      .getEnumerationTempFiles(),
+                                              path) +
+                    getFromStringMethodClose());
         } catch (IOException e) {
-            throw new IOException("No data found in temporary java code fragment files for " +
-                    getCapitalCase(className) + " while enum class file generation");
+            throw new IOException(
+                    "No data found in temporary java code fragment files for " +
+                            getCapitalCase(className) +
+                            " while enum class file generation");
         }
 
         insertDataIntoJavaFile(file, CLOSE_CURLY_BRACKET + NEW_LINE);
@@ -1021,42 +1385,48 @@
      * @return rpc class file
      * @throws IOException when fails to generate class file
      */
-    public static File generateServiceInterfaceFile(File file, YangNode curNode, List<String> imports)
+    public static File generateServiceInterfaceFile(File file, YangNode curNode,
+                                                    List<String> imports)
             throws IOException {
 
-        JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+        JavaFileInfoTranslator javaFileInfo =
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo();
 
-        TempJavaServiceFragmentFiles tempJavaServiceFragmentFiles = ((JavaCodeGeneratorInfo) curNode)
-                .getTempJavaCodeFragmentFiles().getServiceTempFiles();
-        String className = getCapitalCase(javaFileInfo.getJavaName()) + SERVICE_METHOD_STRING;
-        String path = javaFileInfo.getBaseCodeGenPath() + javaFileInfo.getPackageFilePath();
-        initiateJavaFileGeneration(file, GENERATE_SERVICE_AND_MANAGER, imports, curNode, className);
+        TempJavaServiceFragmentFiles tempJavaServiceFragmentFiles =
+                ((JavaCodeGeneratorInfo) curNode)
+                        .getTempJavaCodeFragmentFiles().getServiceTempFiles();
+        String className = getCapitalCase(javaFileInfo.getJavaName()) +
+                SERVICE_METHOD_STRING;
+        String path = javaFileInfo.getBaseCodeGenPath() +
+                javaFileInfo.getPackageFilePath();
+        initiateJavaFileGeneration(file, GENERATE_SERVICE_AND_MANAGER, imports,
+                                   curNode, className);
 
         List<String> methods = new ArrayList<>();
-        JavaAttributeInfo rootAttribute = getCurNodeAsAttributeInTarget(curNode, curNode, false,
-                tempJavaServiceFragmentFiles);
+        JavaAttributeInfo rootAttribute =
+                getCurNodeAsAttributeInTarget(curNode, curNode, false,
+                                              tempJavaServiceFragmentFiles);
 
         try {
 
-            //Getter methods.
-            methods.add(getGetterString(rootAttribute, GENERATE_SERVICE_AND_MANAGER,
-                    javaFileInfo.getPluginConfig()) + NEW_LINE);
-            // Setter methods.
-            methods.add(getSetterString(rootAttribute, className, GENERATE_SERVICE_AND_MANAGER,
-                    javaFileInfo.getPluginConfig()) + NEW_LINE);
-
             methods.add(getAugmentsDataMethodForService(curNode) + NEW_LINE);
 
-            if (((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles().getServiceTempFiles() != null) {
-                JavaCodeGeneratorInfo javaGenInfo = (JavaCodeGeneratorInfo) curNode;
+            if (((JavaCodeGeneratorInfo) curNode).getTempJavaCodeFragmentFiles()
+                    .getServiceTempFiles() != null) {
+                JavaCodeGeneratorInfo javaGenInfo =
+                        (JavaCodeGeneratorInfo) curNode;
 
                 // Rpc methods
                 methods.add(getDataFromTempFileHandle(RPC_INTERFACE_MASK,
-                        javaGenInfo.getTempJavaCodeFragmentFiles().getServiceTempFiles(), path));
+                                                      javaGenInfo
+                                                              .getTempJavaCodeFragmentFiles()
+                                                              .getServiceTempFiles(),
+                                                      path));
             }
         } catch (IOException e) {
-            throw new IOException("No data found in temporary java code fragment files for " + className
-                    + " while rpc class file generation");
+            throw new IOException(
+                    "No data found in temporary java code fragment files for " +
+                            className + " while rpc class file generation");
         }
 
         for (String method : methods) {
@@ -1075,28 +1445,40 @@
      * @param imports imports for file
      * @throws IOException when fails to generate class file
      */
-    public static void generateEventFile(File file, YangNode curNode, List<String> imports)
+    public static void generateEventFile(File file, YangNode curNode,
+                                         List<String> imports)
             throws IOException {
 
-        String className = getCapitalCase(((JavaFileInfoContainer) curNode).getJavaFileInfo().getJavaName())
+        String className = getCapitalCase(
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo()
+                        .getJavaName())
                 + EVENT_STRING;
 
-        TempJavaEventFragmentFiles tempFiles = ((TempJavaCodeFragmentFilesContainer) curNode)
-                .getTempJavaCodeFragmentFiles().getEventFragmentFiles();
+        TempJavaEventFragmentFiles tempFiles =
+                ((TempJavaCodeFragmentFilesContainer) curNode)
+                        .getTempJavaCodeFragmentFiles().getEventFragmentFiles();
 
-        String path = ((JavaFileInfoContainer) curNode).getJavaFileInfo().getBaseCodeGenPath()
-                + ((JavaFileInfoContainer) curNode).getJavaFileInfo().getPackageFilePath();
-        initiateJavaFileGeneration(file, GENERATE_EVENT_CLASS, imports, curNode, className);
+        String path = ((JavaFileInfoContainer) curNode).getJavaFileInfo()
+                .getBaseCodeGenPath()
+                + ((JavaFileInfoContainer) curNode).getJavaFileInfo()
+                .getPackageFilePath();
+        initiateJavaFileGeneration(file, GENERATE_EVENT_CLASS, imports, curNode,
+                                   className);
         try {
             insertDataIntoJavaFile(file, NEW_LINE + getEventEnumTypeStart() +
-                    trimAtLast(getDataFromTempFileHandle(EVENT_ENUM_MASK, tempFiles, path), COMMA)
-                    + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE);
+                    trimAtLast(getDataFromTempFileHandle(EVENT_ENUM_MASK,
+                                                         tempFiles, path),
+                               COMMA) + FOUR_SPACE_INDENTATION +
+                    CLOSE_CURLY_BRACKET + NEW_LINE);
 
-            insertDataIntoJavaFile(file, getDataFromTempFileHandle(EVENT_METHOD_MASK, tempFiles, path));
+            insertDataIntoJavaFile(file,
+                                   getDataFromTempFileHandle(EVENT_METHOD_MASK,
+                                                             tempFiles, path));
 
         } catch (IOException e) {
-            throw new IOException("No data found in temporary java code fragment files for " + className
-                    + " while event class file generation");
+            throw new IOException(
+                    "No data found in temporary java code fragment files for " +
+                            className + " while event class file generation");
         }
 
         insertDataIntoJavaFile(file, CLOSE_CURLY_BRACKET + NEW_LINE);
@@ -1111,13 +1493,16 @@
      * @param imports imports for file
      * @throws IOException when fails to generate class file
      */
-    public static void generateEventListenerFile(File file, YangNode curNode, List<String> imports)
+    public static void generateEventListenerFile(File file, YangNode curNode,
+                                                 List<String> imports)
             throws IOException {
 
-        String className = getCapitalCase(((JavaFileInfoContainer) curNode).getJavaFileInfo().getJavaName())
-                + EVENT_LISTENER_STRING;
+        String className = getCapitalCase(
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo()
+                        .getJavaName()) + EVENT_LISTENER_STRING;
 
-        initiateJavaFileGeneration(file, GENERATE_EVENT_LISTENER_INTERFACE, imports, curNode, className);
+        initiateJavaFileGeneration(file, GENERATE_EVENT_LISTENER_INTERFACE,
+                                   imports, curNode, className);
         insertDataIntoJavaFile(file, CLOSE_CURLY_BRACKET + NEW_LINE);
         validateLineLength(file);
     }
@@ -1132,28 +1517,37 @@
     public static void generateEventSubjectFile(File file, YangNode curNode)
             throws IOException {
 
-        String className = getCapitalCase(((JavaFileInfoContainer) curNode).getJavaFileInfo().getJavaName())
-                + EVENT_SUBJECT_NAME_SUFFIX;
+        String className = getCapitalCase(
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo()
+                        .getJavaName()) + EVENT_SUBJECT_NAME_SUFFIX;
 
-        initiateJavaFileGeneration(file, GENERATE_EVENT_SUBJECT_CLASS, null, curNode, className);
+        initiateJavaFileGeneration(file, GENERATE_EVENT_SUBJECT_CLASS, null,
+                                   curNode, className);
 
-        String path = ((JavaFileInfoContainer) curNode).getJavaFileInfo().getBaseCodeGenPath()
-                + ((JavaFileInfoContainer) curNode).getJavaFileInfo().getPackageFilePath();
+        String path = ((JavaFileInfoContainer) curNode).getJavaFileInfo()
+                .getBaseCodeGenPath()
+                + ((JavaFileInfoContainer) curNode).getJavaFileInfo()
+                .getPackageFilePath();
 
-        TempJavaEventFragmentFiles tempFiles = ((TempJavaCodeFragmentFilesContainer) curNode)
-                .getTempJavaCodeFragmentFiles().getEventFragmentFiles();
+        TempJavaEventFragmentFiles tempFiles =
+                ((TempJavaCodeFragmentFilesContainer) curNode)
+                        .getTempJavaCodeFragmentFiles().getEventFragmentFiles();
 
         insertDataIntoJavaFile(file, NEW_LINE);
         try {
-            insertDataIntoJavaFile(file, getDataFromTempFileHandle(EVENT_SUBJECT_ATTRIBUTE_MASK, tempFiles, path));
+            insertDataIntoJavaFile(file, getDataFromTempFileHandle(
+                    EVENT_SUBJECT_ATTRIBUTE_MASK, tempFiles, path));
 
-            insertDataIntoJavaFile(file, getDataFromTempFileHandle(EVENT_SUBJECT_GETTER_MASK, tempFiles, path));
+            insertDataIntoJavaFile(file, getDataFromTempFileHandle(
+                    EVENT_SUBJECT_GETTER_MASK, tempFiles, path));
 
-            insertDataIntoJavaFile(file, getDataFromTempFileHandle(EVENT_SUBJECT_SETTER_MASK, tempFiles, path));
+            insertDataIntoJavaFile(file, getDataFromTempFileHandle(
+                    EVENT_SUBJECT_SETTER_MASK, tempFiles, path));
 
         } catch (IOException e) {
-            throw new IOException("No data found in temporary java code fragment files for " + className
-                    + " while event class file generation");
+            throw new IOException(
+                    "No data found in temporary java code fragment files for " +
+                            className + " while event class file generation");
         }
 
         insertDataIntoJavaFile(file, CLOSE_CURLY_BRACKET + NEW_LINE);
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java
index 1c33948..a591435 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java
@@ -135,7 +135,7 @@
      * @return file object
      */
     public static File getFileObject(String filePath, String fileName, String extension,
-            JavaFileInfoTranslator handler) {
+                                     JavaFileInfoTranslator handler) {
         return new File(handler.getBaseCodeGenPath() + filePath + SLASH + fileName + extension);
     }
 
@@ -149,7 +149,7 @@
      * @throws IOException when failed to get the data from temporary file handle
      */
     static String getDataFromTempFileHandle(int generatedTempFiles,
-            TempJavaFragmentFiles tempJavaFragmentFiles, String absolutePath)
+                                            TempJavaFragmentFiles tempJavaFragmentFiles, String absolutePath)
             throws IOException {
 
         TempJavaTypeFragmentFiles typeFragmentFiles = null;
@@ -331,7 +331,7 @@
      * @throws IOException when fails to generate a file
      */
     public static void initiateJavaFileGeneration(File file, String className, int genType, List<String> imports,
-            String pkg, YangPluginConfig pluginConfig)
+                                                  String pkg, YangPluginConfig pluginConfig)
             throws IOException {
 
         boolean isFileCreated;
@@ -357,7 +357,7 @@
      * @throws IOException when fails to generate a file
      */
     public static void initiateJavaFileGeneration(File file, int genType, List<String> imports,
-            YangNode curNode, String className)
+                                                  YangNode curNode, String className)
             throws IOException {
 
         boolean isFileCreated;
@@ -383,7 +383,7 @@
      * @throws IOException when fails to do IO operations
      */
     private static void appendContents(File file, int genType, List<String> importsList, YangNode curNode,
-            String className)
+                                       String className)
             throws IOException {
 
         JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
@@ -452,7 +452,7 @@
      * @throws IOException when fails to append contents
      */
     private static void appendContents(File file, String fileName, int genType, List<String> importsList, String pkg,
-            YangPluginConfig pluginConfig)
+                                       YangPluginConfig pluginConfig)
             throws IOException {
 
         String pkgString = parsePackageString(pkg, importsList);
@@ -553,7 +553,7 @@
      * @throws IOException when fails to write into a file
      */
     private static void write(File file, String fileName, int genType, JavaDocType javaDocType,
-            YangPluginConfig pluginConfig)
+                              YangPluginConfig pluginConfig)
             throws IOException {
         insertDataIntoJavaFile(file, getJavaDoc(javaDocType, fileName, false, pluginConfig, null));
         insertDataIntoJavaFile(file, generateClassDefinition(genType, fileName));
@@ -654,7 +654,7 @@
      * @return qualified type info of augmented node
      */
     private static JavaQualifiedTypeInfoTranslator getQualifiedTypeInfoOfAugmentedNode(YangNode augmentedNode,
-            String curNodeName, YangPluginConfig pluginConfig) {
+                                                                                       String curNodeName, YangPluginConfig pluginConfig) {
         JavaQualifiedTypeInfoTranslator javaQualifiedTypeInfo = getQualifiedTypeInfoOfCurNode(augmentedNode,
                 getCapitalCase(curNodeName));
         if (javaQualifiedTypeInfo.getPkgInfo() == null) {
@@ -672,7 +672,7 @@
      * @return true if present in imports
      */
     private static boolean validateQualifiedInfoOfAugmentedNode(JavaQualifiedTypeInfoTranslator javaQualifiedTypeInfo,
-            JavaImportData importData) {
+                                                                JavaImportData importData) {
         for (JavaQualifiedTypeInfoTranslator curImportInfo : importData.getImportSet()) {
             if (curImportInfo.getClassInfo()
                     .contentEquals(javaQualifiedTypeInfo.getClassInfo())) {
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
index 82cff15..0ab080e 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
@@ -1539,6 +1539,7 @@
                 "     * @param " + getSmallCase(name) + SPACE + getSmallCase(name) + SPACE + "being passed to check" +
                 " for" +
                 " content match\n" +
+                "     * @param isSelectAllSchemaChild is select all schema child\n" +
                 "     * @return match result\n" +
                 "     */\n";
         return method + FOUR_SPACE_INDENTATION + name + SPACE + PROCESS_SUBTREE_FILTERING +
@@ -1590,6 +1591,7 @@
                 "     * Set a leaf to be selected.\n" +
                 "     *\n" +
                 "     * @param leaf leaf needs to be selected\n" +
+                "     * @return builder object for select leaf\n" +
                 "     */\n";
         return method + FOUR_SPACE_INDENTATION + name + BUILDER + SPACE + SET_SELECT_LEAF + OPEN_PARENTHESIS
                 + LEAF_IDENTIFIER + SPACE + "leaf" + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
@@ -1661,13 +1663,13 @@
      */
     static String getGetterForOperationType() {
         return "    /**\n" +
-                "     * Returns the operationType.\n" +
+                "     * Returns the onosYangNodeOperationType.\n" +
                 "     *\n" +
-                "     * @return value of operationType\n" +
+                "     * @return value of onosYangNodeOperationType\n" +
                 "     */\n" +
-                "    public OperationType getOperationType() {\n" +
-                "        return operationType;\n" +
-                "    }\n";
+                "    public OnosYangNodeOperationType onosYangNodeOperationType() {\n" +
+                "        return onosYangNodeOperationType;\n" +
+                "    }\n\n";
     }
 
     /**
@@ -1696,14 +1698,16 @@
      */
     static String getSetterForOperationType(String name) {
         return "    /**\n" +
-                "     * Set operation type.\n" +
+                "     * Set node operation type.\n" +
                 "     *\n" +
-                "     * @param operationType operation type\n" +
+                "     * @param onosYangNodeOperationType node operation type\n" +
+                "     * @return builder object for node operation type\n" +
                 "     */\n" +
-                "    public " + name + BUILDER + " setOperationType(OperationType operationType) {\n" +
-                "       this.operationType = operationType;\n" +
+                "    public " + name + BUILDER + " onosYangNodeOperationType(OnosYangNodeOperationType " +
+                "onosYangNodeOperationType) {\n" +
+                "       this.onosYangNodeOperationType = onosYangNodeOperationType;\n" +
                 "       return this;\n" +
-                "    }\n";
+                "    }\n\n";
     }
 
     /**
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/SubtreeFilteringMethodsGenerator.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/SubtreeFilteringMethodsGenerator.java
index f9af450..3bda74c 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/SubtreeFilteringMethodsGenerator.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/SubtreeFilteringMethodsGenerator.java
@@ -22,19 +22,26 @@
 import org.onosproject.yangutils.datamodel.YangCase;
 import org.onosproject.yangutils.datamodel.YangChoice;
 import org.onosproject.yangutils.datamodel.YangLeafRef;
+import org.onosproject.yangutils.datamodel.YangLeavesHolder;
 import org.onosproject.yangutils.datamodel.YangNode;
 import org.onosproject.yangutils.datamodel.YangType;
 import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfoTranslator;
-import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
+import org.onosproject.yangutils.translator.tojava
+        .TempJavaCodeFragmentFilesContainer;
 import org.onosproject.yangutils.utils.io.YangPluginConfig;
 
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.LEAFREF;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.FILTER_CONTENT_MATCH_FOR_LEAF_LIST_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.FILTER_CONTENT_MATCH_FOR_LEAF_MASK;
-import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.FILTER_CONTENT_MATCH_FOR_NODES_MASK;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getDataFromTempFileHandle;
+import static org.onosproject.yangutils.datamodel.utils.builtindatatype
+        .YangDataTypes.LEAFREF;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.FILTER_CONTENT_MATCH_FOR_LEAF_LIST_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.FILTER_CONTENT_MATCH_FOR_LEAF_MASK;
+import static org.onosproject.yangutils.translator.tojava
+        .GeneratedTempFileType.FILTER_CONTENT_MATCH_FOR_NODES_MASK;
+import static org.onosproject.yangutils.translator.tojava.utils
+        .JavaFileGeneratorUtils.getDataFromTempFileHandle;
 import static org.onosproject.yangutils.utils.UtilConstants.ADD_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.AND_OPERATION;
 import static org.onosproject.yangutils.utils.UtilConstants.APP_INSTANCE;
@@ -48,35 +55,45 @@
 import static org.onosproject.yangutils.utils.UtilConstants.COLAN;
 import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
 import static org.onosproject.yangutils.utils.UtilConstants.CONTINUE;
-import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .EIGHT_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.ELSE;
-import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_PARAMETER_FUNCTION_CALL;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .EMPTY_PARAMETER_FUNCTION_CALL;
 import static org.onosproject.yangutils.utils.UtilConstants.EQUAL;
 import static org.onosproject.yangutils.utils.UtilConstants.EQUALS_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.EXCEPTION_VAR;
 import static org.onosproject.yangutils.utils.UtilConstants.FALSE;
 import static org.onosproject.yangutils.utils.UtilConstants.FOR;
-import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .FOUR_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.GET_CLASS;
 import static org.onosproject.yangutils.utils.UtilConstants.GET_LEAF_INDEX;
 import static org.onosproject.yangutils.utils.UtilConstants.GET_METHOD;
 import static org.onosproject.yangutils.utils.UtilConstants.GET_METHOD_PREFIX;
-import static org.onosproject.yangutils.utils.UtilConstants.GET_SELECT_LEAF_FLAGS;
-import static org.onosproject.yangutils.utils.UtilConstants.GET_VALUE_LEAF_FLAGS;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .GET_SELECT_LEAF_FLAGS;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .GET_VALUE_LEAF_FLAGS;
 import static org.onosproject.yangutils.utils.UtilConstants.IF;
-import static org.onosproject.yangutils.utils.UtilConstants.ILLEGAL_ACCESS_EXCEPTION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .ILLEGAL_ACCESS_EXCEPTION;
 import static org.onosproject.yangutils.utils.UtilConstants.INSTANCE;
-import static org.onosproject.yangutils.utils.UtilConstants.INVOCATION_TARGET_EXCEPTION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .INVOCATION_TARGET_EXCEPTION;
 import static org.onosproject.yangutils.utils.UtilConstants.INVOKE;
-import static org.onosproject.yangutils.utils.UtilConstants.IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG;
 import static org.onosproject.yangutils.utils.UtilConstants.IS_EMPTY;
-import static org.onosproject.yangutils.utils.UtilConstants.IS_SELECT_ALL_SCHEMA_CHILD_FLAG;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .IS_SELECT_ALL_SCHEMA_CHILD_FLAG;
 import static org.onosproject.yangutils.utils.UtilConstants.LEAF_IDENTIFIER;
 import static org.onosproject.yangutils.utils.UtilConstants.MAP;
 import static org.onosproject.yangutils.utils.UtilConstants.NEW;
 import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
 import static org.onosproject.yangutils.utils.UtilConstants.NOT;
-import static org.onosproject.yangutils.utils.UtilConstants.NO_SUCH_METHOD_EXCEPTION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .NO_SUCH_METHOD_EXCEPTION;
 import static org.onosproject.yangutils.utils.UtilConstants.NULL;
 import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
 import static org.onosproject.yangutils.utils.UtilConstants.OBJECT_STRING;
@@ -85,32 +102,43 @@
 import static org.onosproject.yangutils.utils.UtilConstants.OR_OPERATION;
 import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
 import static org.onosproject.yangutils.utils.UtilConstants.PRIVATE;
-import static org.onosproject.yangutils.utils.UtilConstants.PROCESS_SUBTREE_FILTERING;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .PROCESS_SUBTREE_FILTERING;
 import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC;
 import static org.onosproject.yangutils.utils.UtilConstants.QUOTES;
 import static org.onosproject.yangutils.utils.UtilConstants.RETURN;
 import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
-import static org.onosproject.yangutils.utils.UtilConstants.SIXTEEN_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .SIXTEEN_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
-import static org.onosproject.yangutils.utils.UtilConstants.SUBTREE_FILTERING_RESULT_BUILDER;
-import static org.onosproject.yangutils.utils.UtilConstants.THIRTY_TWO_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .SUBTREE_FILTERING_RESULT_BUILDER;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .THIRTY_TWO_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.THIS;
 import static org.onosproject.yangutils.utils.UtilConstants.TO;
 import static org.onosproject.yangutils.utils.UtilConstants.TRUE;
 import static org.onosproject.yangutils.utils.UtilConstants.TRY;
-import static org.onosproject.yangutils.utils.UtilConstants.TWELVE_SPACE_INDENTATION;
-import static org.onosproject.yangutils.utils.UtilConstants.TWENTY_EIGHT_SPACE_INDENTATION;
-import static org.onosproject.yangutils.utils.UtilConstants.TWENTY_FOUR_SPACE_INDENTATION;
-import static org.onosproject.yangutils.utils.UtilConstants.TWENTY_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .TWELVE_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .TWENTY_EIGHT_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .TWENTY_FOUR_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .TWENTY_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
 import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO;
-import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_OP_PARAM_INFO;
+import static org.onosproject.yangutils.utils.UtilConstants
+        .YANG_AUGMENTED_OP_PARAM_INFO;
 import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
-import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils
+        .getCapitalCase;
 import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
 
 /**
- * Represents generator for subtree filtering methods of generated files based on the file type.
+ * Represents generator for subtree filtering methods of generated files
+ * based on the file type.
  */
 public final class SubtreeFilteringMethodsGenerator {
 
@@ -127,67 +155,100 @@
      * @param type              data type
      * @return is filter content match for leaf
      */
-    public static String getSubtreeFilteringForLeaf(JavaAttributeInfo javaAttributeInfo, YangType<?> type) {
+    public static String getSubtreeFilteringForLeaf(
+            JavaAttributeInfo javaAttributeInfo, YangType<?> type) {
         String attrQualifiedType;
         String attributeName = javaAttributeInfo.getAttributeName();
         attrQualifiedType = getIfFilterContentMatchMethodImpl(attributeName,
-                type);
+                                                              type);
         return EIGHT_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS
-                + GET_VALUE_LEAF_FLAGS + EMPTY_PARAMETER_FUNCTION_CALL + PERIOD + GET_METHOD_PREFIX
-                + OPEN_PARENTHESIS + LEAF_IDENTIFIER + PERIOD + attributeName.toUpperCase() + PERIOD
-                + GET_LEAF_INDEX + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS
-                + SPACE + OPEN_CURLY_BRACKET + NEW_LINE + TWELVE_SPACE_INDENTATION + IF + SPACE
-                + OPEN_PARENTHESIS + attrQualifiedType + CLOSE_PARENTHESIS + SPACE
-                + OPEN_CURLY_BRACKET + NEW_LINE + SIXTEEN_SPACE_INDENTATION + RETURN + SPACE + FALSE
-                + SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + SPACE + ELSE + SPACE
-                + OPEN_CURLY_BRACKET + NEW_LINE + SIXTEEN_SPACE_INDENTATION
-                + SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + attributeName + OPEN_PARENTHESIS + APP_INSTANCE
-                + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS
-                + SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE
-                + EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + SPACE + ELSE + SPACE + IF + SPACE + OPEN_PARENTHESIS
-                + GET_SELECT_LEAF_FLAGS + EMPTY_PARAMETER_FUNCTION_CALL + PERIOD + GET_METHOD_PREFIX + OPEN_PARENTHESIS
-                + LEAF_IDENTIFIER + PERIOD + attributeName.toUpperCase() + PERIOD + GET_LEAF_INDEX + CLOSE_PARENTHESIS
-                + SPACE + OR_OPERATION + SPACE + IS_SELECT_ALL_SCHEMA_CHILD_FLAG + CLOSE_PARENTHESIS + SPACE
-                + OPEN_CURLY_BRACKET + NEW_LINE + TWELVE_SPACE_INDENTATION + IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG
-                + SPACE + EQUAL + SPACE + TRUE + SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION
-                + SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + attributeName + OPEN_PARENTHESIS + APP_INSTANCE
-                + PERIOD + attributeName + EMPTY_PARAMETER_FUNCTION_CALL + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE
-                + EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
+                + GET_VALUE_LEAF_FLAGS + EMPTY_PARAMETER_FUNCTION_CALL +
+                PERIOD + GET_METHOD_PREFIX + OPEN_PARENTHESIS +
+                LEAF_IDENTIFIER + PERIOD + attributeName.toUpperCase() +
+                PERIOD + GET_LEAF_INDEX + CLOSE_PARENTHESIS +
+                CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
+                TWELVE_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS +
+                attrQualifiedType + CLOSE_PARENTHESIS + SPACE +
+                OPEN_CURLY_BRACKET + NEW_LINE + SIXTEEN_SPACE_INDENTATION +
+                RETURN + SPACE + FALSE + SEMI_COLAN + NEW_LINE +
+                TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + SPACE +
+                ELSE + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
+                SIXTEEN_SPACE_INDENTATION +
+                SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + attributeName +
+                OPEN_PARENTHESIS + APP_INSTANCE + PERIOD + attributeName +
+                OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
+                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+                TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE +
+                EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + SPACE + ELSE +
+                SPACE + IF + SPACE + OPEN_PARENTHESIS +
+                GET_SELECT_LEAF_FLAGS + EMPTY_PARAMETER_FUNCTION_CALL +
+                PERIOD + GET_METHOD_PREFIX + OPEN_PARENTHESIS +
+                LEAF_IDENTIFIER + PERIOD + attributeName.toUpperCase() +
+                PERIOD + GET_LEAF_INDEX + CLOSE_PARENTHESIS + SPACE +
+                OR_OPERATION + SPACE + IS_SELECT_ALL_SCHEMA_CHILD_FLAG +
+                CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
+                TWELVE_SPACE_INDENTATION +
+                IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE + EQUAL +
+                SPACE + TRUE + SEMI_COLAN + NEW_LINE +
+                TWELVE_SPACE_INDENTATION + SUBTREE_FILTERING_RESULT_BUILDER +
+                PERIOD + attributeName + OPEN_PARENTHESIS + APP_INSTANCE +
+                PERIOD + attributeName + EMPTY_PARAMETER_FUNCTION_CALL +
+                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+                EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
     }
 
-    private static String getAttrTypeForFilterContentMatchWhenPrimitiveDataType(String attributeName) {
-        return /* TODO: Need to check if we can expose the value leaf flag in interface.
-                NOT + APP_INSTANCE + PERIOD + GET_VALUE_LEAF_FLAGS + OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
-                GET_METHOD_PREFIX + OPEN_PARENTHESIS + LEAF_IDENTIFIER + PERIOD + attributeName.toUpperCase() + PERIOD
+    private static String getAttrTypeForFilterContentMatchWhenPrimitiveDataType(
+            String attributeName) {
+        return/* TODO: Need to check if we can expose the value leaf flag in
+         interface.
+                NOT + APP_INSTANCE + PERIOD + GET_VALUE_LEAF_FLAGS +
+                OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
+                GET_METHOD_PREFIX + OPEN_PARENTHESIS + LEAF_IDENTIFIER +
+                PERIOD + attributeName.toUpperCase() + PERIOD
                 + GET_LEAF_INDEX + OR_OPERATION +*/
-                APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE + NOT + EQUAL
-                        + SPACE + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS;
+                APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS +
+                        CLOSE_PARENTHESIS + SPACE + NOT + EQUAL + SPACE +
+                        attributeName + OPEN_PARENTHESIS +
+                        CLOSE_PARENTHESIS;
     }
 
-    private static String getAttrTypeForFilterContentMatchWhenNonPrimitiveDataTypes(String attributeName) {
-        return APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
-                + SPACE + EQUAL + EQUAL + SPACE + NULL + SPACE + OR_OPERATION + SPACE
-                + NOT + OPEN_PARENTHESIS + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
-                + PERIOD + EQUALS_STRING + OPEN_PARENTHESIS + APP_INSTANCE + PERIOD
-                + attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS
-                + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS;
+    private static String
+    getAttrTypeForFilterContentMatchWhenNonPrimitiveDataTypes(
+            String attributeName) {
+        return APP_INSTANCE + PERIOD + attributeName + OPEN_PARENTHESIS +
+                CLOSE_PARENTHESIS + SPACE + EQUAL + EQUAL + SPACE + NULL +
+                SPACE + OR_OPERATION + SPACE + NOT + OPEN_PARENTHESIS +
+                attributeName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
+                PERIOD + EQUALS_STRING + OPEN_PARENTHESIS + APP_INSTANCE +
+                PERIOD + attributeName + OPEN_PARENTHESIS +
+                CLOSE_PARENTHESIS + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS;
     }
 
-    private static String getIfFilterContentMatchMethodImpl(String attributeName,
+    private static String getIfFilterContentMatchMethodImpl(
+            String attributeName,
             YangType dataType) {
         String attrQualifiedType;
 
         if (MethodsGenerator.isPrimitiveDataType(dataType.getDataType())) {
-            attrQualifiedType = getAttrTypeForFilterContentMatchWhenPrimitiveDataType(attributeName);
+            attrQualifiedType =
+                    getAttrTypeForFilterContentMatchWhenPrimitiveDataType(
+                            attributeName);
         } else if (dataType.getDataType() == LEAFREF) {
-            YangType type = ((YangLeafRef) dataType.getDataTypeExtendedInfo()).getEffectiveDataType();
+            YangType type = ((YangLeafRef) dataType.getDataTypeExtendedInfo())
+                    .getEffectiveDataType();
             if (MethodsGenerator.isPrimitiveDataType(type.getDataType())) {
-                attrQualifiedType = getAttrTypeForFilterContentMatchWhenPrimitiveDataType(attributeName);
+                attrQualifiedType =
+                        getAttrTypeForFilterContentMatchWhenPrimitiveDataType(
+                                attributeName);
             } else {
-                attrQualifiedType = getAttrTypeForFilterContentMatchWhenNonPrimitiveDataTypes(attributeName);
+                attrQualifiedType =
+                        getAttrTypeForFilterContentMatchWhenNonPrimitiveDataTypes(
+                                attributeName);
             }
         } else {
-            attrQualifiedType = getAttrTypeForFilterContentMatchWhenNonPrimitiveDataTypes(attributeName);
+            attrQualifiedType =
+                    getAttrTypeForFilterContentMatchWhenNonPrimitiveDataTypes(
+                            attributeName);
         }
 
         return attrQualifiedType;
@@ -199,7 +260,8 @@
      * @param javaAttributeInfo java attribute
      * @return is filter content match for leaf
      */
-    public static String getSubtreeFilteringForLeafList(JavaAttributeInfo javaAttributeInfo) {
+    public static String getSubtreeFilteringForLeafList(
+            JavaAttributeInfo javaAttributeInfo) {
         return getSubtreeFilteringForList(javaAttributeInfo, true);
     }
 
@@ -211,9 +273,13 @@
      * @param path         path of temp file
      * @return is filter content match for child node
      */
-    static String getProcessChildNodeSubtreeFiltering(YangNode curNode, YangPluginConfig pluginConfig, String path)
+    static String getProcessChildNodeSubtreeFiltering(YangNode curNode,
+                                                      YangPluginConfig
+                                                              pluginConfig,
+                                                      String path)
             throws IOException {
-        JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+        JavaFileInfoTranslator javaFileInfo =
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo();
         JavaFileInfoTranslator parentInfo;
 
         String instance = APP_INSTANCE;
@@ -226,37 +292,49 @@
                 parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo();
                 name = getCapitalCase(parentInfo.getJavaName());
             } else if (parent instanceof YangAugment) {
-                parentInfo = ((JavaFileInfoContainer) ((YangAugment) parent).getAugmentedNode()).getJavaFileInfo();
+                parentInfo = ((JavaFileInfoContainer) ((YangAugment) parent)
+                        .getAugmentedNode()).getJavaFileInfo();
                 if (parentInfo != null) {
                     name = getCapitalCase(parentInfo.getJavaName());
                 } else {
-                    name = getCapitalCase(getCamelCase(((YangAugment) parent).getAugmentedNode().getName(),
+                    name = getCapitalCase(getCamelCase(
+                            ((YangAugment) parent).getAugmentedNode().getName(),
                             pluginConfig.getConflictResolver()));
                 }
             }
         }
 
         String processSubtreeFilteringMethod =
-                FOUR_SPACE_INDENTATION + PRIVATE + SPACE + BOOLEAN_DATA_TYPE + SPACE
-                        + "processChildNodesSubTreeFiltering" + OPEN_PARENTHESIS + name + SPACE + instance + COMMA
-                        + SPACE + builderNamePrefix + BUILDER + SPACE + "subTreeFilteringResultBuilder"
-                        + COMMA + NEW_LINE + TWELVE_SPACE_INDENTATION + "Boolean isAnySelectOrContainmentNode, "
-                        + "boolean isSelectAllSchemaChild" + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+                FOUR_SPACE_INDENTATION + PRIVATE + SPACE + BOOLEAN_DATA_TYPE +
+                        SPACE + "processChildNodesSubTreeFiltering" +
+                        OPEN_PARENTHESIS + name + SPACE + instance + COMMA +
+                        SPACE + builderNamePrefix + BUILDER + SPACE +
+                        "subTreeFilteringResultBuilder" + COMMA + NEW_LINE +
+                        TWELVE_SPACE_INDENTATION + "Boolean " +
+                        "isAnySelectOrContainmentNode, " + "boolean " +
+                        "isSelectAllSchemaChild" + CLOSE_PARENTHESIS +
+                        SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
 
         if (curNode instanceof YangCase) {
             String caseName = getCapitalCase(javaFileInfo.getJavaName());
             processSubtreeFilteringMethod =
-                    processSubtreeFilteringMethod + EIGHT_SPACE_INDENTATION + caseName + SPACE + APP_INSTANCE + SPACE +
-                            EQUAL + SPACE + OPEN_PARENTHESIS + caseName + CLOSE_PARENTHESIS + SPACE + instance
-                            + SEMI_COLAN + NEW_LINE;
+                    processSubtreeFilteringMethod + EIGHT_SPACE_INDENTATION +
+                            caseName + SPACE + APP_INSTANCE + SPACE +
+                            EQUAL + SPACE + OPEN_PARENTHESIS + caseName +
+                            CLOSE_PARENTHESIS + SPACE + instance +
+                            SEMI_COLAN + NEW_LINE;
         }
 
-        processSubtreeFilteringMethod += getDataFromTempFileHandle(FILTER_CONTENT_MATCH_FOR_NODES_MASK,
-                ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                        .getBeanTempFiles(), path);
+        processSubtreeFilteringMethod +=
+                getDataFromTempFileHandle(FILTER_CONTENT_MATCH_FOR_NODES_MASK,
+                                          ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                  .getTempJavaCodeFragmentFiles()
+                                                  .getBeanTempFiles(), path);
 
-        processSubtreeFilteringMethod += EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN + NEW_LINE
-                + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE + NEW_LINE;
+        processSubtreeFilteringMethod +=
+                EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN +
+                        NEW_LINE + FOUR_SPACE_INDENTATION +
+                        CLOSE_CURLY_BRACKET + NEW_LINE + NEW_LINE;
 
         return processSubtreeFilteringMethod;
     }
@@ -269,9 +347,13 @@
      * @param path         path of temp file
      * @return is filter content match for leaf list
      */
-    static String getProcessLeafListSubtreeFiltering(YangNode curNode, YangPluginConfig pluginConfig, String path)
+    static String getProcessLeafListSubtreeFiltering(YangNode curNode,
+                                                     YangPluginConfig
+                                                             pluginConfig,
+                                                     String path)
             throws IOException {
-        JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+        JavaFileInfoTranslator javaFileInfo =
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo();
         JavaFileInfoTranslator parentInfo;
 
         String instance = APP_INSTANCE;
@@ -284,37 +366,49 @@
                 parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo();
                 name = getCapitalCase(parentInfo.getJavaName());
             } else if (parent instanceof YangAugment) {
-                parentInfo = ((JavaFileInfoContainer) ((YangAugment) parent).getAugmentedNode()).getJavaFileInfo();
+                parentInfo = ((JavaFileInfoContainer) ((YangAugment) parent)
+                        .getAugmentedNode()).getJavaFileInfo();
                 if (parentInfo != null) {
                     name = getCapitalCase(parentInfo.getJavaName());
                 } else {
-                    name = getCapitalCase(getCamelCase(((YangAugment) parent).getAugmentedNode().getName(),
+                    name = getCapitalCase(getCamelCase(
+                            ((YangAugment) parent).getAugmentedNode().getName(),
                             pluginConfig.getConflictResolver()));
                 }
             }
         }
 
         String processSubtreeFilteringMethod =
-                FOUR_SPACE_INDENTATION + PRIVATE + SPACE + BOOLEAN_DATA_TYPE + SPACE +
-                        "processLeafListSubTreeFiltering" + OPEN_PARENTHESIS + name + SPACE + instance + COMMA
-                        + SPACE + builderNamePrefix + BUILDER + SPACE + "subTreeFilteringResultBuilder" + COMMA
-                        + NEW_LINE + TWELVE_SPACE_INDENTATION + "Boolean isAnySelectOrContainmentNode, "
-                        + "boolean isSelectAllSchemaChild" + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+                FOUR_SPACE_INDENTATION + PRIVATE + SPACE + BOOLEAN_DATA_TYPE +
+                        SPACE + "processLeafListSubTreeFiltering" +
+                        OPEN_PARENTHESIS + name + SPACE + instance + COMMA +
+                        SPACE + builderNamePrefix + BUILDER + SPACE +
+                        "subTreeFilteringResultBuilder" + COMMA + NEW_LINE +
+                        TWELVE_SPACE_INDENTATION + "Boolean " +
+                        "isAnySelectOrContainmentNode, " + "boolean " +
+                        "isSelectAllSchemaChild" + CLOSE_PARENTHESIS +
+                        SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
 
         if (curNode instanceof YangCase) {
             String caseName = getCapitalCase(javaFileInfo.getJavaName());
             processSubtreeFilteringMethod =
-                    processSubtreeFilteringMethod + EIGHT_SPACE_INDENTATION + caseName + SPACE + APP_INSTANCE + SPACE +
-                            EQUAL + SPACE + OPEN_PARENTHESIS + caseName + CLOSE_PARENTHESIS + SPACE + instance
-                            + SEMI_COLAN + NEW_LINE;
+                    processSubtreeFilteringMethod + EIGHT_SPACE_INDENTATION +
+                            caseName + SPACE + APP_INSTANCE + SPACE +
+                            EQUAL + SPACE + OPEN_PARENTHESIS + caseName +
+                            CLOSE_PARENTHESIS + SPACE + instance +
+                            SEMI_COLAN + NEW_LINE;
         }
 
-        processSubtreeFilteringMethod += getDataFromTempFileHandle(FILTER_CONTENT_MATCH_FOR_LEAF_LIST_MASK,
-                ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
+        processSubtreeFilteringMethod += getDataFromTempFileHandle(
+                FILTER_CONTENT_MATCH_FOR_LEAF_LIST_MASK,
+                ((TempJavaCodeFragmentFilesContainer) curNode)
+                        .getTempJavaCodeFragmentFiles()
                         .getBeanTempFiles(), path);
 
-        processSubtreeFilteringMethod += EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN + NEW_LINE
-                + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE + NEW_LINE;
+        processSubtreeFilteringMethod +=
+                EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN +
+                        NEW_LINE + FOUR_SPACE_INDENTATION +
+                        CLOSE_CURLY_BRACKET + NEW_LINE + NEW_LINE;
 
         return processSubtreeFilteringMethod;
     }
@@ -327,9 +421,12 @@
      * @param path         path of temp file
      * @return is filter content match for leaf
      */
-    static String getProcessLeafSubtreeFiltering(YangNode curNode, YangPluginConfig pluginConfig, String path)
+    static String getProcessLeafSubtreeFiltering(YangNode curNode,
+                                                 YangPluginConfig pluginConfig,
+                                                 String path)
             throws IOException {
-        JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+        JavaFileInfoTranslator javaFileInfo =
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo();
         JavaFileInfoTranslator parentInfo;
 
         String instance = APP_INSTANCE;
@@ -342,37 +439,49 @@
                 parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo();
                 name = getCapitalCase(parentInfo.getJavaName());
             } else if (parent instanceof YangAugment) {
-                parentInfo = ((JavaFileInfoContainer) ((YangAugment) parent).getAugmentedNode()).getJavaFileInfo();
+                parentInfo = ((JavaFileInfoContainer) ((YangAugment) parent)
+                        .getAugmentedNode()).getJavaFileInfo();
                 if (parentInfo != null) {
                     name = getCapitalCase(parentInfo.getJavaName());
                 } else {
-                    name = getCapitalCase(getCamelCase(((YangAugment) parent).getAugmentedNode().getName(),
+                    name = getCapitalCase(getCamelCase(
+                            ((YangAugment) parent).getAugmentedNode().getName(),
                             pluginConfig.getConflictResolver()));
                 }
             }
         }
 
         String processSubtreeFilteringMethod =
-                FOUR_SPACE_INDENTATION + PRIVATE + SPACE + BOOLEAN_DATA_TYPE + SPACE + "processLeafSubtreeFiltering" +
-                        OPEN_PARENTHESIS + name + SPACE + instance + COMMA + SPACE + builderNamePrefix
-                        + BUILDER + SPACE + "subTreeFilteringResultBuilder" + COMMA + NEW_LINE
-                        + TWELVE_SPACE_INDENTATION + "Boolean isAnySelectOrContainmentNode, "
-                        + "boolean isSelectAllSchemaChild" + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+                FOUR_SPACE_INDENTATION + PRIVATE + SPACE + BOOLEAN_DATA_TYPE +
+                        SPACE + "processLeafSubtreeFiltering" +
+                        OPEN_PARENTHESIS + name + SPACE + instance + COMMA +
+                        SPACE + builderNamePrefix + BUILDER + SPACE +
+                        "subTreeFilteringResultBuilder" + COMMA + NEW_LINE
+                        + TWELVE_SPACE_INDENTATION + "Boolean " +
+                        "isAnySelectOrContainmentNode, " + "boolean " +
+                        "isSelectAllSchemaChild" + CLOSE_PARENTHESIS +
+                        SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
 
         if (curNode instanceof YangCase) {
             String caseName = getCapitalCase(javaFileInfo.getJavaName());
             processSubtreeFilteringMethod =
-                    processSubtreeFilteringMethod + EIGHT_SPACE_INDENTATION + caseName + SPACE + APP_INSTANCE + SPACE +
-                            EQUAL + SPACE + OPEN_PARENTHESIS + caseName + CLOSE_PARENTHESIS + SPACE + instance
-                            + SEMI_COLAN + NEW_LINE;
+                    processSubtreeFilteringMethod + EIGHT_SPACE_INDENTATION +
+                            caseName + SPACE + APP_INSTANCE + SPACE +
+                            EQUAL + SPACE + OPEN_PARENTHESIS + caseName +
+                            CLOSE_PARENTHESIS + SPACE + instance +
+                            SEMI_COLAN + NEW_LINE;
         }
 
-        processSubtreeFilteringMethod += getDataFromTempFileHandle(FILTER_CONTENT_MATCH_FOR_LEAF_MASK,
-                ((TempJavaCodeFragmentFilesContainer) curNode).getTempJavaCodeFragmentFiles()
-                        .getBeanTempFiles(), path);
+        processSubtreeFilteringMethod +=
+                getDataFromTempFileHandle(FILTER_CONTENT_MATCH_FOR_LEAF_MASK,
+                                          ((TempJavaCodeFragmentFilesContainer) curNode)
+                                                  .getTempJavaCodeFragmentFiles()
+                                                  .getBeanTempFiles(), path);
 
-        processSubtreeFilteringMethod += EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN + NEW_LINE
-                + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE + NEW_LINE;
+        processSubtreeFilteringMethod +=
+                EIGHT_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN +
+                        NEW_LINE + FOUR_SPACE_INDENTATION +
+                        CLOSE_CURLY_BRACKET + NEW_LINE + NEW_LINE;
 
         return processSubtreeFilteringMethod;
     }
@@ -384,8 +493,11 @@
      * @param pluginConfig plugin configurations
      * @return is filter content match for leaf
      */
-    static String getProcessSubtreeFilteringStart(YangNode curNode, YangPluginConfig pluginConfig) {
-        JavaFileInfoTranslator javaFileInfo = ((JavaFileInfoContainer) curNode).getJavaFileInfo();
+    static String getProcessSubtreeFilteringStart(YangNode curNode,
+                                                  YangPluginConfig
+                                                          pluginConfig) {
+        JavaFileInfoTranslator javaFileInfo =
+                ((JavaFileInfoContainer) curNode).getJavaFileInfo();
         JavaFileInfoTranslator parentInfo;
 
         String instance = APP_INSTANCE;
@@ -398,32 +510,41 @@
                 parentInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo();
                 name = getCapitalCase(parentInfo.getJavaName());
             } else if (parent instanceof YangAugment) {
-                parentInfo = ((JavaFileInfoContainer) ((YangAugment) parent).getAugmentedNode()).getJavaFileInfo();
+                parentInfo = ((JavaFileInfoContainer) ((YangAugment) parent)
+                        .getAugmentedNode()).getJavaFileInfo();
                 if (parentInfo != null) {
                     name = getCapitalCase(parentInfo.getJavaName());
                 } else {
-                    name = getCapitalCase(getCamelCase(((YangAugment) parent).getAugmentedNode().getName(),
+                    name = getCapitalCase(getCamelCase(
+                            ((YangAugment) parent).getAugmentedNode().getName(),
                             pluginConfig.getConflictResolver()));
                 }
             }
         }
         String processSubtreeFilteringMethod =
-                MethodsGenerator.getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
-                        name + SPACE + PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS + name
-                        + SPACE + instance + COMMA + SPACE + BOOLEAN_DATA_TYPE + SPACE + "isSelectAllSchemaChild" +
-                        CLOSE_PARENTHESIS + SPACE
-                        + OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION + builderNamePrefix
-                        + BUILDER + SPACE + SUBTREE_FILTERING_RESULT_BUILDER + SPACE + EQUAL + SPACE + NEW + SPACE
-                        + builderNamePrefix + BUILDER + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE
-                        + EIGHT_SPACE_INDENTATION + "Boolean" + SPACE + IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG
-                        + SPACE + EQUAL + SPACE + FALSE + SEMI_COLAN + NEW_LINE;
+                MethodsGenerator.getOverRideString() + FOUR_SPACE_INDENTATION +
+                        PUBLIC + SPACE + name + SPACE +
+                        PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS + name +
+                        SPACE + instance + COMMA + SPACE + BOOLEAN_DATA_TYPE +
+                        SPACE + "isSelectAllSchemaChild" +
+                        CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
+                        NEW_LINE + EIGHT_SPACE_INDENTATION +
+                        builderNamePrefix + BUILDER + SPACE +
+                        SUBTREE_FILTERING_RESULT_BUILDER + SPACE + EQUAL +
+                        SPACE + NEW + SPACE + builderNamePrefix + BUILDER +
+                        OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN +
+                        NEW_LINE + EIGHT_SPACE_INDENTATION + "Boolean" + SPACE +
+                        IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE +
+                        EQUAL + SPACE + FALSE + SEMI_COLAN + NEW_LINE;
 
         if (curNode instanceof YangCase) {
             String caseName = getCapitalCase(javaFileInfo.getJavaName());
             processSubtreeFilteringMethod =
-                    processSubtreeFilteringMethod + EIGHT_SPACE_INDENTATION + caseName + SPACE + APP_INSTANCE + SPACE +
-                            EQUAL + SPACE + OPEN_PARENTHESIS + caseName + CLOSE_PARENTHESIS + SPACE + instance
-                            + SEMI_COLAN + NEW_LINE;
+                    processSubtreeFilteringMethod + EIGHT_SPACE_INDENTATION +
+                            caseName + SPACE + APP_INSTANCE + SPACE +
+                            EQUAL + SPACE + OPEN_PARENTHESIS + caseName +
+                            CLOSE_PARENTHESIS + SPACE + instance +
+                            SEMI_COLAN + NEW_LINE;
         }
 
         return processSubtreeFilteringMethod;
@@ -432,32 +553,67 @@
     /**
      * Get the body for process subtree filtering.
      *
+     * @param curNode node for which the code is being generated
      * @return body of subtree filtering
      */
-    static String getProcessSubtreeFunctionBody() {
-        String method = MethodsGenerator.getIfConditionBegin(EIGHT_SPACE_INDENTATION, NOT
-                + "processLeafSubtreeFiltering(appInstance, subTreeFilteringResultBuilder,"
-                + NEW_LINE + TWELVE_SPACE_INDENTATION + "isAnySelectOrContainmentNode, isSelectAllSchemaChild)");
+    static String getProcessSubtreeFunctionBody(YangNode curNode) {
 
-        method += TWELVE_SPACE_INDENTATION + RETURN + SPACE + NULL + SEMI_COLAN + NEW_LINE;
+        String method = "";
 
-        method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION);
+        if (curNode instanceof YangLeavesHolder) {
+            if (((YangLeavesHolder) curNode).getListOfLeaf() != null
+                    &&
+                    !((YangLeavesHolder) curNode).getListOfLeaf().isEmpty()) {
+                method += MethodsGenerator
+                        .getIfConditionBegin(EIGHT_SPACE_INDENTATION, NOT +
+                                "processLeafSubtreeFiltering(appInstance, " +
+                                "subTreeFilteringResultBuilder," + NEW_LINE +
+                                TWELVE_SPACE_INDENTATION +
+                                "isAnySelectOrContainmentNode, " +
+                                "isSelectAllSchemaChild)");
 
-        method += MethodsGenerator.getIfConditionBegin(EIGHT_SPACE_INDENTATION, NOT
-                + "processLeafListSubTreeFiltering(appInstance, subTreeFilteringResultBuilder,"
-                + NEW_LINE + TWELVE_SPACE_INDENTATION + "isAnySelectOrContainmentNode, isSelectAllSchemaChild)");
+                method += TWELVE_SPACE_INDENTATION + RETURN + SPACE + NULL +
+                        SEMI_COLAN + NEW_LINE;
 
-        method += TWELVE_SPACE_INDENTATION + RETURN + SPACE + NULL + SEMI_COLAN + NEW_LINE;
+                method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION);
+            }
+        }
 
-        method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION);
+        if (curNode instanceof YangLeavesHolder) {
+            if (((YangLeavesHolder) curNode).getListOfLeafList() != null
+                    &&
+                    !((YangLeavesHolder) curNode).getListOfLeafList()
+                            .isEmpty()) {
+                method += MethodsGenerator
+                        .getIfConditionBegin(EIGHT_SPACE_INDENTATION, NOT +
+                                "processLeafListSubTreeFiltering(appInstance," +
+                                " subTreeFilteringResultBuilder," + NEW_LINE
+                                + TWELVE_SPACE_INDENTATION +
+                                "isAnySelectOrContainmentNode, " +
+                                "isSelectAllSchemaChild)");
 
-        method += MethodsGenerator.getIfConditionBegin(EIGHT_SPACE_INDENTATION, NOT
-                + "processChildNodesSubTreeFiltering(appInstance, subTreeFilteringResultBuilder,"
-                + NEW_LINE + TWELVE_SPACE_INDENTATION + "isAnySelectOrContainmentNode, isSelectAllSchemaChild)");
+                method += TWELVE_SPACE_INDENTATION + RETURN + SPACE + NULL +
+                        SEMI_COLAN + NEW_LINE;
 
-        method += TWELVE_SPACE_INDENTATION + RETURN + SPACE + NULL + SEMI_COLAN + NEW_LINE;
+                method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION);
+            }
+        }
 
-        method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION);
+        if (curNode.getChild() != null) {
+
+            method += MethodsGenerator
+                    .getIfConditionBegin(EIGHT_SPACE_INDENTATION, NOT +
+                            "processChildNodesSubTreeFiltering(appInstance, " +
+                            "subTreeFilteringResultBuilder," + NEW_LINE +
+                            TWELVE_SPACE_INDENTATION +
+                            "isAnySelectOrContainmentNode, " +
+                            "isSelectAllSchemaChild)");
+
+            method += TWELVE_SPACE_INDENTATION + RETURN + SPACE + NULL +
+                    SEMI_COLAN + NEW_LINE;
+
+            method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION);
+        }
 
         return method;
     }
@@ -484,17 +640,23 @@
      */
     static String getProcessSubTreeFilteringEnd() {
         String method = MethodsGenerator
-                .getIfConditionBegin(EIGHT_SPACE_INDENTATION, NOT + IS_SELECT_ALL_SCHEMA_CHILD_FLAG
-                        + SPACE + AND_OPERATION + SPACE + NOT + IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG);
+                .getIfConditionBegin(EIGHT_SPACE_INDENTATION,
+                                     NOT + IS_SELECT_ALL_SCHEMA_CHILD_FLAG +
+                                             SPACE + AND_OPERATION + SPACE +
+                                             NOT +
+                                             IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG);
 
-        method += TWELVE_SPACE_INDENTATION + RETURN + SPACE + PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS
-                + APP_INSTANCE + COMMA + SPACE + TRUE + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+        method += TWELVE_SPACE_INDENTATION + RETURN + SPACE +
+                PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS + APP_INSTANCE +
+                COMMA + SPACE + TRUE + CLOSE_PARENTHESIS + SEMI_COLAN +
+                NEW_LINE;
 
         method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION);
 
-        method += EIGHT_SPACE_INDENTATION + RETURN + SPACE + SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + BUILD
-                + EMPTY_PARAMETER_FUNCTION_CALL + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION
-                + CLOSE_CURLY_BRACKET + NEW_LINE;
+        method += EIGHT_SPACE_INDENTATION + RETURN + SPACE +
+                SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + BUILD +
+                EMPTY_PARAMETER_FUNCTION_CALL + SEMI_COLAN + NEW_LINE +
+                FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
 
         return method;
     }
@@ -505,33 +667,43 @@
      * @param javaAttributeInfo attribute to be added
      * @return filter content match for child nodes
      */
-    private static String getSubtreeFilteringForChildNode(JavaAttributeInfo javaAttributeInfo) {
+    private static String getSubtreeFilteringForChildNode(
+            JavaAttributeInfo javaAttributeInfo) {
         String name = javaAttributeInfo.getAttributeName();
         name = getSmallCase(name);
         String type = javaAttributeInfo.getImportInfo().getClassInfo();
         if (javaAttributeInfo.isQualifiedName()) {
-            type = javaAttributeInfo.getImportInfo().getPkgInfo() + PERIOD + type;
+            type = javaAttributeInfo.getImportInfo().getPkgInfo() + PERIOD +
+                    type;
         }
 
-        String method = MethodsGenerator.getIfConditionBegin(EIGHT_SPACE_INDENTATION, name + "()  != null");
+        String method = MethodsGenerator
+                .getIfConditionBegin(EIGHT_SPACE_INDENTATION, name + "()  != " +
+                        "null");
 
-        method += TWELVE_SPACE_INDENTATION + IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE + EQUAL + SPACE + TRUE
-                + SEMI_COLAN + NEW_LINE;
+        method += TWELVE_SPACE_INDENTATION +
+                IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE + EQUAL + SPACE +
+                TRUE + SEMI_COLAN + NEW_LINE;
 
-        method += TWELVE_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS + APP_INSTANCE
-                + PERIOD + name + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE + NOT
-                + EQUAL + SPACE + NULL + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+        method += TWELVE_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS +
+                APP_INSTANCE + PERIOD + name + OPEN_PARENTHESIS +
+                CLOSE_PARENTHESIS + SPACE + NOT
+                + EQUAL + SPACE + NULL + CLOSE_PARENTHESIS + SPACE +
+                OPEN_CURLY_BRACKET + NEW_LINE;
 
+        method += SIXTEEN_SPACE_INDENTATION + type + SPACE + "result = " +
+                name + PERIOD + PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS +
+                APP_INSTANCE + PERIOD + name + EMPTY_PARAMETER_FUNCTION_CALL
+                + COMMA + SPACE + FALSE + CLOSE_PARENTHESIS + SEMI_COLAN +
+                NEW_LINE;
 
-        method += SIXTEEN_SPACE_INDENTATION + type + SPACE + "result = " + name + PERIOD +
-                PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS + APP_INSTANCE + PERIOD + name
-                + EMPTY_PARAMETER_FUNCTION_CALL + COMMA + SPACE + FALSE + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+        method += SIXTEEN_SPACE_INDENTATION + "if (result != null) {" +
+                NEW_LINE;
 
-        method += SIXTEEN_SPACE_INDENTATION + "if (result != null) {" + NEW_LINE;
-
-        method += TWENTY_SPACE_INDENTATION + SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + name + OPEN_PARENTHESIS
-                + "result" + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE + SIXTEEN_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET + NEW_LINE;
+        method += TWENTY_SPACE_INDENTATION + SUBTREE_FILTERING_RESULT_BUILDER +
+                PERIOD + name + OPEN_PARENTHESIS + "result" +
+                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+                SIXTEEN_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
 
         //if app instance is not null
         method += MethodsGenerator.getBlockEnd(TWELVE_SPACE_INDENTATION);
@@ -549,122 +721,181 @@
      * @param isLeafList        if for leaf list
      * @return filter content match for list types
      */
-    private static String getSubtreeFilteringForList(JavaAttributeInfo javaAttributeInfo, boolean isLeafList) {
-        String capitalCaseName = getCapitalCase(javaAttributeInfo.getAttributeName());
+    private static String getSubtreeFilteringForList(
+            JavaAttributeInfo javaAttributeInfo, boolean isLeafList) {
+        String capitalCaseName =
+                getCapitalCase(javaAttributeInfo.getAttributeName());
         String name = javaAttributeInfo.getAttributeName();
         String type = javaAttributeInfo.getImportInfo().getClassInfo();
         if (javaAttributeInfo.isQualifiedName()) {
-            type = javaAttributeInfo.getImportInfo().getPkgInfo() + PERIOD + type;
+            type = javaAttributeInfo.getImportInfo().getPkgInfo() + PERIOD +
+                    type;
         }
 
         /*
          * If select all schema child
          */
-        String method = MethodsGenerator.getIfConditionBegin(EIGHT_SPACE_INDENTATION, IS_SELECT_ALL_SCHEMA_CHILD_FLAG);
+        String method = MethodsGenerator
+                .getIfConditionBegin(EIGHT_SPACE_INDENTATION,
+                                     IS_SELECT_ALL_SCHEMA_CHILD_FLAG);
 
-        method = method + MethodsGenerator.getCollectionIteratorForLoopBegin(TWELVE_SPACE_INDENTATION,
-                type + SPACE + name, APP_INSTANCE + PERIOD + name + EMPTY_PARAMETER_FUNCTION_CALL);
+        method = method + MethodsGenerator
+                .getCollectionIteratorForLoopBegin(TWELVE_SPACE_INDENTATION,
+                                                   type + SPACE + name,
+                                                   APP_INSTANCE + PERIOD +
+                                                           name +
+                                                           EMPTY_PARAMETER_FUNCTION_CALL);
 
-        method = method + SIXTEEN_SPACE_INDENTATION + SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + ADD_STRING
-                + getCapitalCase(TO) + capitalCaseName + OPEN_PARENTHESIS + name + CLOSE_PARENTHESIS + SEMI_COLAN
-                + NEW_LINE;
+        method = method + SIXTEEN_SPACE_INDENTATION +
+                SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + ADD_STRING +
+                getCapitalCase(TO) + capitalCaseName + OPEN_PARENTHESIS +
+                name + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
 
-        method += MethodsGenerator.getBlockEnd(TWELVE_SPACE_INDENTATION); // Close collection Iteration loop
+        method += MethodsGenerator.getBlockEnd(
+                TWELVE_SPACE_INDENTATION); // Close collection Iteration loop
 
         //If need to explicitly participate in query
         method += MethodsGenerator
-                .getElseIfConditionBegin(EIGHT_SPACE_INDENTATION, name + EMPTY_PARAMETER_FUNCTION_CALL + SPACE + NOT
-                        + EQUAL + SPACE + NULL);
+                .getElseIfConditionBegin(EIGHT_SPACE_INDENTATION,
+                                         name + EMPTY_PARAMETER_FUNCTION_CALL +
+                                                 SPACE + NOT + EQUAL +
+                                                 SPACE + NULL);
 
         if (!isLeafList) {
-            method += TWELVE_SPACE_INDENTATION + IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE + EQUAL + SPACE
-                    + TRUE + SEMI_COLAN + NEW_LINE;
+            method += TWELVE_SPACE_INDENTATION +
+                    IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE + EQUAL +
+                    SPACE + TRUE + SEMI_COLAN + NEW_LINE;
         }
 
         //If there is any parameter in the query condition
         method += MethodsGenerator
-                .getIfConditionBegin(TWELVE_SPACE_INDENTATION, NOT + name + EMPTY_PARAMETER_FUNCTION_CALL + PERIOD
-                        + IS_EMPTY);
+                .getIfConditionBegin(TWELVE_SPACE_INDENTATION, NOT + name +
+                        EMPTY_PARAMETER_FUNCTION_CALL + PERIOD + IS_EMPTY);
 
         if (isLeafList) {
             /*
              * If there is no app instance to perform content match
              */
-            method += MethodsGenerator.getIfConditionBegin(SIXTEEN_SPACE_INDENTATION, APP_INSTANCE + PERIOD + name
-                    + EMPTY_PARAMETER_FUNCTION_CALL + SPACE + EQUAL + EQUAL + SPACE + NULL + SPACE + OR_OPERATION
-                    + SPACE + APP_INSTANCE + PERIOD + name + EMPTY_PARAMETER_FUNCTION_CALL + PERIOD + IS_EMPTY);
+            method += MethodsGenerator
+                    .getIfConditionBegin(SIXTEEN_SPACE_INDENTATION,
+                                         APP_INSTANCE + PERIOD + name +
+                                                 EMPTY_PARAMETER_FUNCTION_CALL +
+                                                 SPACE + EQUAL + EQUAL + SPACE +
+                                                 NULL + SPACE + OR_OPERATION
+                                                 + SPACE + APP_INSTANCE +
+                                                 PERIOD + name +
+                                                 EMPTY_PARAMETER_FUNCTION_CALL +
+                                                 PERIOD + IS_EMPTY);
 
-            method += TWENTY_SPACE_INDENTATION + RETURN + SPACE + FALSE + SEMI_COLAN + NEW_LINE;
+            method += TWENTY_SPACE_INDENTATION + RETURN + SPACE + FALSE +
+                    SEMI_COLAN + NEW_LINE;
 
             method += MethodsGenerator.getBlockEnd(SIXTEEN_SPACE_INDENTATION);
 
             // for instance iterator
-            method += MethodsGenerator.getCollectionIteratorForLoopBegin(SIXTEEN_SPACE_INDENTATION, type + SPACE + name,
+            method += MethodsGenerator.getCollectionIteratorForLoopBegin(
+                    SIXTEEN_SPACE_INDENTATION, type + SPACE + name,
                     name + EMPTY_PARAMETER_FUNCTION_CALL);
 
-            method += TWENTY_SPACE_INDENTATION + BOOLEAN_DATA_TYPE + SPACE + "flag" + SPACE + EQUAL
-                    + SPACE + FALSE + SEMI_COLAN + NEW_LINE;
+            method += TWENTY_SPACE_INDENTATION + BOOLEAN_DATA_TYPE + SPACE +
+                    "flag" + SPACE + EQUAL + SPACE + FALSE + SEMI_COLAN +
+                    NEW_LINE;
 
             // for app instance iterator
-            method += MethodsGenerator.getCollectionIteratorForLoopBegin(TWENTY_SPACE_INDENTATION,
-                    type + SPACE + name + "2", APP_INSTANCE + PERIOD + name + EMPTY_PARAMETER_FUNCTION_CALL);
+            method += MethodsGenerator
+                    .getCollectionIteratorForLoopBegin(TWENTY_SPACE_INDENTATION,
+                                                       type + SPACE + name +
+                                                               "2",
+                                                       APP_INSTANCE + PERIOD +
+                                                               name +
+                                                               EMPTY_PARAMETER_FUNCTION_CALL);
 
             //the content match leaf list attribute value matches
-            method += MethodsGenerator.getIfConditionBegin(TWENTY_FOUR_SPACE_INDENTATION, name + PERIOD + EQUALS_STRING
-                    + OPEN_PARENTHESIS + name + "2" + CLOSE_PARENTHESIS);
+            method += MethodsGenerator
+                    .getIfConditionBegin(TWENTY_FOUR_SPACE_INDENTATION,
+                                         name + PERIOD + EQUALS_STRING
+                                                 + OPEN_PARENTHESIS + name +
+                                                 "2" + CLOSE_PARENTHESIS);
 
-            method += TWENTY_EIGHT_SPACE_INDENTATION + "flag" + SPACE + EQUAL + SPACE + TRUE + SEMI_COLAN + NEW_LINE;
+            method += TWENTY_EIGHT_SPACE_INDENTATION + "flag" + SPACE + EQUAL +
+                    SPACE + TRUE + SEMI_COLAN + NEW_LINE;
 
-            method += TWENTY_EIGHT_SPACE_INDENTATION + SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + ADD_STRING +
-                    getCapitalCase(TO) + capitalCaseName + OPEN_PARENTHESIS + name + "2" + CLOSE_PARENTHESIS +
-                    SEMI_COLAN + NEW_LINE + TWENTY_EIGHT_SPACE_INDENTATION + BREAK + SEMI_COLAN + NEW_LINE;
+            method += TWENTY_EIGHT_SPACE_INDENTATION +
+                    SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + ADD_STRING +
+                    getCapitalCase(TO) + capitalCaseName + OPEN_PARENTHESIS +
+                    name + "2" + CLOSE_PARENTHESIS +
+                    SEMI_COLAN + NEW_LINE + TWENTY_EIGHT_SPACE_INDENTATION +
+                    BREAK + SEMI_COLAN + NEW_LINE;
 
             //the content match leaf list attribute value matches
-            method += MethodsGenerator.getBlockEnd(TWENTY_FOUR_SPACE_INDENTATION);
+            method +=
+                    MethodsGenerator.getBlockEnd(TWENTY_FOUR_SPACE_INDENTATION);
 
             // for app instance iterator
             method += MethodsGenerator.getBlockEnd(TWENTY_SPACE_INDENTATION);
 
             //if the content match failed
-            method += MethodsGenerator.getIfConditionBegin(TWENTY_SPACE_INDENTATION, "!flag");
+            method += MethodsGenerator
+                    .getIfConditionBegin(TWENTY_SPACE_INDENTATION, "!flag");
 
-            method += TWENTY_FOUR_SPACE_INDENTATION + RETURN + SPACE + FALSE + SEMI_COLAN + NEW_LINE;
+            method += TWENTY_FOUR_SPACE_INDENTATION + RETURN + SPACE + FALSE +
+                    SEMI_COLAN + NEW_LINE;
 
-            method += MethodsGenerator.getBlockEnd(TWENTY_SPACE_INDENTATION); // if flag == false
+            method += MethodsGenerator
+                    .getBlockEnd(TWENTY_SPACE_INDENTATION); // if flag == false
 
-            method += MethodsGenerator.getBlockEnd(SIXTEEN_SPACE_INDENTATION); // for instance iterator
+            method += MethodsGenerator.getBlockEnd(
+                    SIXTEEN_SPACE_INDENTATION); // for instance iterator
 
 
         } else {
 
             /*if there is any app instance entry*/
-            method += MethodsGenerator.getIfConditionBegin(SIXTEEN_SPACE_INDENTATION, APP_INSTANCE + PERIOD + name
-                    + EMPTY_PARAMETER_FUNCTION_CALL + SPACE + NOT + EQUAL + SPACE + NULL + SPACE + AND_OPERATION + SPACE
-                    + NOT + APP_INSTANCE + PERIOD + name + EMPTY_PARAMETER_FUNCTION_CALL + PERIOD + IS_EMPTY);
+            method += MethodsGenerator
+                    .getIfConditionBegin(SIXTEEN_SPACE_INDENTATION,
+                                         APP_INSTANCE + PERIOD + name +
+                                                 EMPTY_PARAMETER_FUNCTION_CALL +
+                                                 SPACE + NOT + EQUAL + SPACE +
+                                                 NULL + SPACE + AND_OPERATION +
+                                                 SPACE + NOT + APP_INSTANCE +
+                                                 PERIOD + name +
+                                                 EMPTY_PARAMETER_FUNCTION_CALL +
+                                                 PERIOD + IS_EMPTY);
 
             /*
              * loop all the query condition instance(s)
              */
-            method += MethodsGenerator.getCollectionIteratorForLoopBegin(TWENTY_SPACE_INDENTATION, type + SPACE + name,
-                    name + EMPTY_PARAMETER_FUNCTION_CALL);
+            method += MethodsGenerator
+                    .getCollectionIteratorForLoopBegin(TWENTY_SPACE_INDENTATION,
+                                                       type + SPACE + name,
+                                                       name +
+                                                               EMPTY_PARAMETER_FUNCTION_CALL);
 
             //loop all the app instance(s)
-            method += MethodsGenerator.getCollectionIteratorForLoopBegin(TWENTY_FOUR_SPACE_INDENTATION,
-                    type + SPACE + name + "2", APP_INSTANCE + PERIOD + name + EMPTY_PARAMETER_FUNCTION_CALL);
+            method += MethodsGenerator.getCollectionIteratorForLoopBegin(
+                    TWENTY_FOUR_SPACE_INDENTATION, type + SPACE + name + "2",
+                    APP_INSTANCE + PERIOD + name +
+                            EMPTY_PARAMETER_FUNCTION_CALL);
 
-            method += TWENTY_EIGHT_SPACE_INDENTATION + type + SPACE + "result = " + name + PERIOD +
-                    PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS + name + "2" + COMMA
-                    + SPACE + FALSE + CLOSE_PARENTHESIS + SEMI_COLAN
-                    + NEW_LINE;
+            method += TWENTY_EIGHT_SPACE_INDENTATION + type + SPACE +
+                    "result = " + name + PERIOD +
+                    PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS + name + "2" +
+                    COMMA + SPACE + FALSE + CLOSE_PARENTHESIS + SEMI_COLAN +
+                    NEW_LINE;
 
-            method += TWENTY_EIGHT_SPACE_INDENTATION + "if (result != null) {" + NEW_LINE;
+            method += TWENTY_EIGHT_SPACE_INDENTATION + "if (result != null) {" +
+                    NEW_LINE;
 
-            method += THIRTY_TWO_SPACE_INDENTATION + SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + ADD_STRING +
-                    getCapitalCase(TO) + capitalCaseName + OPEN_PARENTHESIS + "result" + CLOSE_PARENTHESIS +
-                    SEMI_COLAN + NEW_LINE + TWENTY_EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
+            method += THIRTY_TWO_SPACE_INDENTATION +
+                    SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + ADD_STRING +
+                    getCapitalCase(TO) + capitalCaseName + OPEN_PARENTHESIS +
+                    "result" + CLOSE_PARENTHESIS +
+                    SEMI_COLAN + NEW_LINE + TWENTY_EIGHT_SPACE_INDENTATION +
+                    CLOSE_CURLY_BRACKET + NEW_LINE;
 
             //loop all the app instance(s)
-            method += MethodsGenerator.getBlockEnd(TWENTY_FOUR_SPACE_INDENTATION);
+            method +=
+                    MethodsGenerator.getBlockEnd(TWENTY_FOUR_SPACE_INDENTATION);
 
             //loop all the query condition instance(s)
             method += MethodsGenerator.getBlockEnd(TWENTY_SPACE_INDENTATION);
@@ -676,28 +907,45 @@
         method += TWELVE_SPACE_INDENTATION + "} else {" + NEW_LINE;
 
         if (isLeafList) {
-            method += SIXTEEN_SPACE_INDENTATION + IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE + EQUAL
-                    + SPACE + TRUE + SEMI_COLAN + NEW_LINE;
+            method += SIXTEEN_SPACE_INDENTATION +
+                    IS_ANY_SELECT_OR_CONTAINMENT_NODE_FLAG + SPACE +
+                    EQUAL + SPACE + TRUE + SEMI_COLAN + NEW_LINE;
         }
 
-        method += MethodsGenerator.getIfConditionBegin(SIXTEEN_SPACE_INDENTATION, APP_INSTANCE + PERIOD + name
-                + EMPTY_PARAMETER_FUNCTION_CALL + SPACE + NOT + EQUAL + SPACE + NULL + SPACE + AND_OPERATION + SPACE
-                + NOT + APP_INSTANCE + PERIOD + name + EMPTY_PARAMETER_FUNCTION_CALL + PERIOD + IS_EMPTY);
+        method += MethodsGenerator
+                .getIfConditionBegin(SIXTEEN_SPACE_INDENTATION,
+                                     APP_INSTANCE + PERIOD + name
+                                             + EMPTY_PARAMETER_FUNCTION_CALL +
+                                             SPACE + NOT + EQUAL + SPACE +
+                                             NULL + SPACE + AND_OPERATION +
+                                             SPACE + NOT + APP_INSTANCE +
+                                             PERIOD + name +
+                                             EMPTY_PARAMETER_FUNCTION_CALL +
+                                             PERIOD + IS_EMPTY);
 
-        method = method + MethodsGenerator.getCollectionIteratorForLoopBegin(TWENTY_SPACE_INDENTATION,
-                type + SPACE + name, APP_INSTANCE + PERIOD + name + EMPTY_PARAMETER_FUNCTION_CALL);
+        method = method + MethodsGenerator
+                .getCollectionIteratorForLoopBegin(TWENTY_SPACE_INDENTATION,
+                                                   type + SPACE + name,
+                                                   APP_INSTANCE + PERIOD +
+                                                           name +
+                                                           EMPTY_PARAMETER_FUNCTION_CALL);
 
-        method = method + TWENTY_FOUR_SPACE_INDENTATION + SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + ADD_STRING
-                + getCapitalCase(TO) + capitalCaseName + OPEN_PARENTHESIS + name + CLOSE_PARENTHESIS + SEMI_COLAN
-                + NEW_LINE;
+        method = method + TWENTY_FOUR_SPACE_INDENTATION +
+                SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + ADD_STRING
+                + getCapitalCase(TO) + capitalCaseName + OPEN_PARENTHESIS +
+                name + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
 
-        method += MethodsGenerator.getBlockEnd(TWENTY_SPACE_INDENTATION); // Close collection Iteration loop
+        method += MethodsGenerator.getBlockEnd(
+                TWENTY_SPACE_INDENTATION); // Close collection Iteration loop
 
-        method += MethodsGenerator.getBlockEnd(SIXTEEN_SPACE_INDENTATION); // close  if condition
+        method += MethodsGenerator
+                .getBlockEnd(SIXTEEN_SPACE_INDENTATION); // close  if condition
 
-        method += MethodsGenerator.getBlockEnd(TWELVE_SPACE_INDENTATION); // close  else condition
+        method += MethodsGenerator
+                .getBlockEnd(TWELVE_SPACE_INDENTATION); // close  else condition
 
-        method += MethodsGenerator.getBlockEnd(EIGHT_SPACE_INDENTATION); // close  else if condition
+        method += MethodsGenerator.getBlockEnd(
+                EIGHT_SPACE_INDENTATION); // close  else if condition
 
         return method;
 
@@ -705,35 +953,55 @@
 
     //Returns method string for op params augmented syntax
     static String getAugmentableSubTreeFiltering() {
-        return EIGHT_SPACE_INDENTATION + FOR + SPACE + OPEN_PARENTHESIS + OBJECT_STRING + SPACE +
-                getSmallCase(YANG_AUGMENTED_INFO) + SPACE + COLAN + SPACE + THIS +
-                PERIOD + getSmallCase(YANG_AUGMENTED_INFO) + MAP + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD
-                + VALUE + "s" + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
+        return EIGHT_SPACE_INDENTATION + FOR + SPACE + OPEN_PARENTHESIS +
+                OBJECT_STRING + SPACE + getSmallCase(YANG_AUGMENTED_INFO) +
+                SPACE + COLAN + SPACE + THIS + PERIOD +
+                getSmallCase(YANG_AUGMENTED_INFO) + MAP +
+                OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD
+                + VALUE + "s" + OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
+                CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
                 NEW_LINE + TWELVE_SPACE_INDENTATION + OBJECT_STRING + SPACE +
-                getSmallCase(YANG_AUGMENTED_OP_PARAM_INFO) + SPACE + EQUAL + SPACE + APP_INSTANCE + PERIOD +
-                getSmallCase(YANG_AUGMENTED_INFO) + OPEN_PARENTHESIS + getSmallCase(YANG_AUGMENTED_INFO) + PERIOD +
-                GET_CLASS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION
-                + OBJECT + SPACE + PROCESS_SUBTREE_FILTERING + SEMI_COLAN
-                + NEW_LINE + TWELVE_SPACE_INDENTATION + TRY + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
+                getSmallCase(YANG_AUGMENTED_OP_PARAM_INFO) + SPACE + EQUAL +
+                SPACE + APP_INSTANCE + PERIOD +
+                getSmallCase(YANG_AUGMENTED_INFO) + OPEN_PARENTHESIS +
+                getSmallCase(YANG_AUGMENTED_INFO) + PERIOD +
+                GET_CLASS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+                TWELVE_SPACE_INDENTATION + OBJECT + SPACE +
+                PROCESS_SUBTREE_FILTERING + SEMI_COLAN
+                + NEW_LINE + TWELVE_SPACE_INDENTATION + TRY + SPACE +
+                OPEN_CURLY_BRACKET + NEW_LINE +
                 SIXTEEN_SPACE_INDENTATION +
-                "Class<?>[] interfaces = " + getSmallCase(YANG_AUGMENTED_INFO) + ".getClass().getInterfaces();" +
+                "Class<?>[] interfaces = " + getSmallCase(YANG_AUGMENTED_INFO) +
+                ".getClass().getInterfaces();" +
                 NEW_LINE + SIXTEEN_SPACE_INDENTATION +
-                PROCESS_SUBTREE_FILTERING + SPACE + EQUAL + SPACE + getSmallCase(YANG_AUGMENTED_INFO) + PERIOD
-                + GET_CLASS + NEW_LINE + TWENTY_SPACE_INDENTATION + PERIOD + GET_METHOD
-                + OPEN_PARENTHESIS + QUOTES + PROCESS_SUBTREE_FILTERING + QUOTES + COMMA + SPACE + "interfaces[0]"
-                + CLOSE_PARENTHESIS + PERIOD + INVOKE + OPEN_PARENTHESIS + getSmallCase(YANG_AUGMENTED_INFO) + COMMA
-                + NEW_LINE + TWENTY_FOUR_SPACE_INDENTATION + getSmallCase(YANG_AUGMENTED_OP_PARAM_INFO)
-                + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE
-                + SIXTEEN_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS + PROCESS_SUBTREE_FILTERING + SPACE
-                + NOT + EQUAL + SPACE + NULL + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE
-                + TWENTY_SPACE_INDENTATION + SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + "add" + YANG_AUGMENTED_INFO
-                + OPEN_PARENTHESIS + PROCESS_SUBTREE_FILTERING + COMMA + SPACE + PROCESS_SUBTREE_FILTERING + PERIOD
-                + GET_CLASS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE + SIXTEEN_SPACE_INDENTATION
-                + CLOSE_CURLY_BRACKET + NEW_LINE
-                + TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + SPACE + CATCH + SPACE + OPEN_PARENTHESIS
-                + NO_SUCH_METHOD_EXCEPTION + " | " + INVOCATION_TARGET_EXCEPTION + " | " + ILLEGAL_ACCESS_EXCEPTION +
-                SPACE + EXCEPTION_VAR + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE
-                + SIXTEEN_SPACE_INDENTATION + CONTINUE + SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION
-                + CLOSE_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
+                PROCESS_SUBTREE_FILTERING + SPACE + EQUAL + SPACE +
+                getSmallCase(YANG_AUGMENTED_INFO) + PERIOD + GET_CLASS +
+                NEW_LINE + TWENTY_SPACE_INDENTATION + PERIOD +
+                GET_METHOD + OPEN_PARENTHESIS + QUOTES +
+                PROCESS_SUBTREE_FILTERING + QUOTES + COMMA + SPACE +
+                "interfaces[0]" + CLOSE_PARENTHESIS + PERIOD + INVOKE +
+                OPEN_PARENTHESIS + getSmallCase(YANG_AUGMENTED_INFO) +
+                COMMA + NEW_LINE + TWENTY_FOUR_SPACE_INDENTATION +
+                getSmallCase(YANG_AUGMENTED_OP_PARAM_INFO) +
+                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+                SIXTEEN_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS +
+                PROCESS_SUBTREE_FILTERING + SPACE + NOT + EQUAL + SPACE +
+                NULL + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
+                NEW_LINE + TWENTY_SPACE_INDENTATION +
+                SUBTREE_FILTERING_RESULT_BUILDER + PERIOD + "add" +
+                YANG_AUGMENTED_INFO + OPEN_PARENTHESIS +
+                PROCESS_SUBTREE_FILTERING + COMMA + SPACE +
+                PROCESS_SUBTREE_FILTERING + PERIOD + GET_CLASS +
+                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
+                SIXTEEN_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+                NEW_LINE + TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+                SPACE + CATCH + SPACE + OPEN_PARENTHESIS +
+                NO_SUCH_METHOD_EXCEPTION + " | " +
+                INVOCATION_TARGET_EXCEPTION + " | " + ILLEGAL_ACCESS_EXCEPTION +
+                SPACE + EXCEPTION_VAR + CLOSE_PARENTHESIS + SPACE +
+                OPEN_CURLY_BRACKET + NEW_LINE + SIXTEEN_SPACE_INDENTATION +
+                CONTINUE + SEMI_COLAN + NEW_LINE +
+                TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE +
+                EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
     }
 }