[ONOS-5232] Update generated code

Change-Id: I9c25d9f2888fbee78fddf10d02a3fa94f7ce46e0
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 583bb0a..682cbdc 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
@@ -21,75 +21,82 @@
 import org.onosproject.yangutils.datamodel.YangEnum;
 import org.onosproject.yangutils.datamodel.YangEnumeration;
 import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.datamodel.YangType;
 import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes;
-import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
 import org.onosproject.yangutils.utils.io.YangPluginConfig;
 import org.onosproject.yangutils.utils.io.impl.JavaDocGen;
 
+import java.util.LinkedHashMap;
 import java.util.List;
 
-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.datamodel.utils.builtindatatype.YangDataTypes.BOOLEAN;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.DECIMAL64;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.EMPTY;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT16;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT32;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT64;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.INT8;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT16;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT32;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT64;
-import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.UINT8;
 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.utils.BracketType.OPEN_CLOSE_BRACKET;
+import static org.onosproject.yangutils.translator.tojava.utils.BracketType.OPEN_CLOSE_BRACKET_WITH_VALUE;
+import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.EIGHT_SPACE;
+import static org.onosproject.yangutils.translator.tojava.utils.IndentationType.FOUR_SPACE;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getAugmentMapTypeString;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getAugmentedClassNameForDataMethods;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getParentNodeNameForDataMethods;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getCurNodeName;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getSetOfNodeIdentifiers;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getEnumJavaAttribute;
-import static org.onosproject.yangutils.translator.tojava.utils.ValidatorTypeForUnionTypes.INT_TYPE_CONFLICT;
-import static org.onosproject.yangutils.translator.tojava.utils.ValidatorTypeForUnionTypes.SHORT_TYPE_CONFLICT;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.AUGMENTED_MAP_ADD;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.AUGMENTED_MAP_GETTER;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.AUGMENTED_MAP_GET_VALUE;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.GETTER;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.MANAGER_METHODS;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.SETTER;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodBodyTypes.TO_STRING;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodClassTypes.CLASS_TYPE;
+import static org.onosproject.yangutils.translator.tojava.utils.MethodClassTypes.INTERFACE_TYPE;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.brackets;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getCompareToString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getGreaterThanCondition;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getIfConditionBegin;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getLesserThanCondition;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getNewInstance;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getOverRideString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.getReturnString;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.ifAndAndCondition;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.ifConditionForIntInTypeDefConstructor;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.ifEqualEqualCondition;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.methodBody;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.methodClose;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.methodSignature;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.methodSignatureClose;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.multiAttrMethodSignature;
+import static org.onosproject.yangutils.translator.tojava.utils.StringGenerator.signatureClose;
 import static org.onosproject.yangutils.utils.UtilConstants.ADD;
 import static org.onosproject.yangutils.utils.UtilConstants.ADD_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.AND;
+import static org.onosproject.yangutils.utils.UtilConstants.ARRAY_LIST;
 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED;
 import static org.onosproject.yangutils.utils.UtilConstants.BASE64;
-import static org.onosproject.yangutils.utils.UtilConstants.BIG_DECIMAL;
 import static org.onosproject.yangutils.utils.UtilConstants.BIG_INTEGER;
 import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_DATA_TYPE;
-import static org.onosproject.yangutils.utils.UtilConstants.BOOLEAN_WRAPPER;
 import static org.onosproject.yangutils.utils.UtilConstants.BUILD;
 import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
-import static org.onosproject.yangutils.utils.UtilConstants.BYTE;
-import static org.onosproject.yangutils.utils.UtilConstants.BYTE_WRAPPER;
+import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_LOWER_CASE;
 import static org.onosproject.yangutils.utils.UtilConstants.CASE;
-import static org.onosproject.yangutils.utils.UtilConstants.CATCH;
-import static org.onosproject.yangutils.utils.UtilConstants.CHECK_NOT_NULL_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.CLASS;
 import static org.onosproject.yangutils.utils.UtilConstants.CLASS_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET;
 import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS;
-import static org.onosproject.yangutils.utils.UtilConstants.COLAN;
 import static org.onosproject.yangutils.utils.UtilConstants.COLON;
 import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
 import static org.onosproject.yangutils.utils.UtilConstants.DECODE;
 import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT;
-import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_CLOSE_BRACKET;
-import static org.onosproject.yangutils.utils.UtilConstants.DIAMOND_OPEN_BRACKET;
-import static org.onosproject.yangutils.utils.UtilConstants.DOUBLE;
+import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT_CAPS;
 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_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.ENUM;
 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;
-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.FOR_TYPE_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME;
 import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_PARAM_NAME;
@@ -103,15 +110,10 @@
 import static org.onosproject.yangutils.utils.UtilConstants.INSTANCE_OF;
 import static org.onosproject.yangutils.utils.UtilConstants.INT;
 import static org.onosproject.yangutils.utils.UtilConstants.INTEGER_WRAPPER;
-import static org.onosproject.yangutils.utils.UtilConstants.INT_MAX_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.INT_MIN_RANGE;
 import static org.onosproject.yangutils.utils.UtilConstants.IS_SELECT_LEAF;
+import static org.onosproject.yangutils.utils.UtilConstants.LEAF;
 import static org.onosproject.yangutils.utils.UtilConstants.LEAF_IDENTIFIER;
-import static org.onosproject.yangutils.utils.UtilConstants.LIST;
 import static org.onosproject.yangutils.utils.UtilConstants.LONG;
-import static org.onosproject.yangutils.utils.UtilConstants.LONG_MAX_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.LONG_MIN_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.LONG_WRAPPER;
 import static org.onosproject.yangutils.utils.UtilConstants.MAP;
 import static org.onosproject.yangutils.utils.UtilConstants.MAX_RANGE;
 import static org.onosproject.yangutils.utils.UtilConstants.MIN_RANGE;
@@ -122,38 +124,27 @@
 import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
 import static org.onosproject.yangutils.utils.UtilConstants.OBJECT_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.OF;
-import static org.onosproject.yangutils.utils.UtilConstants.OMIT_NULL_VALUE_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.ONE;
 import static org.onosproject.yangutils.utils.UtilConstants.OPEN_CURLY_BRACKET;
 import static org.onosproject.yangutils.utils.UtilConstants.OPEN_PARENTHESIS;
 import static org.onosproject.yangutils.utils.UtilConstants.OP_PARAM;
 import static org.onosproject.yangutils.utils.UtilConstants.OTHER;
 import static org.onosproject.yangutils.utils.UtilConstants.OVERRIDE;
-import static org.onosproject.yangutils.utils.UtilConstants.PARSE_BOOLEAN;
-import static org.onosproject.yangutils.utils.UtilConstants.PARSE_BYTE;
 import static org.onosproject.yangutils.utils.UtilConstants.PARSE_INT;
-import static org.onosproject.yangutils.utils.UtilConstants.PARSE_LONG;
-import static org.onosproject.yangutils.utils.UtilConstants.PARSE_SHORT;
 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.PROTECTED;
 import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC;
-import static org.onosproject.yangutils.utils.UtilConstants.PUT;
-import static org.onosproject.yangutils.utils.UtilConstants.QUESTION_MARK;
-import static org.onosproject.yangutils.utils.UtilConstants.QUEUE;
 import static org.onosproject.yangutils.utils.UtilConstants.QUOTES;
 import static org.onosproject.yangutils.utils.UtilConstants.REPLACE_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.RETURN;
 import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_VAR_NAME;
 import static org.onosproject.yangutils.utils.UtilConstants.SCHEMA_NAME;
-import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
-import static org.onosproject.yangutils.utils.UtilConstants.SET;
+import static org.onosproject.yangutils.utils.UtilConstants.SELECT_ALL_CHILD;
+import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLON;
 import static org.onosproject.yangutils.utils.UtilConstants.SET_METHOD_PREFIX;
 import static org.onosproject.yangutils.utils.UtilConstants.SET_SELECT_LEAF;
-import static org.onosproject.yangutils.utils.UtilConstants.SHORT;
-import static org.onosproject.yangutils.utils.UtilConstants.SHORT_MAX_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.SHORT_MIN_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.SHORT_WRAPPER;
 import static org.onosproject.yangutils.utils.UtilConstants.SINGLE_QUOTE;
 import static org.onosproject.yangutils.utils.UtilConstants.SIXTEEN_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
@@ -161,28 +152,21 @@
 import static org.onosproject.yangutils.utils.UtilConstants.SQUARE_BRACKETS;
 import static org.onosproject.yangutils.utils.UtilConstants.STATIC;
 import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
-import static org.onosproject.yangutils.utils.UtilConstants.STR_VAL;
 import static org.onosproject.yangutils.utils.UtilConstants.SUFFIX_S;
 import static org.onosproject.yangutils.utils.UtilConstants.SWITCH;
 import static org.onosproject.yangutils.utils.UtilConstants.THIS;
 import static org.onosproject.yangutils.utils.UtilConstants.TMP_VAL;
 import static org.onosproject.yangutils.utils.UtilConstants.TO;
+import static org.onosproject.yangutils.utils.UtilConstants.TO_CAPS;
 import static org.onosproject.yangutils.utils.UtilConstants.TRIM_STRING;
 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.UINT8_MAX_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.UINT8_MIN_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.UINT_MAX_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.UINT_MIN_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.ULONG_MAX_RANGE;
-import static org.onosproject.yangutils.utils.UtilConstants.ULONG_MIN_RANGE;
 import static org.onosproject.yangutils.utils.UtilConstants.VALIDATE_RANGE;
 import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
 import static org.onosproject.yangutils.utils.UtilConstants.VALUE_LEAF_SET;
 import static org.onosproject.yangutils.utils.UtilConstants.VOID;
 import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO;
-import static org.onosproject.yangutils.utils.UtilConstants.YANG_UTILS_TODO;
+import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUGMENTED_INFO_LOWER_CASE;
 import static org.onosproject.yangutils.utils.UtilConstants.ZERO;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.BUILD_METHOD;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.CONSTRUCTOR;
@@ -220,69 +204,66 @@
     /**
      * Returns the methods strings for builder interface.
      *
-     * @param name         attribute name
-     * @param pluginConfig plugin configurations
+     * @param name attribute name
      * @return method string for builder interface
      */
