[ONOS-4947][ONOS-4954][ONOS-4952]Defect Fixed: Invalid name in case of qualified info for child nodes
Change-Id: I0b94455333afd9322c1e583a5c3ec311dbe99991
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
index 9c37bb8..2534756 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/JavaCodeGeneratorUtil.java
@@ -19,12 +19,14 @@
import java.io.IOException;
import org.onosproject.yangutils.datamodel.TraversalType;
+import org.onosproject.yangutils.datamodel.YangInput;
import org.onosproject.yangutils.datamodel.YangNode;
-import org.onosproject.yangutils.datamodel.javadatamodel.JavaFileInfo;
+import org.onosproject.yangutils.datamodel.YangNodeType;
+import org.onosproject.yangutils.datamodel.YangOutput;
import org.onosproject.yangutils.translator.exception.InvalidNodeForTranslatorException;
import org.onosproject.yangutils.translator.exception.TranslatorException;
import org.onosproject.yangutils.datamodel.javadatamodel.YangPluginConfig;
-
+import org.onosproject.yangutils.datamodel.javadatamodel.JavaFileInfo;
import static org.onosproject.yangutils.datamodel.TraversalType.CHILD;
import static org.onosproject.yangutils.datamodel.TraversalType.PARENT;
import static org.onosproject.yangutils.datamodel.TraversalType.ROOT;
@@ -305,4 +307,43 @@
private static void setRootNode(YangNode rootNode) {
JavaCodeGeneratorUtil.rootNode = rootNode;
}
+
+ /**
+ * Searches child node in data model tree.
+ *
+ * @param parentNode parent node
+ * @param nodeType node type
+ * @param nodeName node name
+ * @return child node
+ */
+ public static YangNode searchYangNode(YangNode parentNode, YangNodeType nodeType, String nodeName) {
+ YangNode child = parentNode.getChild();
+ TraversalType curTraversal = ROOT;
+ if (child == null) {
+ throw new IllegalArgumentException("given parent node does not contain any child nodes");
+ }
+
+ while (child != null) {
+ if (curTraversal != PARENT) {
+ if (child instanceof YangInput || child instanceof YangOutput) {
+ if (child.getNodeType().equals(nodeType)) {
+ return child;
+ }
+ } else if (child.getName().equals(nodeName) && child.getNodeType().equals(nodeType)) {
+ return child;
+ }
+ }
+ if (curTraversal != PARENT && child.getChild() != null) {
+ curTraversal = CHILD;
+ child = child.getChild();
+ } else if (child.getNextSibling() != null) {
+ curTraversal = SIBILING;
+ child = child.getNextSibling();
+ } else {
+ curTraversal = PARENT;
+ child = child.getParent();
+ }
+ }
+ return null;
+ }
}