private static def Builder findNode(Builder firstNodeParent, List<QName> path, String moduleName, int line) {
var currentName = "";
var currentParent = firstNodeParent;
-
+
val max = path.size();
var i = 0;
while(i < max) {
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);
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) {