[4266],[4267],[4268] Defect fix of special characters support for attributes

Change-Id: Ibf79749eb667627a592fcc7325021a32e73e11b4
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
index 8895560..b88d5df 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
@@ -32,6 +32,8 @@
 import org.onosproject.yangutils.parser.YangUtilsParser;
 import org.onosproject.yangutils.parser.exceptions.ParserException;
 import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
+import org.onosproject.yangutils.translator.tojava.utils.YangPluginConfig;
+import org.onosproject.yangutils.translator.tojava.utils.YangToJavaNamingConflictUtil;
 import org.onosproject.yangutils.utils.io.impl.YangFileScanner;
 import org.sonatype.plexus.build.incremental.BuildContext;
 
@@ -87,6 +89,24 @@
     private MavenProject project;
 
     /**
+     * Replacement required for period special character in the identifier.
+     */
+    @Parameter(property = "replacementForPeriod")
+    private String replacementForPeriod;
+
+    /**
+     * Replacement required for underscore special character in the identifier.
+     */
+    @Parameter(property = "replacementForUnderscore")
+    private String replacementForUnderscore;
+
+    /**
+     * Replacement required for hyphen special character in the identifier.
+     */
+    @Parameter(property = "replacementForHyphen")
+    private String replacementForHyphen;
+
+    /**
      * Build context.
      */
     @Component
@@ -112,15 +132,21 @@
 
             searchDir = getDirectory(baseDir, yangFilesDir);
             codeGenDir = getDirectory(baseDir, genFilesDir) + SLASH;
-
+            YangToJavaNamingConflictUtil conflictResolver = new YangToJavaNamingConflictUtil();
+            conflictResolver.setReplacementForPeriod(replacementForPeriod);
+            conflictResolver.setReplacementForHyphen(replacementForHyphen);
+            conflictResolver.setReplacementForUnderscore(replacementForHyphen);
             List<String> yangFiles = YangFileScanner.getYangFiles(searchDir);
+            YangPluginConfig yangPlugin = new YangPluginConfig();
+            yangPlugin.setCodeGenDir(codeGenDir);
+            yangPlugin.setConflictResolver(conflictResolver);
             Iterator<String> yangFileIterator = yangFiles.iterator();
             while (yangFileIterator.hasNext()) {
                 String yangFile = yangFileIterator.next();
                 try {
                     YangNode yangNode = yangUtilsParser.getDataModel(yangFile);
                     setRootNode(yangNode);
-                    generateJavaCode(yangNode, codeGenDir);
+                    generateJavaCode(yangNode, yangPlugin);
                 } catch (ParserException e) {
                     String logInfo = "Error in file: " + e.getFileName();
                     if (e.getLineNumber() != 0) {
@@ -181,7 +207,6 @@
      *
      * @param rootNode current root YANG node of data-model tree
      */
-
     public void setRootNode(YangNode rootNode) {
         this.rootNode = rootNode;
     }