Inter-File grouping defect fix

Change-Id: Ic77bab1ccb4a770ad09666127ec2ed7c35b7bbad
diff --git a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/YangJavaModelUtils.java b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/YangJavaModelUtils.java
index 2a1c8b4..2c019f6 100644
--- a/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/YangJavaModelUtils.java
+++ b/plugin/src/main/java/org/onosproject/yangutils/translator/tojava/YangJavaModelUtils.java
@@ -334,11 +334,28 @@
                                                 info));
         }
 
-        YangSchemaNode node = getRefSchema(info);
-        if (node != null) {
+        /*
+         * For second level and below cloned nodes code shouldn't be
+         * generated also they needn't be added in parent, since
+         * generated code will be under grouping, cloned node is only
+         * used for YANG namespace.
+         */
+        YangNode n = (YangNode) info;
+        if (n.getReferredSchema() != null &&
+                !(((YangNode) n.getReferredSchema()).getParent() instanceof
+                        YangGrouping)) {
+            return;
+        }
+        /*
+         * If first level cloned node, then it needs to be imported in the
+         * generated code. In case uses under grouping, it would further have
+         * second level uses, hence needn't add in parent grouping.
+         */
+        YangSchemaNode rn = getRefSchema(info);
+        if (rn != null) {
             YangNode parent = ((YangNode) info).getParent();
             if (!(parent instanceof YangGrouping)) {
-                addCurNodeInfoInParentTempFile((YangNode) node, isMultiInstance,
+                addCurNodeInfoInParentTempFile((YangNode) rn, isMultiInstance,
                                                config, parent);
             }
             return;
@@ -647,4 +664,22 @@
         }
         return AUGMENTED + name;
     }
+
+    /**
+     * Generated java code during exit.
+     *
+     * @param type generated file type
+     * @param node current YANG node
+     * @throws IOException when fails to generate java files
+     */
+    public static void  generateJava(int type, YangNode node)
+            throws IOException {
+        /*
+         * Call for file generation if node is not under uses.
+         */
+        if(node.getReferredSchema() == null) {
+            ((TempJavaCodeFragmentFilesContainer) node)
+                .getTempJavaCodeFragmentFiles().generateJavaFile(type, node);
+        }
+    }
 }