Added Yang validator.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / main / java / org / opendaylight / controller / yang / model / parser / impl / YangModelParserImpl.java
index 27a65c1168f24fa822f1c13175d4c4a5a0cef0e2..54902232ea3df589f1c2faaa292b724f34299495 100644 (file)
@@ -119,6 +119,21 @@ public class YangModelParserImpl implements YangModelParser {
         final List<ParseTree> trees = parseStreams(yangFiles);
         final ModuleBuilder[] builders = new ModuleBuilder[trees.size()];
 
+       // validation\r
+        // if validation fails with any file, do not continue and throw\r
+        // exception\r
+        for (int i = 0; i < trees.size(); i++) {\r
+            try {\r
+                final YangModelValidationListener yangModelParser = new YangModelValidationListener();\r
+                walker.walk(yangModelParser, trees.get(i));\r
+            } catch (IllegalStateException e) {\r
+                // wrap exception to add information about which file failed\r
+                throw new YangValidationException(\r
+                        "Yang validation failed for file" + yangFiles[i], e);\r
+            }\r
+        }\r
+
+
         YangModelParserListenerImpl yangModelParser = null;
         for (int i = 0; i < trees.size(); i++) {
             yangModelParser = new YangModelParserListenerImpl();