[ONOS-4149],[ONOS-3909] YANG list translator impl and bug fixes.

Change-Id: Ia1a94142a3a114815766f661ed850bf9cacde66f
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/UtilConstants.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/UtilConstants.java
index 834b216..9f52cb7 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/UtilConstants.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/UtilConstants.java
@@ -83,7 +83,7 @@
     public static final String INSTANCE_OF = " instanceof ";
 
     public static final String VALUE = "value";
-    public static final String SUFIX_S = "s";
+    public static final String SUFFIX_S = "s";
 
     public static final String IF = "if";
     public static final String FOR = "for";
@@ -152,7 +152,7 @@
     /**
      * String built in java type.
      */
-    public static final String STRING = "String";
+    public static final String STRING_DATA_TYPE = "String";
     /**
      * java.lang.* packages.
      */
@@ -161,7 +161,7 @@
     /**
      * boolean built in java type.
      */
-    public static final String BOOLEAN = "boolean";
+    public static final String BOOLEAN_DATA_TYPE = "boolean";
 
     /**
      * byte java built in type.
@@ -229,8 +229,7 @@
     public static final String DOUBLE_WRAPPER = "Double";
 
     /**
-     * List of keywords in java, this is used for checking if the input does not
-     * contain these keywords.
+     * List of keywords in java, this is used for checking if the input does not contain these keywords.
      */
     public static final List JAVA_KEY_WORDS = Arrays.asList("abstract", "assert", "boolean", "break", "byte", "case",
             "catch", "char", "class", "const", "continue", "default", "do", "double", "else", "extends", "false",
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/CopyrightHeader.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/CopyrightHeader.java
index 2b5c72c..c3cdabd 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/CopyrightHeader.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/CopyrightHeader.java
@@ -24,12 +24,16 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 
+import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
+
 /**
  * Provides the license header for the generated files.
  */
 public final class CopyrightHeader {
 
     private static final int EOF = -1;
+    private static final String COPYRIGHT_HEADER_FILE = "CopyrightHeader.txt";
+    private static final String TEMP_FILE = "temp.txt";
     private static ClassLoader classLoader = CopyrightHeader.class.getClassLoader();
 
     private static String copyrightHeader;
@@ -47,6 +51,7 @@
      * @throws IOException when fails to parse copyright header
      */
     public static String getCopyrightHeader() throws IOException {
+
         if (copyrightHeader == null) {
             parseCopyrightHeader();
         }
@@ -59,6 +64,7 @@
      * @param header copyright header
      */
     private static void setCopyrightHeader(String header) {
+
         copyrightHeader = header;
     }
 
@@ -69,11 +75,12 @@
      */
     public static void parseCopyrightHeader() throws IOException {
 
-        File temp = new File("temp.txt");
+        File temp = new File(TEMP_FILE);
 
         try {
-            InputStream stream = classLoader.getResourceAsStream("CopyrightHeader.txt");
+            InputStream stream = classLoader.getResourceAsStream(COPYRIGHT_HEADER_FILE);
             OutputStream out = new FileOutputStream(temp);
+
             int index;
             while ((index = stream.read()) != EOF) {
                 out.write(index);
@@ -98,18 +105,20 @@
      */
     private static String getStringFileContent(File toAppend) throws IOException {
 
-        BufferedReader bufferReader = new BufferedReader(new FileReader(toAppend));
+        FileReader fileReader = new FileReader(toAppend);
+        BufferedReader bufferReader = new BufferedReader(fileReader);
         try {
             StringBuilder stringBuilder = new StringBuilder();
             String line = bufferReader.readLine();
 
             while (line != null) {
                 stringBuilder.append(line);
-                stringBuilder.append("\n");
+                stringBuilder.append(NEW_LINE);
                 line = bufferReader.readLine();
             }
             return stringBuilder.toString();
         } finally {
+            fileReader.close();
             bufferReader.close();
         }
     }
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/FileSystemUtil.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/FileSystemUtil.java
index f44da54..3c312fb 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/FileSystemUtil.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/FileSystemUtil.java
@@ -23,7 +23,17 @@
 import java.io.IOException;
 import java.io.PrintWriter;
 
-import org.onosproject.yangutils.utils.UtilConstants;
+import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.MULTIPLE_NEW_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
+import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.addPackageInfo;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.convertPathToPkg;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.convertPkgToPath;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.createDirectories;
 
 /**
  * Utility to handle file system operations.
@@ -44,8 +54,8 @@
      */
     public static boolean doesPackageExist(String pkg) {
 
-        File pkgDir = new File(pkg.replace(UtilConstants.PERIOD, UtilConstants.SLASH));
-        File pkgWithFile = new File(pkgDir + File.separator + "package-info.java");
+        File pkgDir = new File(convertPkgToPath(pkg));
+        File pkgWithFile = new File(pkgDir + SLASH + "package-info.java");
         if (pkgDir.exists() && pkgWithFile.isFile()) {
             return true;
         }
@@ -63,8 +73,8 @@
 
         if (!doesPackageExist(pkg)) {
             try {
-                File pack = YangIoUtils.createDirectories(pkg);
-                YangIoUtils.addPackageInfo(pack, pkgInfo, pkg.replace(UtilConstants.SLASH, UtilConstants.PERIOD));
+                File pack = createDirectories(pkg);
+                addPackageInfo(pack, pkgInfo, convertPathToPkg(pkg));
             } catch (IOException e) {
                 throw new IOException("failed to create package-info file");
             }
@@ -83,9 +93,7 @@
      */
     public static void appendFileContents(File toAppend, File srcFile) throws IOException {
 
-        updateFileHandle(srcFile,
-                UtilConstants.NEW_LINE + readAppendFile(toAppend.toString(), UtilConstants.FOUR_SPACE_INDENTATION),
-                false);
+        updateFileHandle(srcFile, NEW_LINE + readAppendFile(toAppend.toString(), FOUR_SPACE_INDENTATION), false);
         return;
     }
 
@@ -106,15 +114,14 @@
             String line = bufferReader.readLine();
 
             while (line != null) {
-                if (line.equals(UtilConstants.SPACE) | line.equals(UtilConstants.EMPTY_STRING)
-                        | line.equals(UtilConstants.EIGHT_SPACE_INDENTATION)
-                        | line.equals(UtilConstants.MULTIPLE_NEW_LINE)) {
-                    stringBuilder.append(UtilConstants.NEW_LINE);
-                } else if (line.equals(UtilConstants.FOUR_SPACE_INDENTATION)) {
-                    stringBuilder.append(UtilConstants.EMPTY_STRING);
+                if (line.equals(SPACE) | line.equals(EMPTY_STRING) | line.equals(EIGHT_SPACE_INDENTATION)
+                        | line.equals(MULTIPLE_NEW_LINE)) {
+                    stringBuilder.append(NEW_LINE);
+                } else if (line.equals(FOUR_SPACE_INDENTATION)) {
+                    stringBuilder.append(EMPTY_STRING);
                 } else {
                     stringBuilder.append(spaces + line);
-                    stringBuilder.append(UtilConstants.NEW_LINE);
+                    stringBuilder.append(NEW_LINE);
                 }
                 line = bufferReader.readLine();
             }
@@ -131,9 +138,8 @@
      * @param inputFile input file
      * @param contentTobeAdded content to be appended to the file
      * @param isClose when close of file is called.
-     * @throws IOException if the named file exists but is a directory rather
-     *             than a regular file, does not exist but cannot be created, or
-     *             cannot be opened for any other reason
+     * @throws IOException if the named file exists but is a directory rather than a regular file,
+     * does not exist but cannot be created, or cannot be opened for any other reason
      */
     public static void updateFileHandle(File inputFile, String contentTobeAdded, boolean isClose) throws IOException {
 
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
index 922348a..2c9c242 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
@@ -19,6 +19,36 @@
 import org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax;
 import org.onosproject.yangutils.utils.UtilConstants;
 
+import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
+import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_CLASS_JAVA_DOC;
+import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_INTERFACE_JAVA_DOC;
+import static org.onosproject.yangutils.utils.UtilConstants.BUILDER_OBJECT;
+import static org.onosproject.yangutils.utils.UtilConstants.FOUR_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.IMPL;
+import static org.onosproject.yangutils.utils.UtilConstants.IMPL_CLASS_JAVA_DOC;
+import static org.onosproject.yangutils.utils.UtilConstants.INTERFACE_JAVA_DOC;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_BUILD_RETURN;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_CONSTRUCTOR;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_DEFAULT_CONSTRUCTOR;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_END_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_FIRST_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_GETTERS;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_OF;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_PARAM;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_RETURN;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS;
+import static org.onosproject.yangutils.utils.UtilConstants.JAVA_DOC_SETTERS_COMMON;
+import static org.onosproject.yangutils.utils.UtilConstants.LIST;
+import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE_ESTRIC;
+import static org.onosproject.yangutils.utils.UtilConstants.OBJECT;
+import static org.onosproject.yangutils.utils.UtilConstants.OF;
+import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE_INFO_JAVADOC;
+import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
+import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
+import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
+
 /**
  * Provides javadoc for the generated classes.
  */
@@ -63,17 +93,17 @@
         /**
          * For getters.
          */
-        GETTER,
+        GETTER_METHOD,
 
         /**
          * For setters.
          */
-        SETTER,
+        SETTER_METHOD,
 
         /**
          * For type def's setters.
          */
-        TYPE_DEF_SETTER,
+        TYPE_DEF_SETTER_METHOD,
 
         /**
          * For type def's constructor.
@@ -83,7 +113,7 @@
         /**
          * For of method.
          */
-        OF,
+        OF_METHOD,
 
         /**
          * For default constructor.
@@ -98,7 +128,7 @@
         /**
          * For build.
          */
-        BUILD
+        BUILD_METHOD
     }
 
     /**
@@ -110,8 +140,9 @@
      * @return javadocs.
      */
     public static String getJavaDoc(JavaDocType type, String name, boolean isList) {
+
         name = JavaIdentifierSyntax.getLowerCase(JavaIdentifierSyntax.getCamelCase(name));
-        String javaDoc = "";
+        String javaDoc = UtilConstants.EMPTY_STRING;
         if (type.equals(JavaDocType.IMPL_CLASS)) {
             javaDoc = generateForImplClass(name);
         } else if (type.equals(JavaDocType.BUILDER_CLASS)) {
@@ -122,19 +153,19 @@
             javaDoc = generateForBuilderInterface(name);
         } else if (type.equals(JavaDocType.PACKAGE_INFO)) {
             javaDoc = generateForPackage(name);
-        } else if (type.equals(JavaDocType.GETTER)) {
+        } else if (type.equals(JavaDocType.GETTER_METHOD)) {
             javaDoc = generateForGetters(name, isList);
-        } else if (type.equals(JavaDocType.TYPE_DEF_SETTER)) {
+        } else if (type.equals(JavaDocType.TYPE_DEF_SETTER_METHOD)) {
             javaDoc = generateForTypeDefSetter(name);
         } else if (type.equals(JavaDocType.TYPE_DEF_CONSTRUCTOR)) {
             javaDoc = generateForTypeDefConstructor(name);
-        } else if (type.equals(JavaDocType.SETTER)) {
+        } else if (type.equals(JavaDocType.SETTER_METHOD)) {
             javaDoc = generateForSetters(name, isList);
-        } else if (type.equals(JavaDocType.OF)) {
+        } else if (type.equals(JavaDocType.OF_METHOD)) {
             javaDoc = generateForOf(name);
         } else if (type.equals(JavaDocType.DEFAULT_CONSTRUCTOR)) {
             javaDoc = generateForDefaultConstructors();
-        } else if (type.equals(JavaDocType.BUILD)) {
+        } else if (type.equals(JavaDocType.BUILD_METHOD)) {
             javaDoc = generateForBuild(name);
         } else {
             javaDoc = generateForConstructors(name);
@@ -150,19 +181,18 @@
      * @return javaDocs
      */
     private static String generateForGetters(String attribute, boolean isList) {
-        String getter = UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
-                + UtilConstants.JAVA_DOC_FIRST_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_GETTERS + attribute
-                + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
-                + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN;
+
+        String getter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
+                + JAVA_DOC_GETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC
+                + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN;
         if (isList) {
-            String listAttribute = UtilConstants.LIST.toLowerCase() + UtilConstants.SPACE + UtilConstants.OF
-                    + UtilConstants.SPACE;
+            String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
             getter = getter + listAttribute;
+        } else {
+            getter = getter + VALUE + SPACE + OF + SPACE;
         }
 
-        getter = getter + attribute + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
-                + UtilConstants.JAVA_DOC_END_LINE;
+        getter = getter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
         return getter;
     }
 
@@ -174,23 +204,18 @@
      * @return javaDocs
      */
     private static String generateForSetters(String attribute, boolean isList) {
-        String setter = UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
-                + UtilConstants.JAVA_DOC_FIRST_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_SETTERS + attribute
-                + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
-                + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM;
+
+        String setter = NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
+                + JAVA_DOC_SETTERS + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC
+                + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + attribute + SPACE;
         if (isList) {
-            setter = setter + attribute + UtilConstants.SUFIX_S + UtilConstants.SPACE;
-            String listAttribute = UtilConstants.LIST.toLowerCase() + UtilConstants.SPACE + UtilConstants.OF
-                    + UtilConstants.SPACE;
+            String listAttribute = LIST.toLowerCase() + SPACE + OF + SPACE;
             setter = setter + listAttribute;
         } else {
-            setter = setter + attribute + UtilConstants.SPACE;
+            setter = setter + VALUE + SPACE + OF + SPACE;
         }
-
-        setter = setter + attribute + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
-                + UtilConstants.JAVA_DOC_RETURN + UtilConstants.BUILDER_OBJECT + attribute + UtilConstants.NEW_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+        setter = setter + attribute + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + BUILDER_OBJECT + attribute
+                + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
         return setter;
     }
 
@@ -201,14 +226,12 @@
      * @return javaDocs
      */
     private static String generateForOf(String attribute) {
-        return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_OF + attribute
-                + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
-                + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM
-                + UtilConstants.VALUE + UtilConstants.SPACE + UtilConstants.VALUE + UtilConstants.NEW_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN + UtilConstants.OBJECT
-                + UtilConstants.SPACE + UtilConstants.OF + UtilConstants.SPACE + attribute + UtilConstants.NEW_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+
+        return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_OF
+                + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC + FOUR_SPACE_INDENTATION
+                + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
+                + FOUR_SPACE_INDENTATION + JAVA_DOC_RETURN + OBJECT + SPACE + OF + SPACE + attribute + NEW_LINE
+                + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
     }
 
     /**
@@ -218,12 +241,11 @@
      * @return javaDocs
      */
     private static String generateForTypeDefSetter(String attribute) {
-        return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_SETTERS_COMMON + attribute
-                + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
-                + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM
-                + UtilConstants.VALUE + UtilConstants.SPACE + UtilConstants.VALUE + UtilConstants.NEW_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+
+        return (NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION
+                + JAVA_DOC_SETTERS_COMMON + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC
+                + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute
+                + NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE);
     }
 
     /**
@@ -233,12 +255,11 @@
      * @return javaDocs
      */
     private static String generateForTypeDefConstructor(String attribute) {
-        return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_CONSTRUCTOR + attribute
-                + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
-                + UtilConstants.NEW_LINE_ESTRIC + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM
-                + UtilConstants.VALUE + UtilConstants.SPACE + UtilConstants.VALUE + UtilConstants.NEW_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+
+        return (NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR
+                + attribute + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC + FOUR_SPACE_INDENTATION
+                + JAVA_DOC_PARAM + VALUE + SPACE + VALUE + SPACE + OF + SPACE + attribute + NEW_LINE
+                + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE);
     }
 
     /**
@@ -248,8 +269,8 @@
      * @return javaDocs
      */
     private static String generateForImplClass(String className) {
-        return UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.IMPL_CLASS_JAVA_DOC
-                + className + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE;
+
+        return NEW_LINE + JAVA_DOC_FIRST_LINE + IMPL_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
     }
 
     /**
@@ -259,8 +280,9 @@
      * @return javaDocs
      */
     private static String generateForBuilderClass(String className) {
-        return UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.BUILDER_CLASS_JAVA_DOC
-                + className + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE;
+
+        return NEW_LINE + JAVA_DOC_FIRST_LINE + BUILDER_CLASS_JAVA_DOC + className + PERIOD + NEW_LINE
+                + JAVA_DOC_END_LINE;
     }
 
     /**
@@ -270,8 +292,9 @@
      * @return javaDocs
      */
     private static String generateForInterface(String interfaceName) {
-        return UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.INTERFACE_JAVA_DOC
-                + interfaceName + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE;
+
+        return NEW_LINE + JAVA_DOC_FIRST_LINE + INTERFACE_JAVA_DOC + interfaceName + PERIOD + NEW_LINE
+                + JAVA_DOC_END_LINE;
     }
 
     /**
@@ -281,8 +304,9 @@
      * @return javaDocs
      */
     private static String generateForBuilderInterface(String builderforName) {
-        return UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.BUILDER_INTERFACE_JAVA_DOC + builderforName
-                + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE;
+
+        return JAVA_DOC_FIRST_LINE + BUILDER_INTERFACE_JAVA_DOC + builderforName + PERIOD + NEW_LINE
+                + JAVA_DOC_END_LINE;
     }
 
     /**
@@ -292,8 +316,8 @@
      * @return javaDocs
      */
     private static String generateForPackage(String packageName) {
-        return UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.PACKAGE_INFO_JAVADOC + packageName
-                + UtilConstants.PERIOD + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE;
+
+        return JAVA_DOC_FIRST_LINE + PACKAGE_INFO_JAVADOC + packageName + PERIOD + NEW_LINE + JAVA_DOC_END_LINE;
     }
 
     /**
@@ -302,9 +326,9 @@
      * @return javaDocs
      */
     private static String generateForDefaultConstructors() {
-        return UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_DEFAULT_CONSTRUCTOR
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+
+        return FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_DEFAULT_CONSTRUCTOR
+                + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
     }
 
     /**
@@ -314,14 +338,12 @@
      * @return javaDocs
      */
     private static String generateForConstructors(String className) {
-        return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_CONSTRUCTOR + className
-                + UtilConstants.IMPL + UtilConstants.PERIOD + UtilConstants.NEW_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.NEW_LINE_ESTRIC
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_PARAM
-                + UtilConstants.BUILDER.toLowerCase() + UtilConstants.OBJECT + UtilConstants.SPACE
-                + UtilConstants.BUILDER_OBJECT + UtilConstants.SPACE + className + UtilConstants.NEW_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+
+        return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE
+                + FOUR_SPACE_INDENTATION + JAVA_DOC_CONSTRUCTOR + className + IMPL + PERIOD + NEW_LINE
+                + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC + FOUR_SPACE_INDENTATION + JAVA_DOC_PARAM
+                + BUILDER.toLowerCase() + OBJECT + SPACE + BUILDER_OBJECT + SPACE + className + NEW_LINE
+                + FOUR_SPACE_INDENTATION + JAVA_DOC_END_LINE;
     }
 
     /**
@@ -331,11 +353,10 @@
      * @return javaDocs
      */
     private static String generateForBuild(String buildName) {
-        return UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_FIRST_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_BUILD + buildName + UtilConstants.PERIOD
-                + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.NEW_LINE_ESTRIC
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_RETURN
-                + UtilConstants.JAVA_DOC_BUILD_RETURN + buildName + UtilConstants.PERIOD + UtilConstants.NEW_LINE
-                + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+
+        return NEW_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_FIRST_LINE + FOUR_SPACE_INDENTATION + JAVA_DOC_BUILD
+                + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION + NEW_LINE_ESTRIC + FOUR_SPACE_INDENTATION
+                + JAVA_DOC_RETURN + JAVA_DOC_BUILD_RETURN + buildName + PERIOD + NEW_LINE + FOUR_SPACE_INDENTATION
+                + JAVA_DOC_END_LINE;
     }
 }
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangFileScanner.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangFileScanner.java
index 54adce9..9de5358 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangFileScanner.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangFileScanner.java
@@ -23,10 +23,13 @@
 import java.util.Stack;
 
 /**
- * Provides the IO services for Yangutils-maven-Plugin.
+ * Provides utility for searching the files in a directory.
  */
 public final class YangFileScanner {
 
+    private static final String JAVA_FILE_EXTENTION = ".java";
+    private static final String YANG_FILE_EXTENTION = ".yang";
+
     /**
      * Default constructor.
      */
@@ -44,7 +47,7 @@
      */
     public static List<String> getJavaFiles(String root) throws NullPointerException, IOException {
 
-        return getFiles(root, ".java");
+        return getFiles(root, JAVA_FILE_EXTENTION);
     }
 
     /**
@@ -58,7 +61,7 @@
      */
     public static List<String> getYangFiles(String root) throws NullPointerException, IOException {
 
-        return getFiles(root, ".yang");
+        return getFiles(root, YANG_FILE_EXTENTION);
     }
 
     /**
@@ -68,8 +71,7 @@
      * @param extension file extension
      * @return list of required files
      * @throws NullPointerException when no file is there
-     * @throws IOException when files get deleted while performing the
-     *             operations
+     * @throws IOException when files get deleted while performing the operations
      */
     public static List<String> getFiles(String root, String extension) throws NullPointerException, IOException {
 
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
index fcc52e8..866ff97 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/YangIoUtils.java
@@ -25,13 +25,27 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.io.FileUtils;
 import org.apache.maven.model.Resource;
 import org.apache.maven.project.MavenProject;
-import org.onosproject.yangutils.utils.UtilConstants;
 import org.slf4j.Logger;
 import org.sonatype.plexus.build.incremental.BuildContext;
 
+import static org.apache.commons.io.FileUtils.deleteDirectory;
+import static org.onosproject.yangutils.utils.UtilConstants.COMMA;
+import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
+import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
+import static org.onosproject.yangutils.utils.UtilConstants.ORG;
+import static org.onosproject.yangutils.utils.UtilConstants.PACKAGE;
+import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
+import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
+import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
+import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
+import static org.onosproject.yangutils.utils.UtilConstants.TEMP;
+import static org.onosproject.yangutils.utils.UtilConstants.TWELVE_SPACE_INDENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.YANG_RESOURCES;
+import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.appendFileContents;
+import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.updateFileHandle;
+import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.PACKAGE_INFO;
 import static org.slf4j.LoggerFactory.getLogger;
 
 /**
@@ -40,8 +54,7 @@
 public final class YangIoUtils {
 
     private static final Logger log = getLogger(YangIoUtils.class);
-    private static final String TARGET_RESOURCE_PATH = UtilConstants.SLASH + UtilConstants.TEMP + UtilConstants.SLASH
-            + UtilConstants.YANG_RESOURCES + UtilConstants.SLASH;
+    private static final String TARGET_RESOURCE_PATH = SLASH + TEMP + SLASH + YANG_RESOURCES + SLASH;
 
     /**
      * Default constructor.
@@ -72,22 +85,24 @@
      */
     public static void addPackageInfo(File path, String classInfo, String pack) throws IOException {
 
-        if (pack.contains(UtilConstants.ORG)) {
-            String[] strArray = pack.split(UtilConstants.ORG);
-            pack = UtilConstants.ORG + strArray[1];
+        if (pack.contains(ORG)) {
+            String[] strArray = pack.split(ORG);
+            pack = ORG + strArray[1];
         }
         try {
 
-            File packageInfo = new File(path + File.separator + "package-info.java");
+            File packageInfo = new File(path + SLASH + "package-info.java");
             packageInfo.createNewFile();
-            FileWriter fileWriter = null;
-            BufferedWriter bufferedWriter = null;
-            fileWriter = new FileWriter(packageInfo);
-            bufferedWriter = new BufferedWriter(fileWriter);
+
+            FileWriter fileWriter = new FileWriter(packageInfo);
+            BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
+
             bufferedWriter.write(CopyrightHeader.getCopyrightHeader());
-            bufferedWriter.write(JavaDocGen.getJavaDoc(JavaDocGen.JavaDocType.PACKAGE_INFO, classInfo, false));
-            bufferedWriter.write(UtilConstants.PACKAGE + UtilConstants.SPACE + pack + UtilConstants.SEMI_COLAN);
+            bufferedWriter.write(JavaDocGen.getJavaDoc(PACKAGE_INFO, classInfo, false));
+            bufferedWriter.write(PACKAGE + SPACE + pack + SEMI_COLAN);
+
             bufferedWriter.close();
+            fileWriter.close();
         } catch (IOException e) {
             throw new IOException("Exception occured while creating package info file.");
         }
@@ -97,15 +112,16 @@
      * Cleans the generated directory if already exist in source folder.
      *
      * @param dir generated directory in previous build
+     * @throws IOException when failed to delete directory
      */
-    public static void clean(String dir) {
+    public static void clean(String dir) throws IOException {
 
         File generatedDirectory = new File(dir);
         if (generatedDirectory.exists()) {
             try {
-                FileUtils.deleteDirectory(generatedDirectory);
+                deleteDirectory(generatedDirectory);
             } catch (IOException e) {
-                log.info("Failed to delete the generated files in " + generatedDirectory + " directory");
+                throw new IOException("Failed to delete the generated files in " + generatedDirectory + " directory");
             }
         }
     }
@@ -147,18 +163,17 @@
      */
     public static String partString(String partString) {
 
-        String[] strArray = partString.split(UtilConstants.COMMA);
-        String newString = "";
+        String[] strArray = partString.split(COMMA);
+        String newString = EMPTY_STRING;
         for (int i = 0; i < strArray.length; i++) {
             if (i % 4 != 0 || i == 0) {
-                newString = newString + strArray[i] + UtilConstants.COMMA;
+                newString = newString + strArray[i] + COMMA;
             } else {
-                newString = newString + UtilConstants.NEW_LINE + UtilConstants.TWELVE_SPACE_INDENTATION
-                        + strArray[i]
-                        + UtilConstants.COMMA;
+                newString = newString + NEW_LINE + TWELVE_SPACE_INDENTATION
+                        + strArray[i] + COMMA;
             }
         }
-        return trimAtLast(newString, UtilConstants.COMMA);
+        return trimAtLast(newString, COMMA);
     }
 
     /**
@@ -183,13 +198,13 @@
     public static String getDirectory(String baseCodeGenPath, String pathOfJavaPkg) {
 
         if (pathOfJavaPkg.charAt(pathOfJavaPkg.length() - 1) == File.separatorChar) {
-            pathOfJavaPkg = trimAtLast(pathOfJavaPkg, UtilConstants.SLASH);
+            pathOfJavaPkg = trimAtLast(pathOfJavaPkg, SLASH);
         }
-        String[] strArray = pathOfJavaPkg.split(UtilConstants.SLASH);
-        if (strArray[0].equals(UtilConstants.EMPTY_STRING)) {
+        String[] strArray = pathOfJavaPkg.split(SLASH);
+        if (strArray[0].equals(EMPTY_STRING)) {
             return pathOfJavaPkg;
         } else {
-            return baseCodeGenPath + File.separator + pathOfJavaPkg;
+            return baseCodeGenPath + SLASH + pathOfJavaPkg;
         }
     }
 
@@ -212,8 +227,7 @@
      * @param yangFiles list of YANG files
      * @param outputDir project's output directory
      * @param project maven project
-     * @throws IOException when fails to copy files to destination resource
-     *             directory
+     * @throws IOException when fails to copy files to destination resource directory
      */
     public static void copyYangFilesToTarget(List<String> yangFiles, String outputDir, MavenProject project)
             throws IOException {
@@ -226,11 +240,11 @@
 
         for (File file : files) {
             Files.copy(file.toPath(),
-                    new File(path + file.getName()).toPath(),
+                    (new File(path + file.getName())).toPath(),
                     StandardCopyOption.REPLACE_EXISTING);
         }
         Resource rsc = new Resource();
-        rsc.setDirectory(outputDir + UtilConstants.SLASH + UtilConstants.TEMP + UtilConstants.SLASH);
+        rsc.setDirectory(outputDir + SLASH + TEMP + SLASH);
         project.addResource(rsc);
     }
 
@@ -248,4 +262,58 @@
         }
         return files;
     }
+
+    /**
+     * Merge the temp java files to main java files.
+     *
+     * @param appendFile temp file
+     * @param srcFile main file
+     * @throws IOException when fails to append contents
+     */
+    public static void mergeJavaFiles(File appendFile, File srcFile) throws IOException {
+
+        try {
+            appendFileContents(appendFile, srcFile);
+        } catch (IOException e) {
+            throw new IOException("Failed to append " + appendFile + " in " + srcFile);
+        }
+    }
+
+    /**
+     * Insert data in the generated file.
+     *
+     * @param file file in which need to be inserted
+     * @param data data which need to be inserted
+     * @throws IOException when fails to insert into file
+     */
+    public static void insertDataIntoJavaFile(File file, String data) throws IOException {
+
+        try {
+            updateFileHandle(file, data, false);
+        } catch (IOException e) {
+            throw new IOException("Failed to insert in " + file + "file");
+        }
+    }
+
+    /**
+     * Convert directory path in java package format.
+     *
+     * @param path directory path
+     * @return java package
+     */
+    public static String convertPathToPkg(String path) {
+
+        return path.replace(SLASH, PERIOD);
+    }
+
+    /**
+     * Convert java package in directory path format.
+     *
+     * @param pkg java package
+     * @return directory path
+     */
+    public static String convertPkgToPath(String pkg) {
+
+        return pkg.replace(PERIOD, SLASH);
+    }
 }