[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;
+    }
 }