Merge "Rectify cyclic dependency among tojava.javamodel and tojava.utils."
diff --git a/compiler/base/translator/src/main/java/org/onosproject/yang/compiler/translator/tojava/javamodel/YangJavaIdentityTranslator.java b/compiler/base/translator/src/main/java/org/onosproject/yang/compiler/translator/tojava/javamodel/YangJavaIdentityTranslator.java
index 8c530f1..b96a239 100644
--- a/compiler/base/translator/src/main/java/org/onosproject/yang/compiler/translator/tojava/javamodel/YangJavaIdentityTranslator.java
+++ b/compiler/base/translator/src/main/java/org/onosproject/yang/compiler/translator/tojava/javamodel/YangJavaIdentityTranslator.java
@@ -16,10 +16,6 @@
 package org.onosproject.yang.compiler.translator.tojava.javamodel;
 
 import org.onosproject.yang.compiler.datamodel.YangIdentity;
-import org.onosproject.yang.compiler.datamodel.YangModule;
-import org.onosproject.yang.compiler.datamodel.YangNode;
-import org.onosproject.yang.compiler.datamodel.YangRevision;
-import org.onosproject.yang.compiler.datamodel.YangSubModule;
 import org.onosproject.yang.compiler.datamodel.javadatamodel.YangJavaIdentity;
 import org.onosproject.yang.compiler.translator.exception.TranslatorException;
 import org.onosproject.yang.compiler.translator.tojava.JavaCodeGenerator;
@@ -41,7 +37,6 @@
 import static org.onosproject.yang.compiler.translator.tojava.utils.JavaFileGeneratorUtils.getFileObject;
 import static org.onosproject.yang.compiler.translator.tojava.utils.JavaFileGeneratorUtils.initiateJavaFileGeneration;
 import static org.onosproject.yang.compiler.translator.tojava.utils.JavaIdentifierSyntax.createPackage;
-import static org.onosproject.yang.compiler.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
 import static org.onosproject.yang.compiler.translator.tojava.utils.MethodsGenerator.getFromStringMethodForIdentity;
 import static org.onosproject.yang.compiler.translator.tojava.utils.MethodsGenerator.getToStringMethodForIdentity;
 import static org.onosproject.yang.compiler.translator.tojava.utils.TranslatorErrorType.FAIL_AT_ENTRY;
@@ -50,10 +45,8 @@
 import static org.onosproject.yang.compiler.utils.UtilConstants.CLOSE_CURLY_BRACKET;
 import static org.onosproject.yang.compiler.utils.UtilConstants.EMPTY_STRING;
 import static org.onosproject.yang.compiler.utils.UtilConstants.JAVA_FILE_EXTENSION;
-import static org.onosproject.yang.compiler.utils.UtilConstants.PERIOD;
 import static org.onosproject.yang.compiler.utils.io.impl.FileSystemUtil.closeFile;
 import static org.onosproject.yang.compiler.utils.io.impl.YangIoUtils.formatFile;
-import static org.onosproject.yang.compiler.utils.io.impl.YangIoUtils.getCamelCase;
 import static org.onosproject.yang.compiler.utils.io.impl.YangIoUtils.getCapitalCase;
 import static org.onosproject.yang.compiler.utils.io.impl.YangIoUtils.insertDataIntoJavaFile;
 
@@ -203,39 +196,6 @@
         return imports;
     }
 
-    /**
-     * Gets the derived package of YangIdentity.
-     *
-     * @param id YANG Identity.
-     * @return package of identity.
-     */
-    public static String getDerivedPackage(YangIdentity id) {
-        String derPkg;
-        String version;
-        String moduleName;
-        YangRevision revision;
-        String nodeName;
-
-        YangNode node = id.getParent();
-        if (node instanceof YangModule) {
-            YangModule module = (YangModule) node;
-            version = module.getVersion();
-            moduleName = module.getModuleName();
-            revision = module.getRevision();
-            nodeName = module.getName();
-        } else {
-            YangSubModule subModule = (YangSubModule) node;
-            version = subModule.getVersion();
-            moduleName = subModule.getModuleName();
-            revision = subModule.getRevision();
-            nodeName = subModule.getName();
-        }
-        String modulePkg = getRootPackage(version, moduleName, revision, null);
-        String modJava = getCamelCase(nodeName, null);
-        derPkg = modulePkg + PERIOD + modJava.toLowerCase();
-        return derPkg;
-    }
-
     private void addStringMethodsToClass(File file, String className,
                                          List<YangIdentity> idList)
             throws IOException {
@@ -253,5 +213,4 @@
     public void generateCodeExit() throws TranslatorException {
         /* Do nothing, file is already generated in entry*/
     }
-}
-
+}
\ No newline at end of file
diff --git a/compiler/base/translator/src/main/java/org/onosproject/yang/compiler/translator/tojava/utils/JavaFileGeneratorUtils.java b/compiler/base/translator/src/main/java/org/onosproject/yang/compiler/translator/tojava/utils/JavaFileGeneratorUtils.java
index 42f946e..37a2eee 100644
--- a/compiler/base/translator/src/main/java/org/onosproject/yang/compiler/translator/tojava/utils/JavaFileGeneratorUtils.java
+++ b/compiler/base/translator/src/main/java/org/onosproject/yang/compiler/translator/tojava/utils/JavaFileGeneratorUtils.java
@@ -24,8 +24,11 @@
 import org.onosproject.yang.compiler.datamodel.YangDataStructure;
 import org.onosproject.yang.compiler.datamodel.YangIdentity;
 import org.onosproject.yang.compiler.datamodel.YangLeafRef;
