diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
index 7ae7b28..467ff8a 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
@@ -114,38 +114,31 @@
      * Information about the java files being generated.
      */
     private JavaFileInfo javaFileInfo;
-
     /**
      * Imported class info.
      */
     private JavaImportData javaImportData;
-
     /**
      * The variable which guides the types of temporary files generated using
      * the temporary generated file types mask.
      */
     private int generatedTempFiles;
-
     /**
      * Absolute path where the target java file needs to be generated.
      */
     private String absoluteDirPath;
-
     /**
      * Contains all the interface(s)/class name which will be extended by generated files.
      */
     private List<String> extendsList = new ArrayList<>();
-
     /**
      * File type extension for java classes.
      */
     private static final String JAVA_FILE_EXTENSION = ".java";
-
     /**
      * File type extension for temporary classes.
      */
     private static final String TEMP_FILE_EXTENSION = ".tmp";
-
     /**
      * Folder suffix for temporary files folder.
      */
@@ -175,17 +168,14 @@
      * File name for attributes.
      */
     private static final String ATTRIBUTE_FILE_NAME = "Attributes";
-
     /**
      * File name for to string method.
      */
     private static final String TO_STRING_METHOD_FILE_NAME = "ToString";
-
     /**
      * File name for hash code method.
      */
     private static final String HASH_CODE_METHOD_FILE_NAME = "HashCode";
-
     /**
      * File name for equals method.
      */
@@ -200,17 +190,14 @@
      * File name for interface java file name suffix.
      */
     private static final String INTERFACE_FILE_NAME_SUFFIX = EMPTY_STRING;
-
     /**
      * File name for builder interface file name suffix.
      */
     private static final String BUILDER_INTERFACE_FILE_NAME_SUFFIX = BUILDER + INTERFACE;
-
     /**
      * File name for builder class file name suffix.
      */
     private static final String BUILDER_CLASS_FILE_NAME_SUFFIX = BUILDER;
-
     /**
      * File name for impl class file name suffix.
      */
@@ -225,17 +212,14 @@
      * Java file handle for interface file.
      */
     private File interfaceJavaFileHandle;
-
     /**
      * Java file handle for builder interface file.
      */
     private File builderInterfaceJavaFileHandle;
-
     /**
      * Java file handle for builder class file.
      */
     private File builderClassJavaFileHandle;
-
     /**
      * Java file handle for impl class file.
      */
@@ -270,17 +254,14 @@
      * Temporary file handle for hash code method of class.
      */
     private File hashCodeImplTempFileHandle;
-
     /**
      * Temporary file handle for equals method of class.
      */
     private File equalsImplTempFileHandle;
-
     /**
      * Temporary file handle for to string method of class.
      */
     private File toStringImplTempFileHandle;
-
     /**
      * Temporary file handle for enum class file.
      */
@@ -295,17 +276,18 @@
      * Is attribute added.
      */
     private boolean isAttributePresent = false;
-
     /**
      * Current enum's value.
      */
     private int enumValue;
-
     /*
      * Java file handle for enum class.
      */
     private File enumClassJavaFileHandle;
 
+    public TempJavaFragmentFiles() {
+    }
+
     /**
      * Returns enum class java file handle.
      *
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaTypeFragmentFiles.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaTypeFragmentFiles.java
index b925d89..8af0ecd 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaTypeFragmentFiles.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaTypeFragmentFiles.java
@@ -60,7 +60,6 @@
      * File name for construction for special type like union, typedef.
      */
     private static final String CONSTRUCTOR_FOR_TYPE_FILE_NAME = "ConstructorForType";
-
     /**
      * File name for from string method.
      */
@@ -81,7 +80,6 @@
      * Temporary file handle for of string method of class.
      */
     private File ofStringImplTempFileHandle;
-
     /**
      * Temporary file handle for constructor for type class.
      */
@@ -96,7 +94,6 @@
      * Java file handle for typedef class file.
      */
     private File typedefClassJavaFileHandle;
-
     /**
      * Java file handle for type class like union, typedef file.
      */
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaNotification.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaNotification.java
index d463101..34c42e8 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaNotification.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaNotification.java
@@ -113,7 +113,7 @@
     public void generateCodeEntry(YangPluginConfig yangPlugin)
             throws IOException {
 
-        /*
+        /**
          * As part of the notification support the following files needs to be generated.
          * 1) Subject of the notification(event), this is simple interface with builder class.
          * 2) Event class extending "AbstractEvent" and defining event type enum.
@@ -121,18 +121,19 @@
          *
          * The manager class needs to extend the ListenerRegistry.
          */
+
+
+        // Generate subject of the notification(event), this is simple interface with builder class.
         generateCodeOfNode(this, yangPlugin);
     }
 
     /**
      * Creates a java file using the YANG notification info.
-     *
-     * @throws IOException input output operation fail
      */
     @Override
     public void generateCodeExit()
             throws IOException {
-        /*
+        /**
          * As part of the notification support the following files needs to be generated.
          * 1) Subject of the notification(event), this is simple interface with builder class.
          * 2) Event class extending "AbstractEvent" and defining event type enum.
