YANG sub module linking + unsupported yang construct + defect fix
Change-Id: I224c8c14ee2111f6844278cb540c48651544f59b
diff --git a/src/main/java/org/onosproject/yangutils/datamodel/utils/DataModelUtils.java b/src/main/java/org/onosproject/yangutils/datamodel/utils/DataModelUtils.java
index eda18f3..e243d5e 100644
--- a/src/main/java/org/onosproject/yangutils/datamodel/utils/DataModelUtils.java
+++ b/src/main/java/org/onosproject/yangutils/datamodel/utils/DataModelUtils.java
@@ -16,6 +16,7 @@
package org.onosproject.yangutils.datamodel.utils;
+import java.util.Iterator;
import java.util.List;
import org.onosproject.yangutils.datamodel.CollisionDetector;
@@ -29,6 +30,7 @@
import org.onosproject.yangutils.datamodel.YangRpc;
import org.onosproject.yangutils.datamodel.exceptions.DataModelException;
import org.onosproject.yangutils.parser.Parsable;
+import org.onosproject.yangutils.plugin.manager.YangFileInfo;
import org.onosproject.yangutils.utils.YangConstructType;
/**
@@ -240,4 +242,26 @@
}
return false;
}
+
+ /**
+ * Returns module's data model node to which sub-module belongs to.
+ *
+ * @param yangFileInfo YANG file information
+ * @param belongsToModuleName name of the module to which sub-module belongs to
+ * @return module node to which sub-module belongs to
+ * @throws DataModelException when belongs to module node is not found
+ */
+ public static YangNode findBelongsToModuleNode(List<YangFileInfo> yangFileInfo,
+ String belongsToModuleName) throws DataModelException {
+ Iterator<YangFileInfo> yangFileIterator = yangFileInfo.iterator();
+ while (yangFileIterator.hasNext()) {
+ YangFileInfo yangFile = yangFileIterator.next();
+ YangNode yangNode = yangFile.getRootNode();
+ if (yangNode.getName().equals(belongsToModuleName)) {
+ return yangNode;
+ }
+ }
+ throw new DataModelException("YANG file error : Module " + belongsToModuleName + " to which sub-module " +
+ "belongs to is not found.");
+ }
}