config ang key validation and UT for the same
Change-Id: I507740fc9da3f3da5fb3c88a7414f87db6251c5b
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerValidation.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerValidation.java
index 226a530..26e4907 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerValidation.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerValidation.java
@@ -16,6 +16,10 @@
package org.onosproject.yangutils.parser.impl.parserutils;
+import org.onosproject.yangutils.datamodel.YangContainer;
+import org.onosproject.yangutils.datamodel.YangList;
+import org.onosproject.yangutils.datamodel.YangNode;
+import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.ParsableDataType;
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
@@ -83,4 +87,25 @@
throw new ParserException(message);
}
}
+
+ /**
+ * Returns parent node config value, if top node does not specify a config statement
+ * then default value true is returned.
+ *
+ * @param listener listener's object.
+ * @return true/false parent's config value.
+ */
+ public static boolean getParentNodeConfig(TreeWalkListener listener) {
+ YangNode parentNode;
+ Parsable curData = listener.getParsedDataStack().peek();
+ if (curData instanceof YangNode) {
+ parentNode = ((YangNode) curData).getParent();
+ if (parentNode instanceof YangContainer) {
+ return ((YangContainer) parentNode).isConfig();
+ } else if (parentNode instanceof YangList) {
+ return ((YangList) parentNode).isConfig();
+ }
+ }
+ return true;
+ }
}