-    public static String parseBuilderInterfaceBuildMethodString(String name,
-                                                                YangPluginConfig pluginConfig) {
-        return getJavaDoc(BUILD_METHOD, name, false, pluginConfig, null) +
+    public static String parseBuilderInterfaceBuildMethodString(String name) {
+        return getJavaDoc(BUILD_METHOD, name, false, null) +
                 getBuildForInterface(name);
     }
 
     /**
      * Returns getter string.
      *
-     * @param attr               attribute info
-     * @param generatedJavaFiles generated java files
-     * @param pluginConfig       plugin configurations
+     * @param attr    attribute info
+     * @param genType generated java files
      * @return getter string
      */
-    public static String getGetterString(JavaAttributeInfo attr,
-                                         int generatedJavaFiles,
-                                         YangPluginConfig pluginConfig) {
+    public static String getGetterString(JavaAttributeInfo attr, int genType) {
 
         String returnType = getReturnType(attr);
         String attributeName = attr.getAttributeName();
         String appDataStructure = null;
+        StringBuilder builder = new StringBuilder();
         if (attr.getCompilerAnnotation() != null) {
             appDataStructure =
                     attr.getCompilerAnnotation().getYangAppDataStructure()
                             .getDataStructure().name();
         }
-        if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
-            return generateForGetMethodWithAttribute(returnType) +
-                    getGetterForInterface(attributeName, returnType,
-                                          attr.isListAttr(),
-                                          generatedJavaFiles,
-                                          attr.getCompilerAnnotation());
+        if (genType == GENERATE_SERVICE_AND_MANAGER) {
+            builder.append(generateForGetMethodWithAttribute(returnType))
+                    .append(getGetterForInterface(
+                            attributeName, returnType, attr.isListAttr(),
+                            genType, attr.getCompilerAnnotation()));
+
+            return builder.toString();
         }
 
-        return getJavaDoc(GETTER_METHOD, attributeName, attr.isListAttr(),
-                          pluginConfig, appDataStructure) +
-                getGetterForInterface(attributeName, returnType,
-                                      attr.isListAttr(), generatedJavaFiles,
-                                      attr.getCompilerAnnotation());
+        builder.append(getJavaDoc(GETTER_METHOD, attributeName, attr
+                .isListAttr(), appDataStructure))
+                .append(getGetterForInterface(
+                        attributeName, returnType, attr.isListAttr(),
+                        genType, attr.getCompilerAnnotation()));
+
+        return builder.toString();
     }
 
     /**
      * Returns setter string.
      *
-     * @param attr               attribute info
-     * @param className          java class name
-     * @param generatedJavaFiles generated java files
-     * @param pluginConfig       plugin configurations
+     * @param attr      attribute info
+     * @param className java class name
+     * @param genType   generated java files
      * @return setter string
      */
     public static String getSetterString(JavaAttributeInfo attr,
-                                         String className,
-                                         int generatedJavaFiles,
-                                         YangPluginConfig pluginConfig) {
+                                         String className, int genType) {
 
         String attrType = getReturnType(attr);
         String attributeName = attr.getAttributeName();
         JavaDocGen.JavaDocType type;
-        if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
+        StringBuilder builder = new StringBuilder();
+        if (genType == GENERATE_SERVICE_AND_MANAGER) {
             type = MANAGER_SETTER_METHOD;
         } else {
             type = SETTER_METHOD;
@@ -294,23 +275,22 @@
                     attr.getCompilerAnnotation().getYangAppDataStructure()
                             .getDataStructure().name();
         }
-        return getJavaDoc(type, attributeName, attr.isListAttr(), pluginConfig,
-                          appDataStructure) +
-                getSetterForInterface(attributeName, attrType, className,
-                                      attr.isListAttr(), generatedJavaFiles,
-                                      attr.getCompilerAnnotation());
+        builder.append(getJavaDoc(type, attributeName, attr.isListAttr(),
+                                  appDataStructure))
+                .append(getSetterForInterface(attributeName, attrType, className,
+                                              attr.isListAttr(), genType,
+                                              attr.getCompilerAnnotation()));
+        return builder.toString();
     }
 
     /**
      * Returns constructor method string.
      *
-     * @param name         class name
-     * @param pluginConfig plugin configurations
+     * @param name class name
      * @return constructor string
      */
-    private static String getConstructorString(String name,
-                                               YangPluginConfig pluginConfig) {
-        return getJavaDoc(CONSTRUCTOR, name, false, pluginConfig, null);
+    private static String getConstructorString(String name) {
+        return getJavaDoc(CONSTRUCTOR, name, false, null);
     }
 
     /**
@@ -318,29 +298,15 @@
      *
      * @param name         class name
      * @param modifierType modifier type
-     * @param pluginConfig plugin configurations
      * @return default constructor string
      */
     public static String getDefaultConstructorString(String name,
-                                                     String modifierType,
-                                                     YangPluginConfig pluginConfig) {
-        return getJavaDoc(DEFAULT_CONSTRUCTOR, name, false, pluginConfig, null)
+                                                     String modifierType) {
+        return getJavaDoc(DEFAULT_CONSTRUCTOR, name, false, null)
                 + getDefaultConstructor(name, modifierType) + NEW_LINE;
     }
 
     /**
-     * Returns check not null string.
-     *
-     * @param name attribute name
-     * @return check not null string
-     */
-    static String getCheckNotNull(String name) {
-        return EIGHT_SPACE_INDENTATION + CHECK_NOT_NULL_STRING +
-                OPEN_PARENTHESIS + name + COMMA + SPACE + name +
-                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
-    }
-
-    /**
      * Returns build method string.
      *
      * @param name       class name
@@ -372,52 +338,46 @@
             return getGetter(attrQualifiedType, attributeName,
                              generatedJavaFiles);
         }
-        String attrParam = getListAttribute(attrQualifiedType,
-                                            attr.getCompilerAnnotation());
+        String attrParam = StringGenerator.getListAttribute(attrQualifiedType,
+                                                            attr.getCompilerAnnotation());
         return getGetter(attrParam, attributeName, generatedJavaFiles);
     }
 
     /**
      * Returns getter for attribute.
      *
-     * @param type               return type
-     * @param name               attribute name
-     * @param generatedJavaFiles generated java files
+     * @param type    return type
+     * @param name    attribute name
+     * @param genType generated java files
      * @return getter for attribute
      */
-    static String getGetter(String type, String name, int generatedJavaFiles) {
-        String ret = parseTypeForReturnValue(type);
-        if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
-            return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + type + SPACE +
-                    GET_METHOD_PREFIX + getCapitalCase(name) +
-                    OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
-                    OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
-                    YANG_UTILS_TODO + NEW_LINE + EIGHT_SPACE_INDENTATION +
-                    RETURN + SPACE + ret + SEMI_COLAN + NEW_LINE +
-                    FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
-        } else {
-            return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + type + SPACE +
-                    name + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
-                    OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
-                    RETURN + SPACE + name + SEMI_COLAN + NEW_LINE +
-                    FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
+    static String getGetter(String type, String name, int genType) {
+        StringBuilder builder = new StringBuilder();
+        if (genType == GENERATE_SERVICE_AND_MANAGER) {
+            //Append method signature.
+            builder.append(methodSignature(getCapitalCase(name), GET,
+                                           PUBLIC, null, type, null,
+                                           CLASS_TYPE))
+                    //Append method body.
+                    .append(methodBody(MANAGER_METHODS, null, null,
+                                       EIGHT_SPACE_INDENTATION, null,
+                                       type, false))
+                    .append(signatureClose())
+                    //Append method close.
+                    .append(methodClose(FOUR_SPACE));
+            return builder.toString();
         }
-    }
-
-    /*Provides string to return for type.*/
-    private static String parseTypeForReturnValue(String type) {
-        switch (type) {
-            case BYTE:
-            case INT:
-            case SHORT:
-            case LONG:
-            case DOUBLE:
-                return "0";
-            case BOOLEAN_DATA_TYPE:
-                return FALSE;
-            default:
-                return null;
-        }
+        builder.append(methodSignature(name, EMPTY_STRING,
+                                       PUBLIC, null, type, null,
+                                       CLASS_TYPE))
+                //Append method body.
+                .append(methodBody(GETTER, name, name,
+                                   EIGHT_SPACE_INDENTATION, null,
+                                   type, false))
+                .append(signatureClose())
+                //Append method close.
+                .append(methodClose(FOUR_SPACE));
+        return builder.toString();
     }
 
     /**
@@ -441,8 +401,8 @@
             return getSetter(className, attributeName, attrQualifiedType,
                              generatedJavaFiles, isTypeNull, false);
         }
-        String attrParam = getListAttribute(attrQualifiedType,
-                                            attr.getCompilerAnnotation());
+        String attrParam = StringGenerator.getListAttribute(attrQualifiedType,
+                                                            attr.getCompilerAnnotation());
         return getSetter(className, attributeName, attrParam,
                          generatedJavaFiles, isTypeNull, true);
     }
@@ -458,45 +418,48 @@
      * @return setter for attribute
      */
     private static String getSetter(String className, String name, String type,
-                                    int generatedJavaFiles,
+                                    int genType,
                                     boolean isTypeNull, boolean isList) {
-        if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
-            return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + VOID + SPACE +
-                    SET_METHOD_PREFIX + getCapitalCase(name) +
-                    OPEN_PARENTHESIS + type + SPACE + name + CLOSE_PARENTHESIS +
-                    SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
-                    EIGHT_SPACE_INDENTATION + YANG_UTILS_TODO + NEW_LINE +
-                    FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
-        } else if (generatedJavaFiles == GENERATE_EVENT_SUBJECT_CLASS) {
-            return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + VOID + SPACE +
-                    name + OPEN_PARENTHESIS + type + SPACE + name +
-                    CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
-                    NEW_LINE + EIGHT_SPACE_INDENTATION + THIS + PERIOD + name +
-                    SPACE + EQUAL + SPACE + name + SEMI_COLAN + NEW_LINE +
-                    FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
-        } else {
-            String method = FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
-                    className + BUILDER + SPACE + name + OPEN_PARENTHESIS +
-                    type + SPACE + name + CLOSE_PARENTHESIS + SPACE +
-                    OPEN_CURLY_BRACKET;
-            if (!isTypeNull && !isList) {
-                method = method + getValueLeafSetString(name);
-            } else {
-                method = method + EMPTY_STRING;
-            }
-            return method + NEW_LINE + EIGHT_SPACE_INDENTATION + THIS +
-                    PERIOD + name + SPACE + EQUAL + SPACE + name + SEMI_COLAN +
-                    NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN + SPACE +
-                    THIS + SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
-                    CLOSE_CURLY_BRACKET;
+        StringBuilder builder = new StringBuilder();
+        if (genType == GENERATE_SERVICE_AND_MANAGER) {
+            //Append method signature.
+            builder.append(methodSignature(getCapitalCase(name),
+                                           SET_METHOD_PREFIX,
+                                           PUBLIC, name, VOID, type,
+                                           CLASS_TYPE))
+                    //Append method body.
+                    .append(methodBody(MANAGER_METHODS, null, null,
+                                       EIGHT_SPACE_INDENTATION, null, null,
+                                       false))
+                    .append(methodClose(FOUR_SPACE));
+            return builder.toString();
         }
+        if (genType == GENERATE_EVENT_SUBJECT_CLASS) {
+            builder.append(methodSignature(name, EMPTY_STRING, PUBLIC, name, VOID,
+                                           type, CLASS_TYPE))
 
-    }
-
-    //Returns value leaf flag setter.
-    private static String getValueLeafSetString(String name) {
-        return "\n        getValueLeafFlags().set(LeafIdentifier." +
-                name.toUpperCase() + ".getLeafIndex());";
+                    //Append method body.
+                    .append(methodBody(SETTER, name, name,
+                                       EIGHT_SPACE_INDENTATION, null, null,
+                                       false))
+                    .append(methodClose(FOUR_SPACE));
+            return builder.toString();
+        }
+        builder.append(methodSignature(name, EMPTY_STRING,
+                                       PUBLIC, name, getCapitalCase(className) +
+                                               BUILDER, type, CLASS_TYPE));
+        if (!isTypeNull && !isList) {
+            builder.append(StringGenerator.getValueLeafSetString(name));
+        } else {
+            builder.append(EMPTY_STRING);
+        }
+        //Append method body.
+        builder.append(methodBody(SETTER, name, name,
+                                  EIGHT_SPACE_INDENTATION, null, null,
+                                  true))
+                //Append method close.
+                .append(methodClose(FOUR_SPACE));
+        return builder.toString();
     }
 
     /**
@@ -520,44 +483,32 @@
      * @return setter for type def's attribute
      */
     private static String getTypeDefSetter(String type, String name) {
-        return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + VOID + SPACE +
-                SET_METHOD_PREFIX + getCapitalCase(name) + OPEN_PARENTHESIS +
-                type + SPACE + VALUE + CLOSE_PARENTHESIS + SPACE +
-                OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
-                THIS + PERIOD + name + SPACE + EQUAL + SPACE + VALUE +
-                SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET;
-    }
-
-    /**
-     * Returns override string.
-     *
-     * @return override string
-     */
-    public static String getOverRideString() {
-        return NEW_LINE + FOUR_SPACE_INDENTATION + OVERRIDE + NEW_LINE;
+        return methodSignature(getCapitalCase(name), SET_METHOD_PREFIX, PUBLIC,
+                               name, VOID, type, CLASS_TYPE) +
+                methodBody(SETTER, name, name, EIGHT_SPACE_INDENTATION, null,
+                           null, false) + methodClose(FOUR_SPACE);
     }
 
     /**
      * Returns the getter method strings for interface file.
      *
-     * @param yangName           name of the attribute
-     * @param returnType         return type of attribute
-     * @param isList             is list attribute
-     * @param generatedJavaFiles generated java files
-     * @param compilerAnnotation compiler annotation
+     * @param yangName   name of the attribute
+     * @param returnType return type of attribute
+     * @param isList     is list attribute
+     * @param genType    generated java files
+     * @param annotation compiler annotation
      * @return getter method for interface
      */
     static String getGetterForInterface(String yangName, String returnType,
                                         boolean isList,
-                                        int generatedJavaFiles,
-                                        YangCompilerAnnotation compilerAnnotation) {
+                                        int genType,
+                                        YangCompilerAnnotation annotation) {
         if (!isList) {
             return getGetterInterfaceString(returnType, yangName,
-                                            generatedJavaFiles);
+                                            genType);
         }
-        String listAttr = getListAttribute(returnType, compilerAnnotation);
-        return getGetterInterfaceString(listAttr, yangName, generatedJavaFiles);
+        String listAttr = StringGenerator.getListAttribute(returnType, annotation);
+        return getGetterInterfaceString(listAttr, yangName, genType);
     }
 
     /**
@@ -569,72 +520,60 @@
      */
     private static String getGetterInterfaceString(String returnType,
                                                    String yangName,
-                                                   int generatedJavaFiles) {
-        if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
-            return getGetMethodWithArgument(returnType, yangName);
-        } else {
-            return FOUR_SPACE_INDENTATION + returnType + SPACE +
-                    yangName + OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
-                    SEMI_COLAN;
+                                                   int genType) {
+        switch (genType) {
+            case GENERATE_SERVICE_AND_MANAGER:
+                return getGetMethodWithArgument(returnType, yangName);
+            default:
+                return methodSignature(yangName, EMPTY_STRING, null,
+                                       null, returnType, null, INTERFACE_TYPE);
         }
     }
 
     /**
      * Returns the setter method strings for interface file.
      *
-     * @param attrName           name of the attribute
-     * @param attrType           return type of attribute
-     * @param className          name of the java class being generated
-     * @param isList             is list attribute
-     * @param generatedJavaFiles generated java files
-     * @param compilerAnnotation compiler annotations
+     * @param attrName   name of the attribute
+     * @param attrType   return type of attribute
+     * @param className  name of the java class being generated
+     * @param isList     is list attribute
+     * @param genType    generated java files
+     * @param annotation compiler annotations
      * @return setter method for interface
      */
     static String getSetterForInterface(String attrName, String attrType,
                                         String className,
-                                        boolean isList, int generatedJavaFiles,
-                                        YangCompilerAnnotation compilerAnnotation) {
+                                        boolean isList, int genType,
+                                        YangCompilerAnnotation annotation) {
         if (!isList) {
             return getSetterInterfaceString(className, attrName, attrType,
-                                            generatedJavaFiles);
+                                            genType);
         }
 
-        String listAttr = getListAttribute(attrType, compilerAnnotation);
-        return getSetterInterfaceString(className, attrName, listAttr,
-                                        generatedJavaFiles);
+        String listAttr = StringGenerator.getListAttribute(attrType, annotation);
+        return getSetterInterfaceString(className, attrName, listAttr, genType);
     }
 
     /**
      * Returns setter string for interface.
      *
-     * @param className class name
-     * @param attrName  attribute name
-     * @param attrType  attribute type
+     * @param name     class name
+     * @param attrName attribute name
+     * @param attrType attribute type
      * @return setter string
      */
-    private static String getSetterInterfaceString(String className,
+    private static String getSetterInterfaceString(String name,
                                                    String attrName,
                                                    String attrType,
-                                                   int generatedJavaFiles) {
-        if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
-            return FOUR_SPACE_INDENTATION + VOID + SPACE + SET_METHOD_PREFIX +
-                    getCapitalCase(attrName) + OPEN_PARENTHESIS + attrType +
-                    OP_PARAM + SPACE + attrName + CLOSE_PARENTHESIS +
-                    SEMI_COLAN;
-        } else {
-            return FOUR_SPACE_INDENTATION + className + BUILDER + SPACE +
-                    attrName + OPEN_PARENTHESIS + attrType + SPACE + attrName +
-                    CLOSE_PARENTHESIS + SEMI_COLAN;
+                                                   int genType) {
+        if (genType == GENERATE_SERVICE_AND_MANAGER) {
+            return methodSignature(getCapitalCase(attrName),
+                                   SET_METHOD_PREFIX,
+                                   null, attrName, VOID, attrType +
+                                           OP_PARAM, INTERFACE_TYPE);
         }
-    }
-
-    /**
-     * Returns list string.
-     *
-     * @return list string
-     */
-    private static String getListString() {
-        return LIST + DIAMOND_OPEN_BRACKET;
+        return methodSignature(attrName, EMPTY_STRING, null,
+                               attrName, name + BUILDER, attrType, INTERFACE_TYPE);
     }
 
     /**
@@ -644,13 +583,16 @@
      * @return return type
      */
     private static String getReturnType(JavaAttributeInfo attr) {
-        String returnType = EMPTY_STRING;
+        String returnType;
+        StringBuilder builder = new StringBuilder();
         if (attr.isQualifiedName() &&
                 attr.getImportInfo().getPkgInfo() != null) {
             returnType = attr.getImportInfo().getPkgInfo() + PERIOD;
+            builder.append(returnType);
         }
-        returnType = returnType + attr.getImportInfo().getClassInfo();
-        return returnType;
+        returnType = attr.getImportInfo().getClassInfo();
+        builder.append(returnType);
+        return builder.toString();
     }
 
     /**
@@ -660,124 +602,72 @@
      * @return build method for interface
      */
     static String getBuildForInterface(String yangName) {
-        return FOUR_SPACE_INDENTATION + yangName + SPACE + BUILD +
-                OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+        return methodSignature(BUILD, EMPTY_STRING, null, null,
+                               yangName, null, INTERFACE_TYPE);
     }
 
     /**
      * Returns constructor string for impl class.
      *
-     * @param yangName     class name
-     * @param pluginConfig plugin configurations
-     * @param isRootNode   if root node
+     * @param yangName   class name
+     * @param isRootNode if root node
      * @return constructor string
      */
     static String getConstructorStart(String yangName,
-                                      YangPluginConfig pluginConfig,
                                       boolean isRootNode) {
-        String javadoc = getConstructorString(yangName, pluginConfig);
+        StringBuilder builder = new StringBuilder(
+                getConstructorString(yangName));
 
-        String returnType = getCapitalCase(DEFAULT) + yangName;
+        String name = getCapitalCase(yangName);
+        String returnType = DEFAULT_CAPS + name;
         if (isRootNode) {
-            returnType = yangName + OP_PARAM;
+            returnType = name + OP_PARAM;
         }
-        String constructor =
-                FOUR_SPACE_INDENTATION + PROTECTED + SPACE + returnType +
-                        OPEN_PARENTHESIS + yangName + BUILDER + SPACE +
-                        BUILDER.toLowerCase() + OBJECT + CLOSE_PARENTHESIS +
-                        SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
-        return javadoc + constructor;
+        builder.append(methodSignature(
+                returnType, EMPTY_STRING, PROTECTED, BUILDER_LOWER_CASE + OBJECT,
+                null, name + BUILDER, CLASS_TYPE));
+        return builder.toString();
     }
 
     /**
      * Returns the constructor strings for class file.
      *
-     * @param attr               attribute info
-     * @param generatedJavaFiles generated java files
-     * @param pluginConfig       plugin configurations
+     * @param attr    attribute info
+     * @param genType generated java files
      * @return constructor for class
      */
-    public static String getConstructor(JavaAttributeInfo attr,
-                                        int generatedJavaFiles,
-                                        YangPluginConfig pluginConfig) {
-
-        String attributeName = attr.getAttributeName();
-        String constructor;
-
-        if (generatedJavaFiles == GENERATE_SERVICE_AND_MANAGER) {
-            constructor = EIGHT_SPACE_INDENTATION + THIS + PERIOD +
-                    getCamelCase(attributeName,
-                                 pluginConfig.getConflictResolver()) + SPACE +
-                    EQUAL + SPACE + BUILDER.toLowerCase() + OBJECT + PERIOD +
-                    GET_METHOD_PREFIX +
-                    getCapitalCase(getCamelCase(attributeName, pluginConfig
-                            .getConflictResolver())) + OPEN_PARENTHESIS +
-                    CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
-        } else {
-            constructor = EIGHT_SPACE_INDENTATION + THIS + PERIOD +
-                    getCamelCase(attributeName,
-                                 pluginConfig.getConflictResolver()) + SPACE +
-                    EQUAL + SPACE + BUILDER.toLowerCase() + OBJECT + PERIOD +
-                    getCamelCase(attributeName,
-                                 pluginConfig.getConflictResolver()) +
-                    OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN +
-                    NEW_LINE;
+    public static String getConstructor(JavaAttributeInfo attr, int genType) {
+        String attrName = attr.getAttributeName();
+        String attrCaps = getCapitalCase(attrName);
+        switch (genType) {
+            case GENERATE_SERVICE_AND_MANAGER:
+                return methodBody(MethodBodyTypes.CONSTRUCTOR, attrName,
+                                  attrCaps, EIGHT_SPACE_INDENTATION, GET, null,
+                                  false);
+            default:
+                return methodBody(MethodBodyTypes.CONSTRUCTOR, attrName,
+                                  attrName, EIGHT_SPACE_INDENTATION, EMPTY_STRING,
+                                  null, false);
         }
-        return constructor;
     }
 
     /**
      * Returns the rpc strings for service interface.
      *
-     * @param rpcName      name of the rpc
-     * @param inputName    name of input
-     * @param outputName   name of output
-     * @param pluginConfig plugin configurations
+     * @param rpcName name of the rpc
+     * @param input   name of input
+     * @param output  name of output
      * @return rpc method string
      */
-    public static String getRpcServiceMethod(String rpcName, String inputName,
-                                             String outputName,
-                                             YangPluginConfig pluginConfig) {
-
-        rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
-        if (!inputName.equals(EMPTY_STRING)) {
-            inputName = inputName + SPACE + RPC_INPUT_VAR_NAME;
+    public static String getRpcServiceMethod(String rpcName, String input,
+                                             String output) {
+        String inputVal = EMPTY_STRING;
+        if (!input.equals(EMPTY_STRING)) {
+            inputVal = RPC_INPUT_VAR_NAME;
         }
-        return FOUR_SPACE_INDENTATION + outputName + SPACE + rpcName +
-                OPEN_PARENTHESIS + inputName + CLOSE_PARENTHESIS + SEMI_COLAN;
-    }
-
-    /**
-     * Returns the rpc strings for manager impl.
-     *
-     * @param rpcName      name of the rpc
-     * @param inputName    name of input
-     * @param outputName   name of output
-     * @param pluginConfig plugin configurations
-     * @return rpc method string
-     */
-    public static String getRpcManagerMethod(String rpcName, String inputName,
-                                             String outputName,
-                                             YangPluginConfig pluginConfig) {
-
-        rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
-        if (!inputName.equals(EMPTY_STRING)) {
-            inputName = inputName + SPACE + RPC_INPUT_VAR_NAME;
-        }
-
-        String method =
-                getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
-                        outputName + SPACE + rpcName + OPEN_PARENTHESIS +
-                        inputName + CLOSE_PARENTHESIS + SPACE +
-                        OPEN_CURLY_BRACKET + NEW_LINE +
-                        EIGHT_SPACE_INDENTATION + YANG_UTILS_TODO + NEW_LINE;
-        if (!outputName.contentEquals(VOID)) {
-            method += EIGHT_SPACE_INDENTATION + RETURN + SPACE +
-                    parseTypeForReturnValue(outputName) + SEMI_COLAN + NEW_LINE;
-        }
-        method += FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
-
-        return method;
+        return methodSignature(rpcName, EMPTY_STRING, null,
+                               inputVal, output, input, INTERFACE_TYPE) +
+                NEW_LINE;
     }
 
     /**
@@ -788,16 +678,17 @@
      * @return build method string for class
      */
     static String getBuild(String yangName, boolean isRootNode) {
-        String type = getCapitalCase(DEFAULT) + yangName;
+        String type = DEFAULT_CAPS + yangName;
         if (isRootNode) {
             type = yangName + OP_PARAM;
         }
-        return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + yangName + SPACE +
-                BUILD + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
-                OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
-                RETURN + SPACE + NEW + SPACE + type + OPEN_PARENTHESIS + THIS +
-                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
-                FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
+        return methodSignature(BUILD, EMPTY_STRING, PUBLIC, null,
+                               yangName, null,
+                               CLASS_TYPE) +
+                methodBody(MethodBodyTypes.BUILD, type, BUILD,
+                           EIGHT_SPACE_INDENTATION, EMPTY_STRING,
+                           null, false) +
+                methodClose(FOUR_SPACE);
     }
 
     /**
@@ -809,10 +700,9 @@
      */
     private static String getDefaultConstructor(String name,
                                                 String modifierType) {
-        return FOUR_SPACE_INDENTATION + modifierType + SPACE + name +
-                OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
-                OPEN_CURLY_BRACKET + NEW_LINE + FOUR_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET;
+        return methodSignature(name, EMPTY_STRING, modifierType, null,
+                               null, null, CLASS_TYPE) +
+                methodClose(FOUR_SPACE);
     }
 
     /**
@@ -821,66 +711,15 @@
      * @return string method's open string
      */
     static String getToStringMethodOpen() {
-        return 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 + GOOGLE_MORE_OBJECT_METHOD_STRING + NEW_LINE;
-    }
-
-    /**
-     * Returns whether the data type is of primitive data type.
-     *
-     * @param dataType data type to be checked
-     * @return true, if data type can have primitive data type, false otherwise
-     */
-    static boolean isPrimitiveDataType(YangDataTypes dataType) {
-        return dataType == INT8
-                || dataType == INT16
-                || dataType == INT32
-                || dataType == INT64
-                || dataType == UINT8
-                || dataType == UINT16
-                || dataType == UINT32
-                || dataType == UINT64
-                || dataType == DECIMAL64
-                || dataType == BOOLEAN
-                || dataType == EMPTY;
-
-    }
-
-
-    static String getIfConditionBegin(String indentation, String condition) {
-        return indentation + IF + SPACE + OPEN_PARENTHESIS + condition +
-                CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
-    }
-
-    static String getElseIfConditionBegin(String indentation,
-                                          String condition) {
-        return indentation + CLOSE_CURLY_BRACKET + SPACE + ELSE + SPACE +
-                getIfConditionBegin("", condition);
-    }
-
-    static String getBlockEnd(String indentation) {
-        return indentation + CLOSE_CURLY_BRACKET + NEW_LINE;
-    }
-
-    static String getCollectionIteratorForLoopBegin(String indentation,
-                                                    String loopVar,
-                                                    String collection) {
-        return indentation + FOR + SPACE + OPEN_PARENTHESIS + loopVar + SPACE +
-                COLAN + SPACE + collection + CLOSE_PARENTHESIS + SPACE +
-                OPEN_CURLY_BRACKET + NEW_LINE;
-    }
-
-    /*
-     * Returns omit null value string.
-     *
-     * @return omit null value string
-     */
-    static String getOmitNullValueString() {
-        return TWELVE_SPACE_INDENTATION + PERIOD + OMIT_NULL_VALUE_STRING +
-                NEW_LINE;
+        String line;
+        StringBuilder builder = new StringBuilder(getOverRideString());
+        builder.append(methodSignature(TO + STRING_DATA_TYPE, EMPTY_STRING,
+                                       PUBLIC, null, STRING_DATA_TYPE, null,
+                                       CLASS_TYPE));
+        line = getReturnString(GOOGLE_MORE_OBJECT_METHOD_STRING,
+                               EIGHT_SPACE_INDENTATION) + NEW_LINE;
+        builder.append(line);
+        return builder.toString();
     }
 
     /**
@@ -890,8 +729,8 @@
      */
     static String getToStringMethodClose() {
         return TWELVE_SPACE_INDENTATION + PERIOD + TO + STRING_DATA_TYPE +
-                OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
-                FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
+                brackets(OPEN_CLOSE_BRACKET, null, null) + signatureClose() +
+                methodClose(FOUR_SPACE);
     }
 
     /**
@@ -901,27 +740,23 @@
      * @return to string method
      */
     public static String getToStringMethod(JavaAttributeInfo attr) {
-
         String attributeName = attr.getAttributeName();
-        return TWELVE_SPACE_INDENTATION + PERIOD + ADD_STRING +
-                OPEN_PARENTHESIS + QUOTES + attributeName + QUOTES + COMMA +
-                SPACE + attributeName + CLOSE_PARENTHESIS;
+        return methodBody(TO_STRING, attributeName, null,
+                          TWELVE_SPACE_INDENTATION, null, null, false);
     }
 
     /**
      * Returns from string method's open string.
      *
-     * @param className    name of the class
-     * @param pluginConfig plugin configurations
+     * @param className name of the class
      * @return from string method's open string
      */
-    static String getFromStringMethodSignature(String className,
-                                               YangPluginConfig pluginConfig) {
-        return getJavaDoc(FROM_METHOD, className, false, pluginConfig, null) +
-                FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE +
-                className + SPACE + FROM_STRING_METHOD_NAME + OPEN_PARENTHESIS +
-                STRING_DATA_TYPE + SPACE + FROM_STRING_PARAM_NAME +
-                CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+    static String getFromStringMethodSignature(String className) {
+        return getJavaDoc(FROM_METHOD, className, false, null) +
+                methodSignature(FROM_STRING_METHOD_NAME, EMPTY_STRING, PUBLIC +
+                                        SPACE + STATIC, FROM_STRING_PARAM_NAME,
+                                className, STRING_DATA_TYPE,
+                                CLASS_TYPE);
     }
 
     /**
@@ -930,126 +765,134 @@
      * @return from string method's close string
      */
     static String getFromStringMethodClose() {
-        return EIGHT_SPACE_INDENTATION + RETURN + SPACE + NULL + SEMI_COLAN +
-                NEW_LINE + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
-                NEW_LINE;
+        return getReturnString(NULL, EIGHT_SPACE_INDENTATION) +
+                signatureClose() + methodClose(FOUR_SPACE);
     }
 
     /**
      * Return from string method's body string.
      *
-     * @param attr                    attribute info
-     * @param fromStringAttributeInfo attribute info for the from string wrapper
-     *                                type
+     * @param attr     attribute info
+     * @param fromAttr attribute info for the from string wrapper
+     *                 type
      * @return from string method's body string
      */
     public static String getFromStringMethod(JavaAttributeInfo attr,
-                                             JavaAttributeInfo fromStringAttributeInfo) {
+                                             JavaAttributeInfo fromAttr) {
 
-        return EIGHT_SPACE_INDENTATION + getTrySubString() + NEW_LINE +
-                TWELVE_SPACE_INDENTATION +
-                getParsedSubString(attr, fromStringAttributeInfo) + NEW_LINE +
-                TWELVE_SPACE_INDENTATION +
-                getReturnOfSubString() + NEW_LINE + EIGHT_SPACE_INDENTATION +
-                getCatchSubString() + NEW_LINE + EIGHT_SPACE_INDENTATION +
+        return EIGHT_SPACE_INDENTATION + StringGenerator.getTrySubString() +
+                StringGenerator.getNewLineAndSpace(TWELVE_SPACE_INDENTATION) +
+                getParsedSubString(attr, fromAttr) +
+                StringGenerator.getNewLineAndSpace(TWELVE_SPACE_INDENTATION) +
+                StringGenerator.getReturnOfSubString() +
+                StringGenerator.getNewLineAndSpace(EIGHT_SPACE_INDENTATION) +
+                StringGenerator.getCatchSubString() +
+                StringGenerator.getNewLineAndSpace(EIGHT_SPACE_INDENTATION) +
                 CLOSE_CURLY_BRACKET;
     }
 
     /**
-     * Returns sub string with try statement for union's from string method.
-     *
-     * @return sub string with try statement for union's from string method
-     */
-    private static String getTrySubString() {
-        return TRY + SPACE + OPEN_CURLY_BRACKET;
-    }
-
-    /**
-     * Returns sub string with return statement for union's from string method.
-     *
-     * @return sub string with return statement for union's from string method
-     */
-    private static String getReturnOfSubString() {
-        return RETURN + SPACE + OF + OPEN_PARENTHESIS + TMP_VAL +
-                CLOSE_PARENTHESIS + SEMI_COLAN;
-    }
-
-    /**
-     * Returns sub string with catch statement for union's from string method.
-     *
-     * @return sub string with catch statement for union's from string method
-     */
-    private static String getCatchSubString() {
-        return CLOSE_CURLY_BRACKET + SPACE + CATCH + SPACE + OPEN_PARENTHESIS +
-                EXCEPTION + SPACE + EXCEPTION_VAR + CLOSE_PARENTHESIS + SPACE +
-                OPEN_CURLY_BRACKET;
-    }
-
-    /**
      * Returns sub string with parsed statement for union's from string method.
      *
      * @param attr attribute info
      * @return sub string with parsed statement for union's from string method
      */
     private static String getParsedSubString(JavaAttributeInfo attr,
-                                             JavaAttributeInfo fromStringAttributeInfo) {
+                                             JavaAttributeInfo fromStringAttr) {
 
         String targetDataType = getReturnType(attr);
-        if (fromStringAttributeInfo.getAttributeType().getDataType() == BITS) {
-            String lines =
-                    targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE +
-                            NEW + SPACE + targetDataType + OPEN_PARENTHESIS +
-                            CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
-            lines += TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE +
-                    EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
-                    REPLACE_STRING + OPEN_PARENTHESIS + SINGLE_QUOTE +
-                    OPEN_CURLY_BRACKET + SINGLE_QUOTE + COMMA + SPACE +
-                    SINGLE_QUOTE + SPACE + SINGLE_QUOTE + CLOSE_PARENTHESIS +
-                    SEMI_COLAN + NEW_LINE;
-            lines += TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE +
-                    EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
-                    REPLACE_STRING + OPEN_PARENTHESIS + SINGLE_QUOTE +
-                    CLOSE_CURLY_BRACKET + SINGLE_QUOTE + COMMA + SPACE +
-                    SINGLE_QUOTE + SPACE + SINGLE_QUOTE + CLOSE_PARENTHESIS +
-                    SEMI_COLAN + NEW_LINE;
-            lines += TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE +
-                    EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
-                    TRIM_STRING + OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
-                    SEMI_COLAN + NEW_LINE;
-            lines += TWELVE_SPACE_INDENTATION + STRING_DATA_TYPE +
-                    SQUARE_BRACKETS + SPACE + BITS_STRING_ARRAY_VAR + SPACE +
-                    EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
-                    SPLIT_STRING + OPEN_PARENTHESIS + QUOTES + COMMA + QUOTES +
-                    COMMA + SPACE + ZERO + CLOSE_PARENTHESIS + SEMI_COLAN +
-                    NEW_LINE;
-            lines += TWELVE_SPACE_INDENTATION + FOR + SPACE + OPEN_PARENTHESIS +
-                    STRING_DATA_TYPE + SPACE + BIT_TEMP_VAR + SPACE + COLON +
-                    SPACE + BITS_STRING_ARRAY_VAR + CLOSE_PARENTHESIS + SPACE +
-                    OPEN_CURLY_BRACKET + NEW_LINE;
-            lines += SIXTEEN_SPACE_INDENTATION + BIT_TEMP_VAR + SPACE + EQUAL +
-                    SPACE + BIT_TEMP_VAR + PERIOD + TRIM_STRING +
-                    OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
-                    SEMI_COLAN + NEW_LINE;
-            lines += SIXTEEN_SPACE_INDENTATION + TMP_VAL + PERIOD +
-                    SET_METHOD_PREFIX + OPEN_PARENTHESIS + INTEGER_WRAPPER +
-                    PERIOD + PARSE_INT + OPEN_PARENTHESIS + BIT_TEMP_VAR +
-                    CLOSE_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN +
-                    NEW_LINE;
-            lines += TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
-            return lines;
-        } else if (attr.getAttributeType().getDataType() == BINARY) {
-            return targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE +
-                    BASE64 + PERIOD + GET_DECODER + OPEN_PARENTHESIS +
-                    CLOSE_PARENTHESIS + PERIOD + DECODE + OPEN_PARENTHESIS +
-                    FROM_STRING_PARAM_NAME + CLOSE_PARENTHESIS + SEMI_COLAN;
-        } else {
-            String parseFromStringMethod =
-                    getParseFromStringMethod(targetDataType,
-                                             fromStringAttributeInfo
-                                                     .getAttributeType());
-            return targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE +
-                    parseFromStringMethod + OPEN_PARENTHESIS +
-                    FROM_STRING_PARAM_NAME + CLOSE_PARENTHESIS + SEMI_COLAN;
+        StringBuilder builder = new StringBuilder();
+        YangDataTypes types = fromStringAttr.getAttributeType()
+                .getDataType();
+        switch (types) {
+            case BITS:
+                String lines =
+                        targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE +
+                                NEW + SPACE + targetDataType + OPEN_PARENTHESIS +
+                                CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE;
+                builder.append(lines);
+            /*
+             *"            valInString = valInString.replace("{", " ");\n";
+             */
+                lines = TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE +
+                        EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
+                        REPLACE_STRING + OPEN_PARENTHESIS + SINGLE_QUOTE +
+                        OPEN_CURLY_BRACKET + SINGLE_QUOTE + COMMA + SPACE +
+                        SINGLE_QUOTE + SPACE + SINGLE_QUOTE + CLOSE_PARENTHESIS +
+                        SEMI_COLON + NEW_LINE;
+                builder.append(lines);
+            /*
+             *"            valInString = valInString.replace({, " ");\n";
+             */
+                lines = TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE +
+                        EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
+                        REPLACE_STRING + OPEN_PARENTHESIS + SINGLE_QUOTE +
+                        CLOSE_CURLY_BRACKET + SINGLE_QUOTE + COMMA + SPACE +
+                        SINGLE_QUOTE + SPACE + SINGLE_QUOTE + CLOSE_PARENTHESIS +
+                        SEMI_COLON + NEW_LINE;
+                builder.append(lines);
+            /*
+             *"            valInString = valInString.trim();\n"
+             */
+                lines = TWELVE_SPACE_INDENTATION + FROM_STRING_PARAM_NAME + SPACE +
+                        EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
+                        TRIM_STRING + OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
+                        SEMI_COLON + NEW_LINE;
+                builder.append(lines);
+            /*
+             *"            String[] bitsTemp = valInString.split(",", 0);\n"
+             */
+                lines = TWELVE_SPACE_INDENTATION + STRING_DATA_TYPE +
+                        SQUARE_BRACKETS + SPACE + BITS_STRING_ARRAY_VAR + SPACE +
+                        EQUAL + SPACE + FROM_STRING_PARAM_NAME + PERIOD +
+                        SPLIT_STRING + OPEN_PARENTHESIS + QUOTES + COMMA + QUOTES +
+                        COMMA + SPACE + ZERO + CLOSE_PARENTHESIS + SEMI_COLON +
+                        NEW_LINE;
+                builder.append(lines);
+            /*
+             *"            for (String bitTemp : bitsTemp) {\n"
+             */
+                lines = TWELVE_SPACE_INDENTATION + FOR + SPACE + OPEN_PARENTHESIS +
+                        STRING_DATA_TYPE + SPACE + BIT_TEMP_VAR + SPACE + COLON +
+                        SPACE + BITS_STRING_ARRAY_VAR + CLOSE_PARENTHESIS + SPACE +
+                        OPEN_CURLY_BRACKET + NEW_LINE;
+                builder.append(lines);
+            /*
+             *"                bitTemp = bitTemp.trim();\n"
+             */
+                lines = SIXTEEN_SPACE_INDENTATION + BIT_TEMP_VAR + SPACE + EQUAL +
+                        SPACE + BIT_TEMP_VAR + PERIOD + TRIM_STRING +
+                        OPEN_PARENTHESIS + CLOSE_PARENTHESIS +
+                        SEMI_COLON + NEW_LINE;
+                builder.append(lines);
+            /*
+             *"                tmpVal.set(Integer.parseInt(bitTemp));\n"
+             */
+                lines = SIXTEEN_SPACE_INDENTATION + TMP_VAL + PERIOD +
+                        SET_METHOD_PREFIX + OPEN_PARENTHESIS + INTEGER_WRAPPER +
+                        PERIOD + PARSE_INT + OPEN_PARENTHESIS + BIT_TEMP_VAR +
+                        CLOSE_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLON +
+                        NEW_LINE;
+                builder.append(lines);
+            /*
+             *"            }\n"
+             */
+                lines = TWELVE_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
+                        NEW_LINE;
+                builder.append(lines);
+                return builder.toString();
+            case BINARY:
+                return targetDataType + SPACE + TMP_VAL + SPACE + EQUAL + SPACE +
+                        BASE64 + PERIOD + GET_DECODER + OPEN_PARENTHESIS +
+                        CLOSE_PARENTHESIS + PERIOD + DECODE + OPEN_PARENTHESIS +
+                        FROM_STRING_PARAM_NAME + CLOSE_PARENTHESIS + SEMI_COLON
+                        + NEW_LINE;
+            default:
+                return targetDataType + SPACE + TMP_VAL + SPACE + EQUAL +
+                        SPACE + StringGenerator.getParseFromStringMethod(
+                        targetDataType, fromStringAttr.getAttributeType()) +
+                        OPEN_PARENTHESIS + FROM_STRING_PARAM_NAME +
+                        CLOSE_PARENTHESIS + SEMI_COLON + NEW_LINE;
         }
     }
 
@@ -1059,11 +902,14 @@
      * @return hash code method open string
      */
     static String getHashCodeMethodOpen() {
-        return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
-                INT + SPACE + HASH_CODE_STRING + OPEN_PARENTHESIS +
-                CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
-                EIGHT_SPACE_INDENTATION + RETURN + SPACE + OBJECT_STRING +
-                SUFFIX_S + PERIOD + HASH + OPEN_PARENTHESIS;
+        String line;
+        StringBuilder builder = new StringBuilder(getOverRideString());
+        builder.append(methodSignature(HASH_CODE_STRING, EMPTY_STRING, PUBLIC,
+                                       null, INT, null, CLASS_TYPE));
+        line = getReturnString(OBJECT_STRING + SUFFIX_S + PERIOD + HASH +
+                                       OPEN_PARENTHESIS, EIGHT_SPACE_INDENTATION);
+        builder.append(line);
+        return builder.toString();
     }
 
     /**
@@ -1073,10 +919,10 @@
      * @return to hash code method close string
      */
     static String getHashCodeMethodClose(String hashcodeString) {
-        hashcodeString = trimAtLast(hashcodeString, COMMA);
-        hashcodeString = trimAtLast(hashcodeString, SPACE);
-        return hashcodeString + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
-                FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
+        String[] array = {SPACE, COMMA};
+        hashcodeString = trimAtLast(hashcodeString, array);
+        return hashcodeString + CLOSE_PARENTHESIS + signatureClose() +
+                methodClose(FOUR_SPACE);
     }
 
     /**
@@ -1096,10 +942,10 @@
      * @return equals method open string
      */
     static String getEqualsMethodOpen(String className) {
-        return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
-                BOOLEAN_DATA_TYPE + SPACE + EQUALS_STRING + OPEN_PARENTHESIS +
-                OBJECT_STRING + SPACE + OBJ + CLOSE_PARENTHESIS + SPACE +
-                OPEN_CURLY_BRACKET + NEW_LINE +
+        return getOverRideString() +
+                methodSignature(EQUALS_STRING, EMPTY_STRING, PUBLIC, OBJ,
+                                BOOLEAN_DATA_TYPE, OBJECT_STRING,
+                                CLASS_TYPE) +
                 getEqualsMethodsCommonIfCondition() +
                 getEqualsMethodsSpecificIfCondition(className);
     }
@@ -1110,12 +956,10 @@
      * @return if condition string
      */
     private static String getEqualsMethodsCommonIfCondition() {
-        return EIGHT_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS + THIS +
-                SPACE + EQUAL + EQUAL + SPACE + OBJ + CLOSE_PARENTHESIS +
-                SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
-                TWELVE_SPACE_INDENTATION + RETURN + SPACE + TRUE + SEMI_COLAN +
-                NEW_LINE + EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET +
-                NEW_LINE;
+        return getIfConditionBegin(EIGHT_SPACE_INDENTATION, THIS + SPACE +
+                EQUAL + EQUAL + SPACE + OBJ) + getReturnString(
+                TRUE, TWELVE_SPACE_INDENTATION) + signatureClose()
+                + methodClose(EIGHT_SPACE);
     }
 
     /**
@@ -1130,7 +974,7 @@
                 OPEN_CURLY_BRACKET + NEW_LINE + TWELVE_SPACE_INDENTATION +
                 className + SPACE + OTHER + SPACE + EQUAL + SPACE +
                 OPEN_PARENTHESIS + className + CLOSE_PARENTHESIS + SPACE + OBJ +
-                SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION + RETURN +
+                SEMI_COLON + NEW_LINE + TWELVE_SPACE_INDENTATION + RETURN +
                 NEW_LINE;
     }
 
@@ -1141,15 +985,12 @@
      * @return equals method close string
      */
     static String getEqualsMethodClose(String equalMethodString) {
-        equalMethodString = trimAtLast(equalMethodString, AND);
-        equalMethodString = trimAtLast(equalMethodString, AND);
-        equalMethodString = trimAtLast(equalMethodString, SPACE);
-        equalMethodString =
-                trimAtLast(equalMethodString, NEW_LINE) + SEMI_COLAN + NEW_LINE;
-        return equalMethodString + EIGHT_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
-                RETURN + SPACE + FALSE + SEMI_COLAN + NEW_LINE +
-                FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
+        String[] array = {NEW_LINE, AND, AND, SPACE};
+        equalMethodString = trimAtLast(equalMethodString, array) +
+                signatureClose();
+        return equalMethodString + methodClose(EIGHT_SPACE) +
+                getReturnString(FALSE, EIGHT_SPACE_INDENTATION) +
+                signatureClose() + methodClose(FOUR_SPACE);
     }
 
     /**
@@ -1159,115 +1000,89 @@
      * @return equals method
      */
     public static String getEqualsMethod(JavaAttributeInfo attr) {
-
         String attributeName = attr.getAttributeName();
-        return SIXTEEN_SPACE_INDENTATION + SPACE + OBJECT_STRING + SUFFIX_S +
+        return SIXTEEN_SPACE_INDENTATION + OBJECT_STRING + SUFFIX_S +
                 PERIOD + EQUALS_STRING + OPEN_PARENTHESIS + attributeName +
                 COMMA + SPACE + OTHER + PERIOD + attributeName +
                 CLOSE_PARENTHESIS + SPACE + AND + AND;
     }
 
     /**
-     * Returns of method string for class.
-     *
-     * @param name class name
-     * @param attr attribute info
-     * @return of method string
-     */
-    static String getOfMethod(String name, JavaAttributeInfo attr) {
-        String attrQualifiedType = getReturnType(attr);
-        return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE + name +
-                SPACE + OF + OPEN_PARENTHESIS + attrQualifiedType + SPACE +
-                VALUE + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
-                NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN + SPACE + NEW +
-                SPACE + name + OPEN_PARENTHESIS + VALUE + CLOSE_PARENTHESIS +
-                SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET + NEW_LINE;
-    }
-
-    /**
      * Returns of method's string and java doc for special type.
      *
-     * @param attr                   attribute info
-     * @param generatedJavaClassName class name
-     * @param pluginConfig           plugin configurations
+     * @param attr      attribute info
+     * @param className class name
      * @return of method's string and java doc for special type
      */
     public static String getOfMethodStringAndJavaDoc(JavaAttributeInfo attr,
-                                                     String generatedJavaClassName,
-                                                     YangPluginConfig pluginConfig) {
-
+                                                     String className) {
         String attrType = getReturnType(attr);
         String attrName = attr.getAttributeName();
 
-        return getJavaDoc(OF_METHOD, generatedJavaClassName + " for type " +
-                attrName, false, pluginConfig, null) +
-                getOfMethodString(attrType, generatedJavaClassName);
+        return getJavaDoc(OF_METHOD, className + FOR_TYPE_STRING + attrName,
+                          false, null) + getOfMethodString(attrType, className);
     }
 
     /**
      * Returns of method's string.
      *
-     * @param type      data type
-     * @param className class name
+     * @param type data type
+     * @param name class name
      * @return of method's string
      */
-    private static String getOfMethodString(String type, String className) {
-        return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE +
-                className + SPACE + OF + OPEN_PARENTHESIS + type + SPACE +
-                VALUE + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
-                NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN + SPACE + NEW +
-                SPACE + className + OPEN_PARENTHESIS + VALUE +
-                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
-                FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
+    private static String getOfMethodString(String type, String name) {
+        return methodSignature(OF, EMPTY_STRING, PUBLIC + SPACE + STATIC,
+                               VALUE, name, type, CLASS_TYPE) +
+                methodBody(MethodBodyTypes.OF_METHOD, name, null,
+                           EIGHT_SPACE_INDENTATION, EMPTY_STRING, null, false) +
+                methodClose(FOUR_SPACE);
     }
 
     /**
      * Returns string and java doc for constructor of type class.
      *
-     * @param attr                   attribute info
-     * @param generatedJavaClassName class name
-     * @param pluginConfig           plugin configurations
+     * @param attr      attribute info
+     * @param className class name
      * @return string and java doc for constructor of type class
      */
-    public static String getTypeConstructorStringAndJavaDoc(JavaAttributeInfo attr,
-                                                            String generatedJavaClassName,
-                                                            YangPluginConfig pluginConfig) {
-
+    public static String getTypeConstructorStringAndJavaDoc(
+            JavaAttributeInfo attr, String className) {
         String attrType = getReturnType(attr);
         String attrName = attr.getAttributeName();
-        return getJavaDoc(TYPE_CONSTRUCTOR, generatedJavaClassName +
-                " for type " + attrName, false, pluginConfig, null) +
-                getTypeConstructorString(attrType, attrName,
-                                         generatedJavaClassName);
+        return getJavaDoc(TYPE_CONSTRUCTOR, attrName, false, null) +
+                getTypeConstructorString(attrType, attrName, className);
     }
 
     /**
      * Returns string and java doc for constructor of type class.
      *
-     * @param attr1                  first attribute info
-     * @param attr2                  second attribute info
-     * @param generatedJavaClassName class name
-     * @param pluginConfig           plugin config
-     * @param type                   conflict validate type
-     * @param addFirst               whether int came first or uInt came first
+     * @param attr1    first attribute info
+     * @param attr2    second attribute info
+     * @param genType  class name
+     * @param type     conflict validate type
+     * @param addFirst whether int came first or uInt came first
      * @return string and java doc for constructor of type class
      */
-    public static String getTypeConstructorStringAndJavaDoc(JavaAttributeInfo attr1,
-                                                            JavaAttributeInfo attr2,
-                                                            String generatedJavaClassName,
-                                                            YangPluginConfig pluginConfig,
-                                                            ValidatorTypeForUnionTypes type,
-                                                            boolean addFirst) {
+    public static String getTypeConstructorStringAndJavaDoc(
+            JavaAttributeInfo attr1, JavaAttributeInfo attr2, String genType,
+            ValidatorTypeForUnionTypes type, boolean addFirst) {
 
         String attrType = getReturnType(attr1);
         String attrName1 = "";
         String attrName2 = "";
         if (attr1 != null) {
-            attrName1 = attr1.getAttributeName();
+            if (addFirst) {
+                attrName1 = attr1.getAttributeName();
+            } else {
+                attrName2 = attr1.getAttributeName();
+            }
         }
         if (attr2 != null) {
-            attrName2 = attr2.getAttributeName();
+            if (addFirst) {
+                attrName1 = attr2.getAttributeName();
+            } else {
+                attrName2 = attr2.getAttributeName();
+            }
         }
 
         String appDataStructure = null;
@@ -1276,13 +1091,16 @@
                     attr1.getCompilerAnnotation().getYangAppDataStructure()
                             .getDataStructure().name();
         }
-        return getJavaDoc(TYPE_CONSTRUCTOR, generatedJavaClassName +
-                                  " for type " + attrName1, false,
-                          pluginConfig, appDataStructure) +
+        String doc;
+        if (attrName1.isEmpty()) {
+            doc = attrName2;
+        } else {
+            doc = attrName1;
+        }
+        return getJavaDoc(TYPE_CONSTRUCTOR, doc, false, appDataStructure) +
                 getTypeConstructorString(attrType, attrName1,
-                                         attrName2, generatedJavaClassName,
-                                         type,
-                                         addFirst);
+                                         attrName2, genType,
+                                         type, addFirst);
     }
 
     /**
@@ -1295,12 +1113,10 @@
      */
     private static String getTypeConstructorString(String type, String name,
                                                    String className) {
-        return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + className +
-                OPEN_PARENTHESIS + type + SPACE + VALUE + CLOSE_PARENTHESIS +
-                SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
-                EIGHT_SPACE_INDENTATION + THIS + PERIOD + name + SPACE + EQUAL +
-                SPACE + VALUE + SEMI_COLAN + NEW_LINE +
-                FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
+        return methodSignature(className, EMPTY_STRING, PUBLIC, name,
+                               null, type, CLASS_TYPE) +
+                methodBody(SETTER, name, null, EIGHT_SPACE_INDENTATION,
+                           EMPTY_STRING, null, false) + methodClose(FOUR_SPACE);
     }
 
     /**
@@ -1311,38 +1127,28 @@
      * @param className class attr1
      * @return type constructor string
      */
-    private static String getTypeConstructorString(String type, String attr1,
-                                                   String attr2,
-                                                   String className,
-                                                   ValidatorTypeForUnionTypes validatorType,
-                                                   boolean addInt) {
+    private static String getTypeConstructorString(
+            String type, String attr1, String attr2, String className,
+            ValidatorTypeForUnionTypes validatorType, boolean addInt) {
 
-        String constructor;
-        constructor = FOUR_SPACE_INDENTATION + PUBLIC + SPACE + className +
-                OPEN_PARENTHESIS + type + SPACE + VALUE + CLOSE_PARENTHESIS +
-                SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+        StringBuilder constructor = new StringBuilder(
+                methodSignature(className, EMPTY_STRING, null, type,
+                                null, type, CLASS_TYPE))
+                .append(ifConditionForIntInTypeDefConstructor(validatorType,
+                                                              addInt))
+                .append(methodBody(SETTER, attr1, null,
+                                   TWELVE_SPACE_INDENTATION, EMPTY_STRING,
+                                   null, false));
+        String str = EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + SPACE +
+                ELSE + SPACE + OPEN_CURLY_BRACKET + NEW_LINE;
+        constructor.append(str)
+                .append(methodBody(SETTER, attr2, null,
+                                   TWELVE_SPACE_INDENTATION, EMPTY_STRING,
+                                   null, false))
+                .append(methodClose(FOUR_SPACE))
+                .append(methodClose(EIGHT_SPACE));
 
-        String name1;
-        String name2;
-        if (addInt) {
-            name1 = attr1;
-            name2 = attr2;
-        } else {
-            name1 = attr2;
-            name2 = attr1;
-        }
-        constructor = constructor +
-                ifConditionForIntInTypeDefConstructor(validatorType, addInt) +
-                TWELVE_SPACE_INDENTATION + THIS + PERIOD + name1 + SPACE +
-                EQUAL + SPACE + VALUE + SEMI_COLAN + NEW_LINE +
-                EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + SPACE + ELSE +
-                SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
-                TWELVE_SPACE_INDENTATION + THIS + PERIOD + name2 + SPACE +
-                EQUAL + SPACE + VALUE + SEMI_COLAN + NEW_LINE +
-                EIGHT_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE +
-                FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
-
-        return constructor;
+        return constructor.toString();
     }
 
     /**
@@ -1351,12 +1157,14 @@
      * @return interface of add augmentation
      */
     static String getAddAugmentInfoMethodInterface() {
-        return generateForAddAugmentation() + FOUR_SPACE_INDENTATION + VOID +
-                SPACE +
-                ADD_STRING + YANG_AUGMENTED_INFO + OPEN_PARENTHESIS +
-                OBJECT_STRING + SPACE + VALUE + COMMA +
-                SPACE + CLASS_STRING + SPACE + CLASS + OBJECT_STRING +
-                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+        StringBuilder builder = new StringBuilder(generateForAddAugmentation());
+        LinkedHashMap<String, String> map = new LinkedHashMap<>();
+        map.put(OBJECT_STRING, VALUE);
+        map.put(CLASS_STRING, CLASS + OBJECT_STRING);
+        builder.append(multiAttrMethodSignature(ADD_STRING + YANG_AUGMENTED_INFO,
+                                                EMPTY_STRING, EMPTY_STRING,
+                                                VOID, map, INTERFACE_TYPE));
+        return builder.toString();
     }
 
     /**
@@ -1365,19 +1173,18 @@
      * @return implementation of add augmentation
      */
     static String getAddAugmentInfoMethodImpl() {
-        return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
-                VOID + SPACE +
-                ADD_STRING + YANG_AUGMENTED_INFO + OPEN_PARENTHESIS +
-                OBJECT_STRING + SPACE + VALUE + COMMA +
-                SPACE + CLASS_STRING + SPACE + CLASS + OBJECT_STRING +
-                CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
-                NEW_LINE + EIGHT_SPACE_INDENTATION +
-                getSmallCase(YANG_AUGMENTED_INFO) + MAP + PERIOD + PUT +
-                OPEN_PARENTHESIS + CLASS + OBJECT_STRING + COMMA + SPACE +
-                VALUE +
-                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
-                FOUR_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET + NEW_LINE;
+        StringBuilder builder = new StringBuilder(getOverRideString());
+        LinkedHashMap<String, String> map = new LinkedHashMap<>();
+        map.put(OBJECT_STRING, VALUE);
+        map.put(CLASS_STRING, CLASS + OBJECT_STRING);
+        builder.append(multiAttrMethodSignature(ADD_STRING + YANG_AUGMENTED_INFO,
+                                                EMPTY_STRING, PUBLIC,
+                                                VOID, map, CLASS_TYPE))
+                .append(methodBody(AUGMENTED_MAP_ADD, null, null,
+                                   EIGHT_SPACE_INDENTATION, null, null, false))
+                .append(methodClose(FOUR_SPACE))
+                .append(NEW_LINE);
+        return builder.toString();
     }
 
     /**
@@ -1386,11 +1193,10 @@
      * @return interface of get YANG augment info
      */
     static String getYangAugmentInfoInterface() {
-        return generateForGetAugmentation() + FOUR_SPACE_INDENTATION +
-                OBJECT_STRING + SPACE +
-                getSmallCase(YANG_AUGMENTED_INFO) + OPEN_PARENTHESIS +
-                CLASS_STRING + SPACE + CLASS + OBJECT_STRING +
-                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+        return generateForGetAugmentation() +
+                methodSignature(YANG_AUGMENTED_INFO_LOWER_CASE, EMPTY_STRING,
+                                null, CLASS + OBJECT_STRING,
+                                OBJECT_STRING, CLASS_STRING, INTERFACE_TYPE);
     }
 
     /**
@@ -1399,17 +1205,13 @@
      * @return implementation of get YANG augment info
      */
     static String getYangAugmentInfoImpl() {
-        return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
-                OBJECT_STRING + SPACE +
-                getSmallCase(YANG_AUGMENTED_INFO) + OPEN_PARENTHESIS +
-                CLASS_STRING + SPACE + CLASS + OBJECT_STRING +
-                CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
-                EIGHT_SPACE_INDENTATION +
-                RETURN + SPACE + getSmallCase(YANG_AUGMENTED_INFO) + MAP +
-                PERIOD + GET + OPEN_PARENTHESIS + CLASS +
-                OBJECT_STRING + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE +
-                FOUR_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET + NEW_LINE;
+        return getOverRideString() +
+                methodSignature(YANG_AUGMENTED_INFO_LOWER_CASE, EMPTY_STRING,
+                                PUBLIC, CLASS + OBJECT_STRING, OBJECT_STRING,
+                                CLASS_STRING, CLASS_TYPE) +
+                methodBody(AUGMENTED_MAP_GET_VALUE, null, null,
+                           EIGHT_SPACE_INDENTATION, null, null, false) +
+                methodClose(FOUR_SPACE);
     }
 
     /**
@@ -1417,17 +1219,13 @@
      *
      * @return implementation of get YANG augment info
      */
-    static String getYangAugmentInfoMapInterface(YangPluginConfig pluginConfig) {
-        return getJavaDoc(GETTER_METHOD,
-                          getSmallCase(YANG_AUGMENTED_INFO) + MAP, false,
-                          pluginConfig, null) + FOUR_SPACE_INDENTATION + MAP +
-                DIAMOND_OPEN_BRACKET +
-                CLASS_STRING + DIAMOND_OPEN_BRACKET +
-                QUESTION_MARK + DIAMOND_CLOSE_BRACKET + COMMA + SPACE +
-                OBJECT_STRING + DIAMOND_CLOSE_BRACKET +
-                SPACE + getSmallCase(YANG_AUGMENTED_INFO) + MAP +
-                OPEN_PARENTHESIS +
-                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+    static String getYangAugmentInfoMapInterface() {
+        return NEW_LINE +
+                getJavaDoc(GETTER_METHOD, YANG_AUGMENTED_INFO_LOWER_CASE + MAP,
+                           false, null) +
+                methodSignature(YANG_AUGMENTED_INFO_LOWER_CASE + MAP,
+                                EMPTY_STRING, null, null,
+                                getAugmentMapTypeString(), null, INTERFACE_TYPE);
     }
 
     /**
@@ -1436,17 +1234,12 @@
      * @return implementation of get YANG augment info
      */
     static String getYangAugmentInfoMapImpl() {
-        return getOverRideString() + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
-                MAP + DIAMOND_OPEN_BRACKET + CLASS_STRING +
-                DIAMOND_OPEN_BRACKET + QUESTION_MARK +
-                DIAMOND_CLOSE_BRACKET + COMMA + SPACE + OBJECT_STRING +
-                DIAMOND_CLOSE_BRACKET + SPACE +
-                getSmallCase(YANG_AUGMENTED_INFO) + MAP + OPEN_PARENTHESIS +
-                CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
-                EIGHT_SPACE_INDENTATION +
-                RETURN + SPACE + getSmallCase(YANG_AUGMENTED_INFO) + MAP +
-                SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET + NEW_LINE;
+        return getOverRideString() + methodSignature(
+                YANG_AUGMENTED_INFO_LOWER_CASE + MAP, EMPTY_STRING, PUBLIC, null,
+                getAugmentMapTypeString(), null, CLASS_TYPE) +
+                methodBody(AUGMENTED_MAP_GETTER, null, null,
+                           EIGHT_SPACE_INDENTATION, null, null, false) +
+                methodClose(FOUR_SPACE);
     }
 
     /**
@@ -1456,146 +1249,108 @@
      * @return enum's constructor
      */
     static String getEnumsConstructor(String className) {
-        return FOUR_SPACE_INDENTATION + className + OPEN_PARENTHESIS + INT +
-                SPACE + VALUE + COMMA + SPACE + STRING_DATA_TYPE + SPACE +
-                STR_VAL + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
-                NEW_LINE + EIGHT_SPACE_INDENTATION +
-                getSmallCase(className) + SPACE + EQUAL + SPACE + VALUE +
-                SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION + SCHEMA_NAME +
-                SPACE + EQUAL + SPACE + STR_VAL + SEMI_COLAN + NEW_LINE +
-                FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET;
+        StringBuilder builder = new StringBuilder();
+        String clsName = getSmallCase(className);
+        LinkedHashMap<String, String> map = new LinkedHashMap<>();
+        map.put(INT, clsName);
+        map.put(STRING_DATA_TYPE, SCHEMA_NAME);
+        builder.append(multiAttrMethodSignature(className, EMPTY_STRING,
+                                                EMPTY_STRING, null,
+                                                map, CLASS_TYPE))
+                .append(methodBody(SETTER, clsName, EMPTY_STRING,
+                                   EIGHT_SPACE_INDENTATION, EMPTY_STRING,
+                                   EMPTY_STRING, false))
+                .append(methodBody(SETTER, SCHEMA_NAME, EMPTY_STRING,
+                                   EIGHT_SPACE_INDENTATION, EMPTY_STRING,
+                                   EMPTY_STRING, false))
+                .append(methodClose(FOUR_SPACE));
+
+        return builder.toString();
     }
 
     /**
      * Returns of method for enum class.
      *
-     * @param className    class name
-     * @param pluginConfig plugin configurations
+     * @param className class name
+     * @param type      method body type
      * @return of method
      */
     static String getEnumsOfValueMethod(String className,
                                         YangEnumeration enumeration,
-                                        YangPluginConfig pluginConfig) {
-
-        String method =
-                FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE +
-                        getCapitalCase(className) + SPACE + OF +
-                        OPEN_PARENTHESIS + INT + SPACE + VALUE +
-                        CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
-                        NEW_LINE + EIGHT_SPACE_INDENTATION + SWITCH + SPACE +
-                        OPEN_PARENTHESIS + VALUE + CLOSE_PARENTHESIS + SPACE +
-                        OPEN_CURLY_BRACKET + NEW_LINE;
-        int value;
+                                        MethodBodyTypes type) {
+        String name = getCapitalCase(className);
+        StringBuilder builder = new StringBuilder(getJavaDoc(
+                OF_METHOD, name + SPACE + FOR,
+                false, null));
+        //Switch statement.
+        String sw = EIGHT_SPACE_INDENTATION + SWITCH + SPACE + brackets(
+                OPEN_CLOSE_BRACKET_WITH_VALUE, VALUE, null) +
+                methodSignatureClose(CLASS_TYPE);
         String str;
-        for (YangEnum yangEnum : enumeration.getEnumSet()) {
-            value = yangEnum.getValue();
-            str = getEnumJavaAttribute(yangEnum.getNamedValue()).toUpperCase();
-            method = method + TWELVE_SPACE_INDENTATION + CASE + SPACE + value +
-                    COLON + NEW_LINE + SIXTEEN_SPACE_INDENTATION + RETURN +
-                    SPACE + getCapitalCase(className) + PERIOD + str +
-                    SEMI_COLAN + NEW_LINE;
-        }
-        method = method + TWELVE_SPACE_INDENTATION + DEFAULT + SPACE + COLON +
-                NEW_LINE + SIXTEEN_SPACE_INDENTATION + RETURN + SPACE + NULL +
-                SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET + NEW_LINE + FOUR_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET;
-
-        return getJavaDoc(OF_METHOD, getCapitalCase(className) + " for value",
-                          false, pluginConfig, null) + method;
-    }
-
-    /**
-     * Returns of method with string value for enum class.
-     *
-     * @param enumName enum class name
-     * @return of method with string value for enum class
-     */
-    static String getEnumValueOfSchemaNameMethod(String enumName,
-                                                 YangPluginConfig pluginConfig,
-                                                 YangEnumeration enumeration) {
-
-        String method =
-                FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE +
-                        getCapitalCase(enumName) + SPACE + OF +
-                        OPEN_PARENTHESIS + STRING_DATA_TYPE + SPACE + VALUE +
-                        CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
-                        NEW_LINE + EIGHT_SPACE_INDENTATION + SWITCH + SPACE +
-                        OPEN_PARENTHESIS + VALUE + CLOSE_PARENTHESIS + SPACE +
-                        OPEN_CURLY_BRACKET + NEW_LINE;
-        String value;
-        for (YangEnum yangEnum : enumeration.getEnumSet()) {
-
-            value = getEnumJavaAttribute(yangEnum.getNamedValue())
-                    .toUpperCase();
-            method = method + TWELVE_SPACE_INDENTATION + CASE + SPACE + QUOTES +
-                    yangEnum.getNamedValue() + QUOTES + COLON + NEW_LINE +
-                    SIXTEEN_SPACE_INDENTATION + RETURN + SPACE +
-                    getCapitalCase(enumName) + PERIOD + value + SEMI_COLAN +
-                    NEW_LINE;
-        }
-        method = method + TWELVE_SPACE_INDENTATION + DEFAULT + SPACE + COLON +
-                NEW_LINE + SIXTEEN_SPACE_INDENTATION + RETURN + SPACE + NULL +
-                SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET + NEW_LINE + FOUR_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET;
-
-        return getJavaDoc(OF_METHOD, getCapitalCase(enumName) + " for " +
-                SCHEMA_NAME, false, pluginConfig, null) + method;
-    }
-
-    /**
-     * Returns from string method parsed string.
-     *
-     * @param targetDataType target data type
-     * @param yangType       YANG type
-     * @return parsed string
-     */
-    private static String getParseFromStringMethod(String targetDataType,
-                                                   YangType<?> yangType) {
-        YangDataTypes type = yangType.getDataType();
-
         switch (type) {
-            case INT8:
-                return BYTE_WRAPPER + PERIOD + PARSE_BYTE;
-            case INT16:
-                return SHORT_WRAPPER + PERIOD + PARSE_SHORT;
-            case INT32:
-                return INTEGER_WRAPPER + PERIOD + PARSE_INT;
-            case INT64:
-                return LONG_WRAPPER + PERIOD + PARSE_LONG;
-            case UINT8:
-                return SHORT_WRAPPER + PERIOD + PARSE_SHORT;
-            case UINT16:
-                return INTEGER_WRAPPER + PERIOD + PARSE_INT;
-            case UINT32:
-                return LONG_WRAPPER + PERIOD + PARSE_LONG;
-            case UINT64:
-                return NEW + SPACE + BIG_INTEGER;
-            case DECIMAL64:
-                return NEW + SPACE + BIG_DECIMAL;
-            case STRING:
-            case IDENTITYREF:
-                return EMPTY_STRING;
-            case EMPTY:
-            case BOOLEAN:
-                return BOOLEAN_WRAPPER + PERIOD + PARSE_BOOLEAN;
-            case BITS:
-            case UNION:
-            case ENUMERATION:
-            case DERIVED:
-                return targetDataType + PERIOD + FROM_STRING_METHOD_NAME;
+            case ENUM_METHOD_INT_VALUE:
+                builder.append(getEnumValueMethodSignature(name, INT))
+                        .append(sw);
+                for (YangEnum yangEnum : enumeration.getEnumSet()) {
+                    str = getEnumJavaAttribute(yangEnum.getNamedValue())
+                            .toUpperCase();
+                    builder.append(getEnumValueMethodCases(
+                            EMPTY_STRING + yangEnum.getValue(), str, name));
+                }
+                break;
+            case ENUM_METHOD_STRING_VALUE:
+                builder.append(getEnumValueMethodSignature(name,
+                                                           STRING_DATA_TYPE))
+                        .append(sw);
+                for (YangEnum yangEnum : enumeration.getEnumSet()) {
+                    str = getEnumJavaAttribute(yangEnum.getNamedValue())
+                            .toUpperCase();
+                    builder.append(getEnumValueMethodCases(
+                            QUOTES + yangEnum.getNamedValue() + QUOTES, str,
+                            name));
+                }
+                break;
             default:
-                throw new TranslatorException("given data type is not " +
-                                                      "supported. " +
-                                                      yangType.getDataTypeName() +
-                                                      " in " +
-                                                      yangType.getLineNumber() +
-                                                      " at " +
-                                                      yangType.getCharPosition() +
-                                                      " in " +
-                                                      yangType.getFileName());
+                return null;
         }
+
+        String method = TWELVE_SPACE_INDENTATION + DEFAULT + SPACE + COLON +
+                NEW_LINE;
+        builder.append(method)
+                .append(getReturnString(NULL, SIXTEEN_SPACE_INDENTATION))
+                .append(signatureClose())
+                .append(methodClose(EIGHT_SPACE))
+                .append(methodClose(FOUR_SPACE));
+
+        return builder.toString();
+    }
+
+    /**
+     * Returns enum value method signature.
+     *
+     * @param name method name
+     * @param type param type
+     * @return enum value method signature
+     */
+    private static String getEnumValueMethodSignature(String name, String type) {
+        return methodSignature(OF, EMPTY_STRING, PUBLIC + SPACE +
+                STATIC, VALUE, name, type, CLASS_TYPE);
+    }
+
+    /**
+     * Returns enum value method's cases.
+     *
+     * @param caseType case type
+     * @param value    return value
+     * @param name     name of class
+     * @return enum value method's cases
+     */
+    private static String getEnumValueMethodCases(String caseType, String value,
+                                                  String name) {
+        return TWELVE_SPACE_INDENTATION + CASE + SPACE + caseType +
+                COLON + NEW_LINE + getReturnString(name,
+                                                   SIXTEEN_SPACE_INDENTATION) +
+                PERIOD + value + signatureClose();
     }
 
     /**
@@ -1625,13 +1380,14 @@
                         ((JavaFileInfoContainer) methodNode).getJavaFileInfo()
                                 .getJavaName();
             } else {
-                curNodeName = getCapitalCase(getCamelCase(methodNode.getName(),
-                                                          pluginConfig.getConflictResolver()));
+                curNodeName = getCapitalCase(
+                        getCamelCase(methodNode.getName(),
+                                     pluginConfig.getConflictResolver()));
             }
             returnType =
                     getAugmentedClassNameForDataMethods(augmentedNode, parent);
-            parentName = getParentNodeNameForDataMethods(augmentedNode,
-                                                         pluginConfig);
+            parentName = getCurNodeName(augmentedNode,
+                                        pluginConfig);
             method = generateForGetMethodWithAttribute(returnType) +
                     getGetMethodWithArgument(returnType, AUGMENTED +
                             parentName + getCapitalCase(curNodeName)) + NEW_LINE;
@@ -1640,7 +1396,7 @@
             method = getJavaDoc(MANAGER_SETTER_METHOD,
                                 AUGMENTED + getCapitalCase(parentName) +
                                         getCapitalCase(curNodeName), false,
-                                pluginConfig, null) +
+                                null) +
                     getSetterForInterface(getSmallCase(AUGMENTED) + parentName +
                                                   getCapitalCase(curNodeName),
                                           returnType, parentName, false,
@@ -1664,84 +1420,57 @@
         } else {
             newType = INT;
         }
-        String method = generateForValidatorMethod() + FOUR_SPACE_INDENTATION +
-                PRIVATE + SPACE + BOOLEAN_DATA_TYPE + SPACE + VALIDATE_RANGE +
-                OPEN_PARENTHESIS + type + SPACE + MIN_RANGE + COMMA + SPACE +
-                type + SPACE + MAX_RANGE + COMMA + SPACE + newType + SPACE +
-                VALUE + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET +
-                NEW_LINE;
+        StringBuilder builder = new StringBuilder(generateForValidatorMethod());
+        String var = getSmallCase(BIG_INTEGER);
+        LinkedHashMap<String, String> map = new LinkedHashMap<>();
+        map.put(MIN_RANGE, type);
+        map.put(MAX_RANGE, type);
+        map.put(VALUE, newType);
+        builder.append(multiAttrMethodSignature(VALIDATE_RANGE, EMPTY_STRING,
+                                                PRIVATE, BOOLEAN_DATA_TYPE, map,
+                                                CLASS_TYPE));
         if (type.contentEquals(BIG_INTEGER)) {
-            method = method + EIGHT_SPACE_INDENTATION + BIG_INTEGER + SPACE +
-                    getSmallCase(BIG_INTEGER) + SPACE + EQUAL + SPACE + NEW +
-                    SPACE + BIG_INTEGER + OPEN_PARENTHESIS + QUOTES + SPACE +
-                    QUOTES + SPACE + ADD + SPACE + VALUE + CLOSE_PARENTHESIS +
-                    SEMI_COLAN + NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN +
-                    SPACE + getSmallCase(BIG_INTEGER) + PERIOD + "compareTo" +
-                    OPEN_PARENTHESIS + MIN_RANGE + CLOSE_PARENTHESIS + SPACE +
-                    EQUAL + EQUAL + " 1" + SPACE + AND +
-                    AND + SPACE + getSmallCase(BIG_INTEGER) + PERIOD +
-                    "compareTo" + OPEN_PARENTHESIS + MAX_RANGE +
-                    CLOSE_PARENTHESIS + SPACE + EQUAL + EQUAL + " 1" +
-                    SEMI_COLAN + NEW_LINE;
+            //Create new instance of big integer.
+            builder.append(getNewInstance(BIG_INTEGER, var, EIGHT_SPACE_INDENTATION,
+                                          QUOTES + SPACE + QUOTES + SPACE +
+                                                  ADD + SPACE + VALUE))
+                    //Add return string.
+                    .append(getReturnString(var, EIGHT_SPACE_INDENTATION))
+                    //Add compareTo string
+                    .append(getCompareToString())
+                    //Add && condition.
+                    .append(ifAndAndCondition(
+                            //Add == condition
+                            ifEqualEqualCondition(
+                                    brackets(OPEN_CLOSE_BRACKET_WITH_VALUE,
+                                             MIN_RANGE, null), ONE),
+                            var))
+                    //Add compareTo string.
+                    .append(getCompareToString())
+                    //Add == condition.
+                    .append(ifEqualEqualCondition(
+                            brackets(OPEN_CLOSE_BRACKET_WITH_VALUE,
+                                     MAX_RANGE, null), ONE))
+                    .append(signatureClose());
         } else {
-            method = method + EIGHT_SPACE_INDENTATION + RETURN + SPACE + VALUE +
-                    SPACE + DIAMOND_CLOSE_BRACKET + EQUAL + SPACE + MIN_RANGE +
-                    SPACE + AND + AND + SPACE + VALUE + SPACE +
-                    DIAMOND_OPEN_BRACKET + EQUAL + SPACE + MAX_RANGE +
-                    SEMI_COLAN + NEW_LINE;
+            builder.append(getReturnString(VALUE, EIGHT_SPACE_INDENTATION))
+                    .append(getGreaterThanCondition())
+                    .append(ifAndAndCondition(MIN_RANGE, VALUE))
+                    .append(getLesserThanCondition())
+                    .append(MAX_RANGE)
+                    .append(signatureClose());
         }
-        return method + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
-    }
-
-    /**
-     * Returns if condition string for typedef constructor.
-     *
-     * @param type     type of conflict
-     * @param addFirst true int/long need to be added first
-     * @return if condition string for typedef constructor
-     */
-    private static String ifConditionForIntInTypeDefConstructor(ValidatorTypeForUnionTypes type,
-                                                                boolean addFirst) {
-        String condition =
-                EIGHT_SPACE_INDENTATION + IF + SPACE + OPEN_PARENTHESIS +
-                        VALIDATE_RANGE + OPEN_PARENTHESIS;
-
-        if (type == INT_TYPE_CONFLICT) {
-            if (addFirst) {
-                condition = condition + INT_MIN_RANGE + COMMA + SPACE +
-                        INT_MAX_RANGE + COMMA + SPACE + VALUE;
-            } else {
-                condition = condition + UINT_MIN_RANGE + COMMA + SPACE +
-                        UINT_MAX_RANGE + COMMA + SPACE + VALUE;
-            }
-        } else if (type == SHORT_TYPE_CONFLICT) {
-            if (addFirst) {
-                condition = condition + SHORT_MIN_RANGE + COMMA + SPACE +
-                        SHORT_MAX_RANGE + COMMA + SPACE + VALUE;
-            } else {
-                condition = condition + UINT8_MIN_RANGE + COMMA + SPACE +
-                        UINT8_MAX_RANGE + COMMA + SPACE + VALUE;
-            }
-        } else {
-            if (addFirst) {
-                condition = condition + LONG_MIN_RANGE + COMMA + SPACE +
-                        LONG_MAX_RANGE + COMMA + SPACE + VALUE;
-            } else {
-                condition = condition + ULONG_MIN_RANGE + COMMA + SPACE +
-                        ULONG_MAX_RANGE + COMMA + SPACE + VALUE;
-            }
-        }
-        return condition + CLOSE_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
-                OPEN_CURLY_BRACKET + NEW_LINE;
+        builder.append(methodClose(FOUR_SPACE));
+        return builder.toString();
     }
 
     //Get method with arguments.
     private static String getGetMethodWithArgument(String returnType,
                                                    String yangName) {
-        return FOUR_SPACE_INDENTATION + returnType + SPACE + GET_METHOD_PREFIX +
-                getCapitalCase(yangName) + OPEN_PARENTHESIS + returnType +
-                OP_PARAM + SPACE + getSmallCase(returnType) +
-                CLOSE_PARENTHESIS + SEMI_COLAN;
+        return methodSignature(getCapitalCase(yangName), GET_METHOD_PREFIX,
+                               null, getSmallCase(returnType),
+                               returnType, returnType + OP_PARAM,
+                               INTERFACE_TYPE);
     }
 
     /**
@@ -1753,39 +1482,54 @@
      */
     public static String getAddToListMethodInterface(JavaAttributeInfo attr,
                                                      String className) {
-        return FOUR_SPACE_INDENTATION + className + BUILDER + SPACE +
-                ADD_STRING + getCapitalCase(TO) +
-                getCapitalCase(attr.getAttributeName()) + OPEN_PARENTHESIS +
-                getReturnType(attr) + SPACE +
-                VALUE + CLOSE_PARENTHESIS + SEMI_COLAN;
+
+        return methodSignature(ADD_STRING + TO_CAPS + getCapitalCase(
+                attr.getAttributeName()), EMPTY_STRING, EMPTY_STRING,
+                               ADD_STRING + TO_CAPS,
+                               className + BUILDER, getReturnType(attr),
+                               INTERFACE_TYPE);
     }
 
     /**
      * Returns add to list method impl.
      *
-     * @param attr                   java attribute
-     * @param generatedJavaClassName class name
-     * @param isRoot                 is root
+     * @param attr   java attribute
+     * @param name   class name
+     * @param isRoot is root
      * @return add to list method impl
      */
     public static String getAddToListMethodImpl(JavaAttributeInfo attr,
-                                                String generatedJavaClassName,
+                                                String name,
                                                 boolean isRoot) {
+        String attrName = attr.getAttributeName();
         String retString = "";
         if (!isRoot) {
             retString = getOverRideString();
         }
-        return retString + FOUR_SPACE_INDENTATION + PUBLIC + SPACE +
-                generatedJavaClassName + BUILDER + SPACE + ADD_STRING +
-                getCapitalCase(TO) + getCapitalCase(attr.getAttributeName()) +
-                OPEN_PARENTHESIS + getReturnType(attr) + SPACE + VALUE +
-                CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET + NEW_LINE +
-                EIGHT_SPACE_INDENTATION + attr.getAttributeName() +
-                OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD + ADD_STRING +
-                OPEN_PARENTHESIS + VALUE + CLOSE_PARENTHESIS + SEMI_COLAN +
-                NEW_LINE + EIGHT_SPACE_INDENTATION + RETURN + SPACE + THIS +
-                SEMI_COLAN + NEW_LINE + FOUR_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET;
+        StringBuilder builder = new StringBuilder(retString);
+        builder.append(methodSignature(ADD_STRING + TO_CAPS +
+                                               getCapitalCase(attrName),
+                                       EMPTY_STRING, PUBLIC, ADD_STRING + TO_CAPS,
+                                       name + BUILDER, getReturnType(attr),
+                                       CLASS_TYPE))
+                .append(getIfConditionForAddToListMethod(attrName));
+        retString = EIGHT_SPACE_INDENTATION + attrName + PERIOD + ADD_STRING +
+                OPEN_PARENTHESIS + ADD_STRING + TO_CAPS + CLOSE_PARENTHESIS;
+        builder.append(retString)
+                .append(signatureClose())
+                .append(getReturnString(THIS, EIGHT_SPACE_INDENTATION))
+                .append(signatureClose())
+                .append(methodClose(FOUR_SPACE));
+        return builder.toString();
+    }
+
+    // Returns if condition for add to list method.
+    static String getIfConditionForAddToListMethod(String name) {
+        return getIfConditionBegin(EIGHT_SPACE_INDENTATION, name + SPACE + EQUAL +
+                EQUAL + SPACE + NULL) + TWELVE_SPACE_INDENTATION +
+                name + SPACE + EQUAL + SPACE +
+                NEW + SPACE + ARRAY_LIST + signatureClose() + methodClose(
+                EIGHT_SPACE);
     }
 
     /**
@@ -1795,15 +1539,14 @@
      * @return builder method for class
      */
     static String builderMethod(String name) {
-        return NEW_LINE + generateForBuilderMethod(name) +
-                FOUR_SPACE_INDENTATION + PUBLIC + SPACE + STATIC + SPACE +
-                name + BUILDER + SPACE + getSmallCase(BUILDER) +
-                OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SPACE +
-                OPEN_CURLY_BRACKET + NEW_LINE + EIGHT_SPACE_INDENTATION +
-                RETURN + SPACE + NEW + SPACE + name +
-                BUILDER + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN +
-                NEW_LINE + FOUR_SPACE_INDENTATION +
-                CLOSE_CURLY_BRACKET;
+        return generateForBuilderMethod(name) +
+                methodSignature(BUILDER_LOWER_CASE,
+                                EMPTY_STRING, PUBLIC + SPACE +
+                                        STATIC, null, name + BUILDER, null, CLASS_TYPE) +
+                getReturnString(NEW + SPACE + name + BUILDER,
+                                EIGHT_SPACE_INDENTATION) +
+                brackets(OPEN_CLOSE_BRACKET, null, null) + signatureClose() +
+                methodClose(FOUR_SPACE);
     }
 
     /**
@@ -1813,7 +1556,7 @@
      * @return is filter content match interface
      */
     static String processSubtreeFilteringInterface(String name) {
-        String method = "    /**\n" +
+        String method = "   /**\n" +
                 "     * Checks if the passed " + name +
                 " maps the content match query condition.\n" +
                 "     *\n" +
@@ -1824,11 +1567,13 @@
                 "     * @param isSelectAllSchemaChild is select all schema child\n" +
                 "     * @return match result\n" +
                 "     */\n";
-        return method + FOUR_SPACE_INDENTATION + name + SPACE +
-                PROCESS_SUBTREE_FILTERING + OPEN_PARENTHESIS +
-                name + SPACE + getSmallCase(name) + COMMA + SPACE +
-                BOOLEAN_DATA_TYPE + SPACE + "isSelectAllSchemaChild" +
-                CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+        LinkedHashMap<String, String> map = new LinkedHashMap<>();
+        map.put(name, getSmallCase(name));
+        map.put(BOOLEAN_DATA_TYPE, SELECT_ALL_CHILD);
+
+        return method + multiAttrMethodSignature(PROCESS_SUBTREE_FILTERING,
+                                                 EMPTY_STRING, EMPTY_STRING,
+                                                 name, map, INTERFACE_TYPE);
     }
 
     /**
@@ -1836,16 +1581,16 @@
      *
      * @return is value set interface
      */
-        static String isLeafValueSetInterface() {
-        String method = "    /**\n" +
+    static String isLeafValueSetInterface() {
+        String method = "\n    /**\n" +
                 "     * Checks if the leaf value is set.\n" +
                 "     *\n" +
                 "     * @param leaf leaf whose value status needs to checked\n" +
                 "     * @return result of leaf value set in object\n" +
                 "     */\n";
-        return method + FOUR_SPACE_INDENTATION + BOOLEAN_DATA_TYPE + SPACE +
-                VALUE_LEAF_SET + OPEN_PARENTHESIS + LEAF_IDENTIFIER + SPACE +
-                "leaf" + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+        return method + methodSignature(VALUE_LEAF_SET, EMPTY_STRING, null,
+                                        LEAF, BOOLEAN_DATA_TYPE,
+                                        LEAF_IDENTIFIER, INTERFACE_TYPE);
     }
 
     /**
@@ -1854,15 +1599,15 @@
      * @return is select leaf set interface
      */
     static String isSelectLeafSetInterface() {
-        String method = "    /**\n" +
+        String method = "\n    /**\n" +
                 "     * Checks if the leaf is set to be a selected leaf.\n" +
                 "     *\n" +
                 "     * @param leaf if leaf needs to be selected\n" +
                 "     * @return result of leaf value set in object\n" +
                 "     */\n";
-        return method + FOUR_SPACE_INDENTATION + BOOLEAN_DATA_TYPE + SPACE +
-                IS_SELECT_LEAF + OPEN_PARENTHESIS + LEAF_IDENTIFIER + SPACE +
-                "leaf" + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
+        return method + methodSignature(IS_SELECT_LEAF, EMPTY_STRING, null,
+                                        LEAF, BOOLEAN_DATA_TYPE, LEAF_IDENTIFIER,
+                                        INTERFACE_TYPE);
     }
 
     /**
@@ -1878,9 +1623,10 @@
                 "     * @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;
+        return method + methodSignature(SET_SELECT_LEAF, EMPTY_STRING,
+                                        null, LEAF, name +
+                                                BUILDER, LEAF_IDENTIFIER,
+                                        INTERFACE_TYPE) + NEW_LINE;
     }
 
     /**
@@ -1890,7 +1636,7 @@
      * @return leaf identifier interface enum signature
      */
     static String getInterfaceLeafIdEnumSignature(String name) {
-        String start = "    /**\n" +
+        String start = "\n    /**\n" +
                 "     * Identify the leaf of " + name + PERIOD + NEW_LINE +
                 "     */\n";
         return start + FOUR_SPACE_INDENTATION + PUBLIC + SPACE + ENUM + SPACE +
@@ -1898,69 +1644,6 @@
     }
 
     /**
-     * Returns interface leaf identifier enum method.
-     *
-     * @return interface leaf identifier enum method
-     */
-    static String getInterfaceLeafIdEnumMethods() {
-        return "        private int leafIndex;\n" +
-                "\n" +
-                "        public int getLeafIndex() {\n" +
-                "            return leafIndex;\n" +
-                "        }\n" +
-                "\n" +
-                "        LeafIdentifier(int value) {\n" +
-                "            this.leafIndex = value;\n" +
-                "        }\n" +
-                "    }\n";
-    }
-
-    /**
-     * Returns getter methods for operation attributes.
-     *
-     * @return getter methods for operation attributes
-     */
-    static String getOperationAttributesGetters() {
-        return "\n" +
-                "    /**\n" +
-                "     * Returns the valueLeafFlags.\n" +
-                "     *\n" +
-                "     * @return value of valueLeafFlags\n" +
-                "     */\n" +
-                "    public BitSet getValueLeafFlags() {\n" +
-                "        return valueLeafFlags;\n" +
-                "    }\n" +
-                "\n" +
-                "    /**\n" +
-                "     * Returns the selectLeafFlags.\n" +
-                "     *\n" +
-                "     * @return value of selectLeafFlags\n" +
-                "     */\n" +
-                "    public BitSet getSelectLeafFlags() {\n" +
-                "        return selectLeafFlags;\n" +
-                "    }\n" +
-                "\n";
-    }
-
-    /**
-     * Returns getters for value and select leaf.
-     *
-     * @return getters for value and select leaf
-     */
-    static String getGettersForValueAndSelectLeaf() {
-        return "\n" +
-                "    @Override\n" +
-                "    public boolean isLeafValueSet(LeafIdentifier leaf) {\n" +
-                "        return getValueLeafFlags().get(leaf.getLeafIndex());\n" +
-                "    }\n" +
-                "\n" +
-                "    @Override\n" +
-                "    public boolean isSelectLeaf(LeafIdentifier leaf) {\n" +
-                "        return getSelectLeafFlags().get(leaf.getLeafIndex());\n" +
-                "    }\n";
-    }
-
-    /**
      * Returns setter for select leaf.
      *
      * @param name       name of node
@@ -1980,37 +1663,4 @@
                 "        return this;\n" +
                 "    }\n";
     }
-
-    private static String getListAttribute(String attrType,
-                                           YangCompilerAnnotation compilerAnnotation) {
-        String listAttr;
-        if (compilerAnnotation != null &&
-                compilerAnnotation.getYangAppDataStructure() != null) {
-            switch (compilerAnnotation.getYangAppDataStructure()
-                    .getDataStructure()) {
-                case QUEUE: {
-                    listAttr = QUEUE + DIAMOND_OPEN_BRACKET + attrType +
-                            DIAMOND_CLOSE_BRACKET;
-                    break;
-                }
-                case SET: {
-                    listAttr = SET + DIAMOND_OPEN_BRACKET + attrType +
-                            DIAMOND_CLOSE_BRACKET;
-                    break;
-                }
-                case LIST: {
-                    listAttr = getListString() + attrType +
-                            DIAMOND_CLOSE_BRACKET;
-                    break;
-                }
-                default: {
-                    listAttr = getListString() + attrType +
-                            DIAMOND_CLOSE_BRACKET;
-                }
-            }
-        } else {
-            listAttr = getListString() + attrType + DIAMOND_CLOSE_BRACKET;
-        }
-        return listAttr;
-    }
 }