yang choice case translator + whitebox fix

Change-Id: I96f1855bc71a002335946150b51e911ae6ac2fb2
diff --git a/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ClassDefinitionGenerator.java b/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ClassDefinitionGenerator.java
index ec58b26..9fa13d4 100644
--- a/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ClassDefinitionGenerator.java
+++ b/src/main/java/org/onosproject/yangutils/translator/tojava/utils/ClassDefinitionGenerator.java
@@ -109,7 +109,7 @@
         }
         String def = PUBLIC + SPACE + INTERFACE + SPACE + yangName + SPACE + EXTEND + SPACE;
         for (String extend : getExtendsList()) {
-            def = def + extend + COMMA;
+            def = def + extend + COMMA + SPACE;
         }
         def = trimAtLast(def, COMMA);
 
diff --git a/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java b/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
index 03be712..99ab915 100644
--- a/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
+++ b/src/main/java/org/onosproject/yangutils/translator/tojava/utils/MethodsGenerator.java
@@ -373,7 +373,7 @@
     private static String getReturnType(JavaAttributeInfo attr) {
 
         String returnType = EMPTY_STRING;
-        if (attr.isQualifiedName() && (attr.getImportInfo().getPkgInfo() != null)) {
+        if (attr.isQualifiedName() && attr.getImportInfo().getPkgInfo() != null) {
             returnType = attr.getImportInfo().getPkgInfo() + PERIOD;
         }
         returnType = returnType + attr.getImportInfo().getClassInfo();
diff --git a/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TempJavaCodeFragmentFilesUtils.java b/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TempJavaCodeFragmentFilesUtils.java
index ccb8370..a82d7d4 100644
--- a/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TempJavaCodeFragmentFilesUtils.java
+++ b/src/main/java/org/onosproject/yangutils/translator/tojava/utils/TempJavaCodeFragmentFilesUtils.java
@@ -141,7 +141,7 @@
      */
     public static void prepareJavaFileGeneratorForExtendsList(List<String> extendsList) {
 
-        if (!extendsList.isEmpty() && !extendsList.equals(null)) {
+        if (extendsList != null && !extendsList.isEmpty()) {
             JavaFileGenerator.setExtendsList(extendsList);
             JavaFileGenerator.setIsExtendsList(true);
         } else {
@@ -157,10 +157,7 @@
      * @return true or false
      */
     public static boolean isHasAugmentationExtended(List<String> extendsList) {
-        if (extendsList != null && extendsList.contains(HAS_AUGMENTATION)) {
-            return true;
-        }
-        return false;
+        return (extendsList != null && extendsList.contains(HAS_AUGMENTATION));
     }
 
     /**
@@ -170,10 +167,7 @@
      * @return true or false
      */
     public static boolean isAugmentedInfoExtended(List<String> extendsList) {
-        if (extendsList != null && extendsList.contains(AUGMENTED_INFO)) {
-            return true;
-        }
-        return false;
+        return (extendsList != null && extendsList.contains(AUGMENTED_INFO));
     }
 
     /**
diff --git a/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangJavaModelUtils.java b/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangJavaModelUtils.java
index cd6a7cd..4f3cb45 100644
--- a/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangJavaModelUtils.java
+++ b/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangJavaModelUtils.java
@@ -39,6 +39,7 @@
 import static org.onosproject.yangutils.translator.tojava.utils.JavaIdentifierSyntax.getPackageDirPathFromJavaJPackage;
 import static org.onosproject.yangutils.utils.UtilConstants.AUGMENTED_INFO;
 import static org.onosproject.yangutils.utils.UtilConstants.HAS_AUGMENTATION;
+import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
 import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getAbsolutePackagePath;
 
 /**
@@ -159,8 +160,10 @@
         updatePackageInfo((HasJavaFileInfo) javaCodeGeneratorInfo, yangPlugin);
         generateTempFiles(javaCodeGeneratorInfo, yangPlugin.getCodeGenDir());
 
-        javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles()
-                .addCurNodeInfoInParentTempFile((YangNode) javaCodeGeneratorInfo, isMultiInstance);
+        if (!(javaCodeGeneratorInfo instanceof YangCase)) {
+            javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles()
+                    .addCurNodeInfoInParentTempFile((YangNode) javaCodeGeneratorInfo, isMultiInstance);
+        }
 
         /**
          * For augmentation of nodes.
@@ -176,6 +179,21 @@
         } else if (javaCodeGeneratorInfo instanceof YangAugment) {
             javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addToExtendsList(AUGMENTED_INFO);
         }
+
+        if (javaCodeGeneratorInfo instanceof YangCase) {
+            YangNode parent = ((YangCase) javaCodeGeneratorInfo).getParent();
+            String curNodeName = ((YangCase) javaCodeGeneratorInfo).getName();
+            if (!parent.getName().equals(curNodeName)) {
+                javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addToExtendsList(getCaptialCase(getCamelCase(
+                    parent.getName(), null)));
+                javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addParentInfoInCurNodeTempFile((YangNode)
+                    javaCodeGeneratorInfo);
+            } else {
+                String parentPackage = ((HasJavaFileInfo) parent).getJavaFileInfo().getPackage();
+                String caseExtendInfo = parentPackage + PERIOD + parent.getName();
+                javaCodeGeneratorInfo.getTempJavaCodeFragmentFiles().addToExtendsList(caseExtendInfo);
+            }
+        }
     }
 
     /**
diff --git a/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangPluginConfig.java b/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangPluginConfig.java
index 49be81c..f827698 100644
--- a/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangPluginConfig.java
+++ b/src/main/java/org/onosproject/yangutils/translator/tojava/utils/YangPluginConfig.java
@@ -22,12 +22,6 @@
 public final class YangPluginConfig {
 
     /**
-     * Creates an object for YANG plugin config.
-     */
-    public YangPluginConfig() {
-    }
-
-    /**
      * Contains the code generation directory.
      */
     private String codeGenDir;
@@ -38,6 +32,12 @@
     private YangToJavaNamingConflictUtil conflictResolver;
 
     /**
+     * Creates an object for YANG plugin config.
+     */
+    public YangPluginConfig() {
+    }
+
+    /**
      * Sets the path of the java code where it has to be generated.
      *
      * @param codeGenDir path of the directory