removed code duplication in translator, and addressed review comments
Change-Id: I27767a81c4bf279c80d2b98192f75f8f507b4457
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/YangUtilsParserManager.java b/src/main/java/org/onosproject/yangutils/parser/impl/YangUtilsParserManager.java
index b0b5edc..673736c 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/YangUtilsParserManager.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/YangUtilsParserManager.java
@@ -36,8 +36,6 @@
*/
public class YangUtilsParserManager implements YangUtilsParser {
- public static final int SUB_STATEMENT_CARDINALITY = 1;
-
@Override
public YangNode getDataModel(String yangFile) throws IOException, ParserException {
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/BitsListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/BitsListener.java
index c0c302f..9e5d583 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/BitsListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/BitsListener.java
@@ -46,11 +46,10 @@
import org.onosproject.yangutils.datamodel.YangLeafList;
import org.onosproject.yangutils.datamodel.YangType;
import org.onosproject.yangutils.parser.Parsable;
-import static org.onosproject.yangutils.utils.YangConstructType.BITS_DATA;
-import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA;
import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
+
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
@@ -58,10 +57,12 @@
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
+import static org.onosproject.yangutils.utils.YangConstructType.BITS_DATA;
+import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA;
/**
- * Implements listener based call back function corresponding to the "bits"
- * rule defined in ANTLR grammar file for corresponding ABNF rule in RFC 6020.
+ * Implements listener based call back function corresponding to the "bits" rule
+ * defined in ANTLR grammar file for corresponding ABNF rule in RFC 6020.
*/
public final class BitsListener {
@@ -79,7 +80,7 @@
* @param ctx context object of the grammar rule
*/
public static void processBitsEntry(TreeWalkListener listener,
- GeneratedYangParser.BitsSpecificationContext ctx) {
+ GeneratedYangParser.BitsSpecificationContext ctx) {
// Check for stack to be non empty.
checkStackIsNotEmpty(listener, MISSING_HOLDER, BITS_DATA, "", ENTRY);
@@ -103,7 +104,7 @@
// TODO typedef, union, deviate.
default:
throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, TYPE_DATA,
- ((YangType) typeData).getDataTypeName(), ENTRY));
+ ((YangType<?>) typeData).getDataTypeName(), ENTRY));
}
listener.getParsedDataStack().push(typeData);
listener.getParsedDataStack().push(bitsNode);
@@ -120,13 +121,14 @@
* @param ctx context object of the grammar rule
*/
public static void processBitsExit(TreeWalkListener listener,
- GeneratedYangParser.BitsSpecificationContext ctx) {
+ GeneratedYangParser.BitsSpecificationContext ctx) {
// Check for stack to be non empty.
checkStackIsNotEmpty(listener, MISSING_HOLDER, BITS_DATA, "", EXIT);
Parsable tmpBitsNode = listener.getParsedDataStack().peek();
if (tmpBitsNode instanceof YangBits) {
+ YangBits bitsNode = (YangBits) tmpBitsNode;
listener.getParsedDataStack().pop();
// Check for stack to be non empty.
@@ -135,8 +137,8 @@
Parsable tmpNode = listener.getParsedDataStack().peek();
switch (tmpNode.getYangConstructType()) {
case TYPE_DATA: {
- YangType typeNode = (YangType) tmpNode;
- typeNode.setDataTypeExtendedInfo((YangBits) tmpBitsNode);
+ YangType<YangBits> typeNode = (YangType<YangBits>) tmpNode;
+ typeNode.setDataTypeExtendedInfo(bitsNode);
break;
}
default:
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/DefaultListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/DefaultListener.java
index 42b3cc4..18a81e4 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/DefaultListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/DefaultListener.java
@@ -45,13 +45,17 @@
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
-import static org.onosproject.yangutils.utils.YangConstructType.DEFAULT_DATA;
+
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.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
+import static org.onosproject.yangutils.utils.YangConstructType.DEFAULT_DATA;
+/**
+ * Listener implementation for default YANG statement.
+ */
public final class DefaultListener {
/**
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/EnumerationListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/EnumerationListener.java
index 5f98fa4..0dab0f1 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/EnumerationListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/EnumerationListener.java
@@ -46,11 +46,10 @@
import org.onosproject.yangutils.datamodel.YangLeafList;
import org.onosproject.yangutils.datamodel.YangType;
import org.onosproject.yangutils.parser.Parsable;
-import static org.onosproject.yangutils.utils.YangConstructType.ENUMERATION_DATA;
-import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA;
import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
+
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
@@ -58,6 +57,8 @@
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
+import static org.onosproject.yangutils.utils.YangConstructType.ENUMERATION_DATA;
+import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA;
/**
* Implements listener based call back function corresponding to the
@@ -104,7 +105,7 @@
// TODO typedef, union, deviate.
default:
throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, TYPE_DATA,
- ((YangType) typeData).getDataTypeName(), ENTRY));
+ ((YangType<?>) typeData).getDataTypeName(), ENTRY));
}
listener.getParsedDataStack().push(typeData);
listener.getParsedDataStack().push(enumerationNode);
@@ -128,6 +129,7 @@
Parsable tmpEnumerationNode = listener.getParsedDataStack().peek();
if (tmpEnumerationNode instanceof YangEnumeration) {
+ YangEnumeration enumerationNode = (YangEnumeration) tmpEnumerationNode;
listener.getParsedDataStack().pop();
// Check for stack to be non empty.
@@ -136,8 +138,8 @@
Parsable tmpNode = listener.getParsedDataStack().peek();
switch (tmpNode.getYangConstructType()) {
case TYPE_DATA: {
- YangType typeNode = (YangType) tmpNode;
- typeNode.setDataTypeExtendedInfo((YangEnumeration) tmpEnumerationNode);
+ YangType<YangEnumeration> typeNode = (YangType<YangEnumeration>) tmpNode;
+ typeNode.setDataTypeExtendedInfo(enumerationNode);
break;
}
default:
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ListListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ListListener.java
index 7692025..d71186e 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ListListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/ListListener.java
@@ -20,12 +20,13 @@
import org.onosproject.yangutils.datamodel.YangList;
import org.onosproject.yangutils.datamodel.YangModule;
import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.datamodel.YangNodeType;
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
+import org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation;
+
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerCollisionDetector.detectCollidingChildUtil;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
@@ -35,7 +36,6 @@
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.UNHANDLED_PARSED_DATA;
-import org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinality;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinalityNonNull;
@@ -115,7 +115,7 @@
String identifierName = ctx.IDENTIFIER().getText();
detectCollidingChildUtil(listener, line, charPositionInLine, identifierName, LIST_DATA);
- YangList yangList = new YangList(YangNodeType.LIST_NODE);
+ YangList yangList = new YangList();
yangList.setName(ctx.IDENTIFIER().getText());
/*
@@ -128,8 +128,8 @@
}
Parsable curData = listener.getParsedDataStack().peek();
- if ((curData instanceof YangModule) || (curData instanceof YangContainer)
- || (curData instanceof YangList)) {
+ if (curData instanceof YangModule || curData instanceof YangContainer
+ || curData instanceof YangList) {
curNode = (YangNode) curData;
try {
curNode.addChild(yangList);
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/MaxElementsListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/MaxElementsListener.java
index 72ba44d..da8a666 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/MaxElementsListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/MaxElementsListener.java
@@ -23,12 +23,12 @@
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
-import static org.onosproject.yangutils.utils.YangConstructType.MAX_ELEMENT_DATA;
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;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
+import static org.onosproject.yangutils.utils.YangConstructType.MAX_ELEMENT_DATA;
/*
* Reference: RFC6020 and YANG ANTLR Grammar
@@ -44,8 +44,9 @@
*/
/**
- * Implements listener based call back function corresponding to the "max-elements"
- * rule defined in ANTLR grammar file for corresponding ABNF rule in RFC 6020.
+ * Implements listener based call back function corresponding to the
+ * "max-elements" rule defined in ANTLR grammar file for corresponding ABNF rule
+ * in RFC 6020.
*/
public final class MaxElementsListener {
@@ -56,15 +57,14 @@
}
/**
- * It is called when parser receives an input matching the grammar
- * rule (max-elements), performs validation and updates the data model
- * tree.
+ * It is called when parser receives an input matching the grammar rule
+ * (max-elements), performs validation and updates the data model tree.
*
* @param listener listener's object
* @param ctx context object of the grammar rule
*/
public static void processMaxElementsEntry(TreeWalkListener listener,
- GeneratedYangParser.MaxElementsStatementContext ctx) {
+ GeneratedYangParser.MaxElementsStatementContext ctx) {
int maxElementsValue;
// Check for stack to be non empty.
@@ -84,7 +84,7 @@
break;
case LIST_DATA:
YangList yangList = (YangList) tmpData;
- yangList.setMaxElelements(maxElementsValue);
+ yangList.setMaxElements(maxElementsValue);
break;
default:
throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, MAX_ELEMENT_DATA, "", ENTRY));
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/NamespaceListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/NamespaceListener.java
index a2cf36c..b30d45c 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/NamespaceListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/NamespaceListener.java
@@ -16,6 +16,8 @@
package org.onosproject.yangutils.parser.impl.listeners;
+import java.net.URI;
+
import org.onosproject.yangutils.datamodel.YangModule;
import org.onosproject.yangutils.datamodel.YangNameSpace;
import org.onosproject.yangutils.parser.Parsable;
@@ -23,14 +25,12 @@
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
-import java.net.URI;
-
-import static org.onosproject.yangutils.utils.YangConstructType.NAMESPACE_DATA;
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;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
+import static org.onosproject.yangutils.utils.YangConstructType.NAMESPACE_DATA;
/*
* Reference: RFC6020 and YANG ANTLR Grammar
@@ -74,7 +74,7 @@
* @param ctx context object of the grammar rule
*/
public static void processNamespaceEntry(TreeWalkListener listener,
- GeneratedYangParser.NamespaceStatementContext ctx) {
+ GeneratedYangParser.NamespaceStatementContext ctx) {
// Check for stack to be non empty.
checkStackIsNotEmpty(listener, MISSING_HOLDER, NAMESPACE_DATA, ctx.string().getText(), ENTRY);
@@ -89,16 +89,16 @@
// Obtain the node of the stack.
Parsable tmpNode = listener.getParsedDataStack().peek();
switch (tmpNode.getYangConstructType()) {
- case MODULE_DATA: {
- YangModule module = (YangModule) tmpNode;
- YangNameSpace uri = new YangNameSpace();
- uri.setUri(ctx.string().getText());
- module.setNameSpace(uri);
- break;
- }
- default:
- throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, NAMESPACE_DATA,
- ctx.string().getText(), ENTRY));
+ case MODULE_DATA: {
+ YangModule module = (YangModule) tmpNode;
+ YangNameSpace uri = new YangNameSpace();
+ uri.setUri(ctx.string().getText());
+ module.setNameSpace(uri);
+ break;
+ }
+ default:
+ throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, NAMESPACE_DATA,
+ ctx.string().getText(), ENTRY));
}
}
@@ -110,9 +110,8 @@
*/
private static boolean validateUriValue(String uri) {
uri = uri.replace("\"", "");
- final URI tmpUri;
try {
- tmpUri = URI.create(uri);
+ URI.create(uri);
} catch (Exception e1) {
return false;
}
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/PositionListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/PositionListener.java
index 41835d6..43e600b 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/PositionListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/PositionListener.java
@@ -36,15 +36,16 @@
import org.onosproject.yangutils.datamodel.YangBit;
import org.onosproject.yangutils.datamodel.YangBits;
import org.onosproject.yangutils.parser.Parsable;
-import static org.onosproject.yangutils.utils.YangConstructType.POSITION_DATA;
import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
+
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;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
+import static org.onosproject.yangutils.utils.YangConstructType.POSITION_DATA;
/**
* Implements listener based call back function corresponding to the "position"
@@ -69,7 +70,7 @@
* @param ctx context object of the grammar rule
*/
public static void processPositionEntry(TreeWalkListener listener,
- GeneratedYangParser.PositionStatementContext ctx) {
+ GeneratedYangParser.PositionStatementContext ctx) {
// Check for stack to be non empty.
checkStackIsNotEmpty(listener, MISSING_HOLDER, POSITION_DATA, ctx.INTEGER().getText(), ENTRY);
@@ -102,7 +103,7 @@
* @return validation result
*/
private static boolean isBitPositionValid(TreeWalkListener listener,
- GeneratedYangParser.PositionStatementContext ctx) {
+ GeneratedYangParser.PositionStatementContext ctx) {
Parsable bitNode = listener.getParsedDataStack().pop();
// Check for stack to be non empty.
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 17fe6b7..03f1cb1 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,6 +16,10 @@
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;
@@ -23,16 +27,12 @@
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-import static org.onosproject.yangutils.utils.YangConstructType.REVISION_DATE_DATA;
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;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
+import static org.onosproject.yangutils.utils.YangConstructType.REVISION_DATE_DATA;
/*
* Reference: RFC6020 and YANG ANTLR Grammar
@@ -83,11 +83,11 @@
* @param ctx context object of the grammar rule
*/
public static void processRevisionDateEntry(TreeWalkListener listener,
- GeneratedYangParser.RevisionDateStatementContext ctx) {
+ GeneratedYangParser.RevisionDateStatementContext ctx) {
// Check for stack to be non empty.
checkStackIsNotEmpty(listener, MISSING_HOLDER, REVISION_DATE_DATA, ctx.DATE_ARG().getText(),
- ENTRY);
+ ENTRY);
if (!isDateValid(ctx.DATE_ARG().getText())) {
ParserException parserException = new ParserException("YANG file error: Input date is not correct");
@@ -99,19 +99,19 @@
// Obtain the node of the stack.
Parsable tmpNode = listener.getParsedDataStack().peek();
switch (tmpNode.getYangConstructType()) {
- case IMPORT_DATA: {
- YangImport importNode = (YangImport) tmpNode;
- importNode.setRevision(ctx.DATE_ARG().getText());
- break;
- }
- case INCLUDE_DATA: {
- YangInclude includeNode = (YangInclude) tmpNode;
- includeNode.setRevision(ctx.DATE_ARG().getText());
- break;
- }
- default:
- throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, REVISION_DATE_DATA,
- ctx.DATE_ARG().getText(), ENTRY));
+ case IMPORT_DATA: {
+ YangImport importNode = (YangImport) tmpNode;
+ importNode.setRevision(ctx.DATE_ARG().getText());
+ break;
+ }
+ case INCLUDE_DATA: {
+ YangInclude includeNode = (YangInclude) tmpNode;
+ includeNode.setRevision(ctx.DATE_ARG().getText());
+ break;
+ }
+ default:
+ throw new ParserException(constructListenerErrorMessage(INVALID_HOLDER, REVISION_DATE_DATA,
+ ctx.DATE_ARG().getText(), ENTRY));
}
}
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/TypeDefListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/TypeDefListener.java
index 5ba9780..d2af63e 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/TypeDefListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/TypeDefListener.java
@@ -58,12 +58,22 @@
import org.onosproject.yangutils.datamodel.YangTypeDef;
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
-import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinality;
-import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinalityEqualsOne;
import org.onosproject.yangutils.parser.antlrgencode.GeneratedYangParser;
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructExtendedListenerErrorMessage;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_CONTENT;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.UNHANDLED_PARSED_DATA;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinality;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.validateCardinalityEqualsOne;
import static org.onosproject.yangutils.utils.YangConstructType.DEFAULT_DATA;
import static org.onosproject.yangutils.utils.YangConstructType.DESCRIPTION_DATA;
import static org.onosproject.yangutils.utils.YangConstructType.REFERENCE_DATA;
@@ -71,15 +81,6 @@
import static org.onosproject.yangutils.utils.YangConstructType.TYPEDEF_DATA;
import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA;
import static org.onosproject.yangutils.utils.YangConstructType.UNITS_DATA;
-import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
-import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
-import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructExtendedListenerErrorMessage;
-import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
-import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.INVALID_HOLDER;
-import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER;
-import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
-import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.UNHANDLED_PARSED_DATA;
-import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
/**
* Implements listener based call back function corresponding to the "typedef"
@@ -122,8 +123,8 @@
Parsable curData = listener.getParsedDataStack().peek();
- if ((curData instanceof YangModule) | (curData instanceof YangSubModule) | (curData instanceof YangContainer)
- | (curData instanceof YangList)) {
+ if (curData instanceof YangModule || curData instanceof YangSubModule || curData instanceof YangContainer
+ || curData instanceof YangList) {
/*
* TODO YangGrouping, YangRpc, YangInput, YangOutput, Notification.
*/
@@ -159,8 +160,8 @@
try {
typeDefNode.validateDataOnExit();
} catch (DataModelException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ throw new ParserException(constructListenerErrorMessage(INVALID_CONTENT, TYPEDEF_DATA,
+ ctx.IDENTIFIER().getText(), EXIT));
}
listener.getParsedDataStack().pop();
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/TypeListener.java b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/TypeListener.java
index 18a7aef..5d6a744 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/listeners/TypeListener.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/listeners/TypeListener.java
@@ -27,7 +27,6 @@
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
-import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.ENTRY;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorLocation.EXIT;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
@@ -35,6 +34,7 @@
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_CURRENT_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorType.MISSING_HOLDER;
import static org.onosproject.yangutils.parser.impl.parserutils.ListenerValidation.checkStackIsNotEmpty;
+import static org.onosproject.yangutils.utils.YangConstructType.TYPE_DATA;
/*
* Reference: RFC6020 and YANG ANTLR Grammar
@@ -110,11 +110,11 @@
switch (tmpData.getYangConstructType()) {
case LEAF_DATA:
YangLeaf leaf = (YangLeaf) tmpData;
- leaf.setDataType((YangType) type);
+ leaf.setDataType((YangType<?>) type);
break;
case LEAF_LIST_DATA:
YangLeafList leafList = (YangLeafList) tmpData;
- leafList.setDataType((YangType) type);
+ leafList.setDataType((YangType<?>) type);
break;
case TYPEDEF_DATA:
@@ -128,15 +128,15 @@
}
YangDerivedType derivedTypeInfo = new YangDerivedType();
- if (((YangType) type).getDataType() != YangDataTypes.DERIVED) {
- derivedTypeInfo.setEffectiveYangBuiltInType(((YangType) type).getDataType());
+ if (((YangType<?>) type).getDataType() != YangDataTypes.DERIVED) {
+ derivedTypeInfo.setEffectiveYangBuiltInType(((YangType<?>) type).getDataType());
} else {
/*
* It will be resolved in the validate data model at exit.
* Nothing needs to be done.
*/
}
- derivedTypeInfo.setBaseType((YangType) type);
+ derivedTypeInfo.setBaseType((YangType<?>) type);
derivedType.setDataTypeExtendedInfo(derivedTypeInfo);
break;
diff --git a/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerValidation.java b/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerValidation.java
index d460634..784b2d5 100644
--- a/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerValidation.java
+++ b/src/main/java/org/onosproject/yangutils/parser/impl/parserutils/ListenerValidation.java
@@ -16,17 +16,18 @@
package org.onosproject.yangutils.parser.impl.parserutils;
+import java.util.List;
+
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.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.TreeWalkListener;
-import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
import org.onosproject.yangutils.utils.YangConstructType;
-import static org.onosproject.yangutils.utils.YangConstructType.getYangConstructType;
-import java.util.List;
+import static org.onosproject.yangutils.parser.impl.parserutils.ListenerErrorMessageConstruction.constructListenerErrorMessage;
+import static org.onosproject.yangutils.utils.YangConstructType.getYangConstructType;
/**
* It's a utility to carry out listener validation.
@@ -50,8 +51,8 @@
* @param errorLocation location where error occurred
*/
public static void checkStackIsNotEmpty(TreeWalkListener listener, ListenerErrorType errorType,
- YangConstructType yangConstructType, String parsableDataTypeName,
- ListenerErrorLocation errorLocation) {
+ YangConstructType yangConstructType, String parsableDataTypeName,
+ ListenerErrorLocation errorLocation) {
if (listener.getParsedDataStack().empty()) {
/*
* If stack is empty it indicates error condition, value of
@@ -59,7 +60,7 @@
* attached to parsable data type.
*/
String message = constructListenerErrorMessage(errorType, yangConstructType, parsableDataTypeName,
- errorLocation);
+ errorLocation);
throw new ParserException(message);
}
}
@@ -75,8 +76,8 @@
* @param errorLocation location where error occurred
*/
public static void checkStackIsEmpty(TreeWalkListener listener, ListenerErrorType errorType,
- YangConstructType yangConstructType, String parsableDataTypeName,
- ListenerErrorLocation errorLocation) {
+ YangConstructType yangConstructType, String parsableDataTypeName,
+ ListenerErrorLocation errorLocation) {
if (!listener.getParsedDataStack().empty()) {
/*
@@ -85,14 +86,14 @@
* attached to parsable data type.
*/
String message = constructListenerErrorMessage(errorType, yangConstructType, parsableDataTypeName,
- errorLocation);
+ errorLocation);
throw new ParserException(message);
}
}
/**
- * Returns parent node config value, if top node does not specify a config statement
- * then default value true is returned.
+ * 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
@@ -117,14 +118,14 @@
*
* @param childContext child's context
* @param yangChildConstruct child construct for whom cardinality is to be
- * validated
+ * validated
* @param yangParentConstruct parent construct
* @param parentName parent name
* @throws ParserException exception if cardinality check fails
*/
public static void validateCardinality(List<?> childContext, YangConstructType yangChildConstruct,
- YangConstructType yangParentConstruct, String parentName)
- throws ParserException {
+ YangConstructType yangParentConstruct, String parentName)
+ throws ParserException {
if (!childContext.isEmpty() && childContext.size() != 1) {
ParserException parserException = new ParserException("YANG file error: Invalid cardinality of "
@@ -139,14 +140,13 @@
*
* @param childContext child's context
* @param yangChildConstruct child construct for whom cardinality is to be
- * validated
+ * validated
* @param yangParentConstruct parent construct
* @param parentName parent name
* @throws ParserException exception if cardinality check fails
*/
public static void validateCardinalityEqualsOne(List<?> childContext, YangConstructType yangChildConstruct,
- YangConstructType yangParentConstruct, String parentName)
- throws ParserException {
+ YangConstructType yangParentConstruct, String parentName) throws ParserException {
if (childContext.isEmpty() || childContext.size() != 1) {
ParserException parserException = new ParserException("YANG file error: Invalid cardinality of "
@@ -161,14 +161,13 @@
*
* @param childContext child's context
* @param yangChildConstruct child construct for whom cardinality is to be
- * validated
+ * validated
* @param yangParentConstruct parent construct
* @param parentName parent name
* @throws ParserException exception if cardinality check fails
*/
public static void validateCardinalityNonNull(List<?> childContext, YangConstructType yangChildConstruct,
- YangConstructType yangParentConstruct, String parentName)
- throws ParserException {
+ YangConstructType yangParentConstruct, String parentName) throws ParserException {
if (childContext.isEmpty()) {
ParserException parserException = new ParserException("YANG file error: Invalid cardinality of "