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