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

Change-Id: Ibf79749eb667627a592fcc7325021a32e73e11b4
diff --git a/src/main/java/org/onosproject/yangutils/utils/UtilConstants.java b/src/main/java/org/onosproject/yangutils/utils/UtilConstants.java
index 6a994c9..a0b05aa 100644
--- a/src/main/java/org/onosproject/yangutils/utils/UtilConstants.java
+++ b/src/main/java/org/onosproject/yangutils/utils/UtilConstants.java
@@ -408,6 +408,11 @@
     public static final String REVISION_PREFIX = "rev";
 
     /**
+     * Static attribute for YANG automatic prefix for identifiers with keywords and beginning with digits.
+     */
+    public static final String YANG_AUTO_PREFIX = "yangAutoPrefix";
+
+    /**
      * Static attribute for YANG version perifx.
      */
     public static final String VERSION_PREFIX = "v";
@@ -522,9 +527,29 @@
             "synchronized", "this", "throw", "throws", "transient", "true", "try", "void", "volatile", "while");
 
     /**
-     * Static attribute for regex for special char.
+     * Static attribute for regex for all the special characters.
      */
-    public static final String REGEX_WITH_SPECIAL_CHAR = "[ : / - @ $ # ' * + , ; = ]+";
+    public static final String REGEX_WITH_ALL_SPECIAL_CHAR = "\\p{Punct}+";
+
+    /**
+     * Static attribute for regex for three special characters used in identifier.
+     */
+    public static final String REGEX_FOR_IDENTIFIER_SPECIAL_CHAR = "[. _ -]+";
+
+    /**
+     * Static attribute for regex for period.
+     */
+    public static final String REGEX_FOR_PERIOD = "[.]";
+
+    /**
+     * Static attribute for regex for underscore.
+     */
+    public static final String REGEX_FOR_UNDERSCORE = "[_]";
+
+    /**
+     * Static attribute for regex for hyphen.
+     */
+    public static final String REGEX_FOR_HYPHEN = "[-]";
 
     /**
      * Static attribute for regex for digits.
@@ -532,6 +557,16 @@
     public static final String REGEX_FOR_FIRST_DIGIT = "\\d.*";
 
     /**
+     * Static attribute for regex for single letter.
+     */
+    public static final String REGEX_FOR_SINGLE_LETTER = "[a-zA-Z]";
+
+    /**
+     * Static attribute for regex for digits with single letter.
+     */
+    public static final String REGEX_FOR_DIGITS_WITH_SINGLE_LETTER = "[0-9]+[a-zA-Z]";
+
+    /**
      * Static attribute for class syntax.
      */
     public static final String CLASS = "class";
diff --git a/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java b/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
index c25c947..982cbc4 100644
--- a/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
+++ b/src/main/java/org/onosproject/yangutils/utils/io/impl/JavaDocGen.java
@@ -140,7 +140,7 @@
      */
     public static String getJavaDoc(JavaDocType type, String name, boolean isList) {
 
-        name = JavaIdentifierSyntax.getSmallCase(JavaIdentifierSyntax.getCamelCase(name));
+        name = JavaIdentifierSyntax.getSmallCase(JavaIdentifierSyntax.getCamelCase(name, null));
         String javaDoc = UtilConstants.EMPTY_STRING;
         if (type.equals(JavaDocType.IMPL_CLASS)) {
             javaDoc = generateForImplClass(name);