[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/YangRpc.java b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangRpc.java
index 62b8dd1..72060ad 100644
--- a/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangRpc.java
+++ b/utils/yangutils/datamodel/src/main/java/org/onosproject/yangutils/datamodel/YangRpc.java
@@ -16,6 +16,8 @@
 
 package org.onosproject.yangutils.datamodel;
 
+import java.util.LinkedList;
+import java.util.List;
 import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
 import org.onosproject.yangutils.datamodel.utils.Parsable;
 import org.onosproject.yangutils.datamodel.utils.YangConstructType;
@@ -44,7 +46,7 @@
  *    +--------------+---------+-------------+------------------+
  *    | description  | 7.19.3  | 0..1        | -string          |
  *    | grouping     | 7.11    | 0..n        | -child nodes     |
- *    | if-feature   | 7.18.2  | 0..n        | -TODO            |
+ *    | if-feature   | 7.18.2  | 0..n        | -YangIfFeature   |
  *    | input        | 7.13.2  | 0..1        | -child nodes     |
  *    | output       | 7.13.3  | 0..1        | -child nodes     |
  *    | reference    | 7.19.4  | 0..1        | -string          |
@@ -57,7 +59,7 @@
  * Represents data model node to maintain information defined in YANG rpc.
  */
 public class YangRpc extends YangNode implements YangCommonInfo, Parsable,
-        CollisionDetector {
+        CollisionDetector, YangIfFeatureHolder {
 
     private static final long serialVersionUID = 806201613L;
 
@@ -82,6 +84,11 @@
     private YangStatusType status = YangStatusType.CURRENT;
 
     /**
+     * List of if-feature.
+     */
+    private List<YangIfFeature> ifFeatureList;
+
+    /**
      * Create a rpc node.
      */
     public YangRpc() {
@@ -156,4 +163,22 @@
     public void setStatus(YangStatusType status) {
         this.status = status;
     }
+
+    @Override
+    public List<YangIfFeature> getIfFeatureList() {
+        return ifFeatureList;
+    }
+
+    @Override
+    public void addIfFeatureList(YangIfFeature ifFeature) {
+        if (getIfFeatureList() == null) {
+            setIfFeatureList(new LinkedList<>());
+        }
+        getIfFeatureList().add(ifFeature);
+    }
+
+    @Override
+    public void setIfFeatureList(List<YangIfFeature> ifFeatureList) {
+        this.ifFeatureList = ifFeatureList;
+    }
 }