Merge "Bug 2997: Fixed instanceof checks to use interfaces"
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / impl / YangParserListenerImpl.java
index e5127b3142f1082f47f4789ffaa7acae875bc4b4..77a0a354dfa341e69805bdf0769eaa46358cb3f0 100644 (file)
@@ -114,7 +114,7 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
     private final SchemaPathStack stack = new SchemaPathStack();
     private final Map<String, TreeMap<Date, URI>> namespaceContext;
     private final String sourcePath;
-    private QName moduleQName = new QName(null, new Date(0L), null, "dummy");
+    private QName moduleQName = QName.create(null, new Date(0L), "dummy");
     private ModuleBuilder moduleBuilder;
     private String moduleName;
     private int augmentOrder;
@@ -249,7 +249,7 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
                 setLog("namespace", namespaceStr);
             } else if (treeNode instanceof Prefix_stmtContext) {
                 yangModelPrefix = stringFromNode(treeNode);
-                this.moduleQName = QName.create(moduleQName.getModule(), yangModelPrefix, moduleQName.getLocalName());
+                this.moduleQName = QName.create(moduleQName.getModule(), moduleQName.getLocalName());
                 moduleBuilder.setPrefix(yangModelPrefix);
                 setLog("prefix", yangModelPrefix);
             } else if (treeNode instanceof Yang_version_stmtContext) {
@@ -816,6 +816,10 @@ public final class YangParserListenerImpl extends YangParserBaseListener {
             } else if (childNode instanceof Key_stmtContext) {
                 final Set<String> key = createListKey((Key_stmtContext) childNode);
                 builder.setKeys(key);
+            } else if (childNode instanceof YangParser.Identifier_stmtContext) {
+                if (childNode.getChild(0).toString().equals("union")) {
+                    throw new YangParseException(moduleName, line, "Union statement is not allowed inside a list statement");
+                }
             }
         }
     }