Added validation of identity base statement. 07/1507/1
authorMartin Vitez <mvitez@cisco.com>
Mon, 30 Sep 2013 11:38:45 +0000 (13:38 +0200)
committerMartin Vitez <mvitez@cisco.com>
Mon, 30 Sep 2013 11:38:45 +0000 (13:38 +0200)
Signed-off-by: Martin Vitez <mvitez@cisco.com>
yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/impl/YangParserImpl.java

index 3773ab4da46cb3305e389e62dae007a71a7e4b2f..1a017758eb10eb7cb7473be38c93da4a735c673e 100644 (file)
@@ -694,12 +694,21 @@ public final class YangParserImpl implements YangModelParser {
                 final ModuleBuilder dependentModule = findModuleFromBuilders(modules, module, baseIdentityPrefix,
                         identity.getLine());
 
+                IdentitySchemaNodeBuilder baseIdentity = null;
                 final Set<IdentitySchemaNodeBuilder> dependentModuleIdentities = dependentModule.getIdentities();
                 for (IdentitySchemaNodeBuilder idBuilder : dependentModuleIdentities) {
                     if (idBuilder.getQName().getLocalName().equals(baseIdentityLocalName)) {
-                        identity.setBaseIdentity(idBuilder);
+                        baseIdentity = idBuilder;
+                        break;
                     }
                 }
+                if (baseIdentity == null) {
+                    throw new YangParseException(module.getName(), identity.getLine(),
+                            "Base identity " + baseIdentityName + " not found");
+                } else {
+                    identity.setBaseIdentity(baseIdentity);
+                }
+
             }
         }
     }