Optimizing Generate Code Function in Translator and updating enum/union to support a special hierarchical scenario
Change-Id: I14a971ff6fcda6ae5e86ffe4c11d17a844e371ce
diff --git a/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModule.java b/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModule.java
index 34de136..177fad8 100644
--- a/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModule.java
+++ b/src/main/java/org/onosproject/yangutils/translator/tojava/javamodel/YangJavaSubModule.java
@@ -16,31 +16,22 @@
package org.onosproject.yangutils.translator.tojava.javamodel;
import java.io.IOException;
-
import org.onosproject.yangutils.datamodel.YangBelongsTo;
import org.onosproject.yangutils.datamodel.YangSubModule;
import org.onosproject.yangutils.translator.exception.TranslatorException;
-import org.onosproject.yangutils.translator.tojava.HasJavaFileInfo;
-import org.onosproject.yangutils.translator.tojava.HasJavaImportData;
-import org.onosproject.yangutils.translator.tojava.HasTempJavaCodeFragmentFiles;
import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.translator.tojava.JavaFileInfo;
import org.onosproject.yangutils.translator.tojava.JavaImportData;
import org.onosproject.yangutils.translator.tojava.TempJavaCodeFragmentFiles;
+import org.onosproject.yangutils.translator.tojava.utils.YangJavaModelUtils;
import static org.onosproject.yangutils.translator.tojava.GeneratedJavaFileType.GENERATE_INTERFACE_WITH_BUILDER;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCamelCase;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getCaptialCase;
-import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getRootPackage;
-import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath;
/**
- * Represents Sub module information extended to support java code generation.
+ * Represents sub module information extended to support java code generation.
*/
-public class YangJavaSubModule extends YangSubModule
- implements JavaCodeGenerator, HasJavaFileInfo,
- HasJavaImportData, HasTempJavaCodeFragmentFiles {
+public class YangJavaSubModule extends YangSubModule implements JavaCodeGeneratorInfo, JavaCodeGenerator {
/**
* Contains the information of the java file being generated.
@@ -76,7 +67,6 @@
*/
@Override
public JavaFileInfo getJavaFileInfo() {
-
if (javaFileInfo == null) {
throw new TranslatorException("Missing java info in java datamodel node");
}
@@ -150,33 +140,18 @@
* Prepare the information for java code generation corresponding to YANG
* container info.
*
- * @param codeGenDir code generation directory
+ * @param baseCodeGenDir code generation directory
* @throws IOException IO operation fail
*/
@Override
- public void generateCodeEntry(String codeGenDir) throws IOException {
-
- getJavaFileInfo().setJavaName(getCaptialCase(getCamelCase(getName())));
- getJavaFileInfo().setPackage(getRootPackage(getVersion(),
- getNameSpaceFromModule(getBelongsTo()),
- getRevision().getRevDate()));
- getJavaFileInfo().setPackageFilePath(
- getPackageDirPathFromJavaJPackage(getJavaFileInfo().getPackage()));
- getJavaFileInfo().setBaseCodeGenPath(codeGenDir);
-
- String absloutePath = getAbsolutePackagePath(
- getJavaFileInfo().getBaseCodeGenPath(),
- getJavaFileInfo().getPackageFilePath());
-
- setTempJavaCodeFragmentFiles(new TempJavaCodeFragmentFiles(
- getJavaFileInfo().getGeneratedFileTypes(), absloutePath,
- getJavaFileInfo().getJavaName()));
-
- getTempJavaCodeFragmentFiles().addCurNodeLeavesInfoToTempFiles(this);
+ public void generateCodeEntry(String baseCodeGenDir) throws IOException {
+ String subModulePkg = getRootPackage(getVersion(), getNameSpaceFromModule(getBelongsTo()),
+ getRevision().getRevDate());
+ YangJavaModelUtils.generateCodeOfRootNode(this, baseCodeGenDir, subModulePkg);
}
/**
- * Create a java file using the YANG grouping info.
+ * Creates a java file using the YANG grouping info.
*/
@Override
public void generateCodeExit() {