[ONOS-4144] ,[ONOS-4145] Bug fixes for YANG translator.

Change-Id: I6922c01269611b3aec61a9e46cda5166f8fe1ec0
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 271d698..a5f0e88 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
@@ -122,8 +122,14 @@
             String line = bufferReader.readLine();
 
             while (line != null) {
-                stringBuilder.append(UtilConstants.FOUR_SPACE_INDENTATION + line);
-                stringBuilder.append("\n");
+                if (line.equals(UtilConstants.FOUR_SPACE_INDENTATION)
+                        || line.equals(UtilConstants.EIGHT_SPACE_INDENTATION)
+                        || line.equals(UtilConstants.SPACE) || line.equals("") || line.equals(UtilConstants.NEW_LINE)) {
+                    stringBuilder.append("\n");
+                } else {
+                    stringBuilder.append(UtilConstants.FOUR_SPACE_INDENTATION + line);
+                    stringBuilder.append("\n");
+                }
                 line = bufferReader.readLine();
             }
             return stringBuilder.toString();
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 72bedf9..6461aa5 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
@@ -245,8 +245,8 @@
      * @return javaDocs
      */
     private static String generateForImplClass(String className) {
-        return UtilConstants.JAVA_DOC_FIRST_LINE + UtilConstants.IMPL_CLASS_JAVA_DOC + className + UtilConstants.PERIOD
-                + UtilConstants.NEW_LINE + UtilConstants.JAVA_DOC_END_LINE;
+        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;
     }
 
     /**
@@ -310,13 +310,15 @@
      * @return javaDocs
      */
     private static String generateForConstructors(String className) {
-        return 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
+        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
-                + className.substring(0, 1).toLowerCase() + className.substring(1) + UtilConstants.OBJECT
-                + UtilConstants.SPACE + UtilConstants.BUILDER_OBJECT + UtilConstants.SPACE + className
-                + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION + UtilConstants.JAVA_DOC_END_LINE;
+                + className.substring(0, 1).toLowerCase() + className.substring(1) + UtilConstants.BUILDER
+                + UtilConstants.OBJECT + UtilConstants.SPACE + UtilConstants.BUILDER_OBJECT + UtilConstants.SPACE
+                + className + UtilConstants.NEW_LINE + UtilConstants.FOUR_SPACE_INDENTATION
+                + UtilConstants.JAVA_DOC_END_LINE;
     }
 
     /**
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/TempDataStore.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/TempDataStore.java
deleted file mode 100644
index b3e9ff5..0000000
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/utils/io/impl/TempDataStore.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * Copyright 2016 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.onosproject.yangutils.utils.io.impl;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInput;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutput;
-import java.io.ObjectOutputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Provides storage for Temp data while traversing data model tree for code
- * generation.
- */
-public final class TempDataStore {
-
-    /**
-     * Data Store types.
-     */
-    public static enum TempDataStoreType {
-
-        /**
-         * Methods.
-         */
-        GETTER_METHODS,
-
-        /**
-         * Methods.
-         */
-        BUILDER_METHODS,
-
-        /**
-         * Methods.
-         */
-        BUILDER_INTERFACE_METHODS,
-
-        /**
-         * Methods.
-         */
-        IMPL_METHODS,
-
-        /**
-         * Attributes.
-         */
-        ATTRIBUTE,
-
-        /**
-         * Imports.
-         */
-        IMPORT
-    }
-
-    /**
-     * File name string for Temp files of methods.
-     */
-    private static final String GETTER_METHOD_FILE_NAME = "TempGetterMethodDataStore";
-
-    /**
-     * File name string for Temp files of methods.
-     */
-    private static final String BUILDER_METHOD_FILE_NAME = "TempBuilderMethodDataStore";
-
-    /**
-     * File name string for Temp files of methods.
-     */
-    private static final String BUILDER_INTERFACE_METHOD_FILE_NAME = "TempBuilderInterfaceMethodDataStore";
-
-    /**
-     * File name string for Temp files of methods.
-     */
-    private static final String IMPL_METHOD_FILE_NAME = "TempImplMethodDataStore";
-
-    /**
-     * File name string for Temp files of attributes.
-     */
-    private static final String ATTRIBUTE_FILE_NAME = "TempAttributeDataStore";
-
-    /**
-     * File name string for Temp files of imports.
-     */
-    private static final String IMPORT_FILE_NAME = "TempImportDataStore";
-
-    /**
-     * File extension of Temp files.
-     */
-    private static final String FILE_EXTENSION = ".tmp";
-
-    /**
-     * Directory for generating Temp files.
-     */
-    private static final String GEN_DIR = "target/";
-
-    /**
-     * Buffer size.
-     */
-    private static final int BUFFER_SIZE = 8 * 1024;
-
-    /**
-     * Default constructor.
-     */
-    private TempDataStore() {
-    }
-
-    /**
-     * Writes specific info to a Temp file.
-     *
-     * @param data data to be stored
-     * @param type type of Temp data store
-     * @param className class name
-     * @throws IOException when fails to create a Temp data file
-     */
-    public static void setTempData(String data, TempDataStoreType type, String className) throws IOException {
-
-        String fileName = "";
-        if (type.equals(TempDataStoreType.ATTRIBUTE)) {
-            fileName = ATTRIBUTE_FILE_NAME;
-        } else if (type.equals(TempDataStoreType.GETTER_METHODS)) {
-            fileName = GETTER_METHOD_FILE_NAME;
-        } else if (type.equals(TempDataStoreType.BUILDER_INTERFACE_METHODS)) {
-            fileName = BUILDER_INTERFACE_METHOD_FILE_NAME;
-        } else if (type.equals(TempDataStoreType.BUILDER_METHODS)) {
-            fileName = BUILDER_METHOD_FILE_NAME;
-        } else if (type.equals(TempDataStoreType.IMPL_METHODS)) {
-            fileName = IMPL_METHOD_FILE_NAME;
-        } else {
-            fileName = IMPORT_FILE_NAME;
-        }
-
-        File dir = new File(GEN_DIR + className + File.separator);
-        dir.mkdirs();
-        try {
-            OutputStream file = new FileOutputStream(GEN_DIR + className + File.separator + fileName + FILE_EXTENSION);
-            OutputStream buffer = new BufferedOutputStream(file, BUFFER_SIZE);
-
-            ObjectOutput output = new ObjectOutputStream(buffer);
-            try {
-                output.writeObject(data);
-            } finally {
-                output.close();
-            }
-        } catch (IOException ex) {
-            throw new IOException("failed to serialize data");
-        }
-    }
-
-    /**
-     * Get the Temp data.
-     *
-     * @param type type of Temp data store
-     * @param className name of the class
-     * @return list of attribute info
-     * @throws IOException when fails to read from the file
-     * @throws ClassNotFoundException when class is missing
-     * @throws FileNotFoundException when file is missing
-     */
-    public static List<String> getTempData(TempDataStoreType type, String className)
-            throws IOException, FileNotFoundException, ClassNotFoundException {
-
-        String fileName = "";
-        if (type.equals(TempDataStoreType.ATTRIBUTE)) {
-            fileName = ATTRIBUTE_FILE_NAME;
-        } else if (type.equals(TempDataStoreType.GETTER_METHODS)) {
-            fileName = GETTER_METHOD_FILE_NAME;
-        } else if (type.equals(TempDataStoreType.BUILDER_INTERFACE_METHODS)) {
-            fileName = BUILDER_INTERFACE_METHOD_FILE_NAME;
-        } else if (type.equals(TempDataStoreType.BUILDER_METHODS)) {
-            fileName = BUILDER_METHOD_FILE_NAME;
-        } else if (type.equals(TempDataStoreType.IMPL_METHODS)) {
-            fileName = IMPL_METHOD_FILE_NAME;
-        } else {
-            fileName = IMPORT_FILE_NAME;
-        }
-        try {
-            InputStream file = new FileInputStream(GEN_DIR + className + File.separator + fileName + FILE_EXTENSION);
-            InputStream buffer = new BufferedInputStream(file);
-            ObjectInput input = new ObjectInputStream(buffer);
-            try {
-                String data = (String) input.readObject();
-                List<String> recoveredData = new ArrayList<>();
-                recoveredData.add(data);
-                return recoveredData;
-            } finally {
-                input.close();
-                file.close();
-            }
-        } catch (FileNotFoundException ex) {
-            throw new FileNotFoundException("No such file or directory.");
-        } catch (ClassNotFoundException ex) {
-            throw new ClassNotFoundException("failed to fetch the Temp data file.");
-        }
-    }
-}
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 d410cfb..dfbb234 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
@@ -94,7 +94,8 @@
      * @param baseDir generated directory in previous build
      */
     public static void clean(String baseDir) {
-        File generatedDirectory = new File(baseDir + File.separator + UtilConstants.YANG_GEN_DIR);
+        File generatedDirectory = new File(baseDir + File.separator + UtilConstants.YANG_GEN_DIR
+                + UtilConstants.DEFAULT_BASE_PKG.replace(UtilConstants.PERIOD, UtilConstants.SLASH));
         if (generatedDirectory.exists()) {
             List<String> javafiles;
             try {
@@ -151,10 +152,11 @@
         String[] strArray = partString.split(UtilConstants.COMMA);
         String newString = "";
         for (int i = 0; i < strArray.length; i++) {
-            if (i % 4 != 0) {
+            if (i % 4 != 0 || i == 0) {
                 newString = newString + strArray[i] + UtilConstants.COMMA;
             } else {
-                newString = newString + UtilConstants.NEW_LINE + UtilConstants.TWELVE_SPACE_INDENTATION + strArray[i]
+                newString = newString + UtilConstants.NEW_LINE + UtilConstants.TWELVE_SPACE_INDENTATION
+                        + strArray[i]
                         + UtilConstants.COMMA;
             }
         }