[ONOS-4711] Removed cyclic dependencies

Change-Id: I9ffea9a1a1b72f6ed3a23c0edb04cfc37bd8e48e
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGenerator.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGenerator.java
index 277038c..1e0b14f 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGenerator.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGenerator.java
@@ -17,7 +17,7 @@
 package org.onosproject.yangutils.translator.tojava;
 
 import org.onosproject.yangutils.translator.exception.TranslatorException;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 /**
  * Abstraction of an entity which provides Code generator functionalities.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaCodeGeneratorInfo.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorInfo.java
similarity index 81%
rename from utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaCodeGeneratorInfo.java
rename to utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorInfo.java
index 8dc0db5..6edd208 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaCodeGeneratorInfo.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorInfo.java
@@ -14,10 +14,7 @@
  * limitations under the License.
  */
 
-package org.onosproject.yangutils.translator.tojava.javamodel;
-
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
-import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
+package org.onosproject.yangutils.translator.tojava;
 
 /**
  * Represents YANG java info containing interface for java code generator, java
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
index a6eb9d7..fec42ca 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
@@ -20,7 +20,7 @@
 
 import org.onosproject.yangutils.datamodel.YangNode;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.TraversalType.CHILD;
 import static org.onosproject.yangutils.translator.tojava.TraversalType.PARENT;
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaFileInfo.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaFileInfo.java
index 28302ee..1c37e06 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaFileInfo.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaFileInfo.java
@@ -18,7 +18,7 @@
 
 import java.io.Serializable;
 
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 /**
  * Represents cached java file handle, which supports the addition of member attributes and
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfo.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfo.java
index 98e44f8..c7d4583 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfo.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaQualifiedTypeInfo.java
@@ -22,13 +22,13 @@
 import org.onosproject.yangutils.datamodel.YangNode;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.javamodel.JavaLeafInfoContainer;
-import org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDataType;
-import org.onosproject.yangutils.translator.tojava.utils.YangToJavaNamingConflictUtil;
+import org.onosproject.yangutils.translator.tojava.javamodel.AttributesJavaDataType;
+import org.onosproject.yangutils.utils.io.impl.YangToJavaNamingConflictUtil;
 
 import com.google.common.base.MoreObjects;
 
-import static org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDataType.getJavaImportClass;
-import static org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDataType.getJavaImportPackage;
+import static org.onosproject.yangutils.translator.tojava.javamodel.AttributesJavaDataType.getJavaImportClass;
+import static org.onosproject.yangutils.translator.tojava.javamodel.AttributesJavaDataType.getJavaImportPackage;
 
 /**
  * Represents the information about individual imports in the generated file.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaBeanFragmentFiles.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaBeanFragmentFiles.java
index 14f4cd2..9ae2986 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaBeanFragmentFiles.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaBeanFragmentFiles.java
@@ -19,7 +19,7 @@
 import java.io.File;
 import java.io.IOException;
 
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.CONSTRUCTOR_IMPL_MASK;
 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getConstructor;
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaCodeFragmentFiles.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaCodeFragmentFiles.java
index 309ee66..beb8de0 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaCodeFragmentFiles.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaCodeFragmentFiles.java
@@ -21,7 +21,7 @@
 import org.onosproject.yangutils.datamodel.YangNode;
 import org.onosproject.yangutils.datamodel.YangTypeHolder;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaEnumerationFragmentFiles.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaEnumerationFragmentFiles.java
index 2ab6f9d..238e01f 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaEnumerationFragmentFiles.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaEnumerationFragmentFiles.java
@@ -28,19 +28,19 @@
 import org.onosproject.yangutils.datamodel.YangNode;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaType;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.ENUM_IMPL_MASK;
 import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.generateEnumAttributeString;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateEnumClassFile;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getEnumJavaAttribute;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPrefixForIdentifier;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getPrefixForIdentifier;
 import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.closeFile;
 import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.REGEX_FOR_FIRST_DIGIT;
 import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUTO_PREFIX;
-import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.createPackage;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage;
 
 /**
  * Represents implementation of java code fragments temporary implementations.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
index 3c35a71..03ace2a 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaFragmentFiles.java
@@ -33,7 +33,7 @@
 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModule;
 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModule;
 import org.onosproject.yangutils.translator.tojava.utils.JavaExtendsListHolder;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.getParentNodeInGenCode;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK;
@@ -55,7 +55,7 @@
 import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData;
 import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedInfoOfFromString;
 import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedTypeInfoOfCurNode;
-import static org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDataType.updateJavaFileInfo;
+import static org.onosproject.yangutils.translator.tojava.javamodel.AttributesJavaDataType.updateJavaFileInfo;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaAttributeDefination;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaCodeSnippetGen.getJavaClassDefClose;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateBuilderClassFile;
@@ -63,9 +63,9 @@
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateImplClassFile;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateInterfaceFile;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getPackageDirPathFromJavaJPackage;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getBuildString;
 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getDefaultConstructorString;
@@ -104,7 +104,7 @@
 import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
 import static org.onosproject.yangutils.utils.UtilConstants.SERVICE;
 import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
-import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.createPackage;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage;
 import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.readAppendFile;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.GETTER_METHOD;
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaServiceFragmentFiles.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaServiceFragmentFiles.java
index 0d6215e..e5a7308 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaServiceFragmentFiles.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaServiceFragmentFiles.java
@@ -25,7 +25,7 @@
 import org.onosproject.yangutils.datamodel.YangNotification;
 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModule;
 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModule;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_CLASS;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE;
@@ -46,10 +46,10 @@
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateManagerClassFile;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateServiceInterfaceFile;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getEnumJavaAttribute;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getSmallCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getGetterForClass;
 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRpcManagerMethod;
 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getRpcServiceMethod;
@@ -67,7 +67,7 @@
 import static org.onosproject.yangutils.utils.UtilConstants.RPC_INPUT_VAR_NAME;
 import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
 import static org.onosproject.yangutils.utils.UtilConstants.VOID;
-import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.createPackage;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.generateJavaDocForRpc;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.ENUM_ATTRIBUTE;
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaTypeFragmentFiles.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaTypeFragmentFiles.java
index 930b6b4..989ac0c 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaTypeFragmentFiles.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/TempJavaTypeFragmentFiles.java
@@ -26,7 +26,7 @@
 import org.onosproject.yangutils.datamodel.YangTypeHolder;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaType;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPEDEF_CLASS;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_UNION_CLASS;
@@ -36,13 +36,13 @@
 import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateTypeDefClassFile;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGenerator.generateUnionClassFile;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getOfMethodStringAndJavaDoc;
 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getTypeConstructorStringAndJavaDoc;
 import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.closeFile;
 import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
-import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.createPackage;
+import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.createPackage;
 
 /**
  * Represents implementation of java data type code fragments temporary implementations.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/AttributesJavaDataType.java
similarity index 83%
rename from utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java
rename to utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/AttributesJavaDataType.java
index 19ed11d..a0840eb 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/AttributesJavaDataType.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/AttributesJavaDataType.java
@@ -14,10 +14,9 @@
  * limitations under the License.
  */
 
-package org.onosproject.yangutils.translator.tojava.utils;
+package org.onosproject.yangutils.translator.tojava.javamodel;
 
 import java.util.Stack;
-
 import org.onosproject.yangutils.datamodel.YangDataTypes;
 import org.onosproject.yangutils.datamodel.YangDerivedInfo;
 import org.onosproject.yangutils.datamodel.YangEnumeration;
@@ -26,48 +25,35 @@
 import org.onosproject.yangutils.datamodel.YangTypeDef;
 import org.onosproject.yangutils.datamodel.YangUnion;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
-import org.onosproject.yangutils.translator.tojava.javamodel.JavaCodeGeneratorInfo;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumeration;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModule;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModule;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaTypeDef;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaUnion;
+import org.onosproject.yangutils.utils.io.impl.YangToJavaNamingConflictUtil;
 
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCurNodePackage;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.getCurNodePackage;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
 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.BYTE;
 import static org.onosproject.yangutils.utils.UtilConstants.BYTE_WRAPPER;
-import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
-import static org.onosproject.yangutils.utils.UtilConstants.FROM_STRING_METHOD_NAME;
 import static org.onosproject.yangutils.utils.UtilConstants.INT;
 import static org.onosproject.yangutils.utils.UtilConstants.INTEGER_WRAPPER;
 import static org.onosproject.yangutils.utils.UtilConstants.JAVA_LANG;
 import static org.onosproject.yangutils.utils.UtilConstants.JAVA_MATH;
 import static org.onosproject.yangutils.utils.UtilConstants.LONG;
 import static org.onosproject.yangutils.utils.UtilConstants.LONG_WRAPPER;
-import static org.onosproject.yangutils.utils.UtilConstants.NEW;
-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.SHORT;
 import static org.onosproject.yangutils.utils.UtilConstants.SHORT_WRAPPER;
