Identifier issue fix for module, list, container, leaf, leaf-list, prefix + date agr string for revision fix
Change-Id: Id9d596512f35b54f6359d361402bcd0180b71678
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/RevisionDateListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/RevisionDateListener.java
index 03f1cb1..f5c4993 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/RevisionDateListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/RevisionDateListener.java
@@ -16,10 +16,6 @@
package org.onosproject.yangutils.parser.impl.listeners;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
import org.onosproject.yangutils.datamodel.YangImport;
import org.onosproject.yangutils.datamodel.YangInclude;
import org.onosproject.yangutils.parser.Parsable;
@@ -27,6 +23,8 @@
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.removeQuotesAndHandleConcat;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerUtil.isDateValid;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER;
@@ -86,13 +84,14 @@
GeneratedYangParser.RevisionDateStatementContext ctx) {
// Check for stack to be non empty.
- checkStackIsNotEmpty(listener, MISSING_HOLDER, REVISION_DATE_DATA, ctx.DATE_ARG().getText(),
+ checkStackIsNotEmpty(listener, MISSING_HOLDER, REVISION_DATE_DATA, ctx.dateArgumentString().getText(),
ENTRY);
- if (!isDateValid(ctx.DATE_ARG().getText())) {
+ String date = removeQuotesAndHandleConcat(ctx.dateArgumentString().getText());
+ if (!isDateValid(date)) {
ParserException parserException = new ParserException("YANG file error: Input date is not correct");
- parserException.setLine(ctx.DATE_ARG().getSymbol().getLine());
- parserException.setCharPosition(ctx.DATE_ARG().getSymbol().getCharPositionInLine());
+ parserException.setLine(ctx.getStart().getLine());
+ parserException.setCharPosition(ctx.getStart().getCharPositionInLine());
throw parserException;
}
@@ -101,42 +100,17 @@
switch (tmpNode.getYangConstructType()) {
case IMPORT_DATA: {
YangImport importNode = (YangImport) tmpNode;
- importNode.setRevision(ctx.DATE_ARG().getText());
+ importNode.setRevision(date);
break;
}
case INCLUDE_DATA: {
YangInclude includeNode = (YangInclude) tmpNode;
- includeNode.setRevision(ctx.DATE_ARG().getText());
+ includeNode.setRevision(date);
break;
}
default:
throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, REVISION_DATE_DATA,
- ctx.DATE_ARG().getText(), ENTRY));
+ ctx.dateArgumentString().getText(), ENTRY));
}
}
-
- /**
- * Validates the revision date.
- *
- * @param dateToValidate input revision date
- * @return validation result, true for success, false for failure
- */
- private static boolean isDateValid(String dateToValidate) {
-
- if (dateToValidate == null) {
- return false;
- }
-
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- sdf.setLenient(false);
-
- try {
- //if not valid, it will throw ParseException
- Date date = sdf.parse(dateToValidate);
- System.out.println(date);
- } catch (ParseException e) {
- return false;
- }
- return true;
- }
}
\ No newline at end of file