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/MinElementsListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/MinElementsListener.java
index a89c6ce..d14775b 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/MinElementsListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/MinElementsListener.java
@@ -23,6 +23,7 @@
 import org.onosproject.yangutils.parser.exceptions.ParserException;
 import org.onosproject.yangutils.parser.impl.TreeWalkListener;
 
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.getValidNonNegativeIntegerValue;
 import static org.onosproject.yangutils.utils.YangConstructType.MIN_ELEMENT_DATA;
 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
 import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
@@ -41,7 +42,8 @@
  *  min-value-arg       = non-negative-integer-value
  *
  * ANTLR grammar rule
- * minElementsStatement : MIN_ELEMENTS_KEYWORD INTEGER STMTEND;
+ * minElementsStatement : MIN_ELEMENTS_KEYWORD minValue STMTEND;
+ * minValue             : string;
  */
 
 /**
@@ -68,21 +70,23 @@
                                                GeneratedYangParser.MinElementsStatementContext ctx) {
 
         // Check for stack to be non empty.
-        checkStackIsNotEmpty(listener, MISSING_HOLDER, MIN_ELEMENT_DATA, ctx.INTEGER().getText(), ENTRY);
+        checkStackIsNotEmpty(listener, MISSING_HOLDER, MIN_ELEMENT_DATA, ctx.minValue().getText(), ENTRY);
+
+        int minElementValue = getValidNonNegativeIntegerValue(ctx.minValue().getText(), MIN_ELEMENT_DATA, ctx);
 
         Parsable tmpData = listener.getParsedDataStack().peek();
         switch (tmpData.getYangConstructType()) {
             case LEAF_LIST_DATA:
                 YangLeafList leafList = (YangLeafList) tmpData;
-                leafList.setMinElements(Integer.parseInt(ctx.INTEGER().getText()));
+                leafList.setMinElements(minElementValue);
                 break;
             case LIST_DATA:
                 YangList yangList = (YangList) tmpData;
-                yangList.setMinElements(Integer.parseInt(ctx.INTEGER().getText()));
+                yangList.setMinElements(minElementValue);
                 break;
             default:
                 throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, MIN_ELEMENT_DATA,
-                        ctx.INTEGER().getText(), ENTRY));
+                        ctx.minValue().getText(), ENTRY));
         }
     }
 }
\ No newline at end of file