string issue fix for few yang construct like config, mandatory + allowing yang constructs as identifers and string
Change-Id: I8dd01dc60d280a843b0a485681caa6bfcac013c2
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/MandatoryListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/MandatoryListener.java
index ea33cd7..3ca820c 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/MandatoryListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/MandatoryListener.java
@@ -22,6 +22,7 @@
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidBooleanValue;
import static org.onosproject.yangutils.utils.YangConstructType.MANDATORY_DATA;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
@@ -42,7 +43,8 @@
* mandatory-arg = true-keyword / false-keyword
*
* ANTLR grammar rule
- * mandatoryStatement : MANDATORY_KEYWORD (TRUE_KEYWORD | FALSE_KEYWORD) STMTEND;
+ * mandatoryStatement : MANDATORY_KEYWORD mandatory STMTEND;
+ * mandatory : string;
*/
/**
@@ -71,15 +73,13 @@
// Check for stack to be non empty.
checkStackIsNotEmpty(listener, MISSING_HOLDER, MANDATORY_DATA, "", ENTRY);
+ boolean isMandatory = getValidBooleanValue(ctx.mandatory().getText(), MANDATORY_DATA, ctx);
+
Parsable tmpNode = listener.getParsedDataStack().peek();
switch (tmpNode.getYangConstructType()) {
case LEAF_DATA:
YangLeaf leaf = (YangLeaf) tmpNode;
- if (ctx.TRUE_KEYWORD() != null) {
- leaf.setMandatory(true);
- } else {
- leaf.setMandatory(false);
- }
+ leaf.setMandatory(isMandatory);
break;
case CHOICE_DATA: // TODO
break;