[ONOS-4799],[ONOS-4351] Augment inter file linker and Generated Code refactored.

Change-Id: Id1f3ac9c90a632373f51cc75d499c3110216be17
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
index 7240725..7a894e6 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
@@ -87,8 +87,14 @@
     /**
      * Source directory for generated files.
      */
-    @Parameter(property = "genFilesDir", defaultValue = "src/main/java")
-    private String genFilesDir;
+    @Parameter(property = "classFileDir", defaultValue = "target/generated-sources")
+    private String classFileDir;
+
+    /**
+     * Source directory for manager's generated files.
+     */
+    @Parameter(property = "managerFileDir", defaultValue = "src/main/java")
+    private String managerFileDir;
 
     /**
      * Base directory for project.
@@ -153,11 +159,12 @@
             /*
              * For deleting the generated code in previous build.
              */
-            deleteDirectory(getDirectory(baseDir, genFilesDir) + DEFAULT_PKG);
+            deleteDirectory(getDirectory(baseDir, classFileDir) + DEFAULT_PKG);
             deleteDirectory(getDirectory(baseDir, outputDirectory));
 
             String searchDir = getDirectory(baseDir, yangFilesDir);
-            String codeGenDir = getDirectory(baseDir, genFilesDir) + SLASH;
+            String codeGenDir = getDirectory(baseDir, classFileDir) + SLASH;
+            String managerCodeGenDir = getDirectory(baseDir, managerFileDir) + SLASH;
 
             // Creates conflict resolver and set values to it.
             YangToJavaNamingConflictUtil conflictResolver = new YangToJavaNamingConflictUtil();
@@ -167,6 +174,7 @@
             conflictResolver.setPrefixForIdentifier(prefixForIdentifier);
             YangPluginConfig yangPlugin = new YangPluginConfig();
             yangPlugin.setCodeGenDir(codeGenDir);
+            yangPlugin.setManagerCodeGenDir(managerCodeGenDir);
             yangPlugin.setConflictResolver(conflictResolver);
 
             /*
@@ -195,18 +203,18 @@
             // Serialize data model.
             serializeDataModel(getDirectory(baseDir, outputDirectory), getYangFileInfoSet(), project, true);
 
-            addToCompilationRoot(getDirectory(baseDir, genFilesDir), project, context);
+            addToCompilationRoot(codeGenDir, project, context);
+            addToCompilationRoot(managerCodeGenDir, project, context);
 
             copyYangFilesToTarget(getYangFileInfoSet(), getDirectory(baseDir, outputDirectory), project);
         } catch (IOException | ParserException e) {
-            getLog().info(e);
             String fileName = "";
             if (getCurYangFileInfo() != null) {
                 fileName = getCurYangFileInfo().getYangFileName();
             }
             try {
                 translatorErrorHandler(getRootNode());
-                deleteDirectory(getDirectory(baseDir, genFilesDir) + DEFAULT_PKG);
+                deleteDirectory(getDirectory(baseDir, classFileDir) + DEFAULT_PKG);
             } catch (IOException ex) {
                 throw new MojoExecutionException(
                         "Error handler failed to delete files for data model node.");
@@ -255,14 +263,12 @@
     public void resolveDependenciesUsingLinker()
             throws MojoExecutionException {
         createYangNodeSet();
-        for (YangFileInfo yangFileInfo : getYangFileInfoSet()) {
-            setCurYangFileInfo(yangFileInfo);
-            try {
-                yangLinker.resolveDependencies(getYangNodeSet());
-            } catch (LinkerException e) {
-                throw new MojoExecutionException(e.getMessage());
-            }
+        try {
+            yangLinker.resolveDependencies(getYangNodeSet());
+        } catch (LinkerException e) {
+            throw new MojoExecutionException(e.getMessage());
         }
+
     }
 
     /**