+import org.onosproject.yang.compiler.datamodel.YangModule;
 import org.onosproject.yang.compiler.datamodel.YangNode;
 import org.onosproject.yang.compiler.datamodel.YangNodeIdentifier;
+import org.onosproject.yang.compiler.datamodel.YangRevision;
+import org.onosproject.yang.compiler.datamodel.YangSubModule;
 import org.onosproject.yang.compiler.datamodel.YangType;
 import org.onosproject.yang.compiler.datamodel.utils.builtindatatype.YangDataTypes;
 import org.onosproject.yang.compiler.translator.exception.TranslatorException;
@@ -42,7 +45,6 @@
 import org.onosproject.yang.compiler.translator.tojava.TempJavaFragmentFiles;
 import org.onosproject.yang.compiler.translator.tojava.TempJavaServiceFragmentFiles;
 import org.onosproject.yang.compiler.translator.tojava.TempJavaTypeFragmentFiles;
-import org.onosproject.yang.compiler.translator.tojava.javamodel.YangJavaIdentityTranslator;
 import org.onosproject.yang.compiler.utils.io.YangPluginConfig;
 import org.onosproject.yang.compiler.utils.io.impl.JavaDocGen.JavaDocType;
 
@@ -96,6 +98,7 @@
 import static org.onosproject.yang.compiler.translator.tojava.YangJavaModelUtils.getNodesPackage;
 import static org.onosproject.yang.compiler.translator.tojava.utils.ClassDefinitionGenerator.generateClassDefinition;
 import static org.onosproject.yang.compiler.translator.tojava.utils.IndentationType.FOUR_SPACE;
+import static org.onosproject.yang.compiler.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
 import static org.onosproject.yang.compiler.translator.tojava.utils.MethodClassTypes.CLASS_TYPE;
 import static org.onosproject.yang.compiler.translator.tojava.utils.MethodClassTypes.INTERFACE_TYPE;
 import static org.onosproject.yang.compiler.translator.tojava.utils.StringGenerator.getIfConditionBegin;
@@ -393,7 +396,7 @@
 
         if (file.exists()) {
             throw new IOException(" file " + file.getName() + " is already generated for "
-                    + className + " @ " + pkg + "\n" +
+                                          + className + " @ " + pkg + "\n" +
                                           ERROR_MSG_FOR_GEN_CODE);
         }
 
@@ -428,7 +431,7 @@
 
         if (file.exists()) {
             throw new IOException(" file " + file.getName() +
-                                  " is already generated for: " + name + "\n" +
+                                          " is already generated for: " + name + "\n" +
                                           ERROR_MSG_FOR_GEN_CODE);
         }
         boolean isFileCreated;
@@ -894,7 +897,7 @@
      * @return derived package info.
      */
     public static JavaQualifiedTypeInfoTranslator getDerivedPkfInfo(YangIdentity id) {
-        String pkg = YangJavaIdentityTranslator.getDerivedPackage(id);
+        String pkg = getDerivedPackage(id);
         String name;
         if (id.isNameConflict()) {
             name = getCapitalCase(
@@ -1047,4 +1050,37 @@
                 .append(signatureClose()).append(methodClose(FOUR_SPACE));
         return builder.toString();
     }
+
+    /**
+     * Gets the derived package of YangIdentity.
+     *
+     * @param id YANG Identity.
+     * @return package of identity.
+     */
+    public static String getDerivedPackage(YangIdentity id) {
+        String derPkg;
+        String version;
+        String moduleName;
+        YangRevision revision;
+        String nodeName;
+
+        YangNode node = id.getParent();
+        if (node instanceof YangModule) {
+            YangModule module = (YangModule) node;
+            version = module.getVersion();
+            moduleName = module.getModuleName();
+            revision = module.getRevision();
+            nodeName = module.getName();
+        } else {
+            YangSubModule subModule = (YangSubModule) node;
+            version = subModule.getVersion();
+            moduleName = subModule.getModuleName();
+            revision = subModule.getRevision();
+            nodeName = subModule.getName();
+        }
+        String modulePkg = getRootPackage(version, moduleName, revision, null);
+        String modJava = getCamelCase(nodeName, null);
+        derPkg = modulePkg + PERIOD + modJava.toLowerCase();
+        return derPkg;
+    }
 }
\ No newline at end of file