[ONOS-4650][ONOS-4726][ONOS-4727] [ONOS-4728]Implement must parser + when parser + feature + if-feature + revision defect fix

Change-Id: I0a3aee6c1c6b72ef7da7f7f565fd0f149fe3fd42
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 c9b2765..8c938ed 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
@@ -18,7 +18,9 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import org.onosproject.yangutils.datamodel.YangNode;
 import org.onosproject.yangutils.translator.exception.TranslatorException;
@@ -59,6 +61,7 @@
     private static final int INDEX_TWO = 2;
     private static final int VALUE_CHECK = 10;
     private static final String ZERO = "0";
+    private static final String DATE_FORMAT = "yyyy-MM-dd";
 
     /**
      * Create instance of java identifier syntax.
@@ -75,7 +78,7 @@
      * @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,
+    public static String getRootPackage(byte version, String nameSpace, Date revision,
                                         YangToJavaNamingConflictUtil conflictResolver) {
 
         String pkg;
@@ -125,30 +128,23 @@
      *
      * @param date YANG module revision
      * @return revision string
-     * @throws TranslatorException when date is invalid.
      */
-    private static String getYangRevisionStr(String date) throws TranslatorException {
-
-        String[] revisionArr = date.split(HYPHEN);
+    private static String getYangRevisionStr(Date date) {
+        SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
+        String dateInString = sdf.format(date);
+        String[] revisionArr = dateInString.split(HYPHEN);
 
         String rev = REVISION_PREFIX;
         rev = rev + revisionArr[INDEX_ZERO];
 
-        if (Integer.parseInt(revisionArr[INDEX_ONE]) <= MAX_MONTHS
-                && Integer.parseInt(revisionArr[INDEX_TWO]) <= MAX_DAYS) {
-            for (int i = INDEX_ONE; i < revisionArr.length; i++) {
-
-                Integer val = Integer.parseInt(revisionArr[i]);
-                if (val < VALUE_CHECK) {
-                    rev = rev + ZERO;
-                }
-                rev = rev + val;
+        for (int i = INDEX_ONE; i < revisionArr.length; i++) {
+            Integer val = Integer.parseInt(revisionArr[i]);
+            if (val < VALUE_CHECK) {
+                rev = rev + ZERO;
             }
-
-            return rev;
-        } else {
-            throw new TranslatorException("Date in revision is not proper: " + date);
+            rev = rev + val;
         }
+        return rev;
     }
 
     /**