[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/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangInclude.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangInclude.java
index 5970a24..48b796f 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangInclude.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangInclude.java
@@ -16,6 +16,7 @@
 package org.onosproject.yangutils.datamodel;
 
 import java.io.Serializable;
+import java.util.Date;
 import java.util.Set;
 
 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
@@ -56,7 +57,7 @@
      * The include's "revision-date" statement is used to specify the exact
      * version of the submodule to import.
      */
-    private String revision;
+    private Date revision;
 
     /**
      * Reference to node which is included.
@@ -98,7 +99,7 @@
      *
      * @return the revision
      */
-    public String getRevision() {
+    public Date getRevision() {
         return revision;
     }
 
@@ -107,7 +108,7 @@
      *
      * @param revision the revision to set
      */
-    public void setRevision(String revision) {
+    public void setRevision(Date revision) {
         this.revision = revision;
     }
 
@@ -182,7 +183,7 @@
      */
     public YangSubModule addReferenceToInclude(Set<YangNode> yangNodeSet) throws DataModelException {
         String includedSubModuleName = getSubModuleName();
-        String includedSubModuleRevision = getRevision();
+        Date includedSubModuleRevision = getRevision();
         YangNode subModuleNode = null;
 
         /*
@@ -204,7 +205,7 @@
 
         if (subModuleNode != null) {
             if (subModuleNode instanceof YangSubModule) {
-                if (getRevision() == null || getRevision().isEmpty()) {
+                if (getRevision() == null) {
                     setIncludedNode(subModuleNode);
                     return (YangSubModule) subModuleNode;
                 }