From e41e27fbce4afd64773da7fe7ec2ee09a14243f0 Mon Sep 17 00:00:00 2001 From: Martin Vitez Date: Wed, 18 Sep 2013 11:03:25 +0200 Subject: [PATCH] Fixed bug in searching augment target node. Signed-off-by: Martin Vitez --- .../yangtools/yang/parser/util/ParserUtils.xtend | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserUtils.xtend b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserUtils.xtend index 1d03e8a44f..509ac236b7 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserUtils.xtend +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/util/ParserUtils.xtend @@ -280,7 +280,7 @@ public final class ParserUtils { private static def Builder findNode(Builder firstNodeParent, List path, String moduleName, int line) { var currentName = ""; var currentParent = firstNodeParent; - + val max = path.size(); var i = 0; while(i < max) { @@ -289,7 +289,10 @@ public final class ParserUtils { currentName = qname.getLocalName(); if (currentParent instanceof DataNodeContainerBuilder) { var dataNodeContainerParent = currentParent as DataNodeContainerBuilder; - var nodeFound = dataNodeContainerParent.getDataChildByName(currentName); + var SchemaNodeBuilder nodeFound = dataNodeContainerParent.getDataChildByName(currentName); + if (nodeFound == null && currentParent instanceof ModuleBuilder) { + nodeFound = searchNotifications(currentParent as ModuleBuilder, currentName); + } // if not found as regular child, search in uses if (nodeFound == null) { var found = searchUses(dataNodeContainerParent, currentName); @@ -318,6 +321,15 @@ public final class ParserUtils { return currentParent; } + private static def searchNotifications(ModuleBuilder parent, String name) { + for(notification : parent.notifications) { + if(notification.getQName().localName.equals(name)) { + return notification; + } + } + return null; + } + private static def searchUses(DataNodeContainerBuilder dataNodeContainerParent, String name) { var currentName = name; for (unb : dataNodeContainerParent.usesNodes) { -- 2.36.6