-import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
 import static org.onosproject.yangutils.utils.UtilConstants.STRING_DATA_TYPE;
 import static org.onosproject.yangutils.utils.UtilConstants.YANG_BINARY_CLASS;
 import static org.onosproject.yangutils.utils.UtilConstants.YANG_BITS_CLASS;
 import static org.onosproject.yangutils.utils.UtilConstants.YANG_DECIMAL64_CLASS;
 import static org.onosproject.yangutils.utils.UtilConstants.YANG_TYPES_PKG;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getPackageDirPathFromJavaJPackage;
 
 /**
  * Represents java data types info corresponding to YANG type.
@@ -121,51 +107,6 @@
     }
 
     /**
-     * Returns from string method parsed string.
-     *
-     * @param targetDataType target data type
-     * @param yangType       YANG type
-     * @return parsed string
-     */
-    public 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 STRING:
-                return EMPTY_STRING;
-            case EMPTY:
-            case BOOLEAN:
-                return BOOLEAN_WRAPPER + PERIOD + PARSE_BOOLEAN;
-            case DECIMAL64:
-            case BITS:
-            case BINARY:
-            case UNION:
-            case ENUMERATION:
-            case DERIVED:
-                return targetDataType + PERIOD + FROM_STRING_METHOD_NAME;
-            default:
-                throw new TranslatorException("given data type is not supported.");
-        }
-    }
-
-    /**
      * Returns java import class.
      *
      * @param yangType     YANG type
@@ -174,7 +115,7 @@
      * @return java import class
      */
     public static String getJavaImportClass(YangType<?> yangType, boolean isListAttr,
-            YangToJavaNamingConflictUtil pluginConfig) {
+                                            YangToJavaNamingConflictUtil pluginConfig) {
 
         YangDataTypes type = yangType.getDataType();
 
@@ -279,7 +220,7 @@
      * @return java import package
      */
     public static String getJavaImportPackage(YangType<?> yangType, boolean isListAttr,
-            YangToJavaNamingConflictUtil conflictResolver) {
+                                              YangToJavaNamingConflictUtil conflictResolver) {
 
         YangDataTypes type = yangType.getDataType();
 
@@ -425,7 +366,7 @@
      * @return java package from parent node
      */
     private static String getPackageFromParent(YangNode parent,
-            YangToJavaNamingConflictUtil conflictResolver) {
+                                               YangToJavaNamingConflictUtil conflictResolver) {
         if (!(parent instanceof JavaFileInfoContainer)) {
             throw new TranslatorException("invalid child node is being processed.");
         }
@@ -444,7 +385,7 @@
      * @param conflictResolver yang plugin config
      */
     public static void updateJavaFileInfo(YangNode yangNode,
-            YangToJavaNamingConflictUtil conflictResolver) {
+                                          YangToJavaNamingConflictUtil conflictResolver) {
         Stack<YangNode> nodesToUpdatePackage = new Stack<YangNode>();
 
         /*
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaLeafInfoContainer.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaLeafInfoContainer.java
index 3722ad3..c57e3c4 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaLeafInfoContainer.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaLeafInfoContainer.java
@@ -17,7 +17,7 @@
 
 import org.onosproject.yangutils.datamodel.YangType;
 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoContainer;
-import org.onosproject.yangutils.translator.tojava.utils.YangToJavaNamingConflictUtil;
+import org.onosproject.yangutils.utils.io.impl.YangToJavaNamingConflictUtil;
 
 /**
  * Represent java based identification of the YANG leaves.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaQualifiedTypeResolver.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaQualifiedTypeResolver.java
index 5b1e7c5..c85b1a2 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaQualifiedTypeResolver.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/JavaQualifiedTypeResolver.java
@@ -16,7 +16,7 @@
 package org.onosproject.yangutils.translator.tojava.javamodel;
 
 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfoContainer;
-import org.onosproject.yangutils.translator.tojava.utils.YangToJavaNamingConflictUtil;
+import org.onosproject.yangutils.utils.io.impl.YangToJavaNamingConflictUtil;
 
 /**
  * Represent java based identification of the YANG leaves.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaAugment.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaAugment.java
index 6ac0fb7..cc54b24 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaAugment.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaAugment.java
@@ -20,12 +20,13 @@
 import org.onosproject.yangutils.datamodel.YangAugment;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfAugmentableNode;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfAugmentableNode;
 
 /**
  * Represents augment information extended to support java code generation.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaCase.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaCase.java
index ba7bd01..4652fd4 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaCase.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaCase.java
@@ -20,12 +20,13 @@
 import org.onosproject.yangutils.datamodel.YangCase;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfAugmentableNode;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfAugmentableNode;
 
 /**
  * Represents case information extended to support java code generation.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaChoice.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaChoice.java
index 4096972..1e29349 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaChoice.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaChoice.java
@@ -20,12 +20,13 @@
 import org.onosproject.yangutils.datamodel.YangChoice;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.INTERFACE_MASK;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeAndUpdateInParent;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeAndUpdateInParent;
 
 /**
  * Represents choice information extended to support java code generation.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaContainer.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaContainer.java
index c056632..eac6291 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaContainer.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaContainer.java
@@ -20,12 +20,13 @@
 import org.onosproject.yangutils.datamodel.YangContainer;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeAndUpdateInParent;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeAndUpdateInParent;
 
 /**
  * Represents container information extended to support java code generation.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaEnumeration.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaEnumeration.java
index 16cabc2..2edd8d8 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaEnumeration.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaEnumeration.java
@@ -21,12 +21,13 @@
 import org.onosproject.yangutils.datamodel.YangEnumeration;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_ENUM_CLASS;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfNode;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfNode;
 
 /**
  * Represents YANG java enumeration information extended to support java code generation.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaGrouping.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaGrouping.java
index 8a90a44..808c4c1 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaGrouping.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaGrouping.java
@@ -20,11 +20,12 @@
 import org.onosproject.yangutils.datamodel.YangGrouping;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.updatePackageInfo;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.updatePackageInfo;
 
 /**
  * Represents grouping information extended to support java code generation.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaInput.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaInput.java
index db59174..7e6211a 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaInput.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaInput.java
@@ -21,12 +21,13 @@
 import org.onosproject.yangutils.datamodel.YangInput;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfAugmentableNode;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfAugmentableNode;
 
 /**
  * Represents input information extended to support java code generation.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeaf.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeaf.java
index 9f39dce..a9fa972 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeaf.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeaf.java
@@ -17,10 +17,10 @@
 
 import org.onosproject.yangutils.datamodel.YangLeaf;
 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
-import org.onosproject.yangutils.translator.tojava.utils.YangToJavaNamingConflictUtil;
+import org.onosproject.yangutils.utils.io.impl.YangToJavaNamingConflictUtil;
 
 import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.updateLeavesJavaQualifiedInfo;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
 
 /**
  * Represents java information corresponding to the YANG leaf.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeafList.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeafList.java
index 91c550f..c22a134 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeafList.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaLeafList.java
@@ -17,10 +17,10 @@
 
 import org.onosproject.yangutils.datamodel.YangLeafList;
 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
-import org.onosproject.yangutils.translator.tojava.utils.YangToJavaNamingConflictUtil;
+import org.onosproject.yangutils.utils.io.impl.YangToJavaNamingConflictUtil;
 
 import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.updateLeavesJavaQualifiedInfo;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
 
 /**
  * Represents java information corresponding to the YANG leaf-list.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaList.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaList.java
index 6f08b5d..e4a1997 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaList.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaList.java
@@ -20,12 +20,13 @@
 import org.onosproject.yangutils.datamodel.YangList;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeAndUpdateInParent;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeAndUpdateInParent;
 
 /**
  * Represents YANG list information extended to support java code generation.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangJavaModelUtils.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModelUtils.java
similarity index 89%
rename from utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangJavaModelUtils.java
rename to utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModelUtils.java
index 3f378c7..58eee77 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangJavaModelUtils.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModelUtils.java
@@ -14,24 +14,23 @@
  * limitations under the License.
  */
 
-package org.onosproject.yangutils.translator.tojava.utils;
+package org.onosproject.yangutils.translator.tojava.javamodel;
 
 import java.io.IOException;
-
 import org.onosproject.yangutils.datamodel.RpcNotificationContainer;
 import org.onosproject.yangutils.datamodel.YangCase;
 import org.onosproject.yangutils.datamodel.YangChoice;
 import org.onosproject.yangutils.datamodel.YangLeavesHolder;
 import org.onosproject.yangutils.datamodel.YangNode;
 import org.onosproject.yangutils.datamodel.YangTypeHolder;
+import org.onosproject.yangutils.datamodel.utils.DataModelUtils;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.javamodel.JavaCodeGeneratorInfo;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaEnumeration;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModule;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaSubModule;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.isRpcChildNodePresent;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_CLASS;
@@ -39,10 +38,10 @@
 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.TempJavaFragmentFiles.addCurNodeInfoInParentTempFile;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCurNodePackage;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
+import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getPackageDirPathFromJavaJPackage;
 
 /**
  * Represents utility class for YANG java model.
@@ -316,7 +315,7 @@
      * @throws IOException IO operations fails
      */
     public static void generateCodeOfRootNode(JavaCodeGeneratorInfo javaCodeGeneratorInfo,
-            YangPluginConfig yangPluginConfig, String rootPkg)
+                                              YangPluginConfig yangPluginConfig, String rootPkg)
             throws IOException {
         if (!(javaCodeGeneratorInfo instanceof YangNode)) {
             // TODO:throw exception
@@ -349,4 +348,26 @@
         javaCodeGeneratorInfo.getJavaFileInfo().addGeneratedFileTypes(GENERATE_EVENT_LISTENER_INTERFACE);
     }
 
+    /**
+     * Returns the node package string.
+     *
+     * @param curNode current java node whose package string needs to be set
+     * @return returns the root package string
+     */
+    public static String getCurNodePackage(YangNode curNode) {
+
+        String pkg;
+        if (!(curNode instanceof JavaFileInfoContainer)
+                || curNode.getParent() == null) {
+            throw new TranslatorException("missing parent node to get current node's package");
+        }
+
+        YangNode parentNode = DataModelUtils.getParentNodeInGenCode(curNode);
+        if (!(parentNode instanceof JavaFileInfoContainer)) {
+            throw new TranslatorException("missing parent java node to get current node's package");
+        }
+        JavaFileInfo parentJavaFileHandle = ((JavaFileInfoContainer) parentNode).getJavaFileInfo();
+        pkg = parentJavaFileHandle.getPackage() + PERIOD + parentJavaFileHandle.getJavaName();
+        return pkg.toLowerCase();
+    }
 }
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModule.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModule.java
index 1413f9c..b53ec92 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModule.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaModule.java
@@ -24,16 +24,17 @@
 import org.onosproject.yangutils.datamodel.YangNotification;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_CLASS;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfRootNode;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfRootNode;
 import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.searchAndDeleteTempDir;
 
 /**
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaNotification.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaNotification.java
index 68f8164..61eebfb 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaNotification.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaNotification.java
@@ -22,17 +22,18 @@
 import org.onosproject.yangutils.datamodel.YangNotification;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
 import org.onosproject.yangutils.translator.tojava.utils.JavaExtendsListHolder;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfAugmentableNode;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfAugmentableNode;
 import static org.onosproject.yangutils.utils.UtilConstants.EVENT_LISTENER_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.EVENT_STRING;
 
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaOutput.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaOutput.java
index dda3fc9..ce9ed6e 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaOutput.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaOutput.java
@@ -21,12 +21,13 @@
 import org.onosproject.yangutils.datamodel.YangOutput;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfAugmentableNode;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfAugmentableNode;
 
 /**
  * Represents output information extended to support java code generation.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaRpc.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaRpc.java
index f3730a2..fe72d18 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaRpc.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaRpc.java
@@ -26,19 +26,20 @@
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
 import org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.getParentNodeInGenCode;
 import static org.onosproject.yangutils.translator.tojava.JavaAttributeInfo.getAttributeInfoForTheData;
 import static org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo.getQualifiedTypeInfoOfCurNode;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.updatePackageInfo;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.updatePackageInfo;
 import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE;
 import static org.onosproject.yangutils.utils.UtilConstants.COMPONENT;
 import static org.onosproject.yangutils.utils.UtilConstants.DEACTIVATE;
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModule.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModule.java
index d838682..31abd5c 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModule.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModule.java
@@ -26,16 +26,17 @@
 import org.onosproject.yangutils.datamodel.YangSubModule;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_CLASS;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_LISTENER_INTERFACE;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_EVENT_SUBJECT_CLASS;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_SERVICE_AND_MANAGER;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfRootNode;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfRootNode;
 import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.searchAndDeleteTempDir;
 
 /**
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaType.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaType.java
index e537743..1a96a3a 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaType.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaType.java
@@ -18,8 +18,7 @@
 import org.onosproject.yangutils.datamodel.YangType;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
-import org.onosproject.yangutils.translator.tojava.utils.AttributesJavaDataType;
-import org.onosproject.yangutils.translator.tojava.utils.YangToJavaNamingConflictUtil;
+import org.onosproject.yangutils.utils.io.impl.YangToJavaNamingConflictUtil;
 
 /**
  * Represents java information corresponding to the YANG type.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeDef.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeDef.java
index 0124510..3d33f3d 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeDef.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaTypeDef.java
@@ -20,12 +20,13 @@
 import org.onosproject.yangutils.datamodel.YangTypeDef;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_TYPEDEF_CLASS;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfNode;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfNode;
 
 /**
  * Represents type define information extended to support java code generation.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUnion.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUnion.java
index eac8e52..cca3e4b 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUnion.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUnion.java
@@ -20,12 +20,13 @@
 import org.onosproject.yangutils.datamodel.YangUnion;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_UNION_CLASS;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.generateCodeOfNode;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.generateCodeOfNode;
 
 /**
  * Represents union information extended to support java code generation.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUses.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUses.java
index f6166a5..cef6202 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUses.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaUses.java
@@ -25,13 +25,14 @@
 import org.onosproject.yangutils.datamodel.YangUses;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.getParentNodeInGenCode;
 import static org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles.addCurNodeAsAttributeInTargetTempFile;
-import static org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils.updatePackageInfo;
+import static org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModelUtils.updatePackageInfo;
 
 /**
  * Represents uses information extended to support java code generation.
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ClassDefinitionGenerator.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ClassDefinitionGenerator.java
index dde4b03..69f6d3e 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ClassDefinitionGenerator.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ClassDefinitionGenerator.java
@@ -17,9 +17,9 @@
 package org.onosproject.yangutils.translator.tojava.utils;
 
 import org.onosproject.yangutils.datamodel.YangNode;
+import org.onosproject.yangutils.datamodel.YangNotification;
 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaNotification;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK;
@@ -75,7 +75,7 @@
      * / interface definition start.
      *
      * @param genFileTypes generated file type
-     * @param yangName class name
+     * @param yangName     class name
      * @return class definition
      */
     public static String generateClassDefinition(int genFileTypes, String yangName) {
@@ -85,19 +85,19 @@
          * class / interface definition start.
          */
         switch (genFileTypes) {
-        case BUILDER_CLASS_MASK:
-            return getBuilderClassDefinition(yangName);
-        case IMPL_CLASS_MASK:
-            return getImplClassDefinition(yangName);
-        case BUILDER_INTERFACE_MASK:
-            return getBuilderInterfaceDefinition(yangName);
-        case GENERATE_TYPEDEF_CLASS:
-        case GENERATE_UNION_CLASS:
-            return getTypeClassDefinition(yangName);
-        case GENERATE_ENUM_CLASS:
-            return getEnumClassDefinition(yangName);
-        default:
-            return null;
+            case BUILDER_CLASS_MASK:
+                return getBuilderClassDefinition(yangName);
+            case IMPL_CLASS_MASK:
+                return getImplClassDefinition(yangName);
+            case BUILDER_INTERFACE_MASK:
+                return getBuilderInterfaceDefinition(yangName);
+            case GENERATE_TYPEDEF_CLASS:
+            case GENERATE_UNION_CLASS:
+                return getTypeClassDefinition(yangName);
+            case GENERATE_ENUM_CLASS:
+                return getEnumClassDefinition(yangName);
+            default:
+                return null;
         }
     }
 
@@ -106,8 +106,8 @@
      * / interface definition start.
      *
      * @param genFileTypes generated file type
-     * @param yangName class name
-     * @param curNode current YANG node
+     * @param yangName     class name
+     * @param curNode      current YANG node
      * @return class definition
      */
     public static String generateClassDefinition(int genFileTypes, String yangName, YangNode curNode) {
@@ -117,19 +117,19 @@
          * class / interface definition start.
          */
         switch (genFileTypes) {
-        case INTERFACE_MASK:
-            return getInterfaceDefinition(yangName, curNode);
-        case GENERATE_SERVICE_AND_MANAGER:
-            return getRpcInterfaceDefinition(yangName, curNode);
-        case GENERATE_EVENT_CLASS:
-            String eventName = yangName + SUBJECT;
-            return getEventDefinition(yangName, eventName);
-        case GENERATE_EVENT_LISTENER_INTERFACE:
-            return getEventListenerDefinition(yangName);
-        case GENERATE_EVENT_SUBJECT_CLASS:
-            return getClassDefinition(yangName);
-        default:
-            return null;
+            case INTERFACE_MASK:
+                return getInterfaceDefinition(yangName, curNode);
+            case GENERATE_SERVICE_AND_MANAGER:
+                return getRpcInterfaceDefinition(yangName, curNode);
+            case GENERATE_EVENT_CLASS:
+                String eventName = yangName + SUBJECT;
+                return getEventDefinition(yangName, eventName);
+            case GENERATE_EVENT_LISTENER_INTERFACE:
+                return getEventListenerDefinition(yangName);
+            case GENERATE_EVENT_SUBJECT_CLASS:
+                return getClassDefinition(yangName);
+            default:
+                return null;
         }
     }
 
@@ -174,7 +174,7 @@
      * Returns builder interface file class definition.
      *
      * @param yangName java class name, corresponding to which the builder class
-     * is being generated
+     *                 is being generated
      * @return definition
      */
     private static String getBuilderInterfaceDefinition(String yangName) {
@@ -227,7 +227,7 @@
      * Returns RPC file interface definition.
      *
      * @param yangName file name
-     * @param curNode current YANG node
+     * @param curNode  current YANG node
      * @return definition
      */
     private static String getRpcInterfaceDefinition(String yangName, YangNode curNode) {
@@ -236,7 +236,7 @@
         if (holder.getExtendsList() != null && !holder.getExtendsList().isEmpty()) {
             curNode = curNode.getChild();
             while (curNode != null) {
-                if (curNode instanceof YangJavaNotification) {
+                if (curNode instanceof YangNotification) {
                     return getRpcInterfaceDefinitionWhenItExtends(yangName, holder);
                 }
                 curNode = curNode.getNextSibling();
@@ -251,7 +251,7 @@
 
     /* Provides class definition when RPC interface needs to extends any event.*/
     private static String getRpcInterfaceDefinitionWhenItExtends(String yangName,
-            JavaExtendsListHolder holder) {
+                                                                 JavaExtendsListHolder holder) {
 
         if (yangName.matches(REGEX_FOR_ANY_STRING_ENDING_WITH_SERVICE)) {
             String[] strArray = yangName.split(SERVICE);
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGen.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGen.java
index b254e87..3e523b0 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGen.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaCodeSnippetGen.java
@@ -17,9 +17,10 @@
 package org.onosproject.yangutils.translator.tojava.utils;
 
 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getEnumJavaAttribute;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getSmallCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
 import static org.onosproject.yangutils.utils.UtilConstants.ARRAY_LIST;
 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED_INFO;
 import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_CURLY_BRACKET;
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaExtendsListHolder.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaExtendsListHolder.java
index 36986b8..efe3833 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaExtendsListHolder.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaExtendsListHolder.java
@@ -27,7 +27,7 @@
 import org.onosproject.yangutils.translator.tojava.JavaImportData;
 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
 
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
 import static org.onosproject.yangutils.translator.tojava.utils.TempJavaCodeFragmentFilesUtils.getTempJavaFragement;
 
 /**
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
index c082d26..25b9c854 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGenerator.java
@@ -28,7 +28,8 @@
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
 import org.onosproject.yangutils.translator.tojava.TempJavaEnumerationFragmentFiles;
 import org.onosproject.yangutils.translator.tojava.TempJavaServiceFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.javamodel.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorInfo;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK;
@@ -65,7 +66,7 @@
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getDataFromTempFileHandle;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.getEnumsValueAttribute;
 import static org.onosproject.yangutils.translator.tojava.utils.JavaFileGeneratorUtils.initiateJavaFileGeneration;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.addActivateMethod;
 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.addDeActivateMethod;
 import static org.onosproject.yangutils.translator.tojava.utils.MethodsGenerator.getAddAugmentInfoMethodImpl;
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java
index c940791..fc24ff9 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaFileGeneratorUtils.java
@@ -31,6 +31,7 @@
 import org.onosproject.yangutils.translator.tojava.TempJavaTypeFragmentFiles;
 import org.onosproject.yangutils.utils.io.impl.CopyrightHeader;
 import org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_CLASS_MASK;
 import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.BUILDER_INTERFACE_MASK;
@@ -64,8 +65,8 @@
 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.SETTER_FOR_INTERFACE_MASK;
 import static org.onosproject.yangutils.translator.tojava.GeneratedTempFileType.TO_STRING_IMPL_MASK;
 import static org.onosproject.yangutils.translator.tojava.utils.ClassDefinitionGenerator.generateClassDefinition;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getJavaPackageFromPackagePath;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getSmallCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getJavaPackageFromPackagePath;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
 import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS;
 import static org.onosproject.yangutils.utils.UtilConstants.COMPONENT_ANNOTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.EQUAL;
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntax.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntax.java
index 95355aa..c9b2765 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntax.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/JavaIdentifierSyntax.java
@@ -16,16 +16,18 @@
 
 package org.onosproject.yangutils.translator.tojava.utils;
 
+import java.io.File;
+import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
-
 import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.datamodel.utils.DataModelUtils;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
 import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
+import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
+import org.onosproject.yangutils.utils.io.impl.YangIoUtils;
+import org.onosproject.yangutils.utils.io.impl.YangToJavaNamingConflictUtil;
 
+import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.getParentNodeInGenCode;
 import static org.onosproject.yangutils.utils.UtilConstants.COLAN;
 import static org.onosproject.yangutils.utils.UtilConstants.DEFAULT_BASE_PKG;
 import static org.onosproject.yangutils.utils.UtilConstants.EMPTY_STRING;
@@ -33,23 +35,17 @@
 import static org.onosproject.yangutils.utils.UtilConstants.JAVA_KEY_WORDS;
 import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
 import static org.onosproject.yangutils.utils.UtilConstants.QUOTES;
-import static org.onosproject.yangutils.utils.UtilConstants.REGEX_FOR_DIGITS_WITH_SINGLE_LETTER;
 import static org.onosproject.yangutils.utils.UtilConstants.REGEX_FOR_FIRST_DIGIT;
-import static org.onosproject.yangutils.utils.UtilConstants.REGEX_FOR_HYPHEN;
-import static org.onosproject.yangutils.utils.UtilConstants.REGEX_FOR_IDENTIFIER_SPECIAL_CHAR;
-import static org.onosproject.yangutils.utils.UtilConstants.REGEX_FOR_PERIOD;
-import static org.onosproject.yangutils.utils.UtilConstants.REGEX_FOR_SINGLE_LETTER;
-import static org.onosproject.yangutils.utils.UtilConstants.REGEX_FOR_UNDERSCORE;
 import static org.onosproject.yangutils.utils.UtilConstants.REGEX_WITH_ALL_SPECIAL_CHAR;
-import static org.onosproject.yangutils.utils.UtilConstants.REGEX_WITH_DIGITS;
-import static org.onosproject.yangutils.utils.UtilConstants.REGEX_WITH_SINGLE_CAPITAL_CASE;
-import static org.onosproject.yangutils.utils.UtilConstants.REGEX_WITH_SINGLE_CAPITAL_CASE_AND_DIGITS_SMALL_CASES;
-import static org.onosproject.yangutils.utils.UtilConstants.REGEX_WITH_UPPERCASE;
 import static org.onosproject.yangutils.utils.UtilConstants.REVISION_PREFIX;
 import static org.onosproject.yangutils.utils.UtilConstants.SLASH;
 import static org.onosproject.yangutils.utils.UtilConstants.UNDER_SCORE;
 import static org.onosproject.yangutils.utils.UtilConstants.VERSION_PREFIX;
-import static org.onosproject.yangutils.utils.UtilConstants.YANG_AUTO_PREFIX;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.addPackageInfo;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.createDirectories;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getJavaPackageFromPackagePath;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getPackageDirPathFromJavaJPackage;
 
 /**
  * Represents an utility Class for translating the name from YANG to java convention.
@@ -73,14 +69,14 @@
     /**
      * Returns the root package string.
      *
-     * @param version YANG version
-     * @param nameSpace name space of the module
-     * @param revision revision of the module defined
+     * @param version          YANG version
+     * @param nameSpace        name space of the module
+     * @param revision         revision of the module defined
      * @param conflictResolver object of YANG to java naming conflict util
      * @return the root package string
      */
     public static String getRootPackage(byte version, String nameSpace, String revision,
-            YangToJavaNamingConflictUtil conflictResolver) {
+                                        YangToJavaNamingConflictUtil conflictResolver) {
 
         String pkg;
         pkg = DEFAULT_BASE_PKG;
@@ -95,29 +91,6 @@
     }
 
     /**
-     * Returns the node package string.
-     *
-     * @param curNode current java node whose package string needs to be set
-     * @return returns the root package string
-     */
-    public static String getCurNodePackage(YangNode curNode) {
-
-        String pkg;
-        if (!(curNode instanceof JavaFileInfoContainer)
-                || curNode.getParent() == null) {
-            throw new TranslatorException("missing parent node to get current node's package");
-        }
-
-        YangNode parentNode = DataModelUtils.getParentNodeInGenCode(curNode);
-        if (!(parentNode instanceof JavaFileInfoContainer)) {
-            throw new TranslatorException("missing parent java node to get current node's package");
-        }
-        JavaFileInfo parentJavaFileHandle = ((JavaFileInfoContainer) parentNode).getJavaFileInfo();
-        pkg = parentJavaFileHandle.getPackage() + PERIOD + parentJavaFileHandle.getJavaName();
-        return pkg.toLowerCase();
-    }
-
-    /**
      * Returns version.
      *
      * @param ver YANG version
@@ -130,7 +103,7 @@
     /**
      * Returns package name from name space.
      *
-     * @param nameSpace name space of YANG module
+     * @param nameSpace        name space of YANG module
      * @param conflictResolver object of YANG to java naming conflict util
      * @return java package name as per java rules
      */
@@ -181,7 +154,7 @@
     /**
      * Returns the package string.
      *
-     * @param pkgArr package array
+     * @param pkgArr           package array
      * @param conflictResolver object of YANG to java naming conflict util
      * @return package string
      */
@@ -193,7 +166,7 @@
         for (String member : pkgArr) {
             boolean presenceOfKeyword = JAVA_KEY_WORDS.contains(member.toLowerCase());
             if (presenceOfKeyword || member.matches(REGEX_FOR_FIRST_DIGIT)) {
-                String prefix = getPrefixForIdentifier(conflictResolver);
+                String prefix = YangIoUtils.getPrefixForIdentifier(conflictResolver);
                 member = prefix + member;
             }
             pkg = pkg + member;
@@ -206,252 +179,6 @@
     }
 
     /**
-     * Prefix for adding with identifier and namespace, when it is a java keyword or starting with digits.
-     *
-     * @param conflictResolver object of YANG to java naming conflict util
-     * @return prefix which needs to be added
-     */
-    public static String getPrefixForIdentifier(YangToJavaNamingConflictUtil conflictResolver) {
-
-        String prefixForIdentifier = null;
-        if (conflictResolver != null) {
-            prefixForIdentifier = conflictResolver.getPrefixForIdentifier();
-        }
-        if (prefixForIdentifier != null) {
-            prefixForIdentifier = prefixForIdentifier.replaceAll(REGEX_WITH_ALL_SPECIAL_CHAR, COLAN);
-            String[] strArray = prefixForIdentifier.split(COLAN);
-            try {
-                if (strArray[0].isEmpty()) {
-                    List<String> stringArrangement = new ArrayList<String>();
-                    for (int i = 1; i < strArray.length; i++) {
-                        stringArrangement.add(strArray[i]);
-                    }
-                    strArray = stringArrangement.toArray(new String[stringArrangement.size()]);
-                }
-                prefixForIdentifier = strArray[0];
-                for (int j = 1; j < strArray.length; j++) {
-                    prefixForIdentifier = prefixForIdentifier + strArray[j].substring(0, 1).toUpperCase() +
-                            strArray[j].substring(1);
-                }
-            } catch (ArrayIndexOutOfBoundsException outOfBoundsException) {
-                throw new TranslatorException("The given prefix in pom.xml is invalid.");
-            }
-        } else {
-            prefixForIdentifier = YANG_AUTO_PREFIX;
-        }
-        return prefixForIdentifier;
-    }
-
-    /**
-     * Returns the YANG identifier name as java identifier.
-     *
-     * @param yangIdentifier identifier in YANG file
-     * @param conflictResolver object of YANG to java naming conflict util
-     * @return corresponding java identifier
-     */
-    public static String getCamelCase(String yangIdentifier, YangToJavaNamingConflictUtil conflictResolver) {
-
-        if (conflictResolver != null) {
-            String replacementForHyphen = conflictResolver.getReplacementForHyphen();
-            String replacementForPeriod = conflictResolver.getReplacementForPeriod();
-            String replacementForUnderscore = conflictResolver.getReplacementForUnderscore();
-            if (replacementForPeriod != null) {
-                yangIdentifier = yangIdentifier.replaceAll(REGEX_FOR_PERIOD,
-                        PERIOD + replacementForPeriod.toLowerCase() + PERIOD);
-            }
-            if (replacementForUnderscore != null) {
-                yangIdentifier = yangIdentifier.replaceAll(REGEX_FOR_UNDERSCORE,
-                        UNDER_SCORE + replacementForUnderscore.toLowerCase() + UNDER_SCORE);
-            }
-            if (replacementForHyphen != null) {
-                yangIdentifier = yangIdentifier.replaceAll(REGEX_FOR_HYPHEN,
-                        HYPHEN + replacementForHyphen.toLowerCase() + HYPHEN);
-            }
-        }
-        yangIdentifier = yangIdentifier.replaceAll(REGEX_FOR_IDENTIFIER_SPECIAL_CHAR, COLAN);
-        String[] strArray = yangIdentifier.split(COLAN);
-        if (strArray[0].isEmpty()) {
-            List<String> stringArrangement = new ArrayList<String>();
-            for (int i = 1; i < strArray.length; i++) {
-                stringArrangement.add(strArray[i]);
-            }
-            strArray = stringArrangement.toArray(new String[stringArrangement.size()]);
-        }
-        return upperCaseConflictResolver(strArray, conflictResolver);
-    }
-
-    /**
-     * Resolves the conflict when input has upper case.
-     *
-     * @param stringArray containing strings for upper case conflict resolver
-     * @param conflictResolver object of YANG to java naming conflict util
-     * @return camel cased string
-     */
-    private static String upperCaseConflictResolver(String[] stringArray,
-            YangToJavaNamingConflictUtil conflictResolver) {
-
-        for (int l = 0; l < stringArray.length; l++) {
-            String[] upperCaseSplitArray = stringArray[l].split(REGEX_WITH_UPPERCASE);
-            for (int m = 0; m < upperCaseSplitArray.length; m++) {
-                if (upperCaseSplitArray[m].matches(REGEX_WITH_SINGLE_CAPITAL_CASE)) {
-                    int check = m;
-                    while (check + 1 < upperCaseSplitArray.length) {
-                        if (upperCaseSplitArray[check + 1].matches(REGEX_WITH_SINGLE_CAPITAL_CASE)) {
-                            upperCaseSplitArray[check + 1] = upperCaseSplitArray[check + 1].toLowerCase();
-                            check = check + 1;
-                        } else if (upperCaseSplitArray[check + 1]
-                                .matches(REGEX_WITH_SINGLE_CAPITAL_CASE_AND_DIGITS_SMALL_CASES)) {
-                            upperCaseSplitArray[check + 1] = upperCaseSplitArray[check + 1].toLowerCase();
-                            break;
-                        } else {
-                            break;
-                        }
-                    }
-                }
-            }
-            StringBuilder strBuilder = new StringBuilder();
-            for (String element : upperCaseSplitArray) {
-                strBuilder.append(element);
-            }
-            stringArray[l] = strBuilder.toString();
-        }
-        List<String> result = new ArrayList<String>();
-        for (String element : stringArray) {
-            String[] capitalCaseSplitArray = element.split(REGEX_WITH_UPPERCASE);
-            for (String letter : capitalCaseSplitArray) {
-                String[] arrayForAddition = letter.split(REGEX_WITH_DIGITS);
-                List<String> list = Arrays.asList(arrayForAddition);
-                for (String str : list) {
-                    if (str != null && !str.isEmpty()) {
-                        result.add(str);
-                    }
-                }
-            }
-        }
-        stringArray = result.toArray(new String[result.size()]);
-        return applyCamelCaseRule(stringArray, conflictResolver);
-    }
-
-    /**
-     * Applies the rule that a string does not end with a capitalized letter and capitalizes
-     * the letter next to a number in an array.
-     *
-     * @param stringArray containing strings for camel case separation
-     * @param conflictResolver object of YANG to java naming conflict util
-     * @return camel case rule checked string
-     */
-    private static String applyCamelCaseRule(String[] stringArray, YangToJavaNamingConflictUtil conflictResolver) {
-
-        String ruleChecker = stringArray[0].toLowerCase();
-        int i;
-        if (ruleChecker.matches(REGEX_FOR_FIRST_DIGIT)) {
-            i = 0;
-            ruleChecker = EMPTY_STRING;
-        } else {
-            i = 1;
-        }
-        for (; i < stringArray.length; i++) {
-            if (i + 1 == stringArray.length) {
-                if (stringArray[i].matches(REGEX_FOR_SINGLE_LETTER)
-                        || stringArray[i].matches(REGEX_FOR_DIGITS_WITH_SINGLE_LETTER)) {
-                    ruleChecker = ruleChecker + stringArray[i].toLowerCase();
-                    break;
-                }
-            }
-            if (stringArray[i].matches(REGEX_FOR_FIRST_DIGIT)) {
-                for (int j = 0; j < stringArray[i].length(); j++) {
-                    char letterCheck = stringArray[i].charAt(j);
-                    if (Character.isLetter(letterCheck)) {
-                        stringArray[i] = stringArray[i].substring(0, j)
-                                + stringArray[i].substring(j, j + 1).toUpperCase() + stringArray[i].substring(j + 1);
-                        break;
-                    }
-                }
-                ruleChecker = ruleChecker + stringArray[i];
-            } else {
-                ruleChecker = ruleChecker + stringArray[i].substring(0, 1).toUpperCase() + stringArray[i].substring(1);
-            }
-        }
-        String ruleCheckerWithPrefix = addPrefix(ruleChecker, conflictResolver);
-        return restrictConsecutiveCapitalCase(ruleCheckerWithPrefix);
-    }
-
-    /**
-     * Adds prefix, if the string begins with digit or is a java key word.
-     *
-     * @param camelCasePrefix string for adding prefix
-     * @param conflictResolver object of YANG to java naming conflict util
-     * @return prefixed camel case string
-     */
-    private static String addPrefix(String camelCasePrefix, YangToJavaNamingConflictUtil conflictResolver) {
-
-        String prefix = getPrefixForIdentifier(conflictResolver);
-        if (camelCasePrefix.matches(REGEX_FOR_FIRST_DIGIT)) {
-            camelCasePrefix = prefix + camelCasePrefix;
-        }
-        if (JAVA_KEY_WORDS.contains(camelCasePrefix)) {
-            camelCasePrefix = prefix + camelCasePrefix.substring(0, 1).toUpperCase()
-                    + camelCasePrefix.substring(1);
-        }
-        return camelCasePrefix;
-    }
-
-    /**
-     * Restricts consecutive capital cased string as a rule in camel case.
-     *
-     * @param consecCapitalCaseRemover which requires the restriction of consecutive capital case
-     * @return string without consecutive capital case
-     */
-    private static String restrictConsecutiveCapitalCase(String consecCapitalCaseRemover) {
-
-        for (int k = 0; k < consecCapitalCaseRemover.length(); k++) {
-            if (k + 1 < consecCapitalCaseRemover.length()) {
-                if (Character.isUpperCase(consecCapitalCaseRemover.charAt(k))) {
-                    if (Character.isUpperCase(consecCapitalCaseRemover.charAt(k + 1))) {
-                        consecCapitalCaseRemover = consecCapitalCaseRemover.substring(0, k + 1)
-                                + consecCapitalCaseRemover.substring(k + 1, k + 2).toLowerCase()
-                                + consecCapitalCaseRemover.substring(k + 2);
-                    }
-                }
-            }
-        }
-        return consecCapitalCaseRemover;
-    }
-
-    /**
-     * Returns the YANG identifier name as java identifier with first letter
-     * in capital.
-     *
-     * @param yangIdentifier identifier in YANG file
-     * @return corresponding java identifier
-     */
-    public static String getCapitalCase(String yangIdentifier) {
-        yangIdentifier = yangIdentifier.substring(0, 1).toUpperCase() + yangIdentifier.substring(1);
-        return restrictConsecutiveCapitalCase(yangIdentifier);
-    }
-
-    /**
-     * Returns the YANG identifier name as java identifier with first letter
-     * in small.
-     *
-     * @param yangIdentifier identifier in YANG file.
-     * @return corresponding java identifier
-     */
-    public static String getSmallCase(String yangIdentifier) {
-        return yangIdentifier.substring(0, 1).toLowerCase() + yangIdentifier.substring(1);
-    }
-
-    /**
-     * Returns the java Package from package path.
-     *
-     * @param packagePath package path
-     * @return java package
-     */
-    public static String getJavaPackageFromPackagePath(String packagePath) {
-        return packagePath.replace(SLASH, PERIOD);
-    }
-
-    /**
      * Returns enum's java name.
      *
      * @param name enum's name
@@ -479,12 +206,46 @@
     }
 
     /**
-     * Returns the directory path corresponding to java package.
+     * Creates a package structure with package info java file if not present.
      *
-     * @param packagePath package path
-     * @return java package
+     * @param yangNode YANG node for which code is being generated
+     * @throws IOException any IO exception
      */
-    public static String getPackageDirPathFromJavaJPackage(String packagePath) {
-        return packagePath.replace(PERIOD, SLASH);
+    public static void createPackage(YangNode yangNode) throws IOException {
+        if (!(yangNode instanceof JavaFileInfoContainer)) {
+            throw new TranslatorException("current node must have java file info");
+        }
+        String pkgInfo;
+        JavaFileInfo javaFileInfo = ((JavaFileInfoContainer) yangNode).getJavaFileInfo();
+        String pkg = getAbsolutePackagePath(javaFileInfo.getBaseCodeGenPath(), javaFileInfo.getPackageFilePath());
+        if (!doesPackageExist(pkg)) {
+            try {
+                File pack = createDirectories(pkg);
+                YangNode parent = getParentNodeInGenCode(yangNode);
+                if (parent != null) {
+                    pkgInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo().getJavaName();
+                    addPackageInfo(pack, pkgInfo, getJavaPackageFromPackagePath(pkg), true,
+                            ((JavaFileInfoContainer) parent).getJavaFileInfo().getPluginConfig());
+                } else {
+                    pkgInfo = ((JavaFileInfoContainer) yangNode).getJavaFileInfo().getJavaName();
+                    addPackageInfo(pack, pkgInfo, getJavaPackageFromPackagePath(pkg), false,
+                            ((JavaFileInfoContainer) yangNode).getJavaFileInfo().getPluginConfig());
+                }
+            } catch (IOException e) {
+                throw new IOException("failed to create package-info file");
+            }
+        }
+    }
+
+    /**
+     * Checks if the package directory structure created.
+     *
+     * @param pkg Package to check if it is created
+     * @return existence status of package
+     */
+    public static boolean doesPackageExist(String pkg) {
+        File pkgDir = new File(getPackageDirPathFromJavaJPackage(pkg));
+        File pkgWithFile = new File(pkgDir + SLASH + "package-info.java");
+        return pkgDir.exists() && pkgWithFile.isFile();
     }
 }
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
index b6889c8..92caa48 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
@@ -18,31 +18,28 @@
 
 import java.util.List;
 import java.util.Map;
-
-import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.datamodel.YangNodeIdentifier;
+import org.onosproject.yangutils.datamodel.YangDataTypes;
+import org.onosproject.yangutils.datamodel.YangType;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
 import org.onosproject.yangutils.translator.tojava.JavaAttributeInfo;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaAugment;
 import org.onosproject.yangutils.utils.io.impl.JavaDocGen;
+import org.onosproject.yangutils.utils.io.impl.YangPluginConfig;
 
 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.AttributesJavaDataType.getParseFromStringMethod;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getSmallCase;
 import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE;
 import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE_ANNOTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.ADD_STRING;
 import static org.onosproject.yangutils.utils.UtilConstants.AND;
-import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTABLE;
 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED_INFO;
+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.CASE;
 import static org.onosproject.yangutils.utils.UtilConstants.CATCH;
 import static org.onosproject.yangutils.utils.UtilConstants.CHECK_NOT_NULL_STRING;
@@ -74,8 +71,10 @@
 import static org.onosproject.yangutils.utils.UtilConstants.IMPL;
 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.LIST;
 import static org.onosproject.yangutils.utils.UtilConstants.LONG;
+import static org.onosproject.yangutils.utils.UtilConstants.LONG_WRAPPER;
 import static org.onosproject.yangutils.utils.UtilConstants.NEW;
 import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
 import static org.onosproject.yangutils.utils.UtilConstants.NULL;
@@ -88,6 +87,11 @@
 import static org.onosproject.yangutils.utils.UtilConstants.OPEN_PARENTHESIS;
 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.PUBLIC;
 import static org.onosproject.yangutils.utils.UtilConstants.QUOTES;
@@ -96,6 +100,7 @@
 import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
 import static org.onosproject.yangutils.utils.UtilConstants.SET_METHOD_PREFIX;
 import static org.onosproject.yangutils.utils.UtilConstants.SHORT;
+import static org.onosproject.yangutils.utils.UtilConstants.SHORT_WRAPPER;
 import static org.onosproject.yangutils.utils.UtilConstants.SIXTEEN_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
 import static org.onosproject.yangutils.utils.UtilConstants.STARTED_LOG_INFO;
@@ -113,7 +118,6 @@
 import static org.onosproject.yangutils.utils.UtilConstants.VALUE;
 import static org.onosproject.yangutils.utils.UtilConstants.VOID;
 import static org.onosproject.yangutils.utils.UtilConstants.YANG_UTILS_TODO;
-import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.BUILD_METHOD;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.CONSTRUCTOR;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.DEFAULT_CONSTRUCTOR;
@@ -123,6 +127,10 @@
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.OF_METHOD;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.SETTER_METHOD;
 import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.JavaDocType.TYPE_CONSTRUCTOR;
+import static org.onosproject.yangutils.utils.io.impl.JavaDocGen.getJavaDoc;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCamelCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getCapitalCase;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getSmallCase;
 import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.trimAtLast;
 
 /**
@@ -139,7 +147,7 @@
     /**
      * Returns the methods strings for builder interface.
      *
-     * @param name attribute name
+     * @param name         attribute name
      * @param pluginConfig plugin configurations
      * @return method string for builder interface
      */
@@ -150,13 +158,13 @@
     /**
      * Returns getter string.
      *
-     * @param attr attribute info
+     * @param attr               attribute info
      * @param generatedJavaFiles generated java files
-     * @param pluginConfig plugin configurations
+     * @param pluginConfig       plugin configurations
      * @return getter string
      */
     public static String getGetterString(JavaAttributeInfo attr, int generatedJavaFiles,
-            YangPluginConfig pluginConfig) {
+                                         YangPluginConfig pluginConfig) {
 
         String returnType = getReturnType(attr);
         String attributeName = attr.getAttributeName();
@@ -168,14 +176,14 @@
     /**
      * Returns setter string.
      *
-     * @param attr attribute info
-     * @param className java class name
+     * @param attr               attribute info
+     * @param className          java class name
      * @param generatedJavaFiles generated java files
-     * @param pluginConfig plugin configurations
+     * @param pluginConfig       plugin configurations
      * @return setter string
      */
     public static String getSetterString(JavaAttributeInfo attr, String className, int generatedJavaFiles,
-            YangPluginConfig pluginConfig) {
+                                         YangPluginConfig pluginConfig) {
 
         String attrType = getReturnType(attr);
         String attributeName = attr.getAttributeName();
@@ -193,7 +201,7 @@
     /**
      * Returns constructor method string.
      *
-     * @param name class name
+     * @param name         class name
      * @param pluginConfig plugin configurations
      * @return constructor string
      */
@@ -204,13 +212,13 @@
     /**
      * Returns default constructor method string.
      *
-     * @param name class name
+     * @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) {
+                                                     YangPluginConfig pluginConfig) {
         return getJavaDoc(DEFAULT_CONSTRUCTOR, name, false, pluginConfig)
                 + getDefaultConstructor(name, modifierType)
                 + NEW_LINE;
@@ -240,7 +248,7 @@
     /**
      * Returns the getter method strings for class file.
      *
-     * @param attr attribute info
+     * @param attr               attribute info
      * @param generatedJavaFiles for the type of java file being generated
      * @return getter method for class
      */
@@ -259,8 +267,8 @@
     /**
      * Returns getter for attribute.
      *
-     * @param type return type
-     * @param name attribute name
+     * @param type               return type
+     * @param name               attribute name
      * @param generatedJavaFiles generated java files
      * @return getter for attribute
      */
@@ -283,23 +291,23 @@
     /*Provides string to return for type.*/
     private static String parseTypeForReturnValue(String type) {
         switch (type) {
-        case BYTE:
-        case INT:
-        case SHORT:
-        case LONG:
-            return "0";
-        case BOOLEAN_DATA_TYPE:
-            return FALSE;
-        default:
-            return null;
+            case BYTE:
+            case INT:
+            case SHORT:
+            case LONG:
+                return "0";
+            case BOOLEAN_DATA_TYPE:
+                return FALSE;
+            default:
+                return null;
         }
     }
 
     /**
      * Returns the setter method strings for class file.
      *
-     * @param attr attribute info
-     * @param className name of the class
+     * @param attr               attribute info
+     * @param className          name of the class
      * @param generatedJavaFiles generated java files
      * @return setter method for class
      */
@@ -318,8 +326,8 @@
      * Returns setter for attribute.
      *
      * @param className class name
-     * @param name attribute name
-     * @param type return type
+     * @param name      attribute name
+     * @param type      return type
      * @return setter for attribute
      */
     private static String getSetter(String className, String name, String type, int generatedJavaFiles) {
@@ -381,14 +389,14 @@
     /**
      * 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 yangName           name of the attribute
+     * @param returnType         return type of attribute
+     * @param isList             is list attribute
      * @param generatedJavaFiles generated java files
      * @return getter method for interface
      */
     public static String getGetterForInterface(String yangName, String returnType, boolean isList,
-            int generatedJavaFiles) {
+                                               int generatedJavaFiles) {
 
         if (!isList) {
             return getGetterInterfaceString(returnType, yangName, generatedJavaFiles);
@@ -401,11 +409,11 @@
      * Returns getter for attribute in interface.
      *
      * @param returnType return type
-     * @param yangName attribute name
+     * @param yangName   attribute name
      * @return getter for interface
      */
     private static String getGetterInterfaceString(String returnType, String yangName,
-            int generatedJavaFiles) {
+                                                   int generatedJavaFiles) {
         if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
             return FOUR_SPACE_INDENTATION + returnType + SPACE + GET_METHOD_PREFIX + getCapitalCase(yangName)
                     + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN;
@@ -418,15 +426,15 @@
     /**
      * 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 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
      * @return setter method for interface
      */
     public static String getSetterForInterface(String attrName, String attrType, String className,
-            boolean isList, int generatedJavaFiles) {
+                                               boolean isList, int generatedJavaFiles) {
 
         if (!isList) {
             return getSetterInterfaceString(className, attrName, attrType, generatedJavaFiles);
@@ -439,12 +447,12 @@
      * Returns setter string for interface.
      *
      * @param className class name
-     * @param attrName attribute name
-     * @param attrType attribute type
+     * @param attrName  attribute name
+     * @param attrType  attribute type
      * @return setter string
      */
     private static String getSetterInterfaceString(String className, String attrName, String attrType,
-            int generatedJavaFiles) {
+                                                   int generatedJavaFiles) {
         if ((generatedJavaFiles & GENERATE_SERVICE_AND_MANAGER) != 0) {
 
             return FOUR_SPACE_INDENTATION + VOID + SPACE + SET_METHOD_PREFIX + getCapitalCase(attrName)
@@ -494,7 +502,7 @@
     /**
      * Returns constructor string for impl class.
      *
-     * @param yangName class name
+     * @param yangName     class name
      * @param pluginConfig plugin configurations
      * @return constructor string
      */
@@ -512,14 +520,14 @@
     /**
      * Returns the constructor strings for class file.
      *
-     * @param yangName name of the class
-     * @param attr attribute info
+     * @param yangName           name of the class
+     * @param attr               attribute info
      * @param generatedJavaFiles generated java files
-     * @param pluginConfig plugin configurations
+     * @param pluginConfig       plugin configurations
      * @return constructor for class
      */
     public static String getConstructor(String yangName, JavaAttributeInfo attr, int generatedJavaFiles,
-            YangPluginConfig pluginConfig) {
+                                        YangPluginConfig pluginConfig) {
 
         String attributeName = attr.getAttributeName();
         String constructor;
@@ -545,14 +553,14 @@
     /**
      * Returns the rpc strings for service interface.
      *
-     * @param rpcName name of the rpc
-     * @param inputName name of input
-     * @param outputName name of output
+     * @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 getRpcServiceMethod(String rpcName, String inputName, String outputName,
-            YangPluginConfig pluginConfig) {
+                                             YangPluginConfig pluginConfig) {
 
         rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
         if (!inputName.equals(EMPTY_STRING)) {
@@ -565,14 +573,14 @@
     /**
      * Returns the rpc strings for manager impl.
      *
-     * @param rpcName name of the rpc
-     * @param inputName name of input
-     * @param outputName name of output
+     * @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) {
+                                             YangPluginConfig pluginConfig) {
 
         rpcName = getCamelCase(rpcName, pluginConfig.getConflictResolver());
         if (!inputName.equals(EMPTY_STRING)) {
@@ -608,7 +616,7 @@
     /**
      * Returns the Default constructor strings for class file.
      *
-     * @param name name of the class
+     * @param name         name of the class
      * @param modifierType modifier type for default constructor
      * @return Default constructor for class
      */
@@ -663,7 +671,7 @@
     /**
      * Returns from string method's open string.
      *
-     * @param className name of the class
+     * @param className    name of the class
      * @param pluginConfig plugin configurations
      * @return from string method's open string
      */
@@ -687,13 +695,13 @@
     /**
      * Return from string method's body string.
      *
-     * @param attr attribute info
+     * @param attr                    attribute info
      * @param fromStringAttributeInfo attribute info for the from string
-     * wrapper type
+     *                                wrapper type
      * @return from string method's body string
      */
     public static String getFromStringMethod(JavaAttributeInfo attr,
-            JavaAttributeInfo fromStringAttributeInfo) {
+                                             JavaAttributeInfo fromStringAttributeInfo) {
 
         return EIGHT_SPACE_INDENTATION + getTrySubString() + NEW_LINE + TWELVE_SPACE_INDENTATION
                 + getParsedSubString(attr, fromStringAttributeInfo) + SEMI_COLAN + NEW_LINE + TWELVE_SPACE_INDENTATION
@@ -736,7 +744,7 @@
      * @return sub string with parsed statement for union's from string method
      */
     private static String getParsedSubString(JavaAttributeInfo attr,
-            JavaAttributeInfo fromStringAttributeInfo) {
+                                             JavaAttributeInfo fromStringAttributeInfo) {
 
         String targetDataType = getReturnType(attr);
         String parseFromStringMethod = getParseFromStringMethod(targetDataType,
@@ -865,13 +873,13 @@
     /**
      * Returns of method's string and java doc for special type.
      *
-     * @param attr attribute info
+     * @param attr                   attribute info
      * @param generatedJavaClassName class name
-     * @param pluginConfig plugin configurations
+     * @param pluginConfig           plugin configurations
      * @return of method's string and java doc for special type
      */
     public static String getOfMethodStringAndJavaDoc(JavaAttributeInfo attr, String generatedJavaClassName,
-            YangPluginConfig pluginConfig) {
+                                                     YangPluginConfig pluginConfig) {
 
         String attrType = getReturnType(attr);
         String attrName = attr.getAttributeName();
@@ -883,7 +891,7 @@
     /**
      * Returns of method's string.
      *
-     * @param type data type
+     * @param type      data type
      * @param className class name
      * @return of method's string
      */
@@ -898,13 +906,14 @@
     /**
      * Returns string and java doc for constructor of type class.
      *
-     * @param attr attribute info
+     * @param attr                   attribute info
      * @param generatedJavaClassName class name
-     * @param pluginConfig plugin configurations
+     * @param pluginConfig           plugin configurations
      * @return string and java doc for constructor of type class
      */
     public static String getTypeConstructorStringAndJavaDoc(JavaAttributeInfo attr,
-            String generatedJavaClassName, YangPluginConfig pluginConfig) {
+                                                            String generatedJavaClassName,
+                                                            YangPluginConfig pluginConfig) {
 
         String attrType = getReturnType(attr);
         String attrName = attr.getAttributeName();
@@ -916,8 +925,8 @@
     /**
      * Returns type constructor string.
      *
-     * @param type data type
-     * @param name attribute name
+     * @param type      data type
+     * @param name      attribute name
      * @param className class name
      * @return type constructor string
      */
@@ -989,47 +998,18 @@
     }
 
     /**
-     * Provides string to be added in augment node's constructor.
-     *
-     * @param curNode current YANG node
-     * @return constructors string
-     */
-    public static String getAugmentsAddToAugmentedMethod(YangNode curNode) {
-
-        if (!(curNode instanceof YangJavaAugment)) {
-            throw new TranslatorException("current node should be of type augment node.");
-        }
-        YangJavaAugment augment = (YangJavaAugment) curNode;
-        List<YangNodeIdentifier> targetNodes = augment.getTargetNode();
-
-        String name = targetNodes.get(targetNodes.size() - 1).getName();
-        String captialCase = getCapitalCase(name);
-        String smallCase = getSmallCase(captialCase);
-        return EIGHT_SPACE_INDENTATION + captialCase + IMPL + SPACE + smallCase + IMPL + SPACE + EQUAL + SPACE
-                + NEW + SPACE + captialCase + BUILDER + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD + NEW + SPACE
-                + captialCase + IMPL + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE
-                + EIGHT_SPACE_INDENTATION + smallCase + IMPL + PERIOD + ADD_STRING + AUGMENTATION
-                + OPEN_PARENTHESIS + THIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
-
-    }
-
-    private static String getAugmentsAddToAugmentedMethodStart() {
-        return FOUR_SPACE_INDENTATION + PUBLIC + SPACE + VOID + SPACE + ADD_STRING + AUGMENTABLE + OPEN_PARENTHESIS
-                + CLOSE_PARENTHESIS + SPACE + OPEN_CURLY_BRACKET;
-    }
-
-    /**
      * Returns of method for enum class.
      *
-     * @param className class name
-     * @param attr java attribute
-     * @param enumMap enum's sets map
-     * @param enumList enum's sets list
+     * @param className    class name
+     * @param attr         java attribute
+     * @param enumMap      enum's sets map
+     * @param enumList     enum's sets list
      * @param pluginConfig plugin configurations
      * @return of method
      */
     public static String getEnumsOfMethod(String className, JavaAttributeInfo attr,
-            Map<String, Integer> enumMap, List<String> enumList, YangPluginConfig pluginConfig) {
+                                          Map<String, Integer> enumMap, List<String> enumList,
+                                          YangPluginConfig pluginConfig) {
         String attrType = getReturnType(attr);
         String attrName = attr.getAttributeName();
 
@@ -1083,4 +1063,48 @@
                 + STOPPED_LOG_INFO + FOUR_SPACE_INDENTATION + CLOSE_CURLY_BRACKET + NEW_LINE;
     }
 
+    /**
+     * Returns from string method parsed string.
+     *
+     * @param targetDataType target data type
+     * @param yangType       YANG type
+     * @return parsed string
+     */
+    public 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 STRING:
+                return EMPTY_STRING;
+            case EMPTY:
+            case BOOLEAN:
+                return BOOLEAN_WRAPPER + PERIOD + PARSE_BOOLEAN;
+            case DECIMAL64:
+            case BITS:
+            case BINARY:
+            case UNION:
+            case ENUMERATION:
+            case DERIVED:
+                return targetDataType + PERIOD + FROM_STRING_METHOD_NAME;
+            default:
+                throw new TranslatorException("given data type is not supported.");
+        }
+    }
 }
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TempJavaCodeFragmentFilesUtils.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TempJavaCodeFragmentFilesUtils.java
index f70ec53..39620f9 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TempJavaCodeFragmentFilesUtils.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TempJavaCodeFragmentFilesUtils.java
@@ -19,51 +19,29 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
-
 import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.datamodel.YangNodeIdentifier;
-import org.onosproject.yangutils.translator.exception.TranslatorException;
-import org.onosproject.yangutils.translator.tojava.JavaFileInfoContainer;
 import org.onosproject.yangutils.translator.tojava.JavaQualifiedTypeInfo;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
 import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFilesContainer;
 import org.onosproject.yangutils.translator.tojava.TempJavaFragmentFiles;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaAugment;
-import org.onosproject.yangutils.translator.tojava.javamodel.YangJavaModule;
 
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCapitalCase;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getSmallCase;
 import static org.onosproject.yangutils.utils.UtilConstants.ACTIVATE_ANNOTATION_IMPORT;
-import static org.onosproject.yangutils.utils.UtilConstants.ADD_STRING;
-import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTATION_HOLDER;
 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED_INFO;
-import static org.onosproject.yangutils.utils.UtilConstants.BUILDER;
-import static org.onosproject.yangutils.utils.UtilConstants.CLOSE_PARENTHESIS;
 import static org.onosproject.yangutils.utils.UtilConstants.COMPONENT_ANNOTATION_IMPORT;
 import static org.onosproject.yangutils.utils.UtilConstants.DEACTIVATE_ANNOTATION_IMPORT;
-import static org.onosproject.yangutils.utils.UtilConstants.EIGHT_SPACE_INDENTATION;
 import static org.onosproject.yangutils.utils.UtilConstants.ENUM;
-import static org.onosproject.yangutils.utils.UtilConstants.EQUAL;
 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.IMPORT;
 import static org.onosproject.yangutils.utils.UtilConstants.LISTENER_SERVICE;
 import static org.onosproject.yangutils.utils.UtilConstants.LOGGER_FACTORY_IMPORT;
 import static org.onosproject.yangutils.utils.UtilConstants.LOGGER_IMPORT;
-import static org.onosproject.yangutils.utils.UtilConstants.NEW;
 import static org.onosproject.yangutils.utils.UtilConstants.NEW_LINE;
 import static org.onosproject.yangutils.utils.UtilConstants.OPEN_CURLY_BRACKET;
-import static org.onosproject.yangutils.utils.UtilConstants.OPEN_PARENTHESIS;
-import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
 import static org.onosproject.yangutils.utils.UtilConstants.PUBLIC;
-import static org.onosproject.yangutils.utils.UtilConstants.SEMI_COLAN;
 import static org.onosproject.yangutils.utils.UtilConstants.SERVICE_ANNOTATION_IMPORT;
 import static org.onosproject.yangutils.utils.UtilConstants.SPACE;
-import static org.onosproject.yangutils.utils.UtilConstants.THIS;
 import static org.onosproject.yangutils.utils.UtilConstants.TYPE;
 import static org.onosproject.yangutils.utils.io.impl.FileSystemUtil.updateFileHandle;
-
 import static java.util.Collections.sort;
 
 /**
@@ -121,84 +99,6 @@
     }
 
     /**
-     * Updated imports with augmented nodes import.
-     *
-     * @param curNode   current YANG node
-     * @param imports   list of imports
-     * @param operation to add or to delete
-     */
-    public static void addAugmentedNodesImport(YangNode curNode, List<String> imports, boolean operation) {
-
-        String nodesImport = "";
-
-        if (!(curNode instanceof YangJavaAugment)) {
-            throw new TranslatorException("current node should be of type augment node.");
-        }
-        YangJavaAugment augment = (YangJavaAugment) curNode;
-        List<YangNodeIdentifier> targetNodes = augment.getTargetNode();
-        YangNode parent = curNode.getParent();
-        if (parent instanceof YangJavaModule) {
-            // Add impl class import.
-            nodesImport = getAugmendtedNodesImports(parent, targetNodes, true) + SEMI_COLAN + NEW_LINE;
-            performOperationOnImports(imports, nodesImport, operation);
-            // Add builder class import.
-            if (targetNodes.size() > 2) {
-                nodesImport = getAugmendtedNodesImports(parent, targetNodes, false) + SEMI_COLAN + NEW_LINE;
-                performOperationOnImports(imports, nodesImport, operation);
-            }
-        }
-        // TODO: add functionality for submodule and uses.
-    }
-
-    /**
-     * Returns imports for augmented node.
-     *
-     * @param parent      parent YANG node
-     * @param targetNodes list of target nodes
-     * @param isImplClass if impl class's import required
-     * @return imports for augmented node
-     */
-    private static String getAugmendtedNodesImports(YangNode parent, List<YangNodeIdentifier> targetNodes,
-            boolean isImplClass) {
-        String pkgInfo = ((JavaFileInfoContainer) parent).getJavaFileInfo().getPackage();
-
-        for (int i = 0; i < targetNodes.size() - 1; i++) {
-            pkgInfo = pkgInfo + PERIOD + targetNodes.get(i).getName();
-        }
-        String classInfo = targetNodes.get(targetNodes.size() - 1).getName();
-        if (!isImplClass) {
-            return IMPORT + pkgInfo.toLowerCase() + PERIOD + getCapitalCase(classInfo) + BUILDER;
-        }
-        return IMPORT + pkgInfo.toLowerCase() + PERIOD + getCapitalCase(classInfo) + BUILDER + PERIOD
-                + getCapitalCase(classInfo) + IMPL;
-    }
-
-    /**
-     * Provides string to be added in augment node's constructor.
-     *
-     * @param curNode current YANG node
-     * @return constructors string
-     */
-    public static String getAugmentsAddToAugmentedClassString(YangNode curNode) {
-
-        if (!(curNode instanceof YangJavaAugment)) {
-            throw new TranslatorException("current node should be of type augment node.");
-        }
-        YangJavaAugment augment = (YangJavaAugment) curNode;
-        List<YangNodeIdentifier> targetNodes = augment.getTargetNode();
-
-        String name = targetNodes.get(targetNodes.size() - 1).getName();
-        String captialCase = getCapitalCase(name);
-        String smallCase = getSmallCase(captialCase);
-        return EIGHT_SPACE_INDENTATION + captialCase + IMPL + SPACE + smallCase + IMPL + SPACE + EQUAL + SPACE + NEW
-                + SPACE + captialCase + BUILDER + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + PERIOD + NEW + SPACE
-                + captialCase + IMPL + OPEN_PARENTHESIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE
-                + EIGHT_SPACE_INDENTATION + smallCase + IMPL + PERIOD + ADD_STRING + AUGMENTATION + OPEN_PARENTHESIS
-                + THIS + CLOSE_PARENTHESIS + SEMI_COLAN + NEW_LINE;
-
-    }
-
-    /**
      * Adds import for array list.
      *
      * @param curNode   current YANG node
@@ -227,7 +127,7 @@
      * @param classInfo class info to be added to import list
      */
     public static void addListnersImport(YangNode curNode, List<String> imports, boolean operation,
-            String classInfo) {
+                                         String classInfo) {
         String thisImport = "";
         if (classInfo.equals(LISTENER_SERVICE)) {
             thisImport = getTempJavaFragement(curNode).getJavaImportData().getListenerServiceImport();
@@ -272,7 +172,7 @@
      * @return import list
      */
     private static List<String> performOperationOnImports(List<String> imports, String curImport,
-            boolean operation) {
+                                                          boolean operation) {
         if (operation) {
             imports.add(curImport);
         } else {
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangPluginConfig.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangPluginConfig.java
deleted file mode 100644
index f827698..0000000
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangPluginConfig.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright 2016-present 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.translator.tojava.utils;
-
-/**
- * Representation of plugin configurations required for YANG utils.
- */
-public final class YangPluginConfig {
-
-    /**
-     * Contains the code generation directory.
-     */
-    private String codeGenDir;
-
-    /**
-     * Contains information of naming conflicts that can be resolved.
-     */
-    private YangToJavaNamingConflictUtil conflictResolver;
-
-    /**
-     * Creates an object for YANG plugin config.
-     */
-    public YangPluginConfig() {
-    }
-
-    /**
-     * Sets the path of the java code where it has to be generated.
-     *
-     * @param codeGenDir path of the directory
-     */
-    public void setCodeGenDir(String codeGenDir) {
-        this.codeGenDir = codeGenDir;
-    }
-
-    /**
-     * Returns the code generation directory path.
-     *
-     * @return code generation directory
-     */
-    public String getCodeGenDir() {
-        return codeGenDir;
-    }
-
-    /**
-     * Sets the object.
-     *
-     * @param conflictResolver object of the class
-     */
-    public void setConflictResolver(YangToJavaNamingConflictUtil conflictResolver) {
-        this.conflictResolver = conflictResolver;
-    }
-
-    /**
-     * Returns the object.
-     *
-     * @return object of the class
-     */
-    public YangToJavaNamingConflictUtil getConflictResolver() {
-        return conflictResolver;
-    }
-}
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangToJavaNamingConflictUtil.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangToJavaNamingConflictUtil.java
deleted file mode 100644
index 4f701b6..0000000
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangToJavaNamingConflictUtil.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright 2016-present 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.translator.tojava.utils;
-
-/**
- * Representation of YANG to java naming conflict resolver util.
- */
-public final class YangToJavaNamingConflictUtil {
-
-    /**
-     * Contains the replacement value for a period.
-     */
-    private static String replacementForPeriodInIdentifier;
-
-    /**
-     * Contains the replacement value for an underscore.
-     */
-    private static String replacementForUnderscoreInIdentifier;
-
-    /**
-     * Contains the replacement value for a hyphen.
-     */
-    private static String replacementForHyphenInIdentifier;
-
-    /**
-     * Contains the prefix value for adding with the identifier.
-     */
-    private static String prefixForIdentifier;
-
-    /**
-     * Creates an object for YANG to java naming conflict util.
-     */
-    public YangToJavaNamingConflictUtil() {
-    }
-
-    /**
-     * Sets the replacement value for a period.
-     *
-     * @param periodReplacement replacement value for period
-     */
-    public void setReplacementForPeriod(String periodReplacement) {
-        replacementForPeriodInIdentifier = periodReplacement;
-    }
-
-    /**
-     * Returns the replaced period value.
-     *
-     * @return replaced period
-     */
-    public String getReplacementForPeriod() {
-        return replacementForPeriodInIdentifier;
-    }
-
-    /**
-     * Sets the replacement value for a hyphen.
-     *
-     * @param hyphenReplacement replacement value for hyphen
-     */
-    public void setReplacementForHyphen(String hyphenReplacement) {
-        replacementForHyphenInIdentifier = hyphenReplacement;
-    }
-
-    /**
-     * Returns the replaced hyphen value.
-     *
-     * @return replaced hyphen
-     */
-    public String getReplacementForHyphen() {
-        return replacementForHyphenInIdentifier;
-    }
-
-    /**
-     * Sets the replacement value for an underscore.
-     *
-     * @param underscoreReplacement replacement value for underscore
-     */
-    public void setReplacementForUnderscore(String underscoreReplacement) {
-        replacementForUnderscoreInIdentifier = underscoreReplacement;
-    }
-
-    /**
-     * Returns the replaced underscore value.
-     *
-     * @return replaced underscore
-     */
-    public String getReplacementForUnderscore() {
-        return replacementForUnderscoreInIdentifier;
-    }
-
-    /**
-     * Sets the prefix value for adding with the identifier.
-     *
-     * @param prefix prefix for identifier
-     */
-    public void setPrefixForIdentifier(String prefix) {
-        prefixForIdentifier = prefix;
-    }
-
-    /**
-     * Returns the prefix for identifier.
-     *
-     * @return prefix for identifier
-     */
-    public String getPrefixForIdentifier() {
-        return prefixForIdentifier;
-    }